:root{--navy:#0E3B5C;--pri:#0B5FA5;--sky:#049FD7;--gold:#E8B04A;--gold2:#F5D27A;--red:#C8323A;--bg:#F3F6FA;--card:#fff;--t1:#1B2430;--t2:#5A6676;--t3:#97A1AE;--line:#E6EBF1;--r:14px}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{margin:0;padding:0;background:#E9EEF4;color:var(--t1);font:15px/1.6 -apple-system,BlinkMacSystemFont,"PingFang SC","Hiragino Sans GB","Microsoft YaHei",sans-serif}
a{color:inherit;text-decoration:none}
#app{max-width:480px;margin:0 auto;min-height:100vh;background:var(--bg);position:relative}
body{overflow-x:hidden}@supports (overflow:clip){#app{overflow-x:clip}}
.boot{padding:40vh 0;text-align:center;color:var(--t3)}

.page{padding-bottom:84px;animation:pgin .35s ease both}
@keyframes pgin{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.nav{position:sticky;top:0;z-index:30;height:46px;background:var(--navy);color:#fff;display:flex;align-items:center;justify-content:center;font-size:16px;font-weight:600}
.nav .back{position:absolute;left:0;top:0;width:46px;height:46px;display:flex;align-items:center;justify-content:center;font-size:22px;cursor:pointer}
/* hero */
.hero{position:relative;height:300px;overflow:hidden;background:var(--navy)}
.hero .sl{position:absolute;inset:0;opacity:0;transition:opacity 1.2s ease}
.hero .sl.on{opacity:1}
.hero .sl img{width:100%;height:100%;object-fit:cover;display:block}

@keyframes kb{from{transform:scale(1)}to{transform:scale(1.12)}}
.hero .mask{position:absolute;inset:0;background:linear-gradient(180deg,rgba(14,59,92,.55) 0%,rgba(14,59,92,0) 38%,rgba(14,59,92,.15) 60%,rgba(8,32,52,.85) 100%)}
.hero .brand{position:absolute;left:16px;top:14px;display:flex;align-items:center;color:#fff}
.hero .brand img{width:38px;height:38px;border-radius:50%;border:2px solid rgba(255,255,255,.85);object-fit:cover;background:#fff}
.hero .brand b{margin-left:9px;font-size:16px;letter-spacing:1px;text-shadow:0 1px 3px rgba(0,0,0,.4)}
.hero .brand small{display:block;font-weight:400;font-size:11px;opacity:.85;letter-spacing:0}
.hero .ttl{position:absolute;left:16px;right:16px;bottom:30px;color:#fff}
.hero .tag{display:inline-block;font-size:11px;padding:1px 8px;border:1px solid var(--gold2);color:var(--gold2);border-radius:999px;margin-bottom:6px}
.hero h1{margin:0;font-size:27px;letter-spacing:3px;font-weight:700;text-shadow:0 2px 8px rgba(0,0,0,.35)}
.hero h1 span{display:inline-block;opacity:0;transform:translateY(10px);animation:ch .6s ease forwards}
@keyframes ch{to{opacity:1;transform:none}}
.hero .cap{font-size:12px;opacity:.85;margin-top:4px}
.hero .dots{position:absolute;bottom:12px;left:0;right:0;text-align:center}
.hero .dots i{display:inline-block;width:6px;height:6px;border-radius:3px;background:rgba(255,255,255,.5);margin:0 3px;transition:width .3s}
.hero .dots i.on{width:16px;background:var(--gold)}
/* cards */
.card{background:var(--card);border-radius:var(--r);margin:12px;padding:14px;box-shadow:0 2px 10px rgba(14,59,92,.06)}
.sec{display:flex;justify-content:space-between;align-items:center;margin:18px 14px 6px}
.sec b{font-size:17px;position:relative;padding-left:10px}
.sec b:before{content:"";position:absolute;left:0;top:4px;bottom:4px;width:4px;border-radius:2px;background:var(--gold)}
.sec a{font-size:13px;color:var(--t3)}
.cd{margin-top:-22px;position:relative;z-index:2;background:linear-gradient(135deg,#0E3B5C,#0B5FA5);color:#fff;overflow:hidden}
.cd:after{content:"";position:absolute;right:-30px;top:-30px;width:120px;height:120px;border-radius:50%;background:radial-gradient(circle,rgba(245,210,122,.35),rgba(245,210,122,0) 70%)}
.cd .l1{font-size:13px;opacity:.85}
.cd .nums{display:flex;align-items:flex-end;margin:8px 0 10px}
.cd .n{min-width:46px;text-align:center;margin-right:8px}


@keyframes flip{0%{transform:rotateX(0)}50%{transform:rotateX(90deg);opacity:.4}100%{transform:rotateX(0)}}
.cd .n small{font-size:11px;opacity:.75}
.cd .row{display:flex;justify-content:space-between;align-items:center;font-size:12px;opacity:.95}
.btn{display:inline-flex;align-items:center;justify-content:center;background:var(--gold);color:#3b2900;font-weight:600;border:0;border-radius:999px;padding:8px 18px;font-size:14px;cursor:pointer;transition:transform .15s}
.btn:active{transform:scale(.96)}
.btn.pri{background:var(--pri);color:#fff}
.btn.ghost{background:#fff;color:var(--pri);border:1px solid var(--pri)}
.btn.blk{display:flex;width:100%;padding:12px;font-size:16px}
.btn[disabled]{opacity:.5}
.grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px 0;padding:14px 4px}
.grid a{text-align:center;font-size:12px;color:var(--t2)}
.grid.fx{display:flex;flex-wrap:wrap;justify-content:center;position:relative}.grid.fx a{flex:none;white-space:nowrap}
.grid i{display:flex;width:44px;height:44px;margin:0 auto 6px;border-radius:14px;align-items:center;justify-content:center;font-style:normal;font-size:20px;color:#fff;background:linear-gradient(135deg,var(--pri),var(--sky))}
.grid i svg{width:22px;height:22px;display:block}
.grid a:nth-child(2n) i{background:linear-gradient(135deg,#C99A3A,var(--gold))}
.notice{display:flex;align-items:center;padding:10px 14px;font-size:13px}
.notice em{font-style:normal;background:var(--red);color:#fff;font-size:11px;padding:0 6px;border-radius:4px;margin-right:8px;flex:none}
.notice span{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.item{display:flex;padding:12px 0;border-bottom:1px solid var(--line)}
.item:last-child{border-bottom:0}
.item .tx{flex:1;min-width:0;display:flex;flex-direction:column;justify-content:space-between}
.item h3{margin:0;font-size:15px;font-weight:600;line-height:1.45;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.item .mt{font-size:12px;color:var(--t3);margin-top:6px}
.item .mt .tg{color:var(--pri);background:#EAF3FB;border-radius:4px;padding:0 5px;margin-right:6px}
.item .mt .tg.n{color:var(--red);background:#FCEBEC}
.thumb{width:108px;height:76px;border-radius:10px;margin-left:12px;flex:none;overflow:hidden;background:linear-gradient(110deg,#e8edf3 30%,#f5f8fb 50%,#e8edf3 70%);background-size:200% 100%;animation:sk 1.4s linear infinite}
.thumb img,.sk img{width:100%;height:100%;object-fit:cover;display:block;opacity:0;transition:opacity .4s}
.thumb img.ld,.sk img.ld{opacity:1}
.sk{background:linear-gradient(110deg,#e8edf3 30%,#f5f8fb 50%,#e8edf3 70%);background-size:200% 100%;animation:sk 1.4s linear infinite}
@keyframes sk{to{background-position:-200% 0}}
.thumb.txt{display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#0E3B5C,#0B5FA5);animation:none;color:var(--gold2);font-size:12px;text-align:center;padding:6px;line-height:1.3}
.rv{opacity:0;transform:translateY(18px);transition:opacity .6s ease,transform .6s ease}
.rv.in{opacity:1;transform:none}
.tabs{display:flex;overflow-x:auto;background:#fff;position:sticky;top:46px;z-index:20;border-bottom:1px solid var(--line)}
.tabs a{flex:none;padding:11px 14px;font-size:14px;color:var(--t2);position:relative}
.tabs a.on{color:var(--pri);font-weight:600}
.tabs a.on:after{content:"";position:absolute;left:30%;right:30%;bottom:4px;height:3px;border-radius:2px;background:var(--gold)}
/* article */
.art{background:#fff;padding:18px 16px 24px}
.art h1{font-size:21px;line-height:1.45;margin:0 0 10px}
.art .src{font-size:12px;color:var(--t3);border-bottom:1px solid var(--line);padding-bottom:10px;margin-bottom:12px}
.art .src b{color:var(--pri);font-weight:500}
.art p{text-indent:2em;margin:0 0 12px;line-height:1.85;font-size:16px;text-align:justify}
.art h4{text-align:center;color:var(--navy);margin:14px 0;font-size:17px;letter-spacing:2px}
.art .im{margin:10px -4px 14px;border-radius:8px;overflow:hidden}
.art .im img{width:100%;display:block}
.art .orig{margin-top:18px;padding:10px 12px;background:var(--bg);border-radius:10px;font-size:12px;color:var(--t2);word-break:break-all}
/* event */
.ev-cover{height:190px}
.kv{display:flex;font-size:14px;padding:8px 0;border-bottom:1px dashed var(--line)}
.kv span{width:76px;color:var(--t3);flex:none}
.bar{position:fixed;bottom:0;left:0;right:0;max-width:480px;margin:0 auto;background:#fff;padding:10px 14px calc(10px + env(safe-area-inset-bottom));box-shadow:0 -2px 10px rgba(0,0,0,.06);z-index:40;display:flex;gap:10px}
.sheet-bg{position:fixed;inset:0;background:rgba(0,0,0,.45);z-index:90;display:flex;align-items:flex-end;justify-content:center;animation:fd .2s}
@keyframes fd{from{opacity:0}}
.sheet{background:#fff;width:100%;max-width:480px;border-radius:16px 16px 0 0;padding:18px 16px calc(18px + env(safe-area-inset-bottom));animation:up .25s ease}
@keyframes up{from{transform:translateY(100%)}}
.sheet h3{margin:0 0 12px;text-align:center}
.fld{margin-bottom:12px}
.fld label{display:block;font-size:13px;color:var(--t2);margin-bottom:4px}
.fld input,.fld textarea,.fld select{width:100%;border:1px solid var(--line);border-radius:10px;padding:10px 12px;font-size:16px;background:#FAFBFD;font-family:inherit}
.toast{position:fixed;left:50%;top:45%;transform:translate(-50%,-50%);background:rgba(20,26,34,.86);color:#fff;padding:10px 18px;border-radius:10px;z-index:100;font-size:14px;max-width:70%;text-align:center}
/* about */
.motto{text-align:center;padding:22px 10px;background:linear-gradient(135deg,#0E3B5C,#0B5FA5);color:var(--gold2);border-radius:var(--r);margin:12px;letter-spacing:6px;font-size:22px;font-weight:700}
.motto small{display:block;font-size:12px;letter-spacing:2px;color:#fff;opacity:.75;font-weight:400;margin-top:6px}
.tl{position:relative;margin:4px 0 0 8px;padding-left:20px}
.tl:before{content:"";position:absolute;left:5px;top:6px;bottom:6px;width:2px;background:linear-gradient(var(--gold),var(--pri))}
.tl .nd{position:relative;padding:0 0 16px;opacity:0;transform:translateX(-10px);transition:opacity .5s ease,transform .5s ease}
.tl .nd.in{opacity:1;transform:none}
.tl .nd:before{content:"";position:absolute;left:-20px;top:5px;width:12px;height:12px;border-radius:50%;background:#fff;border:3px solid var(--gold)}
.tl .y{font-weight:700;color:var(--pri);font-size:16px}
.tl .t{font-weight:600;margin-left:6px}
.tl .d{font-size:14px;color:var(--t2);margin-top:2px}
.tl .s{font-size:11px;color:var(--t3)}
.cmp{position:relative;height:230px;border-radius:12px;overflow:hidden;touch-action:pan-y;user-select:none}
.cmp img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.cmp .top{position:absolute;inset:0;overflow:hidden}
.cmp .ln{position:absolute;top:0;bottom:0;width:3px;background:#fff;margin-left:-1.5px;box-shadow:0 0 6px rgba(0,0,0,.4)}
.cmp .ln i{position:absolute;top:50%;left:50%;width:30px;height:30px;margin:-15px 0 0 -15px;border-radius:50%;background:var(--gold);border:2px solid #fff;font-style:normal;font-size:12px;display:flex;align-items:center;justify-content:center;color:#3b2900}
.cmp .lb{position:absolute;bottom:8px;font-size:12px;color:#fff;background:rgba(0,0,0,.45);padding:1px 8px;border-radius:999px}
.cmp input{position:absolute;inset:0;width:100%;height:100%;opacity:0;margin:0;cursor:ew-resize}
/* tabbar */
.tabbar{position:fixed;bottom:0;left:0;right:0;max-width:480px;margin:0 auto;height:calc(58px + env(safe-area-inset-bottom));padding-bottom:env(safe-area-inset-bottom);background:#fff;display:flex;box-shadow:0 -2px 12px rgba(14,59,92,.08);z-index:40}
.tabbar a{flex:1;text-align:center;font-size:11px;color:var(--t3);padding-top:6px}
.tabbar a i{display:block;font-style:normal;font-size:20px;line-height:24px}
.tabbar a.on{color:var(--pri)}
.tabbar a.plus i{width:46px;height:46px;line-height:46px;margin:-18px auto 0;border-radius:50%;background:linear-gradient(135deg,var(--gold),#D9932B);color:#fff;font-size:26px;box-shadow:0 4px 10px rgba(217,147,43,.4)}
.icp{text-align:center;font-size:11px;color:var(--t3);padding:14px 0 6px}
.icp a{color:var(--t3)}

.list-row{display:flex;align-items:center;padding:12px 0;border-bottom:1px solid var(--line)}
.list-row:last-child{border-bottom:0}
.av{width:42px;height:42px;border-radius:50%;background:linear-gradient(135deg,var(--pri),var(--sky));color:#fff;display:flex;align-items:center;justify-content:center;font-weight:600;margin-right:12px;flex:none}
.muted{color:var(--t3);font-size:12px}


@keyframes bl{to{transform:translateX(calc(-100% - 520px))}}


.wish .who{font-size:12px;color:var(--t3);display:flex;justify-content:space-between}
.menu a{display:flex;justify-content:space-between;padding:13px 0;border-bottom:1px solid var(--line);font-size:15px}
.menu a:last-child{border-bottom:0}
.menu a:after{content:"›";color:var(--t3)}
.empty{text-align:center;color:var(--t3);padding:30px 0;font-size:14px}
.sw{position:relative;width:44px;height:26px;border-radius:13px;background:#ccd3db;transition:background .2s}
.sw:after{content:"";position:absolute;left:3px;top:3px;width:20px;height:20px;border-radius:50%;background:#fff;transition:transform .2s}
.sw.on{background:var(--pri)}.sw.on:after{transform:translateX(18px)}
.reduce *,.reduce *:before,.reduce *:after{animation:none!important;transition:none!important}
.reduce .rv,.reduce .tl .nd{opacity:1;transform:none}
.reduce .hero h1 span{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}.rv,.tl .nd{opacity:1!important;transform:none!important}.hero h1 span{opacity:1!important;transform:none!important}}

/* ---- header badge + identity switch (in-flow, never floating over content) */
.nav .nt{max-width:calc(100% - 180px);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.hx{position:absolute;right:8px;top:50%;transform:translateY(-50%);display:flex;align-items:center;z-index:5}
.hero>.hx{top:12px;transform:none;flex-direction:column-reverse;align-items:flex-end}
.hero>.hx .idb{margin:6px 0 0}
.badge-exp{background:rgba(232,176,74,.95);color:#4a3200;font-size:10px;line-height:16px;padding:1px 7px;border-radius:999px;font-weight:600;letter-spacing:1px;pointer-events:none}
.idb{width:26px;height:26px;margin-right:6px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:13px;color:#fff;background:rgba(255,255,255,.16);border:1px solid rgba(245,210,122,.55);cursor:pointer;-webkit-tap-highlight-color:transparent;transition:transform .2s}
.idb:active{transform:scale(.9)}
.hn{position:fixed;top:0;left:50%;width:100%;max-width:480px;transform:translate(-50%,-100%);transition:transform .3s ease;z-index:40;box-shadow:0 2px 10px rgba(0,0,0,.18)}
.hn.show{transform:translate(-50%,0)}
.hero .brand{max-width:calc(100% - 90px)}
/* ---- Ken Burns: every hero slide drifts continuously, old gate strongest */
.hero .sl img{animation:kb 14s ease-in-out infinite alternate;transform-origin:50% 40%}
.hero .sl.kb2 img{animation-name:kb2}
.hero .sl.k0 img{animation:kb0 10s ease-out infinite alternate}
@keyframes kb{from{transform:scale(1.02)}to{transform:scale(1.12) translate(-1.5%,-1%)}}
@keyframes kb2{from{transform:scale(1.12) translate(1.5%,0)}to{transform:scale(1.02)}}
@keyframes kb0{from{transform:scale(1)}to{transform:scale(1.16) translate(-2%,-2.5%)}}
.kbw{overflow:hidden}.kbw img.kbi{animation:kb0 12s ease-out infinite alternate}
/* ---- flip-card countdown, gold accent */
.cd .nums{perspective:400px}
.cd .n{min-width:48px;text-align:center;margin-right:8px}
.fc{position:relative;width:48px;height:44px;margin:0 auto 3px;font-size:27px;font-weight:700;color:var(--gold2);border-radius:8px;box-shadow:0 0 0 1px rgba(232,176,74,.45),0 4px 12px rgba(0,0,0,.25),0 0 14px rgba(245,210,122,.18)}
.n:first-child .fc{width:auto;min-width:48px;padding:0 4px}
.fc>span{position:absolute;left:0;right:0;height:50%;overflow:hidden;-webkit-backface-visibility:hidden;backface-visibility:hidden}
.fc .up,.fc .ft{top:0;border-radius:8px 8px 0 0;background:linear-gradient(#1d5784,#174a72)}
.fc .dn,.fc .fb{bottom:0;border-radius:0 0 8px 8px;background:linear-gradient(#13436a,#0f395c)}
.fc i{display:block;height:44px;line-height:44px;text-align:center;font-style:normal;font-variant-numeric:tabular-nums;text-shadow:0 0 10px rgba(245,210,122,.6)}
.fc .dn i,.fc .fb i{margin-top:-22px}
.fc .ft{z-index:3;transform-origin:50% 100%;animation:ft .3s ease-in forwards}
.fc .fb{z-index:3;transform-origin:50% 0;transform:rotateX(90deg);animation:fb .3s .3s ease-out forwards}
.fc:after{content:"";position:absolute;left:0;right:0;top:50%;height:1px;margin-top:-.5px;background:linear-gradient(90deg,transparent,rgba(232,176,74,.85),transparent);z-index:4}
@keyframes ft{to{transform:rotateX(-90deg)}}
@keyframes fb{to{transform:rotateX(0)}}
/* ---- page transitions */
.page.fwd{animation:pgf .32s ease both}.page.bwd{animation:pgb .32s ease both}.page.tab{animation:pgin .3s ease both}
@keyframes pgf{from{opacity:0;transform:translateX(28px)}to{opacity:1;transform:none}}
@keyframes pgb{from{opacity:0;transform:translateX(-28px)}to{opacity:1;transform:none}}
/* ---- reveals: grid icons pop in, timeline line grows */
.grid a{opacity:0;transform:scale(.8);transition:opacity .4s,transform .4s cubic-bezier(.3,1.5,.6,1)}
.grid.in a{opacity:1;transform:none}
.grid.in a:nth-child(2){transition-delay:.05s}.grid.in a:nth-child(3){transition-delay:.1s}.grid.in a:nth-child(4){transition-delay:.15s}.grid.in a:nth-child(5){transition-delay:.2s}.grid.in a:nth-child(6){transition-delay:.25s}.grid.in a:nth-child(7){transition-delay:.3s}.grid.in a:nth-child(8){transition-delay:.35s}.grid.in a:nth-child(9){transition-delay:.4s}.grid.in a:nth-child(10){transition-delay:.45s}.grid.in a:nth-child(n+11){transition-delay:.5s}
.tl:before{transform-origin:top;transform:scaleY(0);transition:transform 1.6s ease}
.tl.in:before{transform:none}
/* ---- skeleton boot */
.boot{padding:0}.boot .sk{border-radius:12px;margin:12px}.boot .b1{height:300px;margin:0;border-radius:0}.boot .b2{height:120px;margin-top:-22px}.boot .b3{height:70px}.boot .b4{height:160px}
/* ---- wish wall: slow barrage + waterfall */
.wall{position:relative;height:260px;overflow:hidden;background:radial-gradient(circle at 80% 0,rgba(245,210,122,.25),transparent 55%),linear-gradient(160deg,#0E3B5C,#145A8A);border-radius:var(--r);margin:12px}
.wall .wt{position:absolute;left:14px;top:12px;color:var(--gold2);font-weight:700;letter-spacing:2px;font-size:16px}
.wall .wt small{display:block;color:#fff;opacity:.7;font-weight:400;font-size:11px;letter-spacing:0}
.wall .bl{position:absolute;left:100%;white-space:nowrap;color:#fff;background:rgba(255,255,255,.13);border:1px solid rgba(245,210,122,.35);padding:4px 12px 4px 4px;border-radius:999px;font-size:13px;max-width:280px;overflow:hidden;text-overflow:ellipsis;animation:bl linear infinite;will-change:transform}
.wall .bl b{display:inline-block;width:20px;height:20px;line-height:20px;text-align:center;border-radius:50%;background:var(--gold);color:#3b2900;font-size:11px;margin-right:6px}
.wall:active .bl{animation-play-state:paused}
@keyframes bl{from{transform:translateX(0)}to{transform:translateX(-1000px)}}
.wf{-webkit-column-count:2;column-count:2;-webkit-column-gap:10px;column-gap:10px;padding:0 12px}
.wish{display:inline-block;width:100%;-webkit-column-break-inside:avoid;break-inside:avoid;background:#fff;border-radius:12px;padding:12px;margin-bottom:10px;box-shadow:0 2px 8px rgba(14,59,92,.06);border-top:3px solid var(--gold)}
.wish.c1{border-top-color:var(--pri)}.wish.c2{border-top-color:var(--sky)}.wish.c3{border-top-color:var(--red)}
.wish .q{font-size:14px;line-height:1.7;color:var(--t1)}
.wish .who{margin-top:8px}
.wish .st{color:var(--gold)}
/* ---- reduced motion: static fallbacks */
.reduce .wall{height:auto;padding:58px 10px 10px;display:flex;flex-wrap:wrap}
.reduce .wall .bl{position:static;margin:0 6px 6px 0;white-space:normal}
.reduce .grid a,.reduce .tl:before{opacity:1;transform:none}
.reduce .hn{transition:none}
@media (prefers-reduced-motion:reduce){.wall{height:auto;padding:58px 10px 10px;display:flex;flex-wrap:wrap}.wall .bl{position:static;margin:0 6px 6px 0;white-space:normal}.grid a,.tl:before{opacity:1!important;transform:none!important}}
.art h5{font-size:15px;color:var(--navy);margin:14px 0 6px;padding-left:8px;border-left:3px solid var(--gold);line-height:1.4}

/* 百年校庆专题 */
.cen-hd{position:relative;height:190px}.cen-hd:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(8,30,50,.05),rgba(8,30,50,.7))}
.cen-t{position:absolute;left:16px;bottom:30px;z-index:1;color:#fff;font-size:22px;font-weight:700;letter-spacing:2px}.cen-t small{display:block;font-size:12px;color:#F5D27A;letter-spacing:3px;font-weight:600}
.cen-ev{display:block;border:1px solid #F1D48A;background:linear-gradient(100deg,#FFF8E6,#FFEFC7)}
.cen-ev em{font-style:normal;background:#E5484D;color:#fff;font-size:11px;padding:1px 6px;border-radius:4px;margin-right:6px;vertical-align:2px}
.cen-ev b{font-size:16px;color:#0E3B5C}.cen-ev .muted{margin-top:4px;font-size:13px}.cen-ev .btn{display:inline-block;margin-top:10px}
.chips{display:flex;flex-wrap:wrap;gap:8px}.chips span{font-size:13px;padding:3px 10px;border-radius:12px;background:#EAF6FC;color:#0B78B4}
.blurlist .list-row{filter:blur(3px);user-select:none;pointer-events:none}
/* 轮播指示点：移到右下角、与图片说明同一行；说明右侧留出空位，标签与标题不再被遮挡（底部 22px 被倒计时卡片覆盖） */
.hero .ttl{bottom:34px}
.hero .cap{display:inline-block;max-width:calc(100% - 84px);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;vertical-align:top}
.hero .dots{left:auto;right:16px;bottom:40px;text-align:right;line-height:0;z-index:2}
.ndg{display:flex;flex-wrap:wrap;gap:8px}.ndi{font-size:13px;padding:5px 11px;border-radius:14px;border:1px solid var(--line);background:#FAFBFD;color:var(--t2);font-family:inherit}.ndi[aria-pressed=true]{border-color:#0B5FA5;color:#0B5FA5;background:#EEF5FC}

.rq{color:#D93025;font-style:normal;margin-left:2px}.op{color:#9AA4B2;font-style:normal;font-size:12px;margin-left:4px}
