/* roulang page: index */
:root {
            --ink: #16323c;
            --muted: #65777d;
            --blue: #176b87;
            --blue-deep: #0e4f66;
            --blue-soft: #e9f4f6;
            --aqua: #cbe8e9;
            --coral: #d77b65;
            --paper: #fbfcfa;
            --white: #ffffff;
            --line: #d9e4e4;
            --line-dark: #b6cccd;
            --success: #397a68;
            --warning: #b36a35;
            --shadow: 0 16px 38px rgba(19, 66, 77, .09);
            --shadow-small: 0 8px 20px rgba(19, 66, 77, .07);
            --radius: 7px;
            --max: 1180px;
            --section: 104px;
        }

        *, *::before, *::after { box-sizing: border-box; }
        html { scroll-behavior: smooth; }
        body {
            margin: 0;
            color: var(--ink);
            background: var(--paper);
            font-family: "Noto Sans SC", "Microsoft YaHei", "PingFang SC", Arial, sans-serif;
            font-size: 16px;
            line-height: 1.75;
            -webkit-font-smoothing: antialiased;
        }
        a { color: inherit; text-decoration: none; }
        img { max-width: 100%; display: block; }
        button, input, select, textarea { font: inherit; }
        button { cursor: pointer; }
        :focus-visible { outline: 3px solid rgba(215, 123, 101, .55); outline-offset: 3px; }
        .container { max-width: var(--max); }
        .section { padding: var(--section) 0; }
        .section-soft { background: var(--blue-soft); }
        .eyebrow {
            display: inline-flex;
            align-items: center;
            gap: 9px;
            color: var(--blue);
            font-size: 12px;
            font-weight: 800;
            letter-spacing: 0;
            text-transform: uppercase;
        }
        .eyebrow::before {
            content: "";
            display: inline-block;
            width: 26px;
            height: 2px;
            background: var(--coral);
        }
        h1, h2, h3, h4 { margin: 0; font-weight: 800; line-height: 1.22; letter-spacing: 0; }
        h1 { font-size: clamp(2.35rem, 5vw, 4.6rem); }
        h2 { font-size: clamp(1.8rem, 3vw, 2.7rem); }
        h3 { font-size: 1.25rem; }
        .section-intro { max-width: 650px; margin-top: 18px; color: var(--muted); }
        .rule { height: 1px; background: var(--line); }

        .site-header {
            background: rgba(251, 252, 250, .96);
            border-bottom: 1px solid var(--line);
            position: sticky;
            top: 0;
            z-index: 1000;
        }
        .navbar { min-height: 87px; padding: 15px 0; }
        .brand {
            display: inline-flex;
            align-items: center;
            gap: 15px;
            white-space: nowrap;
        }
        .brand-mark {
            width: 42px;
            height: 42px;
            display: grid;
            place-items: center;
            color: var(--white);
            background: var(--blue);
            border-radius: 50%;
            font-weight: 900;
            font-size: 17px;
        }
        .brand-name {
            font-family: "Songti SC", "STSong", serif;
            font-size: 1.23rem;
            font-weight: 900;
            line-height: 1.15;
        }
        .brand-channel {
            padding-left: 15px;
            border-left: 1px solid var(--line-dark);
            color: var(--muted);
            font-size: .74rem;
            line-height: 1.35;
        }
        .navbar-nav { gap: 5px; }
        .nav-link {
            position: relative;
            padding: 10px 13px !important;
            color: var(--muted) !important;
            font-size: .92rem;
            transition: color .2s ease, background .2s ease;
        }
        .nav-link:hover, .nav-link:focus, .nav-link.active {
            color: var(--blue) !important;
            background: var(--blue-soft);
        }
        .nav-link.active::after {
            content: "";
            position: absolute;
            left: 13px;
            right: 13px;
            bottom: 4px;
            height: 2px;
            background: var(--coral);
        }
        .nav-age {
            margin-left: 10px;
            padding: 8px 13px;
            color: var(--blue-deep);
            border: 1px solid var(--line-dark);
            border-radius: 5px;
            font-size: .82rem;
            transition: .2s ease;
        }
        .nav-age:hover { background: var(--blue); color: white; border-color: var(--blue); }
        .navbar-toggler { border: 1px solid var(--line-dark); border-radius: 5px; padding: 8px 11px; }
        .navbar-toggler:focus { box-shadow: 0 0 0 3px rgba(23,107,135,.16); }

        .hero {
            position: relative;
            min-height: 650px;
            display: flex;
            align-items: center;
            overflow: hidden;
            background-color: #e8f3f3;
            border-bottom: 1px solid var(--line);
        }
        .hero::before {
            content: "";
            position: absolute;
            top: 0;
            right: 0;
            width: 42%;
            height: 100%;
            background-color: #d2e8e9;
            clip-path: polygon(28% 0, 100% 0, 100% 100%, 0 100%);
        }
        .hero-inner { position: relative; z-index: 1; padding: 82px 0 70px; }
        .hero-copy { max-width: 780px; }
        .hero h1 { max-width: 800px; margin: 20px 0 25px; color: var(--ink); }
        .hero-lead { max-width: 700px; color: #49646b; font-size: 1.12rem; }
        .hero-actions { display: flex; flex-wrap: wrap; gap: 13px; margin-top: 32px; }
        .btn-main, .btn-quiet {
            min-height: 48px;
            display: inline-flex;
            align-items: center;
            justify-content: center;
            gap: 9px;
            padding: 11px 20px;
            border-radius: 5px;
            font-weight: 800;
            transition: transform .2s ease, box-shadow .2s ease, background .2s ease;
        }
        .btn-main { color: white; background: var(--blue); border: 1px solid var(--blue); box-shadow: 0 8px 16px rgba(23,107,135,.18); }
        .btn-main:hover { color: white; background: var(--blue-deep); transform: translateY(-2px); box-shadow: 0 12px 22px rgba(23,107,135,.24); }
        .btn-main:active, .btn-quiet:active { transform: translateY(1px); }
        .btn-quiet { color: var(--blue-deep); background: rgba(255,255,255,.72); border: 1px solid var(--line-dark); }
        .btn-quiet:hover { color: var(--blue-deep); background: white; border-color: var(--blue); }
        .hero-notes { display: flex; flex-wrap: wrap; gap: 24px; margin-top: 45px; }
        .hero-note { display: flex; align-items: center; gap: 9px; color: var(--muted); font-size: .88rem; }
        .hero-note strong { color: var(--ink); font-size: 1.1rem; }
        .hero-note i { width: 8px; height: 8px; display: inline-block; background: var(--coral); border-radius: 50%; }
        .hero-index {
            position: absolute;
            right: 4%;
            bottom: 57px;
            width: 290px;
            padding: 25px;
            background: rgba(255,255,255,.78);
            border: 1px solid rgba(182,204,205,.9);
            box-shadow: var(--shadow);
        }
        .hero-index small { color: var(--muted); font-size: .76rem; }
        .hero-index h3 { margin: 8px 0 20px; font-family: "Songti SC", serif; }
        .index-row { display: flex; justify-content: space-between; padding: 10px 0; border-top: 1px solid var(--line); font-size: .88rem; }
        .index-row span:last-child { color: var(--blue); font-weight: 800; }
        .next-hint { position: absolute; bottom: 25px; left: 0; color: var(--blue); font-size: .78rem; font-weight: 800; }

        .problem-layout { display: grid; grid-template-columns: 25% 1fr; gap: 75px; }
        .problem-side { border-top: 2px solid var(--blue); padding-top: 18px; }
        .problem-side p { color: var(--muted); margin: 18px 0 0; }
        .question-list { border-top: 1px solid var(--line); }
        .question-item { display: grid; grid-template-columns: 60px 1fr; gap: 20px; padding: 27px 0; border-bottom: 1px solid var(--line); }
        .question-number { color: var(--coral); font-family: Georgia, serif; font-size: 1.8rem; }
        .question-item p { color: var(--muted); margin: 8px 0 0; }

        .solution-header { display: flex; justify-content: space-between; align-items: end; gap: 30px; margin-bottom: 42px; }
        .solution-grid { display: grid; grid-template-columns: 1.35fr .85fr; gap: 22px; }
        .feature-panel, .mini-panel {
            background: var(--white);
            border: 1px solid var(--line);
            border-radius: var(--radius);
            box-shadow: var(--shadow-small);
        }
        .feature-panel { padding: 34px; min-height: 330px; }
        .feature-panel h3 { font-size: 1.65rem; max-width: 420px; margin: 17px 0 13px; }
        .feature-panel p, .mini-panel p { color: var(--muted); margin: 0; }
        .feature-list { display: flex; flex-wrap: wrap; gap: 9px; margin-top: 28px; }
        .tag {
            display: inline-flex;
            align-items: center;
            padding: 5px 10px;
            color: var(--blue-deep);
            background: var(--blue-soft);
            border: 1px solid #cce2e4;
            border-radius: 4px;
            font-size: .78rem;
            font-weight: 700;
        }
        .mini-stack { display: grid; gap: 22px; }
        .mini-panel { padding: 25px; }
        .mini-panel h3 { margin-bottom: 8px; }
        .mini-icon { width: 34px; height: 34px; display: grid; place-items: center; margin-bottom: 20px; color: white; background: var(--coral); border-radius: 50%; font-weight: 900; }

        .result-band { background: var(--blue); color: white; padding: 34px 0; }
        .result-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 25px; }
        .result-item { padding-left: 20px; border-left: 1px solid rgba(255,255,255,.35); }
        .result-item strong { display: block; font-size: 1.8rem; line-height: 1.2; }
        .result-item span { display: block; margin-top: 7px; color: #c9e6e8; font-size: .85rem; }

        .scenario-grid { display: grid; grid-template-columns: .82fr 1.18fr; gap: 70px; align-items: start; }
        .scenario-steps { border-top: 1px solid var(--line); }
        .scenario-step { display: grid; grid-template-columns: 48px 1fr; gap: 15px; padding: 22px 0; border-bottom: 1px solid var(--line); }
        .step-num { color: var(--blue); font-size: .82rem; font-weight: 900; }
        .scenario-step p { margin: 5px 0 0; color: var(--muted); font-size: .92rem; }
        .scene-board { padding: 28px; background: #f0f7f6; border: 1px solid var(--line); }
        .scene-cover { height: 245px; display: flex; flex-direction: column; justify-content: end; padding: 25px; color: white; background-color: #397a82; position: relative; overflow: hidden; }
        .scene-cover::before, .scene-cover::after { content: ""; position: absolute; border: 1px solid rgba(255,255,255,.3); transform: rotate(28deg); }
        .scene-cover::before { width: 220px; height: 340px; top: -90px; right: 25px; }
        .scene-cover::after { width: 90px; height: 260px; top: -30px; right: 120px; }
        .scene-cover > * { position: relative; z-index: 1; }
        .scene-cover small { color: #d8eeed; }
        .scene-cover h3 { margin-top: 7px; font-family: "Songti SC", serif; font-size: 1.8rem; }
        .scene-meta { display: flex; justify-content: space-between; gap: 12px; padding-top: 18px; color: var(--muted); font-size: .82rem; }
        .scene-progress { height: 4px; margin-top: 18px; background: #d2e2e1; }
        .scene-progress span { display: block; width: 62%; height: 100%; background: var(--coral); }

        .feedback-section { background: #f5f8f7; }
        .feedback-layout { display: grid; grid-template-columns: 1fr .75fr; gap: 85px; }
        .quote { padding: 30px 0 30px 30px; border-left: 3px solid var(--coral); font-family: "Songti SC", serif; font-size: 1.45rem; line-height: 1.65; }
        .quote-meta { margin: 20px 0 0 30px; color: var(--muted); font-family: inherit; font-size: .83rem; }
        .feedback-note { padding-top: 18px; color: var(--muted); border-top: 1px solid var(--line); }
        .feedback-note strong { display: block; margin-bottom: 8px; color: var(--ink); }

        .topic-section { border-top: 1px solid var(--line); }
        .topic-grid { display: grid; grid-template-columns: 1.2fr .8fr .8fr; gap: 18px; margin-top: 40px; }
        .topic-link { display: flex; flex-direction: column; justify-content: space-between; min-height: 195px; padding: 25px; border: 1px solid var(--line); background: white; transition: .2s ease; }
        .topic-link:hover { border-color: var(--blue); box-shadow: var(--shadow-small); transform: translateY(-3px); }
        .topic-link.featured { background: var(--blue-deep); color: white; }
        .topic-link p { margin: 12px 0 0; color: var(--muted); font-size: .88rem; }
        .topic-link.featured p { color: #c9e6e8; }
        .topic-arrow { align-self: end; color: var(--coral); font-size: 1.4rem; }

        .updates-grid { display: grid; grid-template-columns: 1.1fr .9fr; gap: 70px; }
        .update-list { border-top: 1px solid var(--line); }
        .update-item { display: grid; grid-template-columns: 95px 1fr; gap: 18px; padding: 20px 0; border-bottom: 1px solid var(--line); }
        .update-date { color: var(--blue); font-size: .78rem; font-weight: 800; }
        .update-item h3 { font-size: 1.03rem; }
        .update-item p { margin: 5px 0 0; color: var(--muted); font-size: .88rem; }
        .search-panel { padding: 30px; background: var(--blue-soft); border: 1px solid var(--line); }
        .search-panel h3 { margin-bottom: 12px; }
        .search-panel p { color: var(--muted); font-size: .9rem; }
        .search-box { display: flex; gap: 8px; margin-top: 18px; }
        .search-box input { min-width: 0; flex: 1; padding: 11px 13px; border: 1px solid var(--line-dark); border-radius: 4px; background: white; }
        .search-box input:focus { border-color: var(--blue); box-shadow: 0 0 0 3px rgba(23,107,135,.12); outline: none; }
        .search-result { display: none; margin-top: 13px; color: var(--warning); font-size: .82rem; }

        .faq-wrap { max-width: 850px; margin: 38px auto 0; }
        .accordion-item { background: transparent; border: 0; border-top: 1px solid var(--line); }
        .accordion-item:last-child { border-bottom: 1px solid var(--line); }
        .accordion-button { padding: 22px 4px; color: var(--ink); background: transparent; box-shadow: none !important; font-weight: 800; }
        .accordion-button:not(.collapsed) { color: var(--blue); background: transparent; }
        .accordion-button::after { background-size: 14px; }
        .accordion-body { padding: 0 35px 22px 4px; color: var(--muted); font-size: .92rem; }

        .cta {
            padding: 72px 0;
            background: #e4f1f1;
            border-top: 1px solid var(--line);
            border-bottom: 1px solid var(--line);
        }
        .cta-inner { display: flex; align-items: center; justify-content: space-between; gap: 35px; }
        .cta h2 { max-width: 610px; }
        .cta p { max-width: 650px; margin: 14px 0 0; color: var(--muted); }

        footer { padding: 65px 0 27px; background: #143a45; color: white; }
        .footer-grid { display: grid; grid-template-columns: 1.4fr .8fr .8fr; gap: 60px; padding-bottom: 48px; }
        .footer-brand { font-family: "Songti SC", serif; font-size: 1.5rem; font-weight: 900; }
        .footer-description { max-width: 380px; margin-top: 15px; color: #b6d0d1; font-size: .9rem; }
        .footer-title { margin-bottom: 15px; color: #d9eeee; font-size: .82rem; font-weight: 800; }
        .footer-links { display: grid; gap: 8px; color: #b6d0d1; font-size: .88rem; }
        .footer-links a { transition: color .2s ease; }
        .footer-links a:hover { color: white; }
        .footer-bottom { display: flex; justify-content: space-between; gap: 20px; padding-top: 22px; border-top: 1px solid rgba(255,255,255,.2); color: #9fbbbd; font-size: .78rem; }

        .modal-content { border: 1px solid var(--line); border-radius: 6px; box-shadow: var(--shadow); }
        .modal-header { border-bottom: 1px solid var(--line); }
        .modal-title { font-weight: 800; }
        .age-copy { color: var(--muted); font-size: .9rem; }
        .form-check-input:checked { background-color: var(--blue); border-color: var(--blue); }
        .empty-state { display: none; padding: 26px; color: var(--muted); text-align: center; border: 1px dashed var(--line-dark); }

        @media (max-width: 991px) {
            :root { --section: 78px; }
            .hero { min-height: 590px; }
            .hero-index { right: 3%; width: 250px; }
            .problem-layout, .scenario-grid, .feedback-layout, .updates-grid { gap: 38px; }
            .topic-grid { grid-template-columns: 1fr 1fr; }
            .topic-link.featured { grid-column: span 2; min-height: 160px; }
            .nav-age { display: inline-block; margin: 10px 0 0; }
        }
        @media (max-width: 767px) {
            .navbar { min-height: 75px; }
            .brand-channel { display: none; }
            .brand-name { font-size: 1.05rem; }
            .brand-mark { width: 36px; height: 36px; font-size: 15px; }
            .hero::before { width: 75%; opacity: .65; }
            .hero-inner { padding: 70px 0 78px; }
            .hero h1 { font-size: 2.55rem; }
            .hero-lead { font-size: 1rem; }
            .hero-index { position: relative; right: auto; bottom: auto; width: 100%; margin-top: 42px; }
            .next-hint { display: none; }
            .problem-layout, .solution-grid, .scenario-grid, .feedback-layout, .updates-grid { grid-template-columns: 1fr; }
            .problem-layout { gap: 36px; }
            .solution-header, .cta-inner { display: block; }
            .solution-header .btn-quiet { margin-top: 20px; }
            .result-grid { grid-template-columns: 1fr 1fr; gap: 25px 18px; }
            .result-item { padding-left: 13px; }
            .result-item strong { font-size: 1.45rem; }
            .topic-grid { grid-template-columns: 1fr; }
            .topic-link.featured { grid-column: auto; }
            .footer-grid { grid-template-columns: 1fr 1fr; gap: 38px 25px; }
            .footer-grid > div:first-child { grid-column: span 2; }
            .footer-bottom { display: block; }
            .footer-bottom span { display: block; margin-top: 8px; }
        }
        @media (max-width: 575px) {
            .hero-actions, .hero-actions a { width: 100%; }
            .hero-actions a { text-align: center; }
            .hero-notes { display: grid; gap: 10px; margin-top: 30px; }
            .question-item { grid-template-columns: 40px 1fr; gap: 12px; }
            .feature-panel { padding: 24px; }
            .scene-board { padding: 15px; }
            .scene-cover { height: 205px; }
            .search-box { display: grid; }
            .search-box .btn-main { width: 100%; }
            .footer-grid { grid-template-columns: 1fr; }
            .footer-grid > div:first-child { grid-column: auto; }
        }

/* roulang page: category1 */
:root{
--ink:#16323c;--muted:#65777d;--blue:#176b87;--blue-deep:#0e4f66;--blue-soft:#e9f4f6;
--aqua:#cbe8e9;--coral:#d77b65;--paper:#fbfcfa;--white:#fff;--line:#d9e4e4;
--line-dark:#b6cccd;--success:#397a68;--warning:#b36a35;--shadow:0 16px 38px rgba(19,66,77,.09);
--shadow-small:0 8px 20px rgba(19,66,77,.07);--radius:7px;--max:1180px;--section:78px
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;color:var(--ink);background:var(--paper);font-family:"Noto Sans SC","Microsoft YaHei","PingFang SC",Arial,sans-serif;font-size:16px;line-height:1.75;-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}img{max-width:100%;display:block}button,input,select,textarea{font:inherit}button{cursor:pointer}
.container{max-width:var(--max)}.section{padding:var(--section) 0}.section-soft{background:var(--blue-soft)}
.eyebrow{display:inline-flex;align-items:center;gap:9px;color:var(--blue);font-size:12px;font-weight:800}
.eyebrow:before{content:"";width:26px;height:2px;background:var(--coral)}
h1,h2,h3,h4{font-weight:850;line-height:1.25;letter-spacing:0}h1{font-size:clamp(2.25rem,4vw,4.15rem)}h2{font-size:clamp(1.8rem,3vw,2.65rem)}h3{font-size:1.25rem}
.site-header{background:rgba(251,252,250,.97);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:1000}
.navbar{min-height:87px;padding:15px 0}.brand{display:inline-flex;align-items:center;gap:15px;white-space:nowrap}
.brand-mark{width:42px;height:42px;display:grid;place-items:center;color:#fff;background:var(--blue);border-radius:50%;font-weight:900;font-size:17px}
.brand-name{font-family:"Songti SC","STSong",serif;font-size:1.23rem;font-weight:900;line-height:1.15}
.brand-channel{padding-left:15px;border-left:1px solid var(--line-dark);color:var(--muted);font-size:.74rem;line-height:1.35}
.navbar-nav{gap:5px}.nav-link{position:relative;padding:10px 13px!important;color:var(--muted)!important;font-size:.92rem;transition:.2s}
.nav-link:hover,.nav-link:focus,.nav-link.active{color:var(--blue)!important;background:var(--blue-soft)}
.nav-link.active:after{content:"";position:absolute;left:13px;right:13px;bottom:4px;height:2px;background:var(--coral)}
.nav-age{margin-left:10px;padding:8px 13px;color:var(--blue-deep);border:1px solid var(--line-dark);border-radius:5px;font-size:.82rem;transition:.2s}
.nav-age:hover{background:var(--blue);color:#fff;border-color:var(--blue)}
.navbar-toggler{border:1px solid var(--line-dark);border-radius:5px;padding:8px 11px}.navbar-toggler:focus{box-shadow:0 0 0 3px rgba(23,107,135,.16)}
.page-head{padding:82px 0 58px;background:#e8f3f3;border-bottom:1px solid var(--line)}
.page-head h1{max-width:820px;margin:18px 0 20px}.page-lead{max-width:720px;color:#49646b;font-size:1.08rem}
.breadcrumb{margin:0 0 20px;color:var(--muted);font-size:.83rem}.breadcrumb a{color:var(--blue)}.breadcrumb-item+.breadcrumb-item:before{color:var(--line-dark)}
.head-meta{display:flex;flex-wrap:wrap;gap:10px;margin-top:28px}.badge-soft,.tag{display:inline-flex;align-items:center;padding:5px 10px;border:1px solid var(--line-dark);border-radius:4px;color:var(--blue-deep);background:rgba(255,255,255,.68);font-size:.78rem;font-weight:750}
.filter-wrap{margin-top:-28px;position:relative;z-index:2}.filter-panel{padding:24px;background:#fff;border:1px solid var(--line);box-shadow:var(--shadow-small);border-radius:var(--radius)}
.form-label{color:var(--ink);font-size:.82rem;font-weight:800;margin-bottom:6px}.form-control,.form-select{min-height:46px;border:1px solid var(--line-dark);border-radius:5px;color:var(--ink);background:#fff}
.form-control:focus,.form-select:focus{border-color:var(--blue);box-shadow:0 0 0 3px rgba(23,107,135,.13)}
.search-box{position:relative}.search-box .form-control{padding-right:84px}.search-box button{position:absolute;right:5px;top:5px;bottom:5px;padding:0 13px;border:0;border-radius:4px;background:var(--blue);color:#fff;font-weight:750}
.btn-main,.btn-quiet{min-height:46px;display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:10px 18px;border-radius:5px;font-weight:800;transition:.2s}
.btn-main{color:#fff;background:var(--blue);border:1px solid var(--blue);box-shadow:0 8px 16px rgba(23,107,135,.18)}.btn-main:hover{color:#fff;background:var(--blue-deep);transform:translateY(-2px);box-shadow:0 12px 22px rgba(23,107,135,.24)}.btn-main:active,.btn-quiet:active{transform:translateY(1px)}
.btn-quiet{color:var(--blue-deep);background:#fff;border:1px solid var(--line-dark)}.btn-quiet:hover{color:var(--blue-deep);border-color:var(--blue);background:var(--blue-soft)}
.btn-main:focus,.btn-quiet:focus,.search-box button:focus{outline:3px solid rgba(215,123,101,.35);outline-offset:2px}
.filter-tags{display:flex;flex-wrap:wrap;gap:8px;margin-top:20px;padding-top:18px;border-top:1px solid var(--line)}
.filter-tag{padding:7px 13px;border:1px solid var(--line-dark);background:#fff;border-radius:4px;color:var(--muted);font-size:.85rem;transition:.2s}
.filter-tag:hover,.filter-tag.active{color:var(--blue-deep);border-color:var(--blue);background:var(--blue-soft)}
.section-title{margin:13px 0 12px}.section-intro{max-width:670px;color:var(--muted);margin:0}
.content-layout{display:grid;grid-template-columns:1.1fr .9fr;gap:28px;align-items:start;margin-top:38px}
.feature-card,.list-item,.index-box,.empty-state{background:#fff;border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-small)}
.feature-card{overflow:hidden}.media-art{height:270px;display:flex;align-items:flex-end;padding:22px;background:#b9dadd;position:relative;overflow:hidden}
.media-art:before{content:"";position:absolute;inset:0;background:linear-gradient(125deg,transparent 0 37%,rgba(255,255,255,.45) 38% 40%,transparent 41% 100%);opacity:.8}
.media-art:after{content:"成人内容索引";position:absolute;top:20px;right:20px;color:rgba(22,50,60,.5);font-size:.76rem;letter-spacing:2px}
.media-title{position:relative;z-index:1;font-family:"Songti SC","STSong",serif;font-size:2rem;line-height:1.2;max-width:370px;color:var(--ink)}
.card-body-custom{padding:23px}.card-body-custom h3{margin:12px 0 8px}.card-text{color:var(--muted);font-size:.92rem;margin:0 0 18px}
.meta-row{display:flex;flex-wrap:wrap;gap:13px;color:var(--muted);font-size:.78rem}.meta-row span{display:inline-flex;align-items:center;gap:5px}
.content-list{display:flex;flex-direction:column;gap:12px}.list-item{display:grid;grid-template-columns:112px 1fr;gap:16px;padding:12px;transition:.2s}
.list-item:hover{transform:translateY(-2px);box-shadow:var(--shadow)}.thumb{height:102px;background:#d8e9e8;display:grid;place-items:center;color:var(--blue);font-weight:850;font-size:.78rem}
.list-item h3{margin:7px 0 5px;font-size:1.05rem}.list-item p{margin:0 0 7px;color:var(--muted);font-size:.84rem}
.index-row{display:flex;justify-content:space-between;align-items:center;padding:14px 0;border-bottom:1px solid var(--line);gap:15px}.index-row:last-child{border-bottom:0}.index-row strong{font-size:1.1rem}.index-row span{color:var(--muted);font-size:.82rem}
.index-box{padding:23px;margin-top:28px}.index-box h3{margin:0 0 10px}.status{color:var(--success);font-size:.8rem;font-weight:800}.pagination{margin:34px 0 0;gap:7px}.page-link{border:1px solid var(--line-dark)!important;color:var(--blue-deep);border-radius:4px!important;background:#fff;padding:8px 13px}.page-link:hover,.page-item.active .page-link{color:#fff;background:var(--blue);border-color:var(--blue)}.page-item.disabled .page-link{color:#a3b0b2;background:#f2f5f4}
.faq-list{max-width:850px;margin-top:30px}.accordion-item{border:0;border-bottom:1px solid var(--line);background:transparent}.accordion-button{padding:20px 4px;color:var(--ink);background:transparent;font-weight:800;box-shadow:none!important}.accordion-button:not(.collapsed){color:var(--blue);background:transparent}.accordion-button:after{background-size:14px}.accordion-body{padding:0 36px 20px 4px;color:var(--muted);font-size:.92rem}
.cta{padding:42px 0;background:var(--blue-soft);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.cta-inner{display:flex;justify-content:space-between;align-items:center;gap:25px}.cta h2{font-size:1.8rem;margin:0 0 8px}.cta p{margin:0;color:var(--muted)}
footer{padding:58px 0 24px;background:#edf5f4;border-top:1px solid var(--line)}.footer-grid{display:grid;grid-template-columns:1.5fr 1fr 1fr;gap:55px}.footer-brand{font-family:"Songti SC","STSong",serif;font-size:1.35rem;font-weight:900}.footer-description{max-width:420px;color:var(--muted);font-size:.88rem;margin:12px 0 0}.footer-title{font-weight:850;margin-bottom:12px}.footer-links{display:flex;flex-direction:column;gap:7px;color:var(--muted);font-size:.88rem}.footer-links a:hover{color:var(--blue)}.footer-bottom{display:flex;justify-content:space-between;gap:20px;border-top:1px solid var(--line);margin-top:42px;padding-top:20px;color:var(--muted);font-size:.78rem}
.modal-content{border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}.modal-header{border-bottom:1px solid var(--line)}.modal-title{font-weight:850}.modal-body{color:var(--muted)}.form-note{font-size:.78rem;color:var(--muted);margin-top:8px}.hidden-result{display:none}.loading-line{display:none;color:var(--blue);font-size:.84rem;margin-top:12px}.no-result{display:none;margin-top:18px}
@media(max-width:991.98px){.brand-name{font-size:1.05rem}.brand-channel{display:none}.navbar-nav{padding-top:15px}.nav-age{display:inline-block;margin:8px 0 0}.content-layout{grid-template-columns:1fr 1fr}.page-head{padding-top:64px}}
@media(max-width:767.98px){:root{--section:60px}.navbar{min-height:74px}.page-head{padding:52px 0 45px}.page-head h1{font-size:2.35rem}.filter-wrap{margin-top:-18px}.content-layout{grid-template-columns:1fr}.media-art{height:230px}.cta-inner{display:block}.cta .btn-main{margin-top:20px}.footer-grid{grid-template-columns:1fr 1fr;gap:30px}.footer-grid>div:first-child{grid-column:1/-1}}
@media(max-width:575.98px){.brand{gap:9px}.brand-mark{width:36px;height:36px;font-size:15px}.brand-name{font-size:.92rem}.page-head h1{font-size:2rem}.filter-panel{padding:18px}.list-item{grid-template-columns:88px 1fr;gap:11px}.thumb{height:90px}.list-item h3{font-size:.95rem}.list-item p{font-size:.78rem}.footer-grid{grid-template-columns:1fr}.footer-grid>div:first-child{grid-column:auto}.footer-bottom{display:block}.footer-bottom span{display:block;margin-top:5px}}

/* roulang page: category2 */
:root {
      --ink:#16323c;
      --muted:#65777d;
      --blue:#176b87;
      --blue-deep:#0e4f66;
      --blue-soft:#e9f4f6;
      --aqua:#cbe8e9;
      --coral:#d77b65;
      --paper:#fbfcfa;
      --white:#fff;
      --line:#d9e4e4;
      --line-dark:#b6cccd;
      --success:#397a68;
      --warning:#b36a35;
      --shadow:0 16px 38px rgba(19,66,77,.09);
      --shadow-small:0 8px 20px rgba(19,66,77,.07);
      --radius:7px;
      --max:1180px;
      --section:78px;
    }
    * { box-sizing:border-box; }
    html { scroll-behavior:smooth; }
    body {
      margin:0;
      color:var(--ink);
      background:var(--paper);
      font-family:"Noto Sans SC","Microsoft YaHei","PingFang SC",Arial,sans-serif;
      font-size:16px;
      line-height:1.75;
      -webkit-font-smoothing:antialiased;
    }
    a { color:inherit; text-decoration:none; }
    img { max-width:100%; display:block; }
    button,input,select,textarea { font:inherit; }
    button { cursor:pointer; }
    h1,h2,h3,h4,p { margin-top:0; }
    h1,h2,h3 { line-height:1.25; font-weight:900; letter-spacing:0; }
    h1 { font-size:clamp(2.2rem,4vw,4.4rem); }
    h2 { font-size:clamp(1.8rem,3vw,2.7rem); }
    h3 { font-size:1.2rem; }
    .container { max-width:var(--max); }
    .section { padding:var(--section) 0; }
    .section-soft { background:var(--blue-soft); }
    .eyebrow {
      display:inline-flex;
      align-items:center;
      gap:9px;
      color:var(--blue);
      font-size:12px;
      font-weight:800;
    }
    .eyebrow:before {
      content:"";
      display:inline-block;
      width:26px;
      height:2px;
      background:var(--coral);
    }
    .section-intro { max-width:680px; margin:16px 0 0; color:var(--muted); }
    .site-header {
      position:sticky;
      top:0;
      z-index:1000;
      background:rgba(251,252,250,.97);
      border-bottom:1px solid var(--line);
    }
    .navbar { min-height:87px; padding:15px 0; }
    .brand {
      display:inline-flex;
      align-items:center;
      gap:15px;
      white-space:nowrap;
    }
    .brand-mark {
      width:42px;
      height:42px;
      display:grid;
      place-items:center;
      color:var(--white);
      background:var(--blue);
      border-radius:50%;
      font-weight:900;
      font-size:17px;
    }
    .brand-name {
      font-family:"Songti SC","STSong",serif;
      font-size:1.23rem;
      font-weight:900;
      line-height:1.15;
    }
    .brand-channel {
      padding-left:15px;
      border-left:1px solid var(--line-dark);
      color:var(--muted);
      font-size:.74rem;
      line-height:1.35;
    }
    .navbar-nav { gap:5px; }
    .nav-link {
      position:relative;
      padding:10px 13px!important;
      color:var(--muted)!important;
      font-size:.92rem;
      transition:.2s ease;
    }
    .nav-link:hover,.nav-link:focus,.nav-link.active {
      color:var(--blue)!important;
      background:var(--blue-soft);
    }
    .nav-link.active:after {
      content:"";
      position:absolute;
      left:13px;
      right:13px;
      bottom:4px;
      height:2px;
      background:var(--coral);
    }
    .nav-age {
      margin-left:10px;
      padding:8px 13px;
      color:var(--blue-deep);
      border:1px solid var(--line-dark);
      border-radius:5px;
      font-size:.82rem;
      transition:.2s ease;
    }
    .nav-age:hover { color:white; background:var(--blue); border-color:var(--blue); }
    .navbar-toggler {
      border:1px solid var(--line-dark);
      border-radius:5px;
      padding:8px 11px;
    }
    .navbar-toggler:focus { box-shadow:0 0 0 3px rgba(23,107,135,.16); }
    .page-hero {
      padding:78px 0 54px;
      background:#e8f3f3;
      border-bottom:1px solid var(--line);
    }
    .page-hero-grid {
      display:grid;
      grid-template-columns:minmax(0,1fr) 350px;
      gap:60px;
      align-items:end;
    }
    .page-hero h1 { max-width:780px; margin:18px 0 22px; }
    .page-hero p { max-width:720px; color:#49646b; font-size:1.08rem; }
    .hero-index {
      padding:25px;
      background:var(--white);
      border:1px solid var(--line);
      border-top:4px solid var(--coral);
      box-shadow:var(--shadow-small);
    }
    .index-kicker { color:var(--muted); font-size:.78rem; font-weight:800; }
    .index-number { margin:6px 0 8px; color:var(--blue); font-size:2.6rem; font-weight:900; line-height:1; }
    .index-copy { margin:0; color:var(--muted); font-size:.9rem; }
    .toolbar-wrap { margin-top:-1px; padding:25px 0; background:var(--white); border-bottom:1px solid var(--line); }
    .filter-toolbar {
      display:grid;
      grid-template-columns:1.4fr .85fr .85fr .85fr auto;
      gap:10px;
      align-items:center;
    }
    .form-control,.form-select {
      min-height:46px;
      color:var(--ink);
      background:#fff;
      border:1px solid var(--line-dark);
      border-radius:5px;
    }
    .form-control:focus,.form-select:focus {
      border-color:var(--blue);
      box-shadow:0 0 0 3px rgba(23,107,135,.13);
    }
    .btn-main,.btn-quiet {
      min-height:46px;
      display:inline-flex;
      align-items:center;
      justify-content:center;
      gap:8px;
      padding:10px 19px;
      border-radius:5px;
      font-weight:800;
      transition:.2s ease;
    }
    .btn-main {
      color:#fff;
      background:var(--blue);
      border:1px solid var(--blue);
      box-shadow:0 8px 16px rgba(23,107,135,.18);
    }
    .btn-main:hover { color:#fff; background:var(--blue-deep); transform:translateY(-2px); }
    .btn-main:active,.btn-quiet:active { transform:translateY(1px); }
    .btn-quiet { color:var(--blue-deep); background:#fff; border:1px solid var(--line-dark); }
    .btn-quiet:hover { color:var(--blue-deep); border-color:var(--blue); background:var(--blue-soft); }
    .content-section { padding:68px 0 84px; }
    .content-heading {
      display:flex;
      justify-content:space-between;
      align-items:end;
      gap:25px;
      margin-bottom:32px;
    }
    .content-heading h2 { margin:14px 0 0; }
    .view-note { color:var(--muted); font-size:.9rem; white-space:nowrap; }
    .update-layout {
      display:grid;
      grid-template-columns:290px minmax(0,1fr);
      gap:35px;
      align-items:start;
    }
    .filter-index {
      padding:24px;
      background:#f3f8f8;
      border:1px solid var(--line);
      border-radius:var(--radius);
    }
    .filter-index h3 { margin-bottom:16px; }
    .filter-index p { color:var(--muted); font-size:.88rem; }
    .tag-list { display:flex; flex-wrap:wrap; gap:8px; margin:18px 0 24px; }
    .tag {
      display:inline-flex;
      align-items:center;
      min-height:30px;
      padding:3px 10px;
      color:var(--blue-deep);
      background:#fff;
      border:1px solid var(--line-dark);
      border-radius:4px;
      font-size:.78rem;
      transition:.2s ease;
    }
    .tag:hover,.tag.selected { color:#fff; background:var(--blue); border-color:var(--blue); }
    .filter-line {
      display:flex;
      justify-content:space-between;
      padding:11px 0;
      border-top:1px solid var(--line);
      color:var(--muted);
      font-size:.86rem;
    }
    .filter-line strong { color:var(--ink); }
    .update-flow { display:flex; flex-direction:column; gap:14px; }
    .update-item {
      display:grid;
      grid-template-columns:145px minmax(0,1fr) auto;
      gap:22px;
      align-items:center;
      padding:17px;
      background:#fff;
      border:1px solid var(--line);
      border-radius:var(--radius);
      box-shadow:0 5px 14px rgba(19,66,77,.04);
      transition:.2s ease;
    }
    .update-item:hover { border-color:var(--line-dark); box-shadow:var(--shadow-small); transform:translateY(-2px); }
    .cover {
      position:relative;
      min-height:98px;
      overflow:hidden;
      display:flex;
      align-items:flex-end;
      padding:12px;
      background:#d9ebeb;
      border-radius:5px;
    }
    .cover:before {
      content:"";
      position:absolute;
      inset:0;
      background:linear-gradient(135deg,#b9d9dc 0 42%,#edf5f2 42% 66%,#8dbbc2 66%);
      opacity:.9;
    }
    .cover:after {
      content:"";
      position:absolute;
      width:85px;
      height:85px;
      right:-20px;
      top:-25px;
      border:18px solid rgba(255,255,255,.55);
      border-radius:50%;
    }
    .cover span { position:relative; z-index:1; color:var(--blue-deep); font-size:.73rem; font-weight:900; }
    .item-meta { display:flex; flex-wrap:wrap; gap:7px 12px; margin-bottom:5px; color:var(--muted); font-size:.78rem; }
    .item-title { margin:0 0 5px; font-size:1.08rem; }
    .item-copy { margin:0; color:var(--muted); font-size:.86rem; line-height:1.55; }
    .item-action { white-space:nowrap; }
    .status-strip { padding:15px 18px; color:var(--success); background:#edf7f2; border:1px solid #cbe5d8; border-radius:5px; font-size:.88rem; }
    .discover { padding:58px 0; background:var(--blue-soft); border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
    .discover-grid { display:grid; grid-template-columns:1fr 1.35fr; gap:45px; align-items:start; }
    .topic-row { display:flex; flex-wrap:wrap; gap:10px; }
    .topic-link {
      padding:10px 14px;
      color:var(--blue-deep);
      background:#fff;
      border:1px solid var(--line);
      border-radius:5px;
      transition:.2s ease;
    }
    .topic-link:hover { color:#fff; background:var(--blue); border-color:var(--blue); }
    .faq-section { padding:72px 0; }
    .accordion-item { background:#fff; border:0; border-bottom:1px solid var(--line); }
    .accordion-button { padding:20px 0; color:var(--ink); background:transparent; font-weight:800; box-shadow:none!important; }
    .accordion-button:not(.collapsed) { color:var(--blue); background:transparent; }
    .accordion-button:after { background-size:14px; }
    .accordion-body { padding:0 35px 20px 0; color:var(--muted); font-size:.93rem; }
    .cta {
      padding:55px 0;
      background:#fff;
      border-top:1px solid var(--line);
      border-bottom:1px solid var(--line);
    }
    .cta-inner { display:flex; justify-content:space-between; align-items:center; gap:30px; }
    .cta h2 { margin:0 0 10px; font-size:2rem; }
    .cta p { margin:0; color:var(--muted); }
    .cta-actions { display:flex; flex-wrap:wrap; gap:10px; }
    footer { padding:52px 0 25px; background:#173b47; color:#d8e7e7; }
    .footer-grid { display:grid; grid-template-columns:1.5fr .8fr .8fr; gap:45px; padding-bottom:38px; }
    .footer-brand { color:#fff; font-family:"Songti SC","STSong",serif; font-size:1.35rem; font-weight:900; }
    .footer-description { max-width:410px; margin:13px 0 0; color:#afc8ca; font-size:.88rem; }
    .footer-title { margin-bottom:13px; color:#fff; font-weight:800; }
    .footer-links { display:flex; flex-direction:column; gap:7px; color:#afc8ca; font-size:.88rem; }
    .footer-links a:hover { color:#fff; }
    .footer-bottom { display:flex; justify-content:space-between; gap:15px; padding-top:22px; border-top:1px solid rgba(255,255,255,.18); color:#9db9bc; font-size:.78rem; }
    .modal-content { border:1px solid var(--line); border-radius:var(--radius); box-shadow:var(--shadow); }
    .modal-header { border-bottom:1px solid var(--line); }
    .modal-title { font-weight:900; }
    .modal-body { color:var(--muted); }
    .modal-footer { border-top:1px solid var(--line); }
    .btn-close:focus { box-shadow:0 0 0 3px rgba(23,107,135,.15); }
    .empty-state { display:none; padding:35px; text-align:center; color:var(--muted); background:#fff; border:1px dashed var(--line-dark); border-radius:var(--radius); }
    .loading-state { display:none; padding:18px; color:var(--muted); text-align:center; }
    @media (max-width:991.98px) {
      .navbar-nav { padding-top:18px; }
      .nav-age { display:inline-block; margin:10px 0 0; }
      .page-hero-grid,.discover-grid { grid-template-columns:1fr; gap:30px; }
      .hero-index { max-width:390px; }
      .filter-toolbar { grid-template-columns:1fr 1fr; }
      .filter-toolbar .search-field { grid-column:1/-1; }
      .filter-toolbar .btn-main { width:100%; }
      .update-layout { grid-template-columns:235px minmax(0,1fr); gap:22px; }
      .update-item { grid-template-columns:115px minmax(0,1fr); }
      .item-action { grid-column:2; justify-self:start; }
      .footer-grid { grid-template-columns:1.3fr 1fr 1fr; }
    }
    @media (max-width:767.98px) {
      :root { --section:58px; }
      .brand { gap:9px; }
      .brand-name { font-size:1rem; }
      .brand-channel { padding-left:9px; font-size:.65rem; }
      .brand-mark { width:36px; height:36px; font-size:15px; }
      .page-hero { padding:55px 0 40px; }
      .page-hero h1 { font-size:2.35rem; }
      .filter-toolbar,.update-layout { grid-template-columns:1fr; }
      .filter-index { order:2; }
      .content-heading,.cta-inner { display:block; }
      .view-note { margin-top:12px; }
      .cta-actions { margin-top:24px; }
      .footer-grid { grid-template-columns:1fr; gap:27px; }
      .footer-bottom { display:block; }
      .footer-bottom span { display:block; margin-top:6px; }
    }
    @media (max-width:575.98px) {
      .page-hero h1 { font-size:2rem; }
      .page-hero p { font-size:1rem; }
      .update-item { grid-template-columns:98px minmax(0,1fr); gap:13px; padding:12px; }
      .cover { min-height:88px; }
      .item-title { font-size:.98rem; }
      .item-copy { font-size:.8rem; }
      .item-action { grid-column:1/-1; width:100%; }
      .item-action .btn-quiet { width:100%; }
      .cta h2 { font-size:1.65rem; }
    }
