/* roulang page: index */
:root{--bg:#f5f6fb;--paper:#fff;--ink:#17213a;--muted:#626d83;--line:#e2e6f0;--primary:#6551dc;--secondary:#24b8ad;--dark:#101528;--radius:24px;--shadow:0 16px 45px rgba(29,37,76,.07);--gradient:linear-gradient(115deg,#6450d8,#447cdb 58%,#239f9f)}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:110px}
body{margin:0;background:var(--bg);color:var(--ink);font-family:Inter,"PingFang SC","Microsoft YaHei",sans-serif;font-size:16px;line-height:1.8;-webkit-font-smoothing:antialiased}
a{color:var(--primary);text-decoration:none;transition:color .2s,background .2s,transform .2s}
a:hover{color:#4230af}
img,svg{max-width:100%;vertical-align:middle}
button,input{font:inherit}
button,a,input,summary{ -webkit-tap-highlight-color:transparent}
:focus-visible{outline:3px solid var(--secondary);outline-offset:5px}
::selection{background:#ded8ff}
.container{max-width:1200px;padding-left:28px;padding-right:28px}
.site-header{position:sticky;top:16px;z-index:100;margin:22px auto 0;max-width:1144px;width:calc(100% - 56px)}
.navbar{padding:15px 22px;border:1px solid rgba(226,230,240,.9);border-radius:22px;background:rgba(255,255,255,.95);backdrop-filter:blur(18px);box-shadow:0 8px 32px #141b3a0a;gap:20px}
.navbar-brand{display:flex;align-items:center;gap:11px;font-weight:800;color:var(--ink);font-size:19px;margin:0}
.brand-icon{display:grid;place-items:center;width:37px;height:37px;border-radius:12px;background:var(--gradient);color:white;font-size:19px;font-weight:900}
.navbar-nav{gap:9px}
.navbar .nav-link{padding:8px 16px!important;border-radius:11px;font-size:14px;font-weight:600;color:var(--muted)}
.navbar .nav-link.active{background:#eeebff;color:var(--primary)}
.navbar .nav-link:hover{background:#f2f3f8;color:var(--primary)}
.navbar-toggler{border:1px solid var(--line);border-radius:10px;font-size:14px;padding:9px 12px;color:var(--ink)}
.navbar-toggler:focus{box-shadow:none}
.header-note{font-size:12px;color:var(--muted);border-left:1px solid var(--line);padding-left:20px;margin-left:16px}
h1,h2,h3,h4{font-weight:750;line-height:1.3;letter-spacing:-.035em}
h1{font-size:clamp(34px,5.2vw,64px);max-width:900px;margin:20px 0 24px}
h2{font-size:32px;margin-bottom:20px}
h3{font-size:20px;margin-bottom:12px}
p{color:var(--muted);margin:0 0 18px}
section{padding:72px 0;border-bottom:1px solid var(--line)}
section:last-child{border-bottom:0}
.section-intro{max-width:780px;margin-bottom:30px}
.eyebrow{display:flex;align-items:center;gap:10px;color:var(--primary);font-size:12px;font-weight:750;letter-spacing:.14em;margin-bottom:14px}
.eyebrow::before{content:"";width:24px;height:2px;background:currentColor}
.hero{padding:50px 0 62px}
.hero-stage{position:relative;isolation:isolate;overflow:hidden;border-radius:32px;padding:54px 52px 0;background:var(--dark);color:white;box-shadow:var(--shadow)}
.hero-stage::before{content:"";position:absolute;z-index:-1;inset:0;background:radial-gradient(ellipse at 90% 0%,#5658b27a,transparent 58%),radial-gradient(ellipse at 15% 105%,#158f9563,transparent 60%)}
.hero-stage::after{content:"";position:absolute;z-index:-1;right:-60px;top:-190px;width:590px;height:590px;border:1px solid #ffffff13;border-radius:50%;box-shadow:0 0 0 75px #ffffff04,0 0 0 150px #ffffff03}
.hero .eyebrow{color:#a7e6de}
.hero h1 span{color:#b8b0ff}
.hero-copy{max-width:855px;color:#bfc8dd;line-height:1.95;font-size:16px}
.hero-actions{display:flex;gap:12px;flex-wrap:wrap;margin:28px 0 38px}
.btn{border-radius:12px;padding:12px 22px;font-size:14px;font-weight:700;transition:transform .2s,box-shadow .2s,background .2s;border:1px solid transparent}
.btn:hover{transform:translateY(-2px)}
.btn:active{transform:translateY(0)}
.btn-primary{--bs-btn-bg:var(--primary);--bs-btn-border-color:var(--primary);--bs-btn-hover-bg:#5541c5;--bs-btn-hover-border-color:#5541c5;background:var(--gradient);color:#fff;box-shadow:0 7px 20px #6551dc20}
.btn-light-outline{color:#eef0ff;border-color:#ffffff35;background:#ffffff08}
.btn-light-outline:hover{color:white;background:#ffffff17;border-color:#ffffff60}
.btn-soft{background:#eeeaff;color:var(--primary)}
.btn-soft:hover{background:#e2dcff;color:#4433ad}
.hero-route{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid #ffffff21;gap:24px;padding:24px 0}
.route-node{display:flex;gap:13px;align-items:center}
.route-number{display:grid;place-items:center;flex-shrink:0;border-radius:50%;border:1px solid #7d8aa4;width:31px;height:31px;font-size:11px;color:#aee5dd}
.route-node strong{font-size:14px;display:block}
.route-node small{font-size:12px;color:#9da9c0}
.surface{background:white}
.card{border:1px solid var(--line);border-radius:var(--radius);padding:28px;background:var(--paper);box-shadow:var(--shadow);height:100%;transition:transform .2s,border-color .2s}
.card:hover{transform:translateY(-4px);border-color:#c2b9f0}
.card p{font-size:14px;margin:0}
.icon-tile{display:grid;place-items:center;width:46px;height:46px;border-radius:14px;background:#eeebfd;color:var(--primary);font-size:20px;font-weight:800;margin-bottom:22px}
.badge{font-weight:600;font-size:11px;padding:7px 10px;border-radius:8px;letter-spacing:.02em}
.badge-soft{background:#ece8ff;color:#6551ce}
.badge-green{background:#e0f5ef;color:#167467}
.badge-gray{background:#edf0f6;color:#606c80}
.feature-panel{border-radius:var(--radius);background:var(--gradient);padding:34px;color:white;height:100%;position:relative;overflow:hidden}
.feature-panel p{color:#edf0ff;font-size:14px}
.feature-panel .large{font-size:70px;font-weight:850;letter-spacing:-.06em;line-height:1.1;margin:32px 0 20px}
.feature-panel .badge{background:#ffffff25;color:white}
.status-list{list-style:none;margin:0;padding:0}
.status-list li{display:flex;align-items:flex-start;gap:18px;padding:22px 0;border-bottom:1px solid var(--line)}
.status-list li:first-child{padding-top:0}
.status-list li:last-child{border-bottom:0;padding-bottom:0}
.status-dot{width:10px;height:10px;border:2px solid var(--secondary);border-radius:50%;margin-top:9px;flex:0 0 10px}
.status-list h3{font-size:18px;margin-bottom:7px}
.status-list p{font-size:14px;margin-bottom:0}
.section-heading-row{display:flex;justify-content:space-between;align-items:flex-start;gap:36px}
.section-heading-row .section-intro{max-width:670px}
.plan-track{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;position:relative;margin-top:35px}
.plan-item{border-top:2px solid #d5ceed;padding-top:23px}
.plan-item .badge{margin-bottom:17px}
.plan-item p{font-size:14px;margin:0}
.table-shell{overflow:auto;border-radius:20px;border:1px solid var(--line);background:#fff}
.table{min-width:540px;margin:0;--bs-table-bg:transparent;--bs-table-color:var(--ink);--bs-table-border-color:var(--line)}
.table>:not(caption)>*>*{padding:18px 24px;font-size:14px}
.table thead th{background:#f0edfc;color:#574594;font-weight:700}
.table tbody tr:last-child td{border-bottom:0}
.membership-note{padding:22px 26px;display:flex;align-items:center;justify-content:space-between;gap:20px;background:#eeebfa;border-radius:18px;margin-top:20px}
.membership-note p{margin:0;font-size:14px}
.btn:disabled{opacity:.55;white-space:nowrap;background:#d8d3eb;color:#57478c;border:none}
.change-row{display:grid;grid-template-columns:120px 1fr auto;gap:24px;padding:25px 0;border-top:1px solid var(--line);align-items:start}
.change-row h3{font-size:18px;margin:0 0 7px}
.change-row p{font-size:14px;margin:0}
.change-version{font-size:13px;font-weight:750;color:var(--primary)}
.source-strip{display:grid;grid-template-columns:1.1fr 1fr 1fr;gap:1px;background:var(--line);border:1px solid var(--line);border-radius:22px;overflow:hidden}
.source-cell{background:white;padding:28px}
.source-cell h3{font-size:18px}
.source-cell p{font-size:14px}
.text-link{font-weight:700;font-size:14px;display:inline-flex;gap:10px;align-items:center}
.text-link:hover{gap:15px}
.audience-card{border-left:3px solid var(--primary);padding:2px 0 2px 24px}
.audience-card p{font-size:14px;margin:0}
.download-card{display:flex;gap:22px;align-items:flex-start}
.download-card .icon-tile{flex-shrink:0;margin:0}
.download-card .text-link{margin-top:20px}
.notice{padding:17px 22px;background:#eeeff7;border:1px solid var(--line);border-radius:14px;font-size:13px;color:var(--muted);margin-top:23px}
.dark-section{background:var(--dark);color:#fff}
.dark-section p{color:#b7c1d5}
.dark-section .eyebrow{color:#8fdbd0}
.ticket-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.ticket-item{border:1px solid #ffffff20;border-radius:18px;padding:23px;background:#ffffff04}
.ticket-item h3{font-size:18px}
.ticket-item p{font-size:14px;margin:0}
.ticket-label{color:#a6a0ee;font-size:12px;margin-bottom:12px;display:block}
.channel-banner{display:flex;justify-content:space-between;gap:30px;align-items:center;border:1px solid #d9d2f9;background:linear-gradient(110deg,#eeeaff,#edf8f7);border-radius:24px;padding:34px}
.channel-banner p{font-size:14px;max-width:660px;margin-bottom:0}
.channel-banner .btn{white-space:nowrap}
.article-list{border-top:1px solid var(--line)}
.article-row{display:grid;grid-template-columns:60px 1fr 135px;gap:24px;padding:27px 0;border-bottom:1px solid var(--line)}
.article-number{color:#b1abc7;font-size:30px;line-height:1.3;font-weight:750}
.article-row h3{font-size:20px}
.article-row p{font-size:14px;margin:0;max-width:800px}
.article-meta{font-size:12px;color:var(--muted);text-align:right;padding-top:6px}
.metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}
.metric{padding:26px;border-radius:20px;background:white;border:1px solid var(--line)}
.metric strong{font-size:33px;font-weight:800;color:var(--primary);display:block;line-height:1.3;margin-bottom:12px}
.metric span{font-size:14px;font-weight:700}
.metric p{font-size:12px;margin:9px 0 0}
.subscribe-panel{background:var(--gradient);border-radius:28px;padding:42px;color:white}
.subscribe-panel p{color:#f0efff}
.subscribe-panel .eyebrow{color:#c8f7ee}
.preference-form{background:#ffffff12;padding:24px;border-radius:18px;border:1px solid #ffffff25}
.preference-form legend{font-size:16px;font-weight:700;margin-bottom:14px}
.preference-option{display:flex;align-items:center;gap:10px;padding:8px 0;font-size:14px;cursor:pointer}
.preference-option input{accent-color:#25d9be;width:17px;height:17px}
.preference-form .btn{margin-top:16px;background:white;color:#5643ba;width:100%}
.form-note{font-size:12px;line-height:1.7;margin:14px 0 0!important}
#preference-status{font-size:13px;min-height:24px;color:#fff;margin-top:12px}
.site-footer{background:#101528;color:#b4bfd3;padding:44px 0 24px}
.footer-top{display:flex;justify-content:space-between;gap:30px;padding-bottom:30px;border-bottom:1px solid #ffffff16}
.footer-brand{color:white;font-size:20px;font-weight:750;display:inline-block;margin-bottom:12px}
.footer-top p{max-width:540px;font-size:13px;color:#9ca9c0;margin:0}
.footer-links{display:flex;gap:24px;align-items:flex-start;font-size:13px;flex-wrap:wrap}
.footer-links a{color:#c1c9db}
.footer-links a:hover{color:white}
.footer-bottom{display:flex;justify-content:space-between;gap:20px;padding-top:23px;font-size:12px;color:#8795b0}
@media(min-width:1400px){.container{max-width:1200px}}
@media(max-width:1024px){.header-note{display:none}.hero-stage{padding:40px 36px 0}h2{font-size:28px}.card{padding:24px}.source-strip{grid-template-columns:1fr 1fr}.source-cell:first-child{grid-column:1/-1}.metrics{gap:12px}.metric{padding:22px}}
@media(max-width:768px){section{padding:52px 0}.container{padding-left:22px;padding-right:22px}.site-header{width:calc(100% - 32px);top:10px;margin-top:16px}.navbar{padding:12px 16px}.navbar-collapse{padding-top:14px}.navbar-nav{border-top:1px solid var(--line);padding-top:12px}.hero{padding-top:30px}.hero-stage{padding:34px 28px 0}.hero-route{gap:15px}.route-node{align-items:flex-start}.route-node small{font-size:11px}.section-heading-row{display:block}.plan-track{gap:18px}.membership-note{align-items:flex-start}.change-row{grid-template-columns:85px 1fr;gap:15px}.change-row>.badge{grid-column:2;justify-self:start}.channel-banner{align-items:flex-start;flex-direction:column}.article-row{grid-template-columns:42px 1fr;gap:16px}.article-meta{grid-column:2;text-align:left;padding:0}.metrics{grid-template-columns:repeat(2,1fr)}.subscribe-panel{padding:30px}.footer-top{flex-direction:column}.footer-bottom{flex-wrap:wrap}}
@media(max-width:520px){body{font-size:15px}.container{padding-left:18px;padding-right:18px}.navbar-brand{font-size:17px}.brand-icon{width:32px;height:32px}.hero-stage{padding:30px 22px 0;border-radius:24px}h1{font-size:35px}h2{font-size:25px}.hero-copy{font-size:14px}.hero-actions .btn{flex:1;text-align:center;padding:12px 14px}.hero-route{grid-template-columns:1fr;gap:16px}.route-node small{font-size:12px}.route-node strong{display:inline;margin-right:10px}.route-node{align-items:center}.plan-track{grid-template-columns:1fr}.plan-item{padding:22px 0 6px}.source-strip,.ticket-grid{grid-template-columns:1fr}.source-cell:first-child{grid-column:auto}.membership-note{flex-direction:column}.download-card{gap:16px}.download-card .icon-tile{width:37px;height:37px}.channel-banner{padding:26px}.metric{padding:20px 17px}.metric strong{font-size:28px}.subscribe-panel{padding:27px 21px}.feature-panel .large{font-size:58px}.footer-links{gap:18px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{transition:none!important}}

/* roulang page: category1 */
:root{--bg:#f5f6fb;--paper:#fff;--ink:#17213a;--muted:#626d83;--line:#e2e6f0;--primary:#6551dc;--secondary:#24b8ad;--dark:#101528;--radius:24px;--shadow:0 16px 45px rgba(29,37,76,.07);--gradient:linear-gradient(115deg,#6450d8,#447cdb 58%,#239f9f)}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:115px}
body{margin:0;background:var(--bg);color:var(--ink);font-family:Inter,"PingFang SC","Microsoft YaHei",sans-serif;font-size:16px;line-height:1.8;-webkit-font-smoothing:antialiased}
a{color:var(--primary);text-decoration:none;transition:color .2s,background .2s,transform .2s}
a:hover{color:#4230af}
img,svg{max-width:100%;vertical-align:middle}
button,input{font:inherit}
button,a,input,summary{-webkit-tap-highlight-color:transparent}
a:focus-visible,button:focus-visible,input:focus-visible,summary:focus-visible{outline:3px solid var(--secondary);outline-offset:5px}
.container{max-width:1200px;padding-left:28px;padding-right:28px}
.site-header{position:sticky;top:16px;z-index:100;margin:22px auto 0;max-width:1144px;width:calc(100% - 56px)}
.navbar{padding:15px 22px;border:1px solid rgba(226,230,240,.9);border-radius:22px;background:rgba(255,255,255,.95);backdrop-filter:blur(18px);box-shadow:0 8px 32px #141b3a0a;gap:20px}
.navbar-brand{display:flex;align-items:center;gap:11px;font-weight:800;color:var(--ink);font-size:19px;margin:0}
.brand-icon{display:grid;place-items:center;width:37px;height:37px;border-radius:12px;background:var(--gradient);color:white;font-size:19px;font-weight:900}
.navbar-nav{gap:9px}
.navbar .nav-link{padding:8px 16px!important;border-radius:11px;font-size:14px;font-weight:600;color:var(--muted)}
.navbar .nav-link.active{background:#eeebff;color:var(--primary)}
.navbar .nav-link:hover{background:#f2f3f8;color:var(--primary)}
.navbar-toggler{border:1px solid var(--line);border-radius:10px;font-size:14px;padding:9px 12px;color:var(--ink)}
.navbar-toggler:focus{box-shadow:none}
.header-note{font-size:12px;color:var(--muted);border-left:1px solid var(--line);padding-left:20px;margin-left:16px}
section{padding:72px 0;border-bottom:1px solid var(--line)}
section:last-child{border-bottom:0}
h1,h2,h3{font-weight:800;line-height:1.35;letter-spacing:-.025em}
h1{font-size:clamp(30px,4vw,48px);margin:14px 0 20px}
h2{font-size:clamp(25px,3vw,34px);margin-bottom:18px}
h3{font-size:19px;margin-bottom:12px}
p{color:var(--muted);margin-bottom:18px}
.section-intro{max-width:780px;margin-bottom:30px}
.eyebrow{display:flex;align-items:center;gap:10px;color:var(--primary);font-size:12px;font-weight:750;letter-spacing:.14em;margin-bottom:14px}
.eyebrow::before{content:"";width:24px;height:2px;background:currentColor}
.hero{padding:42px 0 60px}
.hero-stage{position:relative;isolation:isolate;overflow:hidden;border-radius:32px;padding:36px;background:var(--dark);color:white;box-shadow:var(--shadow)}
.hero-stage::before{content:"";position:absolute;z-index:-1;inset:0;background:radial-gradient(ellipse at 90% 0%,#5658b27a,transparent 58%),radial-gradient(ellipse at 15% 105%,#158f9563,transparent 60%)}
.hero .intro{max-width:870px;margin-bottom:30px}
.hero-stage p{color:#bfc8dd}
.btn{border-radius:12px;padding:12px 22px;font-size:14px;font-weight:700;transition:transform .2s,box-shadow .2s,background .2s;border:1px solid transparent}
.btn:hover{transform:translateY(-2px)}
.btn:active{transform:translateY(0)}
.btn-primary{--bs-btn-bg:var(--primary);--bs-btn-border-color:var(--primary);--bs-btn-hover-bg:#5541c5;--bs-btn-hover-border-color:#5541c5;background:var(--gradient);color:#fff;box-shadow:0 7px 20px #6551dc20}
.btn-light-outline{color:#eef0ff;border-color:#ffffff35;background:#ffffff08}
.btn-light-outline:hover{color:white;background:#ffffff17;border-color:#ffffff60}
.btn-soft{background:#eeeaff;color:var(--primary)}
.btn-soft:hover{background:#e2dcff;color:#4433ad}
.card{border:1px solid var(--line);border-radius:var(--radius);padding:28px;background:var(--paper);box-shadow:var(--shadow);height:100%;transition:transform .2s,border-color .2s}
.card:hover{transform:translateY(-4px);border-color:#c2b9f0}
.card p{font-size:14px;margin:0}
.badge{font-weight:600;font-size:11px;padding:7px 10px;border-radius:8px;letter-spacing:.02em}
.badge-soft{background:#ece8ff;color:#6551ce}
.badge-green{background:#e0f5ef;color:#167467}
.badge-gray{background:#edf0f6;color:#606c80}
.feature-panel{border-radius:var(--radius);background:var(--gradient);padding:34px;color:white;height:100%;position:relative;overflow:hidden}
.feature-panel p{color:#edf0ff;font-size:14px}
.feature-panel .large{font-size:65px;font-weight:850;letter-spacing:-.06em;line-height:1.1;margin:26px 0 20px}
.status-list{list-style:none;margin:0;padding:0}
.status-list li{display:flex;align-items:flex-start;gap:18px;padding:22px 0;border-bottom:1px solid var(--line)}
.status-list li:first-child{padding-top:0}
.status-list li:last-child{border-bottom:0;padding-bottom:0}
.status-list h3{font-size:18px;margin-bottom:7px}
.status-list p{font-size:14px;margin-bottom:0}
.plan-item{border-top:2px solid #d5ceed;padding-top:23px}
.plan-item .badge{margin-bottom:17px}
.plan-item p{font-size:14px;margin:0}
.audience-card{border-left:3px solid var(--primary);padding:2px 0 2px 24px}
.audience-card p{font-size:14px;margin:0}
.dark-section{background:var(--dark);color:#fff}
.dark-section p{color:#b7c1d5}
.dark-section .eyebrow{color:#8fdbd0}
.ticket-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.ticket-item{border:1px solid #ffffff20;border-radius:18px;padding:23px;background:#ffffff04}
.ticket-item h3{font-size:18px}
.ticket-item p{font-size:14px;margin:0}
.text-link{font-weight:700;font-size:14px;display:inline-flex;gap:10px;align-items:center}
.text-link:hover{gap:15px}
.cover{position:relative;min-height:285px;border-radius:20px;overflow:hidden;background:linear-gradient(140deg,#6551dc38,#24b8ad19);border:1px solid #ffffff20;display:flex;align-items:center;padding:30px}
.cover svg{position:absolute;width:65%;height:100%;right:-30px;top:0;opacity:.5}
.cover::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,#10152899,transparent);pointer-events:none}
.cover-copy{position:relative;z-index:1}
.cover-copy strong{display:block;font-size:68px;line-height:1.1;letter-spacing:-.07em;margin:18px 0}
.cover-copy p{margin:0;font-size:14px}
.preview-heading{display:flex;justify-content:space-between;gap:15px;align-items:center;margin-bottom:22px}
.preview-heading h2{font-size:20px;margin:0}
.countdown{display:flex;gap:12px;margin:16px 0}
.count-unit{flex:1;background:#ffffff09;border:1px solid #ffffff18;border-radius:12px;text-align:center;padding:12px 8px}
.count-unit b{font-size:29px;display:block;color:#d7d3ff;line-height:1.3}
.count-unit span{font-size:11px;color:#bfc8dd}
.small-note{font-size:12px!important;line-height:1.7}
.white-section{background:var(--paper)}
.number{width:34px;height:34px;flex-shrink:0;display:grid;place-items:center;background:#eeeaff;color:var(--primary);border-radius:10px;font-weight:800}
.status-strip{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:26px}
.status-tile{padding:22px;border:1px solid var(--line);border-radius:18px;background:white}
.status-tile strong{display:block;font-size:20px;margin:8px 0}
.status-tile p{font-size:13px;margin:0}
.article-list{border-top:1px solid var(--line)}
.article-row{display:grid;grid-template-columns:110px 1fr 105px;gap:24px;padding:27px 0;border-bottom:1px solid var(--line);align-items:start}
.article-row h3{margin:0 0 8px}
.article-row p{font-size:14px;margin:0}
.article-row .badge{justify-self:start}
.download-card .platform{display:inline-flex;font-weight:800;font-size:13px;color:var(--primary);background:#eeebff;padding:8px 12px;border-radius:10px;margin-bottom:20px;align-self:start}
.download-card .text-link{margin-top:22px}
.download-note{border-left:3px solid var(--secondary);margin:24px 0 0;padding-left:18px;font-size:14px}
.subscribe-box{border-radius:30px;padding:40px;background:var(--gradient);color:white}
.subscribe-box p{color:#e8edff}
.preference-options{display:flex;flex-wrap:wrap;gap:12px;margin:22px 0}
.preference-options label{padding:10px 14px;background:#ffffff12;border:1px solid #ffffff35;border-radius:12px;font-size:14px;cursor:pointer}
.preference-options label:hover{background:#ffffff24}
.preference-options input{accent-color:#24b8ad;margin-right:7px;width:16px;height:16px;vertical-align:middle}
.subscribe-box .btn-soft{background:white}
.preference-result{min-height:26px;margin:14px 0 0;font-size:13px}
.site-footer{background:#edf0f7;padding:48px 0 24px}
.footer-top{display:grid;grid-template-columns:1.4fr 1fr;gap:60px;padding-bottom:32px}
.footer-brand{font-size:21px;font-weight:800;color:var(--ink)}
.footer-top p{font-size:13px;max-width:580px;margin:15px 0 0}
.footer-links{display:flex;gap:18px;flex-wrap:wrap;align-content:start;justify-content:flex-end;padding-top:6px}
.footer-links a{font-size:13px;color:var(--muted)}
.footer-links a:hover{color:var(--primary)}
.footer-bottom{display:flex;justify-content:space-between;gap:18px;border-top:1px solid #d9deeb;padding-top:22px;font-size:12px;color:var(--muted)}
@media(max-width:1024px){.header-note{display:none}.hero-stage{padding:28px}.cover-copy strong{font-size:58px}.article-row{grid-template-columns:95px 1fr 95px;gap:18px}}
@media(max-width:768px){section{padding:50px 0}.hero{padding-top:30px}.navbar-collapse{border-top:1px solid var(--line);padding-top:14px}.navbar-nav{gap:5px}.hero-stage{padding:24px}.cover{min-height:250px}.status-strip{grid-template-columns:1fr}.status-tile{display:block}.article-row{grid-template-columns:85px 1fr}.article-row .text-link{grid-column:2}.footer-top{grid-template-columns:1fr;gap:24px}.footer-links{justify-content:flex-start}.footer-bottom{flex-direction:column;gap:7px}.subscribe-box{padding:28px}}
@media(max-width:520px){.container{padding-left:20px;padding-right:20px}.site-header{width:calc(100% - 28px);top:10px;margin-top:14px}.navbar{padding:12px 14px;gap:12px;border-radius:18px}.navbar-brand{font-size:17px}.brand-icon{width:32px;height:32px}.hero-stage{padding:20px;border-radius:24px}.preview-heading{align-items:flex-start;flex-direction:column}.cover{padding:22px}.ticket-grid{grid-template-columns:1fr}.card{padding:23px}.article-row{grid-template-columns:1fr;gap:12px}.article-row .text-link{grid-column:1}.subscribe-box{padding:25px 22px}.preference-options{flex-direction:column}h1{font-size:30px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{transition:none!important}}

/* 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}
