/* roulang page: index */
:root{
            --ink:#07152d;
            --deep:#091a39;
            --panel:rgba(18,37,72,.72);
            --panel-strong:#102852;
            --line:rgba(173,207,255,.16);
            --text:#f3f7ff;
            --muted:#aebdd5;
            --blue:#7a8dff;
            --cyan:#61d7d1;
            --warm:#f2b58e;
            --radius:22px;
            --shadow:0 22px 70px rgba(0,0,0,.26);
        }
        *{box-sizing:border-box}
        html{scroll-behavior:smooth}
        body{
            margin:0;
            color:var(--text);
            background:
                radial-gradient(circle at 12% 8%,rgba(79,112,221,.18),transparent 31rem),
                radial-gradient(circle at 90% 28%,rgba(76,193,184,.1),transparent 25rem),
                var(--ink);
            font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Hiragino Sans GB","Microsoft YaHei",sans-serif;
            line-height:1.75;
            overflow-x:hidden;
        }
        a{color:inherit;text-decoration:none}
        img{max-width:100%;display:block}
        button,input{font:inherit}
        .container{max-width:1180px}
        .site-header{
            position:fixed;z-index:1000;top:16px;left:0;right:0;
        }
        .nav-shell{
            min-height:68px;padding:0 18px;border:1px solid var(--line);
            border-radius:18px;background:rgba(7,21,45,.78);
            backdrop-filter:blur(18px);box-shadow:0 12px 35px rgba(0,0,0,.2);
        }
        .navbar-brand{font-size:22px;font-weight:800;letter-spacing:.02em;color:#fff!important}
        .brand-mark{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;margin-right:8px;border-radius:10px;background:linear-gradient(135deg,var(--cyan),var(--blue));color:var(--ink);font-size:16px}
        .navbar-nav{gap:5px}
        .nav-link{color:#c8d4e9!important;padding:9px 13px!important;border-radius:10px;font-size:14px}
        .nav-link:hover,.nav-link.active{color:#fff!important;background:rgba(122,141,255,.16)}
        .nav-action,.btn-glow{
            color:#07152d!important;border:0;background:linear-gradient(110deg,#91a1ff,#61d7d1);
            box-shadow:0 8px 25px rgba(97,215,209,.2);font-weight:700;border-radius:12px;
        }
        .nav-action:hover,.btn-glow:hover{transform:translateY(-2px);filter:brightness(1.08);box-shadow:0 12px 30px rgba(97,215,209,.3)}
        .btn{transition:.25s ease;padding:12px 20px}
        .btn-outline-soft{border:1px solid rgba(190,211,255,.3);color:#e8efff;border-radius:12px;background:rgba(255,255,255,.03)}
        .btn-outline-soft:hover{background:rgba(255,255,255,.1);border-color:rgba(190,211,255,.58);color:#fff}
        :focus-visible{outline:3px solid var(--cyan);outline-offset:3px}
        section{padding:112px 0;position:relative}
        .section-head{max-width:700px;margin-bottom:42px}
        .eyebrow{display:inline-flex;align-items:center;gap:8px;color:var(--cyan);font-size:13px;font-weight:700;letter-spacing:.1em;margin-bottom:13px}
        .eyebrow:before{content:"";width:22px;height:1px;background:var(--cyan)}
        h1,h2,h3{line-height:1.25;letter-spacing:-.025em}
        h1{font-size:clamp(38px,5vw,66px);font-weight:800;margin:0 0 22px}
        h2{font-size:clamp(29px,3.5vw,43px);font-weight:750;margin:0 0 15px}
        h3{font-size:20px;font-weight:700;margin:0 0 9px}
        p{color:var(--muted);margin:0}
        .section-head p{font-size:16px;max-width:650px}
        .hero{
            min-height:790px;padding-top:174px;display:flex;align-items:center;
            background:linear-gradient(90deg,rgba(7,21,45,.98) 20%,rgba(7,21,45,.79) 56%,rgba(7,21,45,.42)),url('/assets/images/7b6e6b6e22bffb45.jpg') center/cover;
        }
        .hero-grid{display:grid;grid-template-columns:1.04fr .96fr;gap:70px;align-items:center}
        .hero-copy>p{font-size:18px;max-width:650px;line-height:1.9}
        .hero-actions{display:flex;flex-wrap:wrap;gap:12px;margin:30px 0 33px}
        .hero-meta{display:flex;gap:28px;flex-wrap:wrap}
        .meta-item{padding-left:14px;border-left:2px solid var(--cyan)}
        .meta-item strong{display:block;font-size:18px;color:#fff}
        .meta-item span{font-size:13px;color:var(--muted)}
        .route-panel{padding:25px;border:1px solid var(--line);border-radius:28px;background:rgba(11,31,65,.74);box-shadow:var(--shadow);backdrop-filter:blur(16px)}
        .panel-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px;color:#cbd8ed;font-size:13px}
        .status-dot{display:inline-flex;align-items:center;gap:7px;color:var(--cyan)}
        .status-dot:before{content:"";width:8px;height:8px;border-radius:50%;background:var(--cyan);box-shadow:0 0 12px var(--cyan)}
        .route-line{position:relative;padding:12px 0 8px}
        .route-line:before{content:"";position:absolute;left:15px;top:22px;bottom:23px;width:1px;background:linear-gradient(var(--cyan),rgba(122,141,255,.1))}
        .route-node{position:relative;display:grid;grid-template-columns:32px 1fr auto;gap:13px;align-items:start;padding:11px 0}
        .node-icon{width:30px;height:30px;border:1px solid rgba(97,215,209,.5);border-radius:50%;display:grid;place-items:center;background:#102c52;color:var(--cyan);font-size:12px;z-index:1}
        .route-node strong{display:block;color:#fff;font-size:15px}
        .route-node small{color:var(--muted);font-size:12px}
        .node-state{font-size:11px;color:#aebdff;padding:4px 8px;border-radius:20px;background:rgba(122,141,255,.12)}
        .subscribe-line{border-top:1px solid var(--line);padding-top:18px;margin-top:12px;display:flex;gap:10px}
        .subscribe-line input{min-width:0;flex:1;background:rgba(255,255,255,.06);border:1px solid var(--line);border-radius:10px;color:#fff;padding:9px 12px}
        .subscribe-line button{white-space:nowrap;border:0;border-radius:10px;background:var(--cyan);color:var(--ink);font-weight:700;padding:9px 14px}
        .dark-alt{background:rgba(8,25,53,.5);border-top:1px solid rgba(173,207,255,.06);border-bottom:1px solid rgba(173,207,255,.06)}
        .glass{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);box-shadow:0 14px 45px rgba(0,0,0,.16);backdrop-filter:blur(13px)}
        .feature-layout{display:grid;grid-template-columns:1fr 1.15fr;gap:24px;align-items:stretch}
        .feature-lead{padding:34px;background:linear-gradient(145deg,rgba(122,141,255,.25),rgba(18,37,72,.6));border-radius:var(--radius);border:1px solid rgba(151,165,255,.28)}
        .feature-lead p{margin:15px 0 30px}
        .feature-list{display:grid;grid-template-columns:repeat(2,1fr);gap:15px}
        .feature-card{padding:25px;min-height:170px}
        .feature-card:hover,.case-card:hover,.feedback-item:hover{transform:translateY(-4px);border-color:rgba(97,215,209,.4)}
        .feature-card,.case-card,.feedback-item{transition:.25s ease}
        .feature-number{color:var(--cyan);font-size:13px;margin-bottom:20px}
        .feature-card p{font-size:14px}
        .scene-wrap{display:grid;grid-template-columns:230px 1fr;gap:25px}
        .scene-tabs{display:flex;flex-direction:column;gap:8px}
        .scene-tabs button{text-align:left;border:1px solid var(--line);background:rgba(255,255,255,.035);color:var(--muted);padding:14px 16px;border-radius:13px}
        .scene-tabs button.active,.scene-tabs button:hover{color:#fff;background:rgba(122,141,255,.18);border-color:rgba(122,141,255,.5)}
        .scene-content{padding:34px;min-height:270px;background:linear-gradient(120deg,rgba(21,52,95,.85),rgba(13,29,61,.72));border-radius:var(--radius);border:1px solid var(--line)}
        .scene-content .scene-label{color:var(--warm);font-size:13px;margin-bottom:18px}
        .scene-content p{max-width:590px;margin-bottom:22px}
        .step-row{display:flex;gap:12px;flex-wrap:wrap}
        .step{border:1px solid var(--line);padding:9px 13px;border-radius:10px;color:#d7e2f6;font-size:13px}
        .demo-stage{padding:20px;border:1px solid var(--line);border-radius:28px;background:rgba(4,17,38,.65)}
        .browser-bar{height:43px;display:flex;align-items:center;gap:8px;padding:0 15px;border-bottom:1px solid var(--line);color:#8da1c1;font-size:13px}
        .browser-bar i{width:8px;height:8px;border-radius:50%;background:#6680a9}
        .browser-body{display:grid;grid-template-columns:1.2fr .8fr;gap:20px;padding:25px;min-height:310px;background:linear-gradient(145deg,rgba(76,106,191,.22),rgba(9,27,57,.45))}
        .demo-visual{min-height:250px;border-radius:18px;background:linear-gradient(150deg,rgba(97,215,209,.24),rgba(122,141,255,.15)),url('/assets/images/81f41ccb8e855cdb.jpg') center/cover;display:flex;align-items:flex-end;padding:18px}
        .demo-visual span{padding:8px 12px;border-radius:10px;background:rgba(4,17,38,.75);font-size:13px}
        .demo-side{display:flex;flex-direction:column;gap:12px}
        .demo-note{padding:15px;border:1px solid var(--line);border-radius:14px;background:rgba(255,255,255,.04)}
        .demo-note b{display:block;color:#fff;font-size:14px;margin-bottom:4px}
        .demo-note small{color:var(--muted)}
        .case-band{display:grid;grid-template-columns:1.1fr .9fr;gap:20px}
        .case-card{padding:31px;min-height:280px;background:linear-gradient(130deg,rgba(31,61,112,.82),rgba(13,31,63,.8));border:1px solid var(--line);border-radius:var(--radius)}
        .case-tag{color:var(--warm);font-size:13px;margin-bottom:28px}
        .case-card p{max-width:580px;margin:14px 0 25px}
        .case-aside{padding:29px}
        .case-aside li{list-style:none;padding:14px 0;border-bottom:1px solid var(--line);color:#d6e2f5;font-size:14px}
        .case-aside ul{padding:0;margin:8px 0 0}
        .case-aside li:last-child{border:0}
        .case-aside li span{display:block;color:var(--muted);font-size:12px}
        .pricing-grid{display:grid;grid-template-columns:.8fr 1.2fr .8fr;gap:15px;align-items:stretch}
        .price-card{padding:29px;border:1px solid var(--line);border-radius:var(--radius);background:rgba(17,37,73,.66);position:relative}
        .price-card.recommended{background:linear-gradient(145deg,rgba(83,104,217,.38),rgba(18,43,78,.88));border-color:rgba(122,141,255,.7);transform:translateY(-12px);box-shadow:0 20px 55px rgba(61,80,180,.25)}
        .recommend{position:absolute;right:20px;top:20px;color:var(--ink);background:var(--cyan);font-size:11px;font-weight:700;padding:5px 9px;border-radius:15px}
        .price-card h3{margin-top:12px}
        .price-name{color:var(--muted);font-size:14px}
        .price-line{font-size:29px;font-weight:800;color:#fff;margin:20px 0}
        .price-line small{font-size:13px;font-weight:400;color:var(--muted)}
        .price-card ul{padding:0;margin:0 0 23px}
        .price-card li{list-style:none;color:#c8d5e9;font-size:14px;padding:8px 0;border-bottom:1px solid rgba(173,207,255,.1)}
        .price-card li:before{content:"✓";color:var(--cyan);margin-right:8px}
        .rating-layout{display:grid;grid-template-columns:260px 1fr;gap:22px;align-items:stretch}
        .rating-summary{padding:30px;text-align:center;display:flex;flex-direction:column;justify-content:center}
        .rating-number{font-size:58px;font-weight:800;color:#fff;line-height:1}
        .stars{color:var(--warm);letter-spacing:4px;margin:13px 0}
        .rating-summary p{font-size:13px}
        .review-track{display:flex;gap:15px;overflow:auto;padding-bottom:8px}
        .review-card{min-width:250px;padding:24px}
        .review-card p{font-size:14px;color:#dbe5f5;margin:15px 0}
        .avatar{display:flex;align-items:center;gap:10px;color:#cfdbed;font-size:13px}
        .avatar i{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:rgba(97,215,209,.17);color:var(--cyan);font-style:normal}
        .feedback-layout{display:grid;grid-template-columns:.72fr 1.28fr;gap:24px}
        .feedback-topics{padding:29px}
        .topic{display:flex;justify-content:space-between;padding:16px 0;border-bottom:1px solid var(--line);font-size:14px;color:#dce6f4}
        .topic b{color:var(--cyan)}
        .feedback-list{display:flex;flex-direction:column;gap:12px}
        .feedback-item{padding:20px 24px;display:grid;grid-template-columns:115px 1fr;gap:18px}
        .feedback-item small{color:var(--warm)}
        .feedback-item p{font-size:14px}
        .timeline{display:grid;grid-template-columns:repeat(4,1fr);gap:0;position:relative}
        .timeline:before{content:"";position:absolute;top:20px;left:4%;right:4%;height:1px;background:linear-gradient(90deg,var(--cyan),var(--blue));opacity:.5}
        .time-step{position:relative;padding:0 18px;text-align:center}
        .time-dot{width:40px;height:40px;margin:0 auto 20px;border-radius:50%;display:grid;place-items:center;background:#173c61;border:1px solid var(--cyan);color:var(--cyan);position:relative;z-index:1}
        .time-step p{font-size:13px;margin-top:8px}
        .faq-wrap{max-width:850px}
        .accordion-item{background:rgba(18,37,72,.72)!important;border:1px solid var(--line)!important;margin-bottom:10px;border-radius:14px!important;overflow:hidden}
        .accordion-button{background:transparent!important;color:#eef4ff!important;box-shadow:none!important;font-weight:650;padding:19px 22px}
        .accordion-button:after{filter:invert(1);opacity:.7}
        .accordion-body{color:var(--muted);padding:0 22px 20px;font-size:14px}
        .news-layout{display:grid;grid-template-columns:1.05fr .95fr;gap:22px}
        .featured-news{min-height:300px;padding:30px;display:flex;flex-direction:column;justify-content:flex-end;background:linear-gradient(0deg,rgba(5,18,40,.96),rgba(5,18,40,.1)),url('/assets/images/2977b0c57e1692c3.jpg') center/cover;border-radius:var(--radius);border:1px solid var(--line)}
        .news-label{color:var(--warm);font-size:13px;margin-bottom:12px}
        .news-list{display:flex;flex-direction:column;gap:10px}
        .news-item{display:grid;grid-template-columns:90px 1fr;gap:16px;padding:17px 0;border-bottom:1px solid var(--line)}
        .news-item time{font-size:12px;color:var(--cyan)}
        .news-item h3{font-size:16px;margin-bottom:4px}
        .news-item p{font-size:13px}
        .final-cta{padding:58px 0;background:linear-gradient(110deg,rgba(46,71,167,.75),rgba(17,108,111,.55)),url('/assets/images/4ca2df36b651766a.jpg') center/cover}
        .cta-box{display:flex;align-items:center;justify-content:space-between;gap:30px}
        .cta-box p{max-width:650px;color:#d9e8f5;margin-top:10px}
        footer{padding:45px 0 28px;background:#061127;border-top:1px solid var(--line)}
        .footer-grid{display:grid;grid-template-columns:1.3fr 1fr 1fr;gap:40px;padding-bottom:32px}
        .footer-brand p{font-size:14px;margin-top:13px;max-width:360px}
        .footer-title{font-size:13px;color:#fff;font-weight:700;margin-bottom:13px}
        .footer-links{display:flex;flex-wrap:wrap;gap:9px 18px}
        .footer-links a{font-size:13px;color:var(--muted)}
        .footer-links a:hover{color:var(--cyan)}
        .copyright{padding-top:22px;border-top:1px solid var(--line);font-size:12px;color:#71829e;display:flex;justify-content:space-between;gap:15px}
        @media(max-width:991px){
            .navbar-nav{padding:16px 0}.nav-action{display:inline-block;margin:8px 0}
            .hero-grid,.feature-layout,.case-band,.news-layout,.feedback-layout{grid-template-columns:1fr}
            .hero{min-height:auto;padding-bottom:95px}
            .hero-copy{max-width:740px}.pricing-grid{grid-template-columns:1fr 1fr}.price-card.recommended{transform:none}
            .pricing-grid .price-card:last-child{grid-column:1/-1}
        }
        @media(max-width:767px){
            section{padding:76px 0}.site-header{top:9px}.nav-shell{border-radius:15px}
            .hero{padding-top:130px}.hero-actions{flex-direction:column;align-items:stretch}.hero-actions .btn{width:100%}
            .hero-meta{gap:16px}.route-panel{padding:19px}.subscribe-line{flex-direction:column}
            .feature-list,.browser-body{grid-template-columns:1fr}.browser-body{padding:15px}.demo-visual{min-height:180px}
            .scene-wrap,.rating-layout{grid-template-columns:1fr}.scene-tabs{flex-direction:row;overflow:auto}.scene-tabs button{white-space:nowrap}
            .pricing-grid{grid-template-columns:1fr}.pricing-grid .price-card:last-child{grid-column:auto}
            .timeline{grid-template-columns:1fr 1fr;gap:28px}.timeline:before{display:none}
            .feedback-item{grid-template-columns:1fr;gap:5px}.footer-grid{grid-template-columns:1fr;gap:24px}
            .cta-box{display:block}.cta-box .btn{margin-top:24px;width:100%}.copyright{display:block}.copyright span{display:block;margin-top:7px}
        }
        @media(max-width:520px){
            h1{font-size:36px}.section-head{margin-bottom:30px}.feature-card,.case-card,.price-card{padding:22px}
            .hero-meta{display:grid;grid-template-columns:1fr 1fr}.hero-meta .meta-item:last-child{grid-column:1/-1}
            .route-node{grid-template-columns:28px 1fr}.node-state{grid-column:2;width:max-content}
        }

/* 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}
