/* roulang page: index */
:root{
      --ink:#eaf1ff;
      --muted:#91a2bf;
      --dim:#61718e;
      --bg:#07101f;
      --panel:#0d1a30;
      --panel-2:#10223c;
      --line:rgba(153,180,220,.16);
      --cyan:#45e4d0;
      --blue:#5e8cff;
      --gold:#f4c76b;
      --danger:#ff6c83;
      --radius:20px;
      --shadow:0 20px 55px rgba(0,0,0,.24);
      --container:1180px;
    }
    *{box-sizing:border-box;margin:0;padding:0}
    html{scroll-behavior:smooth}
    body{font-family:Inter,"PingFang SC","Microsoft YaHei",Arial,sans-serif;background:var(--bg);color:var(--ink);line-height:1.75;font-size:15px}
    a{color:inherit;text-decoration:none}
    button,input{font:inherit}
    button{cursor:pointer}
    img{max-width:100%;display:block}
    .container{width:min(var(--container),calc(100% - 40px));margin:auto}
    .eyebrow{display:inline-flex;align-items:center;gap:8px;color:var(--cyan);font-size:12px;letter-spacing:.12em;text-transform:uppercase;font-weight:700}
    .eyebrow:before{content:"";width:22px;height:2px;background:var(--cyan)}
    h1,h2,h3{line-height:1.2;letter-spacing:-.03em}
    h1{font-size:clamp(38px,5vw,68px);max-width:780px}
    h2{font-size:clamp(28px,3.2vw,43px)}
    h3{font-size:20px}
    .section{padding:96px 0;border-top:1px solid rgba(153,180,220,.08)}
    .section.alt{background:#09172b}
    .section-head{display:flex;justify-content:space-between;gap:32px;align-items:end;margin-bottom:38px}
    .section-head p{color:var(--muted);max-width:520px}
    .topbar{height:76px;display:flex;align-items:center;border-bottom:1px solid var(--line);background:rgba(7,16,31,.82);backdrop-filter:blur(18px);position:sticky;top:0;z-index:10}
    .nav{display:flex;align-items:center;justify-content:space-between;gap:28px}
    .brand{display:flex;align-items:center;gap:11px;font-weight:800;letter-spacing:-.03em;white-space:nowrap}
    .brand-mark{width:34px;height:34px;border-radius:11px;background:linear-gradient(135deg,var(--cyan),var(--blue));display:grid;place-items:center;color:#07101f;font-weight:900;box-shadow:0 0 25px rgba(69,228,208,.3)}
    .brand span:last-child{font-size:15px}
    .nav-links{display:flex;align-items:center;gap:8px;margin-left:auto}
    .nav-links a{padding:9px 15px;border-radius:10px;color:var(--muted);transition:.25s}
    .nav-links a:hover,.nav-links a.active{color:var(--ink);background:rgba(94,140,255,.13)}
    .nav-tools{display:flex;align-items:center;gap:12px}
    .status{display:flex;align-items:center;gap:7px;color:var(--muted);font-size:12px}
    .status i{width:8px;height:8px;border-radius:50%;background:var(--cyan);box-shadow:0 0 12px var(--cyan)}
    .nav-cta,.btn{display:inline-flex;justify-content:center;align-items:center;gap:8px;border:1px solid transparent;border-radius:12px;padding:12px 20px;font-weight:700;transition:.25s}
    .nav-cta,.btn.primary{background:var(--cyan);color:#06151b;box-shadow:0 8px 24px rgba(69,228,208,.18)}
    .nav-cta:hover,.btn.primary:hover{transform:translateY(-2px);background:#7af1e2}
    .btn.ghost{border-color:var(--line);color:var(--ink);background:rgba(255,255,255,.025)}
    .btn.ghost:hover{border-color:var(--cyan);background:rgba(69,228,208,.08)}
    .menu-toggle{display:none;background:none;border:0;color:var(--ink);font-size:24px}
    .hero{position:relative;overflow:hidden;padding:74px 0 78px;background:radial-gradient(circle at 80% 15%,rgba(73,121,255,.22),transparent 32%),radial-gradient(circle at 20% 0%,rgba(69,228,208,.1),transparent 28%)}
    .hero:after{content:"";position:absolute;inset:0;pointer-events:none;opacity:.28;background-image:linear-gradient(rgba(150,180,220,.08) 1px,transparent 1px),linear-gradient(90deg,rgba(150,180,220,.08) 1px,transparent 1px);background-size:42px 42px;mask-image:linear-gradient(to bottom,black,transparent)}
    .hero-inner{position:relative;z-index:1}
    .hero-copy{max-width:850px}
    .hero h1{margin:22px 0 22px}
    .hero h1 em{font-style:normal;color:var(--cyan)}
    .hero-copy>p{max-width:760px;color:#b9c7dc;font-size:17px}
    .hero-actions{display:flex;gap:12px;margin-top:30px;flex-wrap:wrap}
    .local-strip{display:flex;align-items:stretch;gap:0;margin-top:55px;border:1px solid var(--line);border-radius:18px;overflow:hidden;background:rgba(11,27,49,.72);max-width:940px}
    .local-item{padding:20px 24px;flex:1;border-right:1px solid var(--line)}
    .local-item:last-child{border-right:0}
    .local-item small{display:block;color:var(--dim);font-size:12px;margin-bottom:5px}
    .local-item strong{font-size:16px}
    .local-item b{color:var(--cyan);font-size:12px;margin-left:7px}
    .cards-3{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
    .card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:27px;transition:.3s;box-shadow:0 10px 30px rgba(0,0,0,.1)}
    .card:hover{transform:translateY(-5px);border-color:rgba(69,228,208,.42);box-shadow:var(--shadow)}
    .icon{width:45px;height:45px;border-radius:14px;display:grid;place-items:center;background:rgba(69,228,208,.1);color:var(--cyan);font-size:21px;margin-bottom:22px}
    .card p{color:var(--muted);margin-top:10px;font-size:14px}
    .tag{display:inline-flex;padding:5px 9px;border-radius:8px;background:rgba(94,140,255,.13);color:#aebfff;font-size:12px}
    .matrix{display:grid;grid-template-columns:1.15fr .85fr;gap:20px}
    .map-panel{min-height:330px;border-radius:var(--radius);border:1px solid var(--line);position:relative;overflow:hidden;background:#0b1c32}
    .map-panel:before{content:"";position:absolute;inset:0;opacity:.4;background-image:linear-gradient(35deg,transparent 48%,rgba(69,228,208,.16) 49%,transparent 50%),linear-gradient(120deg,transparent 48%,rgba(94,140,255,.18) 49%,transparent 50%);background-size:120px 90px}
    .map-title{position:absolute;left:27px;top:24px;color:var(--muted)}
    .pin{position:absolute;width:13px;height:13px;border-radius:50%;background:var(--cyan);box-shadow:0 0 0 8px rgba(69,228,208,.14),0 0 22px var(--cyan)}
    .pin.one{left:28%;top:42%}.pin.two{left:62%;top:29%;background:var(--gold)}.pin.three{left:73%;top:65%;background:var(--blue)}
    .map-label{position:absolute;left:27px;bottom:25px;color:var(--ink);font-weight:700}
    .region-list{display:grid;gap:12px}
    .region-item{display:flex;justify-content:space-between;gap:18px;align-items:center;background:var(--panel);border:1px solid var(--line);border-radius:15px;padding:16px 18px}
    .region-item small{display:block;color:var(--muted)}
    .region-item strong{font-size:15px}
    .region-item b{color:var(--cyan);font-size:13px}
    .path{display:grid;grid-template-columns:repeat(4,1fr);gap:0;border-top:1px solid var(--line)}
    .path-step{position:relative;padding:27px 25px 8px;border-right:1px solid var(--line)}
    .path-step:last-child{border-right:0}
    .path-step:before{content:"";position:absolute;top:-6px;left:25px;width:11px;height:11px;border-radius:50%;background:var(--cyan);box-shadow:0 0 0 5px var(--bg)}
    .path-step span{color:var(--cyan);font-size:12px;font-weight:800}
    .path-step h3{margin:12px 0 8px}
    .path-step p{color:var(--muted);font-size:14px}
    .progress-wrap{display:grid;grid-template-columns:1fr 1fr;gap:18px}
    .progress-card{background:var(--panel);border:1px solid var(--line);padding:24px;border-radius:16px}
    .progress-top{display:flex;justify-content:space-between;margin-bottom:16px}
    .progress-top span{color:var(--muted)} .progress-top b{color:var(--gold)}
    .bar{height:7px;background:#1a2c48;border-radius:10px;overflow:hidden}.bar i{display:block;height:100%;background:linear-gradient(90deg,var(--blue),var(--cyan));border-radius:10px}
    .result-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}
    .result{display:flex;gap:18px;align-items:center;background:var(--panel-2);border:1px solid var(--line);border-radius:17px;padding:20px}
    .result-score{font-size:28px;font-weight:800;color:var(--cyan);min-width:58px}
    .result p{color:var(--muted);font-size:13px}
    .news-list{display:grid;grid-template-columns:1.2fr .8fr;gap:18px}
    .news-main{min-height:290px;padding:30px;border-radius:var(--radius);background:linear-gradient(135deg,#17345b,#0d1c34);border:1px solid var(--line);display:flex;flex-direction:column;justify-content:end}
    .news-main h3{font-size:27px;max-width:580px;margin:13px 0}
    .news-main p,.news-side p{color:var(--muted);font-size:14px}
    .news-side{display:grid;gap:12px}
    .news-line{display:block;background:var(--panel);border:1px solid var(--line);border-radius:15px;padding:18px;transition:.25s}
    .news-line:hover{border-color:var(--blue);background:var(--panel-2)}
    .news-line time{color:var(--cyan);font-size:12px}.news-line h3{font-size:17px;margin:5px 0}
    .compare{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);border:1px solid var(--line);border-radius:18px;overflow:hidden}
    .compare-item{background:var(--panel);padding:26px}.compare-item.featured{background:#102945}.compare-item h3{margin-bottom:18px}.compare-item ul{list-style:none;display:grid;gap:12px;color:var(--muted);font-size:14px}.compare-item li:before{content:"✓";color:var(--cyan);margin-right:9px}
    .quote-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
    .quote{padding:25px;background:var(--panel);border:1px solid var(--line);border-radius:17px}
    .quote p{color:#c4d0e2}.quote footer{margin-top:18px;color:var(--dim);font-size:13px}
    .trust{display:flex;flex-wrap:wrap;gap:12px;justify-content:center}.trust span{border:1px solid var(--line);color:var(--muted);padding:10px 16px;border-radius:30px;background:rgba(255,255,255,.025)}
    .closing{padding:74px 0;background:linear-gradient(110deg,#102c4a,#0e1a31);text-align:center}.closing h2{max-width:760px;margin:0 auto 15px}.closing p{color:var(--muted);max-width:650px;margin:0 auto}.closing .btn{margin-top:26px}
    .footer{padding:46px 0 26px;border-top:1px solid var(--line);background:#050c18}.footer-top{display:flex;justify-content:space-between;gap:35px}.footer p{color:var(--muted);max-width:430px;margin-top:13px;font-size:13px}.footer-links{display:flex;gap:28px;color:var(--muted);font-size:14px}.footer-links a:hover{color:var(--cyan)}.copyright{border-top:1px solid var(--line);margin-top:35px;padding-top:20px;color:var(--dim);font-size:12px;display:flex;justify-content:space-between;gap:20px}
    :focus-visible{outline:3px solid rgba(69,228,208,.55);outline-offset:3px}
    @media(max-width:900px){.nav-links{gap:0}.nav-tools .status{display:none}.matrix,.news-list{grid-template-columns:1fr}.cards-3,.quote-grid{grid-template-columns:repeat(2,1fr)}}
    @media(max-width:680px){.container{width:min(100% - 28px,var(--container))}.topbar{height:68px}.menu-toggle{display:block}.nav-links{display:none;position:absolute;top:68px;left:14px;right:14px;background:#0b1930;border:1px solid var(--line);border-radius:15px;padding:10px;flex-direction:column;align-items:stretch}.nav-links.open{display:flex}.nav-links a{padding:12px 14px}.nav-cta{display:none}.hero{padding:58px 0}.hero h1{font-size:40px}.hero-copy>p{font-size:15px}.local-strip{display:grid;margin-top:38px}.local-item{border-right:0;border-bottom:1px solid var(--line)}.local-item:last-child{border-bottom:0}.section{padding:68px 0}.section-head{display:block;margin-bottom:26px}.section-head p{margin-top:14px}.cards-3,.quote-grid,.progress-wrap,.result-grid,.compare{grid-template-columns:1fr}.path{grid-template-columns:1fr;border-top:0}.path-step{border-right:0;border-top:1px solid var(--line);padding-left:28px}.path-step:before{top:-6px;left:0}.footer-top,.copyright{display:block}.footer-links{margin-top:22px;flex-wrap:wrap}.brand span:last-child{max-width:190px;overflow:hidden;text-overflow:ellipsis}.closing{padding:62px 0 94px}}
    @media(max-width:520px){.hero h1{font-size:34px}.hero-actions{display:grid}.btn{width:100%}.cards-3{grid-template-columns:1fr}.map-panel{min-height:270px}.region-item{align-items:flex-start}.result{align-items:flex-start}.news-main{min-height:250px;padding:22px}.news-main h3{font-size:22px}.footer-links{display:grid;grid-template-columns:1fr 1fr;gap:12px}.fixed-bar .fixed-copy{display:none}}
    .fixed-bar{position:fixed;left:50%;bottom:18px;z-index:20;transform:translateX(-50%);width:min(760px,calc(100% - 28px));display:flex;align-items:center;justify-content:space-between;gap:18px;padding:12px 13px 12px 20px;border:1px solid rgba(69,228,208,.3);border-radius:16px;background:rgba(8,21,38,.94);backdrop-filter:blur(18px);box-shadow:0 18px 55px rgba(0,0,0,.42)}
    .fixed-copy strong{display:block;font-size:14px}.fixed-copy span{display:block;color:var(--muted);font-size:12px}.fixed-bar .btn{padding:10px 17px;white-space:nowrap}

/* roulang page: category1 */
:root{
 --ink:#eaf1ff;
 --muted:#91a2bf;
 --dim:#61718e;
 --bg:#07101f;
 --panel:#0d1a30;
 --panel-2:#10223c;
 --line:rgba(153,180,220,.16);
 --cyan:#45e4d0;
 --blue:#5e8cff;
 --gold:#f4c76b;
 --danger:#ff6c83;
 --success:#54dea5;
 --radius:20px;
 --radius-sm:13px;
 --shadow:0 20px 55px rgba(0,0,0,.24);
 --shadow-soft:0 12px 34px rgba(0,0,0,.15);
 --container:1180px;
}
*,
*::before,
*::after{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
 margin:0;
 padding:0 0 78px;
 font-family:Inter,"PingFang SC","Microsoft YaHei",Arial,sans-serif;
 background:var(--bg);
 color:var(--ink);
 line-height:1.75;
 font-size:15px;
 -webkit-font-smoothing:antialiased;
}
body.menu-open{overflow:hidden}
h1,h2,h3,h4,p,ul,ol,dl,dd{margin-top:0}
h1,h2,h3,h4{line-height:1.25;letter-spacing:-.025em}
h1{font-size:clamp(36px,5.2vw,68px);font-weight:850}
h2{font-size:clamp(28px,3.2vw,43px);font-weight:800}
h3{font-size:20px;font-weight:750}
p{margin-bottom:0}
ul,ol{padding-left:0}
a{color:inherit;text-decoration:none}
button,input{font:inherit}
button{cursor:pointer}
img,svg{max-width:100%;display:block}
button:focus-visible,
a:focus-visible,
input:focus-visible,
summary:focus-visible{
 outline:3px solid rgba(69,228,208,.45);
 outline-offset:3px;
}
.container{width:min(var(--container),calc(100% - 40px));margin:auto}
.eyebrow{
 display:inline-flex;
 align-items:center;
 gap:8px;
 color:var(--cyan);
 font-size:12px;
 letter-spacing:.12em;
 font-weight:800;
}
.eyebrow::before{content:"";width:22px;height:2px;background:var(--cyan)}
.section{padding:92px 0;border-top:1px solid rgba(153,180,220,.08)}
.section.alt{background:#09172b}
.section.deep{background:#050d1a}
.section-head{
 display:flex;
 justify-content:space-between;
 gap:32px;
 align-items:end;
 margin-bottom:38px;
}
.section-head .heading-copy{max-width:690px}
.section-head h2{margin:12px 0 0}
.section-head p{color:var(--muted);max-width:520px}
.topbar{
 height:76px;
 display:flex;
 align-items:center;
 border-bottom:1px solid var(--line);
 background:rgba(7,16,31,.86);
 backdrop-filter:blur(18px);
 -webkit-backdrop-filter:blur(18px);
 position:sticky;
 top:0;
 z-index:100;
}
.nav{display:flex;align-items:center;justify-content:space-between;gap:28px;position:relative}
.brand{
 display:flex;
 align-items:center;
 gap:11px;
 font-weight:800;
 letter-spacing:-.03em;
 white-space:nowrap;
}
.brand-mark{
 width:34px;
 height:34px;
 border-radius:11px;
 background:linear-gradient(135deg,var(--cyan),var(--blue));
 display:grid;
 place-items:center;
 color:#07101f;
 font-weight:900;
 box-shadow:0 0 25px rgba(69,228,208,.3);
}
.brand span:last-child{font-size:15px}
.nav-links{display:flex;align-items:center;gap:8px;margin-left:auto}
.nav-links a{
 padding:9px 15px;
 border-radius:10px;
 color:var(--muted);
 transition:color .25s,background .25s,transform .25s;
}
.nav-links a:hover,
.nav-links a.active{
 color:var(--ink);
 background:rgba(94,140,255,.13);
}
.nav-links a:active{transform:scale(.97)}
.nav-tools{display:flex;align-items:center;gap:12px}
.status{
 display:inline-flex;
 align-items:center;
 gap:8px;
 color:var(--muted);
 font-size:12px;
 white-space:nowrap;
}
.status-dot{
 width:8px;
 height:8px;
 border-radius:50%;
 background:var(--success);
 box-shadow:0 0 0 5px rgba(84,222,165,.11);
}
.nav-cta,.btn{
 display:inline-flex;
 justify-content:center;
 align-items:center;
 gap:8px;
 border:1px solid transparent;
 border-radius:12px;
 padding:12px 20px;
 font-weight:750;
 line-height:1.2;
 transition:transform .25s,background .25s,border-color .25s,box-shadow .25s;
}
.nav-cta,.btn.primary{
 background:var(--cyan);
 color:#06151b;
 box-shadow:0 8px 24px rgba(69,228,208,.18);
}
.nav-cta:hover,.btn.primary:hover{
 transform:translateY(-2px);
 background:#7af1e2;
 box-shadow:0 12px 30px rgba(69,228,208,.22);
}
.btn.ghost{
 border-color:var(--line);
 color:var(--ink);
 background:rgba(255,255,255,.025);
}
.btn.ghost:hover{
 transform:translateY(-2px);
 border-color:var(--cyan);
 background:rgba(69,228,208,.08);
}
.btn.small{padding:10px 15px;font-size:13px}
.menu-toggle{
 display:none;
 width:42px;
 height:42px;
 border:1px solid var(--line);
 border-radius:11px;
 background:rgba(255,255,255,.03);
 color:var(--ink);
 font-size:22px;
 align-items:center;
 justify-content:center;
}
.menu-toggle:hover{background:rgba(69,228,208,.08);border-color:rgba(69,228,208,.4)}
.channel-hero{
 position:relative;
 overflow:hidden;
 padding:64px 0 72px;
 background:
 radial-gradient(circle at 83% 20%,rgba(94,140,255,.2),transparent 29%),
 radial-gradient(circle at 17% 8%,rgba(69,228,208,.1),transparent 26%);
}
.channel-hero::after{
 content:"";
 position:absolute;
 inset:0;
 pointer-events:none;
 opacity:.24;
 background-image:
 linear-gradient(rgba(150,180,220,.08) 1px,transparent 1px),
 linear-gradient(90deg,rgba(150,180,220,.08) 1px,transparent 1px);
 background-size:42px 42px;
 mask-image:linear-gradient(to bottom,black,transparent);
}
.hero-shell{
 position:relative;
 z-index:1;
 border:1px solid var(--line);
 border-radius:28px;
 background:rgba(9,20,38,.8);
 box-shadow:var(--shadow);
 overflow:hidden;
}
.hero-content{padding:52px 48px}
.hero-content h1{margin:20px 0 22px}
.hero-content h1 em{font-style:normal;color:var(--cyan)}
.hero-lead{font-size:17px;color:#b9c7dc;max-width:720px}
.hero-actions{display:flex;gap:12px;margin-top:30px;flex-wrap:wrap}
.hero-notes{
 display:flex;
 gap:18px;
 flex-wrap:wrap;
 margin-top:26px;
 color:var(--muted);
 font-size:12px;
}
.hero-notes span{display:inline-flex;align-items:center;gap:7px}
.hero-notes i{
 width:6px;
 height:6px;
 border-radius:50%;
 background:var(--cyan);
}
.data-board{
 height:100%;
 padding:34px;
 background:linear-gradient(160deg,rgba(20,44,76,.96),rgba(8,18,34,.98));
 border-left:1px solid var(--line);
}
.board-head{
 display:flex;
 justify-content:space-between;
 align-items:center;
 gap:20px;
 margin-bottom:24px;
}
.board-head h2{font-size:19px;margin:0}
.live-badge,.tag,.badge{
 display:inline-flex;
 align-items:center;
 width:max-content;
 border-radius:8px;
 font-size:12px;
 font-weight:700;
}
.live-badge{
 gap:7px;
 padding:6px 9px;
 color:#9ff1d0;
 background:rgba(84,222,165,.1);
 border:1px solid rgba(84,222,165,.18);
}
.live-badge::before{
 content:"";
 width:7px;
 height:7px;
 border-radius:50%;
 background:var(--success);
}
.board-list{display:grid;gap:11px}
.board-row{
 display:grid;
 grid-template-columns:36px 1fr auto;
 gap:12px;
 align-items:center;
 padding:15px;
 border:1px solid rgba(153,180,220,.13);
 border-radius:14px;
 background:rgba(255,255,255,.025);
 transition:.25s;
}
.board-row:hover{border-color:rgba(69,228,208,.34);background:rgba(69,228,208,.045)}
.board-index{
 width:30px;
 height:30px;
 border-radius:9px;
 display:grid;
 place-items:center;
 color:var(--cyan);
 background:rgba(69,228,208,.09);
 font-weight:800;
}
.board-row strong{display:block;font-size:14px}
.board-row small{display:block;color:var(--dim);font-size:11px;margin-top:2px}
.board-state{font-size:12px;color:var(--gold);white-space:nowrap}
.notice-line{
 margin-top:16px;
 padding-top:16px;
 border-top:1px solid var(--line);
 color:var(--muted);
 font-size:12px;
}
.tag{padding:5px 9px;background:rgba(94,140,255,.13);color:#aebfff}
.badge{padding:5px 9px;background:rgba(69,228,208,.1);color:var(--cyan)}
.badge.gold{background:rgba(244,199,107,.1);color:var(--gold)}
.badge.red{background:rgba(255,108,131,.1);color:#ff9aac}
.cards-3{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.card{
 background:var(--panel);
 border:1px solid var(--line);
 border-radius:var(--radius);
 padding:27px;
 transition:transform .3s,border-color .3s,box-shadow .3s;
 box-shadow:0 10px 30px rgba(0,0,0,.1);
}
.card:hover{
 transform:translateY(-5px);
 border-color:rgba(69,228,208,.42);
 box-shadow:var(--shadow);
}
.card-icon{
 width:48px;
 height:48px;
 border-radius:14px;
 display:grid;
 place-items:center;
 margin-bottom:22px;
 color:var(--cyan);
 background:rgba(69,228,208,.08);
 border:1px solid rgba(69,228,208,.12);
}
.card-icon svg{width:23px;height:23px}
.card h3{margin-bottom:10px}
.card p{color:var(--muted);font-size:14px}
.card-meta{
 display:flex;
 align-items:center;
 justify-content:space-between;
 gap:12px;
 margin-top:20px;
 padding-top:17px;
 border-top:1px solid var(--line);
 color:var(--dim);
 font-size:12px;
}
.live-layout{
 display:grid;
 grid-template-columns:minmax(0,1.45fr) minmax(280px,.55fr);
 gap:20px;
}
.match-stage{
 border:1px solid var(--line);
 border-radius:24px;
 overflow:hidden;
 background:var(--panel);
 box-shadow:var(--shadow-soft);
}
.match-stage-top{
 display:flex;
 align-items:center;
 justify-content:space-between;
 gap:16px;
 padding:20px 24px;
 border-bottom:1px solid var(--line);
 background:#10213a;
}
.match-stage-top strong{font-size:16px}
.match-stage-top span{color:var(--muted);font-size:12px}
.match-panel{padding:28px}
.match-status{
 display:flex;
 justify-content:space-between;
 align-items:center;
 gap:18px;
 margin-bottom:28px;
}
.match-status p{color:var(--muted);font-size:13px}
.teams{
 display:grid;
 grid-template-columns:1fr auto 1fr;
 gap:24px;
 align-items:center;
}
.team{text-align:center}
.team-mark{
 width:72px;
 height:72px;
 margin:0 auto 12px;
 border-radius:22px;
 display:grid;
 place-items:center;
 font-size:24px;
 font-weight:900;
 color:#07101f;
 background:linear-gradient(135deg,var(--cyan),#a5fff3);
}
.team:last-child .team-mark{background:linear-gradient(135deg,var(--blue),#b7c7ff)}
.team small{display:block;color:var(--muted);margin-top:5px}
.score-box{text-align:center}
.score-box strong{font-size:38px;letter-spacing:.08em}
.score-box small{display:block;color:var(--dim);font-size:12px}
.match-stats{
 display:grid;
 grid-template-columns:repeat(3,1fr);
 gap:12px;
 margin-top:27px;
}
.stat{
 padding:14px;
 border:1px solid var(--line);
 border-radius:13px;
 background:rgba(255,255,255,.018);
 text-align:center;
}
.stat strong{display:block;color:var(--ink);font-size:16px}
.stat span{color:var(--dim);font-size:11px}
.data-disclaimer{
 padding:16px 24px;
 border-top:1px solid var(--line);
 color:var(--muted);
 font-size:12px;
 background:rgba(255,255,255,.015);
}
.side-stack{display:grid;gap:14px}
.progress-card{
 background:var(--panel);
 border:1px solid var(--line);
 padding:22px;
 border-radius:16px;
}
.progress-card h3{font-size:16px;margin-bottom:7px}
.progress-card p{font-size:12px;color:var(--muted)}
.progress-track{
 height:7px;
 margin:17px 0 11px;
 overflow:hidden;
 border-radius:99px;
 background:#061020;
}
.progress-track span{
 display:block;
 height:100%;
 border-radius:inherit;
 background:linear-gradient(90deg,var(--cyan),var(--blue));
}
.progress-meta{display:flex;justify-content:space-between;color:var(--dim);font-size:11px}
.timeline{
 position:relative;
 display:grid;
 grid-template-columns:repeat(4,1fr);
 gap:16px;
}
.timeline::before{
 content:"";
 position:absolute;
 top:32px;
 left:8%;
 right:8%;
 height:1px;
 background:var(--line);
}
.timeline-item{
 position:relative;
 z-index:1;
 padding:24px;
 border:1px solid var(--line);
 border-radius:18px;
 background:var(--panel);
 min-height:230px;
 transition:.3s;
}
.timeline-item:hover{transform:translateY(-4px);border-color:rgba(94,140,255,.4)}
.step{
 width:38px;
 height:38px;
 border-radius:12px;
 display:grid;
 place-items:center;
 margin-bottom:25px;
 background:#10294a;
 color:var(--cyan);
 border:1px solid rgba(69,228,208,.18);
 font-weight:800;
}
.timeline-item h3{margin-bottom:10px}
.timeline-item p{color:var(--muted);font-size:13px}
.timeline-item ul{
 list-style:none;
 margin:17px 0 0;
 display:grid;
 gap:8px;
 color:#b8c5d9;
 font-size:12px;
}
.timeline-item li::before{content:"·";color:var(--cyan);margin-right:7px}
.voice-grid{
 display:grid;
 grid-template-columns:.9fr 1.1fr;
 gap:20px;
 align-items:stretch;
}
.voice-summary{
 padding:36px;
 border-radius:24px;
 background:linear-gradient(145deg,#122c4b,#0b192e);
 border:1px solid var(--line);
}
.voice-summary h2{margin:14px 0 18px}
.voice-summary p{color:var(--muted)}
.concern-list{display:grid;gap:12px;margin-top:27px}
.concern{
 display:flex;
 align-items:center;
 justify-content:space-between;
 gap:15px;
 padding:14px 16px;
 border-radius:12px;
 background:rgba(255,255,255,.035);
}
.concern span{font-size:13px}
.concern b{color:var(--cyan);font-size:12px}
.quote-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.quote{
 position:relative;
 background:var(--panel);
 border:1px solid var(--line);
 border-radius:18px;
 padding:25px;
}
.quote::before{
 content:"“";
 position:absolute;
 right:20px;
 top:8px;
 color:rgba(69,228,208,.15);
 font-size:58px;
 font-weight:900;
}
.quote p{position:relative;color:#becadd;font-size:14px}
.quote footer{
 margin-top:20px;
 padding-top:15px;
 border-top:1px solid var(--line);
 color:var(--dim);
 font-size:12px;
}
.compare-wrap{
 display:grid;
 grid-template-columns:1fr 1fr;
 border:1px solid var(--line);
 border-radius:24px;
 overflow:hidden;
 box-shadow:var(--shadow-soft);
}
.compare-item{background:var(--panel);padding:35px}
.compare-item.featured{background:#102945}
.compare-item + .compare-item{border-left:1px solid var(--line)}
.compare-item h3{margin:16px 0 20px;font-size:24px}
.compare-item ul{list-style:none;display:grid;gap:14px;color:var(--muted);font-size:14px}
.compare-item li{display:flex;align-items:flex-start;gap:10px}
.compare-item li::before{
 content:"✓";
 width:20px;
 height:20px;
 flex:0 0 20px;
 border-radius:50%;
 display:grid;
 place-items:center;
 color:var(--cyan);
 background:rgba(69,228,208,.09);
 font-size:11px;
 font-weight:900;
 margin-top:2px;
}
.compare-item:not(.featured) li::before{
 content:"—";
 color:var(--dim);
 background:rgba(97,113,142,.1);
}
.ticket-layout{
 display:grid;
 grid-template-columns:1.05fr .95fr;
 gap:20px;
}
.ticket-main{
 padding:38px;
 border-radius:24px;
 background:linear-gradient(145deg,#172b48,#0c1a30);
 border:1px solid var(--line);
}
.ticket-main h2{margin:14px 0 17px}
.ticket-main>p{color:var(--muted);max-width:650px}
.channel-list{
 display:grid;
 grid-template-columns:repeat(3,1fr);
 gap:12px;
 margin-top:27px;
}
.channel-box{
 padding:17px;
 border-radius:14px;
 border:1px solid var(--line);
 background:rgba(255,255,255,.025);
}
.channel-box strong{display:block;font-size:14px}
.channel-box span{display:block;margin-top:5px;color:var(--dim);font-size:11px}
.warning-box{
 padding:32px;
 border-radius:24px;
 background:#180f1c;
 border:1px solid rgba(255,108,131,.2);
}
.warning-box h3{display:flex;align-items:center;gap:10px;margin-bottom:17px}
.warning-list{list-style:none;display:grid;gap:13px;margin:0}
.warning-list li{
 display:flex;
 gap:11px;
 color:#c7b8c8;
 font-size:13px;
}
.warning-list li::before{
 content:"!";
 display:grid;
 place-items:center;
 flex:0 0 20px;
 width:20px;
 height:20px;
 border-radius:7px;
 background:rgba(255,108,131,.12);
 color:var(--danger);
 font-weight:900;
}
.ticket-action{display:flex;gap:12px;flex-wrap:wrap;margin-top:26px}
.news-layout{
 display:grid;
 grid-template-columns:1.15fr .85fr;
 gap:20px;
}
.news-main{
 min-height:360px;
 padding:34px;
 border-radius:var(--radius);
 background:
 linear-gradient(180deg,transparent,rgba(4,12,25,.92)),
 radial-gradient(circle at 75% 20%,rgba(94,140,255,.42),transparent 34%),
 linear-gradient(135deg,#17345b,#0d1c34);
 border:1px solid var(--line);
 display:flex;
 flex-direction:column;
 justify-content:end;
}
.news-main h3{font-size:29px;max-width:650px;margin:14px 0 10px}
.news-main p{color:#aebcd2;font-size:14px;max-width:630px}
.news-main .news-meta{margin-top:20px}
.news-side{display:grid;gap:12px}
.news-item{
 display:grid;
 grid-template-columns:90px 1fr;
 gap:17px;
 align-items:center;
 padding:17px;
 border-radius:16px;
 border:1px solid var(--line);
 background:var(--panel);
 transition:.25s;
}
.news-item:hover{border-color:rgba(69,228,208,.35);transform:translateX(3px)}
.news-thumb{
 min-height:82px;
 border-radius:12px;
 background:
 radial-gradient(circle at 70% 30%,rgba(69,228,208,.32),transparent 25%),
 linear-gradient(135deg,#16355d,#0b192f);
 display:grid;
 place-items:center;
 color:var(--cyan);
 font-weight:900;
}
.news-item h3{font-size:15px;margin:7px 0 4px}
.news-item p{color:var(--dim);font-size:11px}
.news-meta{display:flex;align-items:center;gap:10px;color:var(--dim);font-size:11px}
.faq-layout{display:grid;grid-template-columns:.72fr 1.28fr;gap:35px}
.faq-intro{
 position:sticky;
 top:110px;
 align-self:start;
 padding:30px;
 border:1px solid var(--line);
 border-radius:20px;
 background:var(--panel);
}
.faq-intro h2{margin:14px 0 17px}
.faq-intro p{color:var(--muted)}
.faq-list{display:grid;gap:12px}
.faq-item{
 border:1px solid var(--line);
 border-radius:16px;
 background:var(--panel);
 overflow:hidden;
}
.faq-item[open]{border-color:rgba(69,228,208,.3);background:#0e2038}
.faq-item summary{
 display:flex;
 align-items:center;
 justify-content:space-between;
 gap:18px;
 padding:21px 23px;
 cursor:pointer;
 list-style:none;
 font-weight:700;
}
.faq-item summary::-webkit-details-marker{display:none}
.faq-item summary::after{
 content:"+";
 width:27px;
 height:27px;
 flex:0 0 27px;
 border-radius:8px;
 display:grid;
 place-items:center;
 color:var(--cyan);
 background:rgba(69,228,208,.08);
 transition:.25s;
}
.faq-item[open] summary::after{content:"−";transform:rotate(180deg)}
.faq-answer{
 padding:0 23px 22px;
 color:var(--muted);
 font-size:14px;
}
.assurance{
 display:grid;
 grid-template-columns:1.1fr repeat(3,.63fr);
 border:1px solid var(--line);
 border-radius:22px;
 overflow:hidden;
 background:var(--panel);
}
.assurance-copy{padding:30px}
.assurance-copy h2{font-size:27px;margin:10px 0}
.assurance-copy p{color:var(--muted);font-size:13px}
.assurance-item{
 padding:28px 23px;
 border-left:1px solid var(--line);
 display:flex;
 flex-direction:column;
 justify-content:center;
}
.assurance-item strong{font-size:15px}
.assurance-item span{color:var(--dim);font-size:12px;margin-top:6px}
.footer{padding:46px 0 104px;border-top:1px solid var(--line);background:#050c18}
.footer-top{display:flex;justify-content:space-between;gap:35px}
.footer p{color:var(--muted);max-width:430px;margin-top:13px;font-size:13px}
.footer-links{display:flex;gap:28px;color:var(--muted);font-size:14px;align-items:flex-start;flex-wrap:wrap}
.footer-links a{transition:.25s}
.footer-links a:hover{color:var(--cyan)}
.copyright{
 border-top:1px solid var(--line);
 margin-top:35px;
 padding-top:20px;
 color:var(--dim);
 font-size:12px;
 display:flex;
 justify-content:space-between;
 gap:20px;
}
.fixed-conversion{
 position:fixed;
 left:50%;
 bottom:16px;
 transform:translateX(-50%);
 z-index:90;
 width:min(920px,calc(100% - 28px));
 display:flex;
 align-items:center;
 justify-content:space-between;
 gap:22px;
 padding:13px 14px 13px 20px;
 border:1px solid rgba(153,180,220,.23);
 border-radius:17px;
 background:rgba(10,23,42,.94);
 backdrop-filter:blur(18px);
 -webkit-backdrop-filter:blur(18px);
 box-shadow:0 20px 55px rgba(0,0,0,.44);
}
.fixed-copy{display:flex;align-items:center;gap:13px;min-width:0}
.fixed-icon{
 width:38px;
 height:38px;
 flex:0 0 38px;
 border-radius:12px;
 display:grid;
 place-items:center;
 background:rgba(69,228,208,.1);
 color:var(--cyan);
 font-weight:900;
}
.fixed-copy strong{display:block;font-size:14px}
.fixed-copy span{display:block;color:var(--muted);font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.fixed-actions{display:flex;gap:9px;flex:0 0 auto}

@media (max-width:1024px){
 .container{width:min(100% - 32px,var(--container))}
 .nav-tools .status{display:none}
 .hero-content{padding:42px 34px}
 .data-board{padding:28px}
 .cards-3{grid-template-columns:repeat(2,1fr)}
 .live-layout,.news-layout{grid-template-columns:1fr}
 .side-stack{grid-template-columns:repeat(3,1fr)}
 .timeline{grid-template-columns:repeat(2,1fr)}
 .timeline::before{display:none}
 .voice-grid{grid-template-columns:1fr}
 .ticket-layout{grid-template-columns:1fr}
 .assurance{grid-template-columns:1fr 1fr}
 .assurance-item{border-left:0;border-top:1px solid var(--line)}
 .assurance-item:nth-child(even){border-left:1px solid var(--line)}
 .assurance-copy{grid-column:1/-1}
}
@media (max-width:768px){
 body{padding-bottom:92px}
 .container{width:min(100% - 28px,var(--container))}
 .topbar{height:68px}
 .menu-toggle{display:inline-flex}
 .nav-links{
  display:none;
  position:absolute;
  top:58px;
  left:0;
  right:0;
  padding:12px;
  border:1px solid var(--line);
  border-radius:15px;
  background:#0b1930;
  box-shadow:var(--shadow);
  flex-direction:column;
  align-items:stretch;
  z-index:110;
 }
 .nav-links.open{display:flex}
 .nav-links a{width:100%;padding:12px 14px}
 .nav-tools .nav-cta{display:none}
 .channel-hero{padding:38px 0 48px}
 .hero-shell>.row{display:block}
 .hero-content{padding:34px 25px}
 .hero-content h1{font-size:clamp(34px,10vw,52px)}
 .hero-lead{font-size:15px}
 .data-board{border-left:0;border-top:1px solid var(--line);padding:25px}
 .section{padding:68px 0}
 .section-head{display:block;margin-bottom:28px}
 .section-head p{margin-top:16px}
 .cards-3{grid-template-columns:1fr}
 .live-layout{grid-template-columns:1fr}
 .side-stack{grid-template-columns:1fr}
 .teams{gap:12px}
 .team-mark{width:58px;height:58px;border-radius:17px}
 .score-box strong{font-size:29px}
 .match-stats{grid-template-columns:1fr}
 .timeline{grid-template-columns:1fr}
 .timeline-item{min-height:auto}
 .quote-grid{grid-template-columns:1fr}
 .compare-wrap{grid-template-columns:1fr}
 .compare-item + .compare-item{border-left:0;border-top:1px solid var(--line)}
 .channel-list{grid-template-columns:1fr}
 .faq-layout{grid-template-columns:1fr}
 .faq-intro{position:static}
 .footer-top{flex-direction:column}
 .footer-links{gap:16px 22px}
 .copyright{flex-direction:column;gap:7px}
 .fixed-conversion{bottom:10px;padding:11px 12px}
 .fixed-copy span{max-width:250px}
}
@media (max-width:520px){
 .container{width:min(100% - 22px,var(--container))}
 .brand span:last-child{font-size:13px}
 .brand-mark{width:32px;height:32px}
 .hero-content{padding:29px 20px}
 .hero-actions{display:grid}
 .hero-actions .btn{width:100%}
 .hero-notes{display:grid;gap:8px}
 .data-board{padding:21px 18px}
 .board-row{grid-template-columns:31px 1fr;padding:13px}
 .board-state{grid-column:2}
 .section{padding:58px 0}
 .card,.ticket-main,.warning-box,.voice-summary{padding:23px}
 .match-stage-top{align-items:flex-start;flex-direction:column}
 .match-panel{padding:22px 16px}
 .teams{grid-template-columns:1fr}
 .score-box{order:-1}
 .team{display:grid;grid-template-columns:52px 1fr;text-align:left;align-items:center;column-gap:12px}
 .team-mark{width:52px;height:52px;margin:0;grid-row:1/3}
 .team small{margin:0}
 .news-main{min-height:320px;padding:25px}
 .news-main h3{font-size:23px}
 .news-item{grid-template-columns:70px 1fr;padding:13px}
 .news-thumb{min-height:72px}
 .assurance{grid-template-columns:1fr}
 .assurance-copy{grid-column:auto}
 .assurance-item:nth-child(even){border-left:0}
 .fixed-copy span{display:none}
 .fixed-icon{display:none}
 .fixed-conversion{gap:10px;padding-left:14px}
 .fixed-actions .ghost{display:none}
 .fixed-actions .btn{padding:11px 14px}
}

/* 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}
