/* roulang page: index */
:root{
        --bg:#090b16;
        --bg-2:#0e1224;
        --panel:#12172c;
        --panel-2:#171d37;
        --line:rgba(255,255,255,.10);
        --text:#eef2ff;
        --muted:#a8b0d6;
        --soft:#7781a8;
        --brand:#ff4d9d;
        --brand-2:#7c5cff;
        --brand-3:#2ed3ff;
        --ok:#41d38a;
        --warn:#ffc857;
        --shadow:0 18px 55px rgba(0,0,0,.35);
        --shadow-soft:0 10px 30px rgba(0,0,0,.22);
        --radius:22px;
        --radius-sm:14px;
        --radius-xs:10px;
        --gap:clamp(16px, 2vw, 26px);
        --container:1180px;
        --transition:180ms ease;
    }

    *{box-sizing:border-box}
    html{scroll-behavior:smooth}
    body{
        margin:0;
        min-height:100vh;
        font-family: Inter, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Noto Sans SC", sans-serif;
        line-height:1.7;
        color:var(--text);
        background:
            radial-gradient(circle at top left, rgba(124,92,255,.18), transparent 28%),
            radial-gradient(circle at top right, rgba(255,77,157,.16), transparent 24%),
            linear-gradient(180deg, #070915 0%, #0a0f1f 40%, #090b16 100%);
        overflow-x:hidden;
    }

    a{
        color:inherit;
        text-decoration:none;
        transition:color var(--transition), transform var(--transition), background var(--transition), border-color var(--transition), box-shadow var(--transition), opacity var(--transition);
    }

    img{
        display:block;
        max-width:100%;
    }

    button,
    input,
    textarea,
    select{
        font:inherit;
    }

    button{
        border:0;
        cursor:pointer;
    }

    :focus-visible{
        outline:3px solid rgba(46,211,255,.85);
        outline-offset:3px;
    }

    .skip-link{
        position:absolute;
        left:16px;
        top:-48px;
        z-index:1000;
        padding:10px 14px;
        border-radius:999px;
        background:var(--brand-3);
        color:#05111d;
        font-weight:700;
        box-shadow:var(--shadow-soft);
    }
    .skip-link:focus{top:16px}

    .container{
        width:min(var(--container), calc(100% - 32px));
        margin:0 auto;
    }

    .site-header{
        position:sticky;
        top:0;
        z-index:100;
        backdrop-filter: blur(18px);
        background:rgba(6,9,19,.68);
        border-bottom:1px solid rgba(255,255,255,.06);
    }

    .header-inner{
        display:flex;
        align-items:center;
        justify-content:space-between;
        gap:16px;
        min-height:76px;
        padding:12px 0;
    }

    .brand{
        display:inline-flex;
        align-items:center;
        gap:12px;
        min-width:0;
        font-weight:800;
        letter-spacing:.2px;
    }

    .brand-mark{
        width:42px;
        height:42px;
        display:grid;
        place-items:center;
        border-radius:14px;
        background:
            linear-gradient(135deg, rgba(255,77,157,.95), rgba(124,92,255,.95));
        color:#fff;
        box-shadow:0 10px 28px rgba(255,77,157,.25);
        flex:0 0 auto;
        font-size:14px;
        font-weight:900;
    }

    .brand-name{
        display:block;
        font-size:1.04rem;
        line-height:1.2;
        white-space:nowrap;
        overflow:hidden;
        text-overflow:ellipsis;
        max-width:min(56vw, 320px);
    }

    .site-nav{
        display:flex;
        align-items:center;
        gap:14px;
        position:relative;
    }

    .nav-toggle-input{
        position:absolute;
        opacity:0;
        pointer-events:none;
    }

    .nav-toggle{
        display:none;
        align-items:center;
        justify-content:center;
        width:46px;
        height:46px;
        border-radius:14px;
        border:1px solid var(--line);
        background:rgba(255,255,255,.04);
        color:var(--text);
        transition:transform var(--transition), border-color var(--transition), background var(--transition), box-shadow var(--transition);
    }

    .nav-toggle:hover{
        transform:translateY(-1px);
        background:rgba(255,255,255,.06);
        border-color:rgba(255,255,255,.16);
        box-shadow:var(--shadow-soft);
    }

    .nav-toggle-lines{
        width:20px;
        height:14px;
        position:relative;
    }

    .nav-toggle-lines::before,
    .nav-toggle-lines::after,
    .nav-toggle-lines span{
        content:"";
        position:absolute;
        left:0;
        width:100%;
        height:2px;
        border-radius:999px;
        background:currentColor;
        transition:transform var(--transition), top var(--transition), opacity var(--transition);
    }

    .nav-toggle-lines::before{top:0}
    .nav-toggle-lines span{top:6px}
    .nav-toggle-lines::after{top:12px}

    .nav-links{
        display:flex;
        align-items:center;
        gap:10px;
    }

    .nav-links a{
        display:inline-flex;
        align-items:center;
        justify-content:center;
        min-height:44px;
        padding:0 16px;
        border:1px solid transparent;
        border-radius:999px;
        color:var(--muted);
        background:transparent;
        font-weight:600;
        letter-spacing:.1px;
    }

    .nav-links a:hover{
        color:var(--text);
        background:rgba(255,255,255,.05);
        border-color:rgba(255,255,255,.08);
        transform:translateY(-1px);
    }

    .nav-links a.active,
    .nav-links a[aria-current="page"]{
        color:#fff;
        background:linear-gradient(135deg, rgba(255,77,157,.18), rgba(124,92,255,.18));
        border-color:rgba(255,255,255,.12);
        box-shadow:inset 0 0 0 1px rgba(255,255,255,.05);
    }

    .nav-cta{
        display:inline-flex;
        align-items:center;
        justify-content:center;
        min-height:44px;
        padding:0 18px;
        border-radius:999px;
        font-weight:700;
        color:#fff;
        background:linear-gradient(135deg, var(--brand), var(--brand-2));
        box-shadow:0 16px 30px rgba(124,92,255,.24);
        white-space:nowrap;
    }

    .nav-cta:hover{
        transform:translateY(-1px);
        box-shadow:0 18px 34px rgba(124,92,255,.30);
    }

    .hero{
        position:relative;
        overflow:hidden;
        padding:34px 0 18px;
    }

    .hero-shell{
        position:relative;
        border-radius:32px;
        overflow:hidden;
        border:1px solid rgba(255,255,255,.10);
        background:
            linear-gradient(135deg, rgba(9,11,22,.74), rgba(9,11,22,.30)),
            url('/assets/images/backpic/back-2.webp') center/cover no-repeat;
        box-shadow:var(--shadow);
    }

    .hero-shell::before{
        content:"";
        position:absolute;
        inset:0;
        background:
            linear-gradient(180deg, rgba(8,11,20,.22), rgba(8,11,20,.78)),
            radial-gradient(circle at 18% 18%, rgba(255,77,157,.20), transparent 24%),
            radial-gradient(circle at 82% 22%, rgba(46,211,255,.18), transparent 20%);
        pointer-events:none;
    }

    .hero-inner{
        position:relative;
        display:grid;
        grid-template-columns: 1.15fr .85fr;
        gap:clamp(18px, 3vw, 34px);
        padding:clamp(26px, 4vw, 50px);
        align-items:center;
    }

    .eyebrow{
        display:inline-flex;
        align-items:center;
        gap:8px;
        padding:7px 12px;
        border-radius:999px;
        background:rgba(255,255,255,.08);
        border:1px solid rgba(255,255,255,.10);
        color:#d7dbf4;
        font-size:.92rem;
        font-weight:700;
        letter-spacing:.2px;
    }

    .eyebrow::before{
        content:"";
        width:8px;
        height:8px;
        border-radius:50%;
        background:var(--ok);
        box-shadow:0 0 0 6px rgba(65,211,138,.12);
    }

    .hero h1{
        margin:16px 0 12px;
        font-size:clamp(2.2rem, 6vw, 4.8rem);
        line-height:1.02;
        letter-spacing:-.03em;
    }

    .hero p{
        margin:0;
        color:var(--muted);
        font-size:1.04rem;
        max-width:60ch;
    }

    .hero-actions{
        display:flex;
        flex-wrap:wrap;
        gap:12px;
        margin-top:26px;
    }

    .btn{
        display:inline-flex;
        align-items:center;
        justify-content:center;
        gap:10px;
        min-height:48px;
        padding:0 18px;
        border-radius:999px;
        font-weight:700;
        border:1px solid transparent;
        transition:transform var(--transition), box-shadow var(--transition), background var(--transition), border-color var(--transition), color var(--transition), opacity var(--transition);
    }

    .btn:hover{
        transform:translateY(-1px);
    }

    .btn-primary{
        color:#fff;
        background:linear-gradient(135deg, var(--brand), var(--brand-2));
        box-shadow:0 18px 32px rgba(124,92,255,.22);
    }

    .btn-primary:hover{
        box-shadow:0 20px 38px rgba(124,92,255,.30);
    }

    .btn-secondary{
        color:var(--text);
        background:rgba(255,255,255,.06);
        border-color:rgba(255,255,255,.10);
    }

    .btn-secondary:hover{
        background:rgba(255,255,255,.09);
        border-color:rgba(255,255,255,.16);
    }

    .hero-note{
        margin-top:18px;
        color:#cad1f4;
        font-size:.95rem;
    }

    .hero-meta{
        display:flex;
        flex-wrap:wrap;
        gap:10px;
        margin-top:24px;
    }

    .hero-pill{
        padding:9px 12px;
        border-radius:999px;
        background:rgba(255,255,255,.07);
        border:1px solid rgba(255,255,255,.10);
        color:#e7ebff;
        font-size:.92rem;
        font-weight:600;
        backdrop-filter: blur(8px);
    }

    .hero-showcase{
        position:relative;
        min-height:420px;
        display:grid;
        grid-template-columns: 1fr 1fr;
        gap:14px;
        align-items:stretch;
    }

    .showcase-main,
    .showcase-stack{
        display:grid;
        gap:14px;
    }

    .showcase-card{
        position:relative;
        overflow:hidden;
        border-radius:24px;
        border:1px solid rgba(255,255,255,.12);
        background:rgba(255,255,255,.05);
        box-shadow:var(--shadow-soft);
        min-height:0;
    }

    .showcase-card.large{
        min-height:420px;
    }

    .showcase-card img{
        width:100%;
        height:100%;
        object-fit:cover;
        filter:saturate(1.08) contrast(1.02);
        transform:scale(1.01);
    }

    .showcase-overlay{
        position:absolute;
        inset:auto 16px 16px 16px;
        padding:14px 15px;
        border-radius:18px;
        background:linear-gradient(180deg, rgba(10,12,23,.10), rgba(10,12,23,.86));
        border:1px solid rgba(255,255,255,.08);
        backdrop-filter: blur(10px);
    }

    .showcase-overlay strong{
        display:block;
        font-size:1rem;
        margin-bottom:4px;
    }

    .showcase-overlay span{
        color:#d0d7f5;
        font-size:.92rem;
    }

    .showcase-badge{
        position:absolute;
        top:14px;
        left:14px;
        padding:8px 11px;
        border-radius:999px;
        background:rgba(9,11,22,.72);
        border:1px solid rgba(255,255,255,.12);
        color:#fff;
        font-weight:700;
        font-size:.88rem;
        backdrop-filter: blur(10px);
    }

    .trust-strip{
        padding:16px 0 6px;
    }

    .trust-grid{
        display:grid;
        grid-template-columns:repeat(3, 1fr);
        gap:14px;
    }

    .trust-card{
        padding:18px 18px 17px;
        border-radius:var(--radius);
        background:linear-gradient(180deg, rgba(255,255,255,.06), rgba(255,255,255,.03));
        border:1px solid rgba(255,255,255,.08);
        box-shadow:var(--shadow-soft);
        min-height:132px;
    }

    .trust-icon{
        width:44px;
        height:44px;
        display:grid;
        place-items:center;
        border-radius:14px;
        margin-bottom:12px;
        background:linear-gradient(135deg, rgba(255,77,157,.18), rgba(124,92,255,.18));
        border:1px solid rgba(255,255,255,.10);
        color:#fff;
        font-size:1.05rem;
        font-weight:800;
    }

    .trust-card h2,
    .trust-card h3{
        margin:0 0 6px;
        font-size:1.02rem;
    }

    .trust-card p{
        margin:0;
        color:var(--muted);
        font-size:.95rem;
    }

    .section{
        padding:28px 0;
    }

    .section-head{
        display:flex;
        align-items:flex-end;
        justify-content:space-between;
        gap:18px;
        margin-bottom:18px;
    }

    .section-head .title-block{
        max-width:760px;
    }

    .section-head h2{
        margin:10px 0 10px;
        font-size:clamp(1.55rem, 3vw, 2.4rem);
        line-height:1.15;
        letter-spacing:-.02em;
    }

    .section-head p{
        margin:0;
        color:var(--muted);
        max-width:68ch;
    }

    .section-link{
        display:inline-flex;
        align-items:center;
        gap:8px;
        color:#fff;
        padding:11px 16px;
        border-radius:999px;
        border:1px solid rgba(255,255,255,.12);
        background:rgba(255,255,255,.05);
        font-weight:700;
        white-space:nowrap;
    }

    .section-link:hover{
        background:rgba(255,255,255,.09);
        transform:translateY(-1px);
    }

    .feature-grid{
        display:grid;
        grid-template-columns:repeat(3, 1fr);
        gap:14px;
    }

    .feature-card{
        overflow:hidden;
        border-radius:28px;
        border:1px solid rgba(255,255,255,.09);
        background:linear-gradient(180deg, rgba(255,255,255,.06), rgba(255,255,255,.035));
        box-shadow:var(--shadow-soft);
        transition:transform var(--transition), box-shadow var(--transition), border-color var(--transition);
    }

    .feature-card:hover{
        transform:translateY(-4px);
        box-shadow:0 20px 42px rgba(0,0,0,.32);
        border-color:rgba(255,255,255,.16);
    }

    .feature-media{
        position:relative;
        aspect-ratio: 16 / 10;
        overflow:hidden;
        background:var(--panel);
    }

    .feature-media img{
        width:100%;
        height:100%;
        object-fit:cover;
    }

    .feature-body{
        padding:18px 18px 20px;
    }

    .badge-row{
        display:flex;
        flex-wrap:wrap;
        gap:8px;
        margin-bottom:12px;
    }

    .badge{
        display:inline-flex;
        align-items:center;
        justify-content:center;
        min-height:30px;
        padding:0 10px;
        border-radius:999px;
        background:rgba(255,255,255,.08);
        border:1px solid rgba(255,255,255,.10);
        color:#e7ebff;
        font-size:.84rem;
        font-weight:700;
    }

    .feature-body h3{
        margin:0 0 10px;
        font-size:1.15rem;
        line-height:1.35;
    }

    .feature-body p{
        margin:0;
        color:var(--muted);
        font-size:.95rem;
    }

    .panel{
        padding:24px;
        border-radius:32px;
        background:linear-gradient(180deg, rgba(255,255,255,.06), rgba(255,255,255,.03));
        border:1px solid rgba(255,255,255,.09);
        box-shadow:var(--shadow-soft);
    }

    .list-toolbar{
        display:flex;
        justify-content:space-between;
        align-items:center;
        gap:12px;
        margin-bottom:18px;
        flex-wrap:wrap;
    }

    .list-toolbar .hint{
        color:var(--muted);
        font-size:.95rem;
    }

    .post-grid{
        display:grid;
        grid-template-columns:repeat(2, 1fr);
        gap:14px;
    }

    .post-card{
        border-radius:24px;
        overflow:hidden;
        background:rgba(255,255,255,.04);
        border:1px solid rgba(255,255,255,.08);
        box-shadow:var(--shadow-soft);
        transition:transform var(--transition), box-shadow var(--transition), border-color var(--transition);
    }

    .post-card:hover{
        transform:translateY(-3px);
        box-shadow:0 18px 40px rgba(0,0,0,.30);
        border-color:rgba(255,255,255,.16);
    }

    .post-card a{
        display:block;
        height:100%;
    }

    .post-cover{
        aspect-ratio: 16 / 9;
        overflow:hidden;
        background:var(--panel-2);
    }

    .post-cover img{
        width:100%;
        height:100%;
        object-fit:cover;
        transition:transform 220ms ease;
    }

    .post-card:hover .post-cover img{
        transform:scale(1.04);
    }

    .post-body{
        padding:18px 18px 20px;
    }

    .post-topline{
        display:flex;
        align-items:center;
        justify-content:space-between;
        gap:12px;
        margin-bottom:12px;
    }

    .post-time{
        color:var(--soft);
        font-size:.88rem;
        white-space:nowrap;
    }

    .post-body h3{
        margin:0 0 10px;
        font-size:1.06rem;
        line-height:1.45;
    }

    .post-body p{
        margin:0;
        color:var(--muted);
        font-size:.94rem;
        min-height:3.4em;
    }

    .read-more{
        display:inline-flex;
        align-items:center;
        gap:8px;
        margin-top:14px;
        color:#fff;
        font-weight:700;
    }

    .read-more::after{
        content:"→";
        transition:transform var(--transition);
    }

    .post-card:hover .read-more::after{
        transform:translateX(4px);
    }

    .empty-state{
        padding:28px;
        border-radius:22px;
        border:1px dashed rgba(255,255,255,.16);
        background:rgba(255,255,255,.04);
        color:#d9def8;
        text-align:center;
        font-weight:700;
    }

    .guide-band{
        position:relative;
        overflow:hidden;
        border-radius:32px;
        border:1px solid rgba(255,255,255,.10);
        background:
            linear-gradient(135deg, rgba(8,10,20,.72), rgba(8,10,20,.42)),
            url('/assets/images/backpic/back-3.webp') center/cover no-repeat;
        box-shadow:var(--shadow);
    }

    .guide-band::before{
        content:"";
        position:absolute;
        inset:0;
        background:
            linear-gradient(90deg, rgba(9,11,22,.78), rgba(9,11,22,.38)),
            radial-gradient(circle at 20% 30%, rgba(46,211,255,.16), transparent 22%),
            radial-gradient(circle at 78% 24%, rgba(255,77,157,.16), transparent 22%);
        pointer-events:none;
    }

    .guide-inner{
        position:relative;
        padding:clamp(24px, 4vw, 42px);
    }

    .guide-grid{
        display:grid;
        grid-template-columns:1.1fr .9fr;
        gap:18px;
        align-items:start;
    }

    .guide-copy h2{
        margin:10px 0 12px;
        font-size:clamp(1.5rem, 3vw, 2.3rem);
        line-height:1.15;
    }

    .guide-copy p{
        margin:0;
        color:#d4daf8;
        max-width:62ch;
    }

    .steps{
        display:grid;
        gap:12px;
    }

    .step{
        display:flex;
        gap:14px;
        align-items:flex-start;
        padding:16px 16px 15px;
        border-radius:20px;
        background:rgba(255,255,255,.07);
        border:1px solid rgba(255,255,255,.10);
        backdrop-filter: blur(10px);
    }

    .step-num{
        flex:0 0 auto;
        width:36px;
        height:36px;
        border-radius:12px;
        display:grid;
        place-items:center;
        font-weight:800;
        color:#fff;
        background:linear-gradient(135deg, var(--brand), var(--brand-2));
        box-shadow:0 12px 24px rgba(124,92,255,.22);
    }

    .step h3{
        margin:0 0 6px;
        font-size:1rem;
    }

    .step p{
        margin:0;
        color:#d6dcfa;
        font-size:.95rem;
    }

    .faq-grid{
        display:grid;
        grid-template-columns:1fr 1fr;
        gap:14px;
    }

    .faq-list{
        display:grid;
        gap:12px;
    }

    .faq-list details{
        border-radius:20px;
        border:1px solid rgba(255,255,255,.10);
        background:rgba(255,255,255,.045);
        box-shadow:var(--shadow-soft);
        overflow:hidden;
    }

    .faq-list summary{
        list-style:none;
        cursor:pointer;
        padding:18px 18px;
        font-weight:700;
        display:flex;
        align-items:center;
        justify-content:space-between;
        gap:14px;
    }

    .faq-list summary::-webkit-details-marker{display:none}

    .faq-list summary::after{
        content:"+";
        width:28px;
        height:28px;
        border-radius:999px;
        display:grid;
        place-items:center;
        flex:0 0 auto;
        background:rgba(255,255,255,.08);
        border:1px solid rgba(255,255,255,.10);
        color:#fff;
        font-size:1rem;
        transition:transform var(--transition), background var(--transition);
    }

    .faq-list details[open] summary::after{
        content:"–";
        background:rgba(255,255,255,.13);
    }

    .faq-list .answer{
        padding:0 18px 18px;
        color:var(--muted);
    }

    .cta{
        padding:24px;
        border-radius:32px;
        background:
            linear-gradient(135deg, rgba(255,77,157,.16), rgba(124,92,255,.16)),
            linear-gradient(180deg, rgba(255,255,255,.06), rgba(255,255,255,.03));
        border:1px solid rgba(255,255,255,.10);
        box-shadow:var(--shadow-soft);
    }

    .cta-inner{
        display:grid;
        grid-template-columns:1fr auto;
        gap:18px;
        align-items:center;
    }

    .cta h2{
        margin:10px 0 10px;
        font-size:clamp(1.5rem, 3vw, 2.2rem);
        line-height:1.15;
    }

    .cta p{
        margin:0;
        color:#dce1fb;
        max-width:62ch;
    }

    .cta-form{
        display:flex;
        gap:10px;
        align-items:center;
        flex-wrap:wrap;
        justify-content:flex-end;
    }

    .field{
        min-width:min(360px, 72vw);
        height:52px;
        padding:0 16px;
        border-radius:999px;
        border:1px solid rgba(255,255,255,.12);
        background:rgba(8,10,20,.45);
        color:var(--text);
        outline:none;
        box-shadow:inset 0 1px 0 rgba(255,255,255,.04);
    }

    .field::placeholder{
        color:#93a0cc;
    }

    .field:focus{
        border-color:rgba(46,211,255,.55);
        box-shadow:0 0 0 4px rgba(46,211,255,.14);
    }

    .footer{
        margin-top:30px;
        padding:34px 0 42px;
        border-top:1px solid rgba(255,255,255,.08);
        background:linear-gradient(180deg, rgba(255,255,255,.02), rgba(255,255,255,.00));
    }

    .footer-inner{
        display:grid;
        grid-template-columns:1.1fr .9fr;
        gap:18px;
        align-items:start;
    }

    .footer-brand{
        display:flex;
        gap:14px;
        align-items:flex-start;
    }

    .footer-brand .brand-mark{
        margin-top:2px;
    }

    .footer-brand p{
        margin:10px 0 0;
        color:var(--muted);
        max-width:60ch;
    }

    .footer-nav{
        display:flex;
        flex-wrap:wrap;
        gap:10px;
        justify-content:flex-end;
    }

    .footer-nav a{
        padding:10px 14px;
        border-radius:999px;
        background:rgba(255,255,255,.05);
        border:1px solid rgba(255,255,255,.08);
        color:#d8def9;
        font-weight:600;
    }

    .footer-nav a:hover{
        background:rgba(255,255,255,.09);
        color:#fff;
    }

    .copyright{
        margin-top:18px;
        color:var(--soft);
        font-size:.92rem;
    }

    .section-divider{
        height:1px;
        background:linear-gradient(90deg, transparent, rgba(255,255,255,.14), transparent);
        margin:2px 0;
    }

    .muted{
        color:var(--muted);
    }

    @media (max-width: 1024px){
        .hero-inner,
        .guide-grid,
        .cta-inner,
        .footer-inner{
            grid-template-columns:1fr;
        }

        .hero-showcase{
            min-height:0;
            grid-template-columns:1fr;
        }

        .showcase-card.large{
            min-height:320px;
        }

        .feature-grid,
        .trust-grid,
        .post-grid,
        .faq-grid{
            grid-template-columns:repeat(2, 1fr);
        }

        .section-head{
            align-items:flex-start;
            flex-direction:column;
        }

        .footer-nav{
            justify-content:flex-start;
        }
    }

    @media (max-width: 768px){
        .header-inner{
            min-height:68px;
        }

        .nav-toggle{
            display:inline-flex;
        }

        .nav-links{
            position:absolute;
            right:0;
            top:calc(100% + 10px);
            width:min(320px, calc(100vw - 20px));
            flex-direction:column;
            align-items:stretch;
            padding:12px;
            border-radius:22px;
            background:rgba(10,13,24,.96);
            border:1px solid rgba(255,255,255,.10);
            box-shadow:var(--shadow);
            opacity:0;
            visibility:hidden;
            transform:translateY(-8px);
            pointer-events:none;
        }

        .nav-toggle-input:checked ~ .nav-links{
            opacity:1;
            visibility:visible;
            transform:translateY(0);
            pointer-events:auto;
        }

        .nav-links a,
        .nav-cta{
            width:100%;
            justify-content:flex-start;
            border-radius:16px;
        }

        .hero{
            padding-top:18px;
        }

        .hero-shell,
        .panel,
        .guide-band,
        .cta{
            border-radius:24px;
        }

        .hero-inner{
            padding:22px;
        }

        .feature-grid,
        .trust-grid,
        .post-grid,
        .faq-grid{
            grid-template-columns:1fr;
        }

        .hero h1{
            font-size:clamp(2rem, 13vw, 3.2rem);
        }

        .cta-form{
            justify-content:stretch;
        }

        .field{
            min-width:100%;
            width:100%;
        }
    }

    @media (max-width: 520px){
        .container{
            width:min(var(--container), calc(100% - 20px));
        }

        .brand-name{
            max-width:48vw;
            font-size:.98rem;
        }

        .hero-actions,
        .hero-meta,
        .badge-row{
            gap:8px;
        }

        .btn,
        .section-link{
            width:100%;
        }

        .cta{
            padding:18px;
        }

        .trust-card,
        .feature-body,
        .post-body,
        .step,
        .faq-list summary,
        .faq-list .answer{
            padding-left:16px;
            padding-right:16px;
        }
    }

/* roulang page: article */
:root{
            --bg:#090b16;
            --bg-2:#0e1224;
            --panel:#12172c;
            --panel-2:#171d37;
            --line:rgba(255,255,255,.10);
            --text:#eef2ff;
            --muted:#a8b0d6;
            --soft:#7781a8;
            --brand:#ff4d9d;
            --brand-2:#7c5cff;
            --brand-3:#2ed3ff;
            --ok:#41d38a;
            --warn:#ffc857;
            --shadow:0 18px 55px rgba(0,0,0,.35);
            --shadow-soft:0 10px 30px rgba(0,0,0,.22);
            --radius:22px;
            --radius-sm:14px;
            --radius-xs:10px;
            --gap:clamp(16px, 2vw, 26px);
            --container:1180px;
            --transition:180ms ease;
        }
        html{scroll-behavior:smooth}
        body{
            margin:0;
            min-height:100vh;
            font-family: Inter, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Noto Sans SC", sans-serif;
            line-height:1.7;
            color:var(--text);
            background:
                radial-gradient(circle at top left, rgba(124,92,255,.18), transparent 28%),
                radial-gradient(circle at top right, rgba(255,77,157,.16), transparent 24%),
                linear-gradient(180deg, #070915 0%, #0a0f1f 40%, #090b16 100%);
            overflow-x:hidden;
        }
        *{box-sizing:border-box}
        a{
            color:inherit;
            text-decoration:none;
            transition:color var(--transition), transform var(--transition), background var(--transition), border-color var(--transition), box-shadow var(--transition), opacity var(--transition), filter var(--transition);
        }
        a:hover{color:inherit}
        img{
            display:block;
            max-width:100%;
        }
        button,
        input,
        textarea,
        select{
            font:inherit;
        }
        button{
            border:0;
            cursor:pointer;
        }
        ::selection{
            background:rgba(255,77,157,.28);
            color:#fff;
        }
        .container{
            width:min(var(--container), calc(100% - 32px));
            margin:0 auto;
        }
        .site-header{
            position:sticky;
            top:0;
            z-index:100;
            backdrop-filter: blur(18px);
            background:rgba(6,9,19,.68);
            border-bottom:1px solid rgba(255,255,255,.06);
        }
        .header-inner{
            display:flex;
            align-items:center;
            justify-content:space-between;
            gap:16px;
            min-height:76px;
            padding:12px 0;
        }
        .brand{
            display:inline-flex;
            align-items:center;
            gap:12px;
            min-width:0;
            font-weight:800;
            letter-spacing:.2px;
        }
        .brand:hover{transform:translateY(-1px)}
        .brand-mark{
            width:42px;
            height:42px;
            display:grid;
            place-items:center;
            border-radius:14px;
            background:linear-gradient(135deg, rgba(255,77,157,.95), rgba(124,92,255,.95));
            color:#fff;
            box-shadow:0 10px 28px rgba(255,77,157,.25);
            flex:0 0 auto;
            font-size:14px;
            font-weight:900;
        }
        .brand-name{
            display:block;
            font-size:1.04rem;
            line-height:1.2;
            white-space:nowrap;
            overflow:hidden;
            text-overflow:ellipsis;
            max-width:min(56vw, 320px);
        }
        .site-nav{
            display:flex;
            align-items:center;
            gap:14px;
            position:relative;
        }
        .nav-toggle-input{
            position:absolute;
            opacity:0;
            pointer-events:none;
        }
        .nav-toggle{
            display:none;
            align-items:center;
            justify-content:center;
            width:46px;
            height:46px;
            border-radius:14px;
            border:1px solid var(--line);
            background:rgba(255,255,255,.04);
            color:var(--text);
            transition:transform var(--transition), border-color var(--transition), background var(--transition), box-shadow var(--transition);
        }
        .nav-toggle:hover{
            transform:translateY(-1px);
            background:rgba(255,255,255,.06);
            border-color:rgba(255,255,255,.16);
            box-shadow:var(--shadow-soft);
        }
        .nav-toggle-lines{
            width:20px;
            height:14px;
            position:relative;
        }
        .nav-toggle-lines::before,
        .nav-toggle-lines::after,
        .nav-toggle-lines span{
            content:"";
            position:absolute;
            left:0;
            width:100%;
            height:2px;
            border-radius:999px;
            background:currentColor;
            transition:transform var(--transition), top var(--transition), opacity var(--transition);
        }
        .nav-toggle-lines::before{top:0}
        .nav-toggle-lines span{top:6px}
        .nav-toggle-lines::after{top:12px}
        .nav-links{
            display:flex;
            align-items:center;
            gap:10px;
        }
        .nav-links a{
            display:inline-flex;
            align-items:center;
            justify-content:center;
            min-height:44px;
            padding:0 16px;
            border:1px solid transparent;
            border-radius:999px;
            color:var(--muted);
            background:transparent;
            font-weight:600;
            letter-spacing:.1px;
        }
        .nav-links a:hover{
            color:var(--text);
            background:rgba(255,255,255,.05);
            border-color:rgba(255,255,255,.08);
            transform:translateY(-1px);
        }
        .nav-links a.active,
        .nav-links a[aria-current="page"]{
            color:#fff;
            background:linear-gradient(135deg, rgba(255,77,157,.18), rgba(124,92,255,.18));
            border-color:rgba(255,255,255,.12);
            box-shadow:inset 0 0 0 1px rgba(255,255,255,.05);
        }
        .nav-cta{
            display:inline-flex;
            align-items:center;
            justify-content:center;
            min-height:44px;
            padding:0 18px;
            border-radius:999px;
            font-weight:700;
            color:#fff;
            background:linear-gradient(135deg, var(--brand), var(--brand-2));
            box-shadow:0 16px 30px rgba(124,92,255,.24);
            white-space:nowrap;
        }
        .nav-cta:hover{
            transform:translateY(-1px);
            box-shadow:0 18px 34px rgba(124,92,255,.30);
            color:#fff;
        }
        .article-hero{
            padding:26px 0 14px;
        }
        .hero-shell{
            position:relative;
            overflow:hidden;
            border-radius:32px;
            border:1px solid rgba(255,255,255,.10);
            background:
                linear-gradient(135deg, rgba(9,11,22,.78), rgba(9,11,22,.45)),
                url('/assets/images/backpic/back-3.webp') center/cover no-repeat;
            box-shadow:var(--shadow);
        }
        .hero-shell::before{
            content:"";
            position:absolute;
            inset:0;
            background:
                linear-gradient(180deg, rgba(8,11,20,.18), rgba(8,11,20,.80)),
                radial-gradient(circle at 18% 18%, rgba(255,77,157,.22), transparent 24%),
                radial-gradient(circle at 82% 26%, rgba(46,211,255,.14), transparent 28%);
            pointer-events:none;
        }
        .hero-grid{
            position:relative;
            display:grid;
            grid-template-columns:1.1fr .9fr;
            gap:24px;
            padding:34px;
            align-items:stretch;
        }
        .hero-copy{
            display:flex;
            flex-direction:column;
            justify-content:space-between;
            min-height:100%;
            gap:18px;
        }
        .eyebrow{
            display:inline-flex;
            align-items:center;
            gap:8px;
            width:max-content;
            padding:8px 12px;
            border-radius:999px;
            border:1px solid rgba(255,255,255,.10);
            background:rgba(255,255,255,.05);
            color:var(--muted);
            font-size:.92rem;
            backdrop-filter:blur(10px);
        }
        .hero-copy h2{
            margin:0;
            font-size:clamp(1.72rem, 4vw, 3.3rem);
            line-height:1.14;
            letter-spacing:.2px;
            text-wrap:balance;
        }
        .hero-desc{
            margin:0;
            max-width:62ch;
            color:var(--muted);
            font-size:1.03rem;
        }
        .meta-row{
            display:flex;
            flex-wrap:wrap;
            gap:10px;
        }
        .meta-pill{
            display:inline-flex;
            align-items:center;
            gap:8px;
            min-height:38px;
            padding:0 14px;
            border-radius:999px;
            background:rgba(255,255,255,.06);
            border:1px solid rgba(255,255,255,.09);
            color:var(--text);
            font-size:.95rem;
            backdrop-filter:blur(10px);
        }
        .hero-visual{
            display:flex;
            flex-direction:column;
            gap:12px;
            justify-content:flex-end;
            min-height:100%;
        }
        .hero-image{
            position:relative;
            overflow:hidden;
            border-radius:24px;
            min-height:290px;
            border:1px solid rgba(255,255,255,.08);
            box-shadow:var(--shadow-soft);
        }
        .hero-image img{
            width:100%;
            height:100%;
            min-height:290px;
            object-fit:cover;
            transform:scale(1.02);
        }
        .hero-image::after{
            content:"";
            position:absolute;
            inset:0;
            background:linear-gradient(180deg, transparent 10%, rgba(8,10,18,.55) 100%);
            pointer-events:none;
        }
        .hero-note{
            margin:0;
            padding:14px 16px;
            border-radius:18px;
            background:rgba(18,23,44,.78);
            border:1px solid rgba(255,255,255,.10);
            color:var(--muted);
            font-size:.95rem;
            backdrop-filter:blur(12px);
        }
        main{
            display:block;
            padding:18px 0 42px;
        }
        .tools-bar{
            display:flex;
            flex-wrap:wrap;
            align-items:center;
            justify-content:space-between;
            gap:14px;
            margin-bottom:18px;
        }
        .crumbs{
            display:flex;
            flex-wrap:wrap;
            align-items:center;
            gap:8px;
            color:var(--soft);
            font-size:.94rem;
        }
        .crumbs a{
            color:var(--muted);
        }
        .crumbs a:hover{
            color:#fff;
        }
        .search-form{
            display:flex;
            align-items:center;
            gap:10px;
            margin-left:auto;
            width:min(100%, 370px);
        }
        .search-form .search-field{
            flex:1;
            min-width:0;
            height:46px;
            padding:0 14px;
            border-radius:14px;
            border:1px solid rgba(255,255,255,.10);
            background:rgba(255,255,255,.05);
            color:var(--text);
            outline:none;
            transition:border-color var(--transition), box-shadow var(--transition), background var(--transition);
        }
        .search-form .search-field::placeholder{
            color:rgba(168,176,214,.78);
        }
        .search-form .search-field:focus{
            border-color:rgba(46,211,255,.35);
            box-shadow:0 0 0 4px rgba(46,211,255,.12);
            background:rgba(255,255,255,.07);
        }
        .btn-primary{
            display:inline-flex;
            align-items:center;
            justify-content:center;
            gap:8px;
            min-height:46px;
            padding:0 18px;
            border-radius:14px;
            border:0;
            color:#fff;
            background:linear-gradient(135deg, var(--brand), var(--brand-2));
            box-shadow:0 16px 28px rgba(124,92,255,.24);
            font-weight:700;
            transition:transform var(--transition), box-shadow var(--transition), filter var(--transition);
        }
        .btn-primary:hover{
            color:#fff;
            transform:translateY(-1px);
            box-shadow:0 18px 34px rgba(124,92,255,.30);
            filter:saturate(1.03);
        }
        .btn-primary:focus-visible,
        .search-form .search-field:focus-visible,
        .nav-links a:focus-visible,
        .nav-cta:focus-visible,
        .brand:focus-visible,
        .footer-nav a:focus-visible,
        .content-link:focus-visible,
        details summary:focus-visible{
            outline:none;
            box-shadow:0 0 0 4px rgba(255,77,157,.18);
        }
        .article-layout{
            display:grid;
            grid-template-columns:minmax(0, 1.55fr) minmax(290px, .85fr);
            gap:var(--gap);
            align-items:start;
        }
        .panel{
            background:linear-gradient(180deg, rgba(18,23,44,.92), rgba(14,18,36,.92));
            border:1px solid rgba(255,255,255,.10);
            border-radius:var(--radius);
            box-shadow:var(--shadow-soft);
        }
        .article-card{
            overflow:hidden;
        }
        .article-head{
            padding:24px 24px 0;
        }
        .article-badges{
            display:flex;
            flex-wrap:wrap;
            gap:10px;
            margin-bottom:16px;
        }
        .badge-soft{
            display:inline-flex;
            align-items:center;
            gap:8px;
            min-height:34px;
            padding:0 12px;
            border-radius:999px;
            border:1px solid rgba(255,255,255,.10);
            background:rgba(255,255,255,.05);
            color:var(--muted);
            font-size:.9rem;
        }
        .badge-hot{
            color:#fff;
            border-color:rgba(255,77,157,.22);
            background:linear-gradient(135deg, rgba(255,77,157,.18), rgba(124,92,255,.14));
        }
        .article-head h1{
            margin:0;
            font-size:clamp(1.7rem, 3vw, 2.55rem);
            line-height:1.18;
            text-wrap:balance;
        }
        .article-meta{
            display:flex;
            flex-wrap:wrap;
            gap:10px;
            margin-top:16px;
            color:var(--muted);
        }
        .article-meta span{
            display:inline-flex;
            align-items:center;
            gap:8px;
            min-height:34px;
            padding:0 12px;
            border-radius:999px;
            background:rgba(255,255,255,.04);
            border:1px solid rgba(255,255,255,.08);
        }
        .article-body{
            padding:18px 24px 24px;
        }
        .richtext{
            color:var(--text);
        }
        .richtext > *:first-child{
            margin-top:0;
        }
        .richtext h2,
        .richtext h3,
        .richtext h4{
            color:#fff;
            line-height:1.25;
            margin:1.6em 0 .7em;
        }
        .richtext h2{font-size:1.5rem}
        .richtext h3{font-size:1.23rem}
        .richtext p{
            margin:0 0 1em;
            color:var(--muted);
        }
        .richtext strong{
            color:#fff;
        }
        .richtext a{
            color:#b8c4ff;
            text-decoration:underline;
            text-decoration-color:rgba(184,196,255,.45);
            text-underline-offset:3px;
        }
        .richtext a:hover{
            color:#fff;
            text-decoration-color:#fff;
        }
        .richtext ul,
        .richtext ol{
            margin:0 0 1.1em 1.2em;
            color:var(--muted);
            padding:0;
        }
        .richtext li{margin:.38em 0}
        .richtext blockquote{
            margin:1.2em 0;
            padding:16px 18px;
            border-left:4px solid var(--brand);
            border-radius:14px;
            background:rgba(255,255,255,.04);
            color:#dfe6ff;
        }
        .richtext hr{
            margin:1.5em 0;
            border:0;
            border-top:1px solid rgba(255,255,255,.10);
        }
        .richtext img{
            margin:1.2em 0;
            border-radius:18px;
            border:1px solid rgba(255,255,255,.08);
            box-shadow:var(--shadow-soft);
        }
        .richtext table{
            width:100%;
            margin:1.2em 0;
            border-collapse:separate;
            border-spacing:0;
            overflow:hidden;
            border-radius:16px;
            border:1px solid rgba(255,255,255,.09);
            background:rgba(255,255,255,.03);
        }
        .richtext th,
        .richtext td{
            padding:12px 14px;
            border-bottom:1px solid rgba(255,255,255,.08);
            color:var(--muted);
            vertical-align:top;
        }
        .richtext th{
            color:#fff;
            background:rgba(255,255,255,.04);
            font-weight:700;
        }
        .richtext tr:last-child td{
            border-bottom:0;
        }
        .sidebar{
            display:grid;
            gap:var(--gap);
        }
        .side-card{
            padding:20px;
        }
        .side-card h2{
            margin:0 0 14px;
            font-size:1.08rem;
            color:#fff;
        }
        .info-list{
            list-style:none;
            margin:0;
            padding:0;
            display:grid;
            gap:10px;
        }
        .info-item{
            display:flex;
            gap:10px;
            align-items:flex-start;
            padding:12px 14px;
            border-radius:16px;
            background:rgba(255,255,255,.04);
            border:1px solid rgba(255,255,255,.08);
        }
        .info-label{
            min-width:66px;
            color:#cdd4fb;
            font-weight:700;
        }
        .info-value{
            color:var(--muted);
            min-width:0;
            overflow:hidden;
            word-break:break-word;
        }
        .cover-grid{
            display:grid;
            grid-template-columns:1fr 1fr;
            gap:12px;
        }
        .cover-tile{
            position:relative;
            overflow:hidden;
            border-radius:18px;
            min-height:150px;
            border:1px solid rgba(255,255,255,.08);
            background:rgba(255,255,255,.04);
            box-shadow:var(--shadow-soft);
        }
        .cover-tile img{
            width:100%;
            height:100%;
            min-height:150px;
            object-fit:cover;
            transition:transform .35s ease, filter .35s ease;
        }
        .cover-tile:hover img{
            transform:scale(1.05);
            filter:saturate(1.04);
        }
        .cover-tile .overlay{
            position:absolute;
            inset:0;
            display:flex;
            align-items:flex-end;
            padding:14px;
            background:linear-gradient(180deg, transparent 20%, rgba(6,9,19,.78) 100%);
        }
        .overlay span{
            display:inline-flex;
            padding:7px 10px;
            border-radius:999px;
            font-size:.88rem;
            background:rgba(255,255,255,.08);
            border:1px solid rgba(255,255,255,.10);
            color:#fff;
            backdrop-filter:blur(8px);
        }
        .note-card{
            padding:18px 20px;
            background:linear-gradient(135deg, rgba(255,77,157,.10), rgba(124,92,255,.10));
        }
        .note-card p{
            margin:0;
            color:var(--muted);
        }
        .section-block{
            margin-top:var(--gap);
        }
        .section-head{
            display:flex;
            flex-wrap:wrap;
            align-items:end;
            justify-content:space-between;
            gap:12px;
            margin-bottom:16px;
        }
        .section-head h2{
            margin:0;
            font-size:1.32rem;
            color:#fff;
        }
        .section-head p{
            margin:0;
            color:var(--muted);
        }
        .section-link{
            display:inline-flex;
            align-items:center;
            gap:8px;
            color:#d7ddff;
            font-weight:700;
        }
        .section-link:hover{
            color:#fff;
            transform:translateY(-1px);
        }
        .card-grid{
            display:grid;
            grid-template-columns:repeat(3, minmax(0, 1fr));
            gap:var(--gap);
        }
        .post-card{
            overflow:hidden;
            display:flex;
            flex-direction:column;
            min-height:100%;
        }
        .post-thumb{
            position:relative;
            aspect-ratio:16/10;
            overflow:hidden;
            background:rgba(255,255,255,.03);
        }
        .post-thumb img{
            width:100%;
            height:100%;
            object-fit:cover;
            transition:transform .35s ease, filter .35s ease;
        }
        .post-card:hover .post-thumb img{
            transform:scale(1.05);
            filter:saturate(1.04);
        }
        .post-body{
            display:flex;
            flex-direction:column;
            gap:10px;
            padding:18px;
        }
        .post-body h3{
            margin:0;
            font-size:1.08rem;
            line-height:1.35;
            color:#fff;
        }
        .post-body p{
            margin:0;
            color:var(--muted);
            font-size:.95rem;
        }
        .post-foot{
            display:flex;
            align-items:center;
            justify-content:space-between;
            gap:10px;
            margin-top:auto;
            padding-top:10px;
        }
        .mini-badge{
            display:inline-flex;
            align-items:center;
            gap:6px;
            padding:6px 10px;
            border-radius:999px;
            background:rgba(255,255,255,.05);
            border:1px solid rgba(255,255,255,.08);
            color:var(--muted);
            font-size:.86rem;
        }
        .content-link{
            color:#fff;
            font-weight:700;
        }
        .content-link:hover{color:#fff;opacity:.9}
        .faq-list{
            display:grid;
            gap:12px;
        }
        details.faq-item{
            padding:0;
            border-radius:18px;
            background:rgba(255,255,255,.04);
            border:1px solid rgba(255,255,255,.08);
            overflow:hidden;
        }
        details.faq-item summary{
            list-style:none;
            cursor:pointer;
            padding:18px 20px;
            display:flex;
            align-items:center;
            justify-content:space-between;
            gap:18px;
            color:#fff;
            font-weight:700;
        }
        details.faq-item summary::-webkit-details-marker{display:none}
        details.faq-item summary::after{
            content:"+";
            width:28px;
            height:28px;
            border-radius:50%;
            display:grid;
            place-items:center;
            background:rgba(255,255,255,.06);
            border:1px solid rgba(255,255,255,.08);
            color:var(--muted);
            flex:0 0 auto;
            transition:transform var(--transition), background var(--transition), color var(--transition);
        }
        details[open].faq-item summary::after{
            content:"–";
            color:#fff;
            transform:rotate(0deg);
            background:rgba(255,77,157,.16);
        }
        .faq-body{
            padding:0 20px 18px;
            color:var(--muted);
        }
        .cta-panel{
            margin-top:var(--gap);
            padding:24px;
            border-radius:28px;
            background:
                linear-gradient(135deg, rgba(255,77,157,.14), rgba(124,92,255,.16)),
                rgba(255,255,255,.04);
            border:1px solid rgba(255,255,255,.10);
            box-shadow:var(--shadow-soft);
            display:flex;
            flex-wrap:wrap;
            align-items:center;
            justify-content:space-between;
            gap:18px;
        }
        .cta-panel h2{
            margin:0 0 8px;
            color:#fff;
            font-size:1.25rem;
        }
        .cta-panel p{
            margin:0;
            color:var(--muted);
            max-width:68ch;
        }
        .cta-actions{
            display:flex;
            flex-wrap:wrap;
            gap:10px;
        }
        .btn-secondary{
            display:inline-flex;
            align-items:center;
            justify-content:center;
            min-height:46px;
            padding:0 18px;
            border-radius:14px;
            border:1px solid rgba(255,255,255,.12);
            background:rgba(255,255,255,.05);
            color:#fff;
            font-weight:700;
        }
        .btn-secondary:hover{
            color:#fff;
            transform:translateY(-1px);
            background:rgba(255,255,255,.08);
            border-color:rgba(255,255,255,.18);
        }
        .empty-main{
            padding:58px 0 56px;
        }
        .empty-state{
            max-width:760px;
            margin:0 auto;
            padding:40px 26px;
            text-align:center;
            border-radius:30px;
            border:1px solid rgba(255,255,255,.10);
            background:linear-gradient(180deg, rgba(18,23,44,.92), rgba(14,18,36,.92));
            box-shadow:var(--shadow);
        }
        .empty-icon{
            width:76px;
            height:76px;
            margin:0 auto 18px;
            display:grid;
            place-items:center;
            border-radius:24px;
            font-weight:900;
            color:#fff;
            background:linear-gradient(135deg, rgba(255,77,157,.95), rgba(124,92,255,.95));
            box-shadow:0 18px 36px rgba(124,92,255,.24);
        }
        .empty-state h1{
            margin:0 0 10px;
            font-size:clamp(1.7rem, 4vw, 2.3rem);
            color:#fff;
        }
        .empty-state p{
            margin:0 auto 20px;
            max-width:50ch;
            color:var(--muted);
        }
        .footer{
            padding:28px 0 34px;
            border-top:1px solid rgba(255,255,255,.06);
            background:rgba(6,9,19,.42);
        }
        .footer-inner{
            display:flex;
            align-items:flex-start;
            justify-content:space-between;
            gap:24px;
        }
        .footer-brand{
            display:flex;
            align-items:flex-start;
            gap:14px;
        }
        .footer-brand .brand-name{
            max-width:none;
            white-space:normal;
        }
        .footer-brand p{
            margin:10px 0 12px;
            color:var(--muted);
            max-width:58ch;
        }
        .copyright{
            color:var(--soft);
            font-size:.93rem;
        }
        .footer-nav{
            display:flex;
            flex-wrap:wrap;
            justify-content:flex-end;
            gap:10px;
        }
        .footer-nav a{
            display:inline-flex;
            align-items:center;
            justify-content:center;
            min-height:40px;
            padding:0 14px;
            border-radius:999px;
            background:rgba(255,255,255,.04);
            border:1px solid rgba(255,255,255,.08);
            color:var(--muted);
        }
        .footer-nav a:hover{
            color:#fff;
            border-color:rgba(255,255,255,.16);
            background:rgba(255,255,255,.06);
            transform:translateY(-1px);
        }
        .spacer{
            height:1px;
            background:rgba(255,255,255,.08);
            margin:18px 0;
        }
        @media (max-width: 1024px){
            .hero-grid{
                grid-template-columns:1fr;
            }
            .article-layout{
                grid-template-columns:1fr;
            }
            .card-grid{
                grid-template-columns:repeat(2, minmax(0, 1fr));
            }
            .footer-inner{
                flex-direction:column;
            }
            .footer-nav{
                justify-content:flex-start;
            }
        }
        @media (max-width: 768px){
            .header-inner{
                min-height:68px;
            }
            .nav-toggle{
                display:inline-flex;
            }
            .site-nav{
                margin-left:auto;
            }
            .nav-links{
                position:absolute;
                right:0;
                top:calc(100% + 10px);
                width:min(310px, calc(100vw - 24px));
                flex-direction:column;
                align-items:stretch;
                gap:8px;
                padding:12px;
                border-radius:20px;
                border:1px solid rgba(255,255,255,.10);
                background:rgba(8,11,20,.94);
                box-shadow:var(--shadow);
                opacity:0;
                visibility:hidden;
                transform:translateY(-8px) scale(.98);
                transform-origin:top right;
                transition:opacity var(--transition), transform var(--transition), visibility var(--transition);
            }
            .nav-toggle-input:checked ~ .nav-links{
                opacity:1;
                visibility:visible;
                transform:translateY(0) scale(1);
            }
            .nav-links a,
            .nav-cta{
                width:100%;
                justify-content:center;
            }
            .nav-toggle-input:checked + .nav-toggle .nav-toggle-lines span{opacity:0}
            .nav-toggle-input:checked + .nav-toggle .nav-toggle-lines::before{
                top:6px;
                transform:rotate(45deg);
            }
            .nav-toggle-input:checked + .nav-toggle .nav-toggle-lines::after{
                top:6px;
                transform:rotate(-45deg);
            }
            .hero-grid{
                padding:22px;
            }
            .article-head,
            .article-body{
                padding-left:18px;
                padding-right:18px;
            }
            .tools-bar{
                flex-direction:column;
                align-items:stretch;
            }
            .search-form{
                width:100%;
                margin-left:0;
            }
            .card-grid{
                grid-template-columns:1fr;
            }
            .cover-grid{
                grid-template-columns:1fr 1fr;
            }
            .cta-panel{
                padding:20px;
            }
        }
        @media (max-width: 520px){
            .container{
                width:min(var(--container), calc(100% - 22px));
            }
            .brand-name{
                max-width:46vw;
                font-size:.98rem;
            }
            .hero-shell{
                border-radius:24px;
            }
            .hero-image,
            .hero-image img{
                min-height:220px;
            }
            .hero-copy h2{
                font-size:1.52rem;
            }
            .article-head h1{
                font-size:1.42rem;
            }
            .cover-grid{
                grid-template-columns:1fr;
            }
            .footer-brand{
                flex-direction:column;
            }
            .footer-nav{
                width:100%;
            }
        }

/* roulang: framework shim */
/* 覆盖 Bootstrap 等对 a/btn 的全局默认，避免导航出现下划线/蓝链 */
.site-header a,.site-header a:hover,.navbar a,.navbar a:hover,.nav-links a,.nav-links a:hover,header nav a,header nav a:hover{text-decoration:none}
.site-header .btn,.navbar .btn,.nav-cta{text-decoration:none}
