:root{
  --blue:#165DFF; --blue-2:#0E42D6; --blue-3:#0A2C8C; --cyan:#22D3EE; --cyan-2:#38BDF8; --cyan-3:#7EF0FF;
  --blue-rgb:22,93,255; --blue-3-rgb:10,44,140;
  --ink:#0B1B3B; --ink-2:#48577A; --muted:#8A97B4; --line:#E7ECF7;
  --bg:#F4F7FF; --surface:#FFFFFF; --tint:#EBF1FF;
  --shadow:0 18px 50px -22px rgba(15,42,120,.35);
  --shadow-sm:0 8px 24px -14px rgba(15,42,120,.35);
  --radius:5px;   /* ★ 全站卡片圆角总控：只改这一个值即可（内页在 assets/ui.css 同名变量，保持一致） */
  --grad:linear-gradient(120deg,var(--blue) 0%,#3E7BFF 45%,var(--cyan) 100%);
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth;overflow-x:clip}
body{
  font-family:"Noto Sans SC","PingFang SC","Microsoft YaHei",system-ui,sans-serif;
  color:var(--ink); background:var(--bg); line-height:1.6; overflow-x:clip;
  -webkit-font-smoothing:antialiased;
}
a{color:inherit;text-decoration:none}
img{max-width:100%;height:auto;display:block}
.wrap{max-width:1240px;margin:0 auto;padding:0 28px}
.en{font-family:"Manrope",sans-serif}
.eyebrow{display:inline-flex;align-items:center;gap:8px;font-size:13px;font-weight:700;letter-spacing:.14em;
  color:var(--blue);text-transform:uppercase}
.eyebrow::before{content:"";width:22px;height:2px;background:var(--grad);border-radius:2px}
.sec-title{font-size:clamp(26px,3vw,38px);font-weight:900;letter-spacing:-.01em;line-height:1.2}
.sec-sub{color:var(--ink-2);margin-top:10px;font-size:15px;max-width:640px}
.sec-head{display:flex;justify-content:space-between;align-items:flex-end;flex-wrap:wrap;gap:14px;margin-bottom:34px}
.more{font-size:14px;font-weight:600;color:var(--blue);display:inline-flex;align-items:center;gap:6px;transition:.25s}
.more:hover{gap:11px}
section{padding:84px 0;position:relative}
.reveal{opacity:0;transform:translateY(34px);transition:opacity .7s cubic-bezier(.2,.7,.2,1),transform .7s cubic-bezier(.2,.7,.2,1)}
.reveal.in{opacity:1;transform:none}

/* ---------- 首页焦点 / 广告位（原生区块 focus） ---------- */
.home-ad-sec{padding:0 0 40px}
.home-ad{display:block;border-radius:var(--radius);overflow:hidden;transition:.25s}
.home-ad[href]:hover{opacity:.94}
.home-ad img{width:100%;height:auto}

/* ---------- announcement + nav ---------- */
.topbar{background:#0A1B3F;color:#C7D4F5;font-size:12.5px}
.topbar .wrap{display:flex;justify-content:space-between;align-items:center;height:38px}
.topbar b{color:#fff;font-weight:600}
.topbar .t-links{display:flex;gap:20px}
.topbar .t-links span{opacity:.8;transition:.2s;cursor:pointer}
.topbar .t-links span:hover{opacity:1;color:#fff}

header{position:sticky;top:0;z-index:60;background:#fff}
.nav{background:#fff;border-bottom:1px solid var(--line)}
.nav .wrap{display:flex;align-items:center;height:80px;gap:14px}
.logo{display:flex;align-items:center;gap:10px;font-weight:900;font-size:19px;white-space:nowrap;flex-shrink:0}
.logo .mark{width:38px;height:38px;border-radius:11px;background:var(--grad);display:grid;place-items:center;
  box-shadow:0 8px 20px -6px rgba(var(--blue-rgb),.6);flex-shrink:0}
.logo .mark svg{width:22px;height:22px}
.menu{display:flex;align-items:center;margin-left:2px;flex:1;list-style:none}
.menu>li{position:relative}
.menu>li>a{display:flex;align-items:center;gap:5px;padding:10px 12px;font-size:16px;font-weight:600;color:var(--ink-2);
  border-radius:8px;transition:.2s;cursor:pointer;white-space:nowrap;position:relative;z-index:1}
.menu>li>a:hover,.menu>li.active>a{color:var(--blue);background:var(--tint)}
.menu>li>a .caret{width:8px;height:8px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;
  transform:rotate(45deg);margin-top:-3px;opacity:.6;transition:.2s}
.menu>li:hover>a .caret{transform:rotate(225deg);margin-top:2px}
.dropdown{position:absolute;top:calc(100% + 12px);left:0;min-width:136px;width:max-content;max-width:220px;background:#fff;border-radius:12px;
  box-shadow:var(--shadow);border:1px solid var(--line);padding:8px;opacity:0;visibility:hidden;transform:translateY(8px);
  transition:.24s;display:grid;gap:2px}
.menu>li:hover .dropdown{opacity:1;visibility:visible;transform:none}
.dropdown a{display:flex;align-items:center;gap:8px;padding:8px 10px;border-radius:8px;font-size:15px;color:var(--ink-2);transition:.18s;white-space:nowrap}
.dropdown a:hover{background:var(--tint);color:var(--blue)}
.dropdown a .dot{width:6px;height:6px;border-radius:50%;background:var(--cyan-2);flex-shrink:0}
.nav-actions{display:flex;align-items:center;gap:10px;flex-shrink:0}
.search{display:flex;align-items:center;gap:7px;background:#EEF2FB;border:1px solid transparent;border-radius:24px;
  padding:8px 13px;width:130px;transition:.25s}
.search:focus-within{background:#fff;border-color:var(--blue);box-shadow:0 0 0 4px rgba(var(--blue-rgb),.12);width:170px}
.search input{border:none;background:none;outline:none;font-size:15px;width:100%}
.search svg{width:16px;height:16px;color:var(--muted);flex-shrink:0}
.btn{border:none;cursor:pointer;font-weight:600;border-radius:24px;transition:.25s;white-space:nowrap;display:inline-flex;
  align-items:center;justify-content:center;gap:7px}
.btn-primary{background:var(--grad);color:#fff;padding:10px 22px;font-size:15.5px;box-shadow:0 10px 24px -10px rgba(var(--blue-rgb),.7)}
.btn-primary:hover{transform:translateY(-2px);box-shadow:0 16px 30px -10px rgba(var(--blue-rgb),.8)}
.btn-line{background:#fff;color:var(--blue);border:1px solid var(--blue);padding:9px 20px;font-size:15px}
.btn-line:hover{background:var(--tint)}
.btn-ghost{background:rgba(255,255,255,.14);color:#fff;border:1px solid rgba(255,255,255,.45);padding:11px 24px;font-size:15px}
.btn-ghost:hover{background:rgba(255,255,255,.26)}
.btn-lg{padding:14px 30px;font-size:16px}
.nav-burger{display:none;width:42px;height:42px;border-radius:10px;border:1px solid var(--line);background:#fff;
  cursor:pointer;place-items:center}
.nav-burger svg{width:20px;height:20px;color:var(--ink-2)}

/* ---------- hero ---------- */
.hero{background:linear-gradient(150deg,var(--blue-3) 0%,var(--blue-2) 42%,var(--blue) 78%,#2E7BFF 100%);
  color:#fff;padding:76px 0 96px;position:relative;overflow:hidden;isolation:isolate}
.hero::before,.hero::after{content:"";position:absolute;border-radius:50%;filter:blur(70px);z-index:-1;opacity:.65}
.hero::before{width:520px;height:520px;background:radial-gradient(circle,var(--cyan),transparent 70%);top:-160px;right:-120px;
  animation:float1 12s ease-in-out infinite}
.hero::after{width:460px;height:460px;background:radial-gradient(circle,#6C4BFF,transparent 70%);bottom:-200px;left:-100px;
  animation:float2 14s ease-in-out infinite}
@keyframes float1{50%{transform:translate(-40px,50px) scale(1.1)}}
@keyframes float2{50%{transform:translate(50px,-40px) scale(1.08)}}
.hero .grid-ovl{position:absolute;inset:0;z-index:-1;opacity:.16;
  background-image:linear-gradient(rgba(255,255,255,.25) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.25) 1px,transparent 1px);
  background-size:46px 46px;mask-image:radial-gradient(ellipse 80% 70% at 50% 40%,#000,transparent)}
.hero-inner{display:grid;grid-template-columns:1.05fr .95fr;gap:40px;align-items:center;position:relative;z-index:2}
.hero-badge{display:inline-flex;align-items:center;gap:9px;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.28);
  padding:8px 16px;border-radius:24px;font-size:13px;font-weight:500;backdrop-filter:blur(8px)}
.hero-badge .pulse{width:8px;height:8px;border-radius:50%;background:#4ADE80;box-shadow:0 0 0 0 rgba(74,222,128,.6);animation:pulse 2s infinite}
@keyframes pulse{70%{box-shadow:0 0 0 9px rgba(74,222,128,0)}100%{box-shadow:0 0 0 0 rgba(74,222,128,0)}}
.hero h1{font-size:clamp(44px,5.6vw,72px);font-weight:900;line-height:1.06;letter-spacing:-.02em;margin:24px 0 0}
.hero h1 .g{background:linear-gradient(100deg,var(--cyan-3),#B9D0FF);-webkit-background-clip:text;background-clip:text;color:transparent}
.hero p.lead{margin-top:22px;font-size:17px;color:rgba(255,255,255,.82);max-width:500px;line-height:1.75}
.hero-cta{display:flex;gap:14px;margin-top:34px;flex-wrap:wrap}
.hero-stats{display:flex;gap:34px;margin-top:44px}
.hero-stats .hs b{font-family:"Manrope",sans-serif;font-size:30px;font-weight:800;display:block;line-height:1}
.hero-stats .hs span{font-size:13px;color:rgba(255,255,255,.7);margin-top:6px;display:block}
.hero-stats .hs .plus{color:var(--cyan-3)}
/* hero visual card */
.hero-visual{position:relative;height:400px}
.glass-card{position:absolute;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.25);
  border-radius:20px;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);box-shadow:0 24px 60px -20px rgba(0,0,0,.5)}
.board-card{inset:20px 40px 60px 0;display:grid;place-items:center;padding:24px;overflow:hidden}
.chessboard{width:232px;height:232px;border-radius:10px;overflow:hidden;color:#0B1B3B;
  box-shadow:0 20px 40px -12px rgba(0,0,0,.5);transform:rotateX(7deg) rotateZ(-3deg);
  display:grid;place-items:center;font-size:66px;line-height:1;
  background:
    linear-gradient(45deg,#3E6BE0 25%,transparent 25%,transparent 75%,#3E6BE0 75%),
    linear-gradient(45deg,#3E6BE0 25%,transparent 25%,transparent 75%,#3E6BE0 75%),
    #EAF1FF;
  background-size:58px 58px;background-position:0 0,29px 29px}
.chessboard span{text-shadow:0 3px 8px rgba(0,0,0,.35)}
.float-chip{position:absolute;background:rgba(255,255,255,.95);border-radius:14px;padding:12px 16px;color:var(--ink);
  box-shadow:0 18px 40px -14px rgba(0,0,0,.4);display:flex;align-items:center;gap:11px;font-size:13px;font-weight:600}
.float-chip .ic{width:34px;height:34px;border-radius:10px;background:var(--tint);display:grid;place-items:center;color:var(--blue)}
.float-chip .ic svg{width:18px;height:18px}
.chip-1{top:0;right:0;animation:bob 5s ease-in-out infinite}
.chip-2{bottom:36px;left:-14px;animation:bob 5s ease-in-out infinite .8s}
.chip-3{bottom:-6px;right:44px;animation:bob 5s ease-in-out infinite 1.6s}
@keyframes bob{50%{transform:translateY(-12px)}}
.chip-1 .k{color:var(--muted);font-weight:500;font-size:11px}
.scroll-ind{position:absolute;bottom:26px;left:50%;transform:translateX(-50%);z-index:3;display:flex;flex-direction:column;
  align-items:center;gap:8px;color:rgba(255,255,255,.7);font-size:11px;letter-spacing:.2em}
.mouse{width:22px;height:34px;border:2px solid rgba(255,255,255,.6);border-radius:12px;position:relative}
.mouse::before{content:"";position:absolute;top:6px;left:50%;transform:translateX(-50%);width:3px;height:7px;background:#fff;
  border-radius:2px;animation:scrolly 1.6s infinite}
@keyframes scrolly{0%{opacity:0;top:5px}40%{opacity:1}80%{opacity:0;top:16px}}

/* ---------- projects ---------- */
.proj-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:16px}
.proj{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:26px 14px;text-align:center;
  transition:.3s;cursor:pointer;position:relative;overflow:hidden}
.proj::after{content:"";position:absolute;inset:0;background:var(--grad);opacity:0;transition:.3s;z-index:0}
.proj>*{position:relative;z-index:1;transition:.3s}
.proj:hover{transform:translateY(-8px);box-shadow:var(--shadow);border-color:transparent}
.proj:hover::after{opacity:1}
.proj:hover .p-ic,.proj:hover .p-name,.proj:hover .p-en{color:#fff}
.proj:hover .p-ic{background:rgba(255,255,255,.2)}
.p-ic{width:58px;height:58px;border-radius:16px;background:var(--tint);display:grid;place-items:center;margin:0 auto 14px;
  color:var(--blue);transition:.3s}
.p-ic svg{width:30px;height:30px}
.p-name{font-weight:700;font-size:15px}
.p-en{font-size:11px;color:var(--muted);margin-top:3px;letter-spacing:.06em}
.proj.feature::after{opacity:1}
.proj.feature .p-ic{background:rgba(255,255,255,.2);color:#fff}
.proj.feature .p-name,.proj.feature .p-en{color:#fff}

/* ---------- events + news ---------- */
.split{display:grid;grid-template-columns:1fr 1fr;gap:48px}
.ev{display:flex;gap:16px;padding:18px;border-radius:14px;border:1px solid var(--line);background:#fff;transition:.25s;margin-bottom:14px}
.ev:hover{border-color:var(--blue);box-shadow:var(--shadow-sm);transform:translateX(4px)}
.ev-date{flex-shrink:0;width:58px;height:58px;border-radius:12px;background:var(--grad);color:#fff;display:flex;flex-direction:column;
  align-items:center;justify-content:center;line-height:1.1}
.ev-date b{font-family:"Manrope",sans-serif;font-size:22px;font-weight:800}
.ev-date span{font-size:11px;opacity:.9}
.ev-body h4{font-size:15.5px;font-weight:700;margin-bottom:5px}
.ev-meta{font-size:12.5px;color:var(--muted);display:flex;gap:14px;flex-wrap:wrap}
.ev-meta .tag{color:var(--blue);background:var(--tint);padding:1px 9px;border-radius:20px;font-weight:600}
.news{display:grid;gap:16px}
.news-card{display:flex;gap:16px;background:#fff;border:1px solid var(--line);border-radius:14px;overflow:hidden;transition:.25s;cursor:pointer}
.news-card:hover{box-shadow:var(--shadow-sm);transform:translateY(-3px)}
.news-thumb{width:130px;flex-shrink:0;position:relative;overflow:hidden}
.news-thumb .ph{position:absolute;inset:0}
.news-card:hover .ph{transform:scale(1.07)}
.news-thumb .ph{transition:.4s}
.news-body{padding:14px 16px 14px 2px}
.news-body h4{font-size:15px;font-weight:700;line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.news-body .d{font-size:12px;color:var(--muted);margin-top:8px;display:flex;align-items:center;gap:6px}

/* ---------- notices + entries ---------- */
.notice-wrap{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:8px;box-shadow:var(--shadow-sm)}
.tabs{display:flex;gap:4px;border-bottom:1px solid var(--line);padding:10px 14px 0;overflow-x:auto}
.tab{padding:10px 16px;font-size:14.5px;font-weight:600;color:var(--ink-2);cursor:pointer;border-bottom:2px solid transparent;
  white-space:nowrap;transition:.2s}
.tab.on{color:var(--blue);border-color:var(--blue)}
.tab:hover{color:var(--blue)}
.notice-list{padding:8px 6px}
.n-item{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:14px 16px;border-radius:10px;transition:.2s;cursor:pointer}
.n-item:hover{background:var(--tint)}
.n-item .l{display:flex;align-items:center;gap:12px;min-width:0}
.n-item .l::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--cyan-2);flex-shrink:0}
.n-item h4{font-size:14.5px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.n-item:hover h4{color:var(--blue)}
.n-item .date{font-size:12.5px;color:var(--muted);flex-shrink:0;font-family:"Manrope",sans-serif}
.entries{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-top:26px}
.entry{position:relative;padding:24px;border-radius:16px;overflow:hidden;cursor:pointer;min-height:120px;
  background:#fff;border:1px solid var(--line);box-shadow:var(--shadow-sm);color:var(--ink);
  display:flex;flex-direction:column;justify-content:space-between;transition:.3s}
.entry:hover{transform:translateY(-6px);box-shadow:var(--shadow);border-color:transparent}
.entry-top{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}
.entry .eic{width:46px;height:46px;border-radius:13px;background:var(--tint);color:var(--blue);
  display:grid;place-items:center;flex-shrink:0}
.entry svg{width:24px;height:24px}
.entry h4{font-size:17px;font-weight:700;color:var(--ink)}
.entry p{font-size:12.5px;color:var(--ink-2);margin-top:2px}
.entry .arw{align-self:flex-end;opacity:.7;transition:.3s;color:var(--blue)}
.entry:hover .arw{transform:translate(4px,-4px);opacity:1}

/* ---------- data section ---------- */
.data-sec{background:var(--blue-3);background:linear-gradient(180deg,color-mix(in srgb,var(--blue-3) 72%,#000) 0%,var(--blue-3) 100%);color:#fff;overflow:hidden}
.data-sec::before{content:"";position:absolute;inset:0;opacity:.1;
  background-image:linear-gradient(rgba(255,255,255,.4) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.4) 1px,transparent 1px);
  background-size:52px 52px;mask-image:radial-gradient(ellipse 70% 60% at 30% 30%,#000,transparent)}
.data-sec .sec-title,.data-sec .sec-sub{color:#fff}
.data-sec .sec-sub{color:rgba(255,255,255,.72)}
.data-sec .eyebrow{color:var(--cyan-3)}
.stat-row{display:grid;grid-template-columns:repeat(5,1fr);gap:16px;position:relative}
.stat{background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.14);border-radius:16px;padding:24px 20px;
  backdrop-filter:blur(8px);transition:.3s}
.stat:hover{background:rgba(255,255,255,.11);transform:translateY(-5px)}
.stat .ic{width:42px;height:42px;border-radius:12px;background:rgba(126,240,255,.16);display:grid;place-items:center;color:var(--cyan-3);margin-bottom:16px}
.stat .ic svg{width:22px;height:22px}
.stat .num{font-family:"Manrope",sans-serif;font-size:34px;font-weight:800;line-height:1}
.stat .num .plus{color:var(--cyan-3);font-size:24px}
.stat .lbl{font-size:13.5px;color:rgba(255,255,255,.75);margin-top:8px}
.data-lower{display:grid;grid-template-columns:1fr 1.6fr;gap:24px;margin-top:24px}
.data-sec .panel{background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.14);border-radius:18px;padding:26px 28px;backdrop-filter:blur(8px)}
.panel h3{font-size:16px;font-weight:700;display:flex;align-items:center;gap:9px;margin-bottom:4px}
.panel h3 .d{width:8px;height:8px;background:var(--cyan-3);border-radius:50%}
.panel .cap{font-size:12px;color:rgba(255,255,255,.55);margin-bottom:22px}
.bars{display:grid;gap:15px}
.bar-row{display:grid;grid-template-columns:70px 1fr 60px;align-items:center;gap:14px;font-size:13px}
.bar-row .pv{color:rgba(255,255,255,.85)}
.bar-track{height:12px;background:rgba(255,255,255,.1);border-radius:var(--radius);overflow:hidden}
.bar-fill{height:100%;border-radius:var(--radius);background:linear-gradient(90deg,#22D3EE,#3E7BFF);width:0;transition:width 1.3s cubic-bezier(.2,.8,.2,1)}
.bar-row .val{text-align:right;font-family:"Manrope",sans-serif;font-weight:700;color:var(--cyan-3)}
.mini-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.mini{background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.12);border-radius:12px;padding:16px 18px}
.mini b{font-family:"Manrope",sans-serif;font-size:26px;font-weight:800;color:#fff;display:block}
.mini span{font-size:12px;color:rgba(255,255,255,.7)}
/* 全景数据：左列双口径 filter 的桌面布局在文件尾部 v18 区块统一定义 */
.data-tabs{display:flex;gap:8px;margin-bottom:18px}
.data-tab{padding:6px 16px;border-radius:20px;font-size:13px;font-weight:600;cursor:pointer;background:rgba(255,255,255,.08);
  color:rgba(255,255,255,.7);transition:.2s}
.data-tab.on{background:var(--cyan-3);color:var(--blue-3)}

/* ---------- feature columns ---------- */
.feat-grid{display:grid;grid-template-columns:1fr 1fr .8fr;gap:22px;align-items:start}
.feat-vid{position:relative;border-radius:var(--radius);overflow:hidden;aspect-ratio:16/9;cursor:pointer;color:#fff;display:flex;
  align-items:flex-end;box-shadow:var(--shadow-sm)}
.feat-vid .ph{position:absolute;inset:0;transition:.5s;background:linear-gradient(135deg,#0B444E,#116A7A)}
.feat-vid:hover .ph{transform:scale(1.06)}
.feat-vid::after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(6,16,45,.9),transparent 60%)}
.feat-vid .fc{position:relative;z-index:2;padding:26px}
.feat-vid .play{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);z-index:2;width:64px;height:64px;
  border-radius:50%;background:rgba(255,255,255,.25);backdrop-filter:blur(6px);display:grid;place-items:center;border:1px solid rgba(255,255,255,.5);transition:.3s}
.feat-vid:hover .play{background:var(--blue);transform:translate(-50%,-50%) scale(1.1)}
.feat-vid .play svg{width:24px;height:24px;color:#fff;margin-left:3px}
.feat-vid h4{font-size:20px;font-weight:800}
.feat-vid p{font-size:13px;opacity:.85;margin-top:5px}
.feat-vid .lv{display:inline-block;background:var(--blue);font-size:11px;padding:3px 11px;border-radius:20px;margin-bottom:12px;font-weight:600}
/* 文化视频区占位卡（内容不足两条时补位）：低调主色深阶，非交互、非彩虹占位 */
.feat-vid-ph{cursor:default}
.feat-vid-ph .ph{background:linear-gradient(135deg,#0B444E,#116A7A)}
.feat-vid-ph:hover .ph{transform:none}
.feat-vid-ph .play{background:rgba(255,255,255,.16)}
.feat-vid-ph:hover .play{background:rgba(255,255,255,.16);transform:translate(-50%,-50%)}
.interview{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:22px;box-shadow:var(--shadow-sm)}
.interview h3{font-size:16px;font-weight:800;display:flex;align-items:center;gap:8px;margin-bottom:16px}
.interview h3 svg{width:20px;height:20px;color:var(--blue)}
.iv-item{display:flex;gap:11px;padding:12px 8px;border-radius:10px;transition:.2s;cursor:pointer;align-items:flex-start}
.iv-item:hover{background:var(--tint)}
.iv-item .no{font-family:"Manrope",sans-serif;font-weight:800;color:var(--blue);font-size:14px;flex-shrink:0;width:20px}
.iv-item p{font-size:13.5px;font-weight:500;line-height:1.5}
.iv-item:hover p{color:var(--blue)}

/* ---------- gallery ---------- */
.gallery{display:grid;grid-template-columns:repeat(6,1fr);gap:12px}
.gal{aspect-ratio:1;border-radius:14px;overflow:hidden;position:relative;cursor:pointer}
.gal .ph{position:absolute;inset:0;transition:.5s}
.gal:hover .ph{transform:scale(1.12)}
.gal::after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(10,27,78,.55),transparent 55%);opacity:0;transition:.3s}
.gal:hover::after{opacity:1}
.gal span{position:absolute;bottom:10px;left:12px;z-index:2;color:#fff;font-size:12px;font-weight:600;opacity:0;transform:translateY(8px);transition:.3s}
.gal:hover span{opacity:1;transform:none}

/* ---------- timeline ---------- */
.tl-sec{background:linear-gradient(180deg,#F4F7FF,#EAF0FF);position:relative;overflow:visible}
.tl-scroll{position:relative}                 /* height set by JS = vertical travel */
.tl-pin{position:sticky;top:0;height:100vh;display:flex;flex-direction:column;justify-content:center;
  gap:clamp(20px,4vh,48px);overflow:hidden;padding:5vh 0}
.tl-head{flex:0 0 auto}
.tl-viewport{position:relative;overflow:hidden;width:100%}
.tl-track{display:flex;position:relative;padding:56px 8vw 8px;width:max-content;will-change:transform}
.tl-line{position:absolute;top:117px;transform:translateY(-50%);left:calc(8vw + 9px);width:1920px;height:3px;
  border-radius:3px;background:rgba(var(--blue-rgb),.15);z-index:0}
.tl-line .tl-prog{display:block;height:100%;width:0;border-radius:3px;
  background:linear-gradient(90deg,var(--blue),var(--cyan));box-shadow:0 0 16px rgba(34,211,238,.65)}
.tl-node{flex:0 0 320px;padding-right:40px;position:relative;opacity:.4;transform:translateY(8px);
  transition:opacity .55s,transform .55s}
.tl-node.on{opacity:1;transform:none}
.tl-node .yr{font-family:"Manrope",sans-serif;font-size:38px;line-height:1;height:40px;display:block;
  font-weight:800;color:var(--blue);transition:.4s}
.tl-node .dot{width:18px;height:18px;border-radius:50%;background:#fff;border:3px solid var(--blue);
  margin:12px 0 22px;position:relative;z-index:2;transition:.4s}
.tl-node.on .dot{background:var(--blue);box-shadow:0 0 0 6px rgba(var(--blue-rgb),.16)}
.tl-node h4{font-size:17px;font-weight:700;margin-bottom:8px}
.tl-node p{font-size:13.5px;color:var(--ink-2);line-height:1.65;max-width:250px}
.tl-foot{display:flex;flex-direction:column;align-items:center;gap:12px;flex:0 0 auto}
.tl-bar{width:min(440px,64vw);height:4px;border-radius:4px;background:rgba(var(--blue-rgb),.14);overflow:hidden}
.tl-bar i{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--blue),var(--cyan))}
.tl-hint{font-size:12px;letter-spacing:.16em;color:var(--ink-2);opacity:.75}
@media(max-width:1080px){
  .tl-scroll{height:auto!important}
  .tl-pin{position:static;height:auto;display:block;padding:10px 0}
  .tl-viewport{overflow-x:auto;-webkit-overflow-scrolling:touch}
  .tl-track{transform:none!important;padding:56px 20px 8px}
  .tl-node{opacity:1;transform:none}
  .tl-foot{display:none}
}

/* ---------- partners + footer ---------- */
.partners{display:grid;grid-template-columns:repeat(6,1fr);gap:14px;margin-top:10px}
.partner{background:#fff;border:1px solid var(--line);border-radius:12px;height:76px;display:grid;place-items:center;
  color:var(--muted);font-size:13px;font-weight:600;transition:.25s;text-align:center;padding:8px}
.partner:hover{border-color:var(--blue);color:var(--blue);box-shadow:var(--shadow-sm);transform:translateY(-3px)}
footer{background:#0A1730;color:#9FB0D0;padding:64px 0 28px;position:relative;overflow:hidden}
footer::before{content:"";position:absolute;top:-140px;right:-80px;width:400px;height:400px;border-radius:50%;
  background:radial-gradient(circle,rgba(var(--blue-rgb),.35),transparent 70%);filter:blur(60px)}
.f-top{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:40px;position:relative;z-index:2}
.f-brand .logo{color:#fff;margin-bottom:18px}
.f-brand p{font-size:13.5px;line-height:1.8;max-width:300px}
.f-col h5{color:#fff;font-size:14px;font-weight:700;margin-bottom:16px}
.f-col a{display:block;font-size:13.5px;padding:6px 0;transition:.2s}
.f-col a:hover{color:#fff;padding-left:5px}
.f-bottom{border-top:1px solid rgba(255,255,255,.1);margin-top:44px;padding-top:24px;display:flex;justify-content:space-between;
  flex-wrap:wrap;gap:14px;font-size:12.5px;position:relative;z-index:2}
.f-bottom .badges{display:flex;gap:18px}

/* photo placeholders (self-contained, no external assets) */
.ph{background-size:cover;background-position:center}
.ph-a{background:linear-gradient(135deg,#1E3A8A,#3B82F6,#22D3EE)}
.ph-b{background:linear-gradient(135deg,#7C2D12,#B45309,#F59E0B)}
.ph-c{background:linear-gradient(135deg,#312E81,#6D28D9,#A855F7)}
.ph-d{background:linear-gradient(135deg,#064E3B,#0F766E,#14B8A6)}
.ph-e{background:linear-gradient(135deg,#7F1D1D,#B91C1C,#F87171)}
.ph-f{background:linear-gradient(135deg,#0C4A6E,#0369A1,#38BDF8)}
.ph-g{background:linear-gradient(135deg,#4C1D95,#7C3AED,#C084FC)}
.ph::before{content:"";position:absolute;inset:0;opacity:.22;
  background-image:radial-gradient(circle at 20% 30%,rgba(255,255,255,.5) 0,transparent 12%),
   radial-gradient(circle at 70% 60%,rgba(255,255,255,.35) 0,transparent 14%);}
.ph::after{content:"♟";position:absolute;right:8px;bottom:0;font-size:70px;color:rgba(255,255,255,.14);line-height:1}

/* back to top */
.totop{position:fixed;bottom:28px;right:28px;width:48px;height:48px;border-radius:50%;background:var(--grad);color:#fff;
  display:grid;place-items:center;cursor:pointer;box-shadow:0 12px 28px -10px rgba(var(--blue-rgb),.7);z-index:50;opacity:0;
  transform:translateY(20px);transition:.3s;pointer-events:none}
.totop.show{opacity:1;transform:none;pointer-events:auto}
.totop svg{width:20px;height:20px}

.badge-row{display:flex;gap:10px;flex-wrap:wrap;margin-top:16px}
.mini-badge{display:inline-flex;align-items:center;gap:7px;background:var(--tint);color:var(--blue);font-size:12.5px;font-weight:600;
  padding:6px 14px;border-radius:20px}

@media(max-width:1080px){
  .hero-inner{grid-template-columns:1fr}.hero-visual{display:none}
  .proj-grid{grid-template-columns:repeat(3,1fr)}
  .stat-row{grid-template-columns:repeat(3,1fr)}
  .entries{grid-template-columns:repeat(2,1fr)}
  .split,.data-lower,.feat-grid{grid-template-columns:1fr}
  .gallery{grid-template-columns:repeat(3,1fr)}
  .menu,.search{display:none}
  .f-top{grid-template-columns:1fr 1fr}.partners{grid-template-columns:repeat(3,1fr)}
}
@media(max-width:560px){
  .proj-grid,.stat-row{grid-template-columns:repeat(2,1fr)}
  .hero-stats{flex-wrap:wrap;gap:20px}
  .topbar .t-links{display:none}
}

/* ===== added motion layer ===== */
/* three.js hero canvas */
#mind-canvas{position:absolute;inset:0;width:100%;height:100%;z-index:1;pointer-events:none}
.hero .grid-ovl{z-index:1}
.hero-inner{z-index:3}
.hero-copy{position:relative}
.hero-spot{position:absolute;inset:0;z-index:2;pointer-events:none;opacity:.9;transition:background .2s;
  background:radial-gradient(320px circle at var(--mx,70%) var(--my,40%),rgba(126,240,255,.16),transparent 60%)}
.hero-visual{position:relative;z-index:3}

/* hero headline entrance */
.hero h1 .line{display:inline-block;opacity:0;transform:translateY(40px) rotateX(40deg);transform-origin:bottom;
  animation:lineUp .9s cubic-bezier(.2,.8,.2,1) forwards}
.hero h1 .line:nth-child(1){animation-delay:.15s}
.hero h1 .line:nth-child(3){animation-delay:.32s}
@keyframes lineUp{to{opacity:1;transform:none}}
.hero-badge{animation:fadeUp .8s .05s both}
.hero .lead{animation:fadeUp .8s .5s both}
.hero-cta{animation:fadeUp .8s .62s both}
.hero-stats{animation:fadeUp .8s .74s both}
@keyframes fadeUp{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:none}}

/* scroll progress */
.progress{position:fixed;top:0;left:0;height:3px;width:0;z-index:100;
  background:linear-gradient(90deg,var(--blue),var(--cyan));box-shadow:0 0 12px rgba(34,211,238,.7)}

/* cursor spotlight (global, desktop) */
.cursor-glow{position:fixed;top:0;left:0;width:26px;height:26px;border-radius:50%;z-index:95;pointer-events:none;
  border:1.5px solid rgba(var(--blue-rgb),.55);transform:translate(-50%,-50%);transition:width .2s,height .2s,background .2s,opacity .3s;
  mix-blend-mode:normal;opacity:0}
.cursor-dot{position:fixed;top:0;left:0;width:6px;height:6px;border-radius:50%;background:var(--blue);z-index:96;
  pointer-events:none;transform:translate(-50%,-50%);opacity:0}
.cursor-glow.big{width:56px;height:56px;background:rgba(var(--blue-rgb),.1);border-color:rgba(34,211,238,.7)}

/* 3D tilt */
.tilt{transform-style:preserve-3d;transition:transform .25s cubic-bezier(.2,.8,.2,1),box-shadow .25s;will-change:transform}
.tilt .glare{position:absolute;inset:0;border-radius:inherit;opacity:0;pointer-events:none;z-index:5;transition:opacity .3s;
  background:radial-gradient(240px circle at var(--gx,50%) var(--gy,0%),rgba(255,255,255,.55),transparent 55%)}
.tilt:hover .glare{opacity:.5}
.proj,.entry,.feat-vid,.news-card,.stat{position:relative}

/* magnetic buttons */
.magnetic{will-change:transform;transition:transform .3s cubic-bezier(.2,.8,.2,1)}

/* drifting chess glyph field */
.glyph-field{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:0}
.glyph-field b{position:absolute;font-size:var(--s,60px);color:var(--blue);opacity:.05;font-weight:400;
  animation:drift var(--d,22s) linear infinite;animation-delay:var(--dl,0s);will-change:transform}
@keyframes drift{
  0%{transform:translateY(30px) rotate(0deg);opacity:0}
  10%{opacity:.06}
  90%{opacity:.06}
  100%{transform:translateY(-120px) rotate(180deg);opacity:0}}
section{overflow:hidden}

/* shimmer on eyebrow line */
.eyebrow::before{background:linear-gradient(90deg,#165DFF,#22D3EE,#165DFF);background-size:200% 100%;
  animation:shim 2.6s linear infinite}
@keyframes shim{to{background-position:200% 0}}

/* animated knight divider */
.knight-path{display:block;margin:0 auto}
.knight-path path{stroke-dasharray:1;stroke-dashoffset:1;pathLength:1}
.knight-path.draw path{animation:draw 2.4s ease forwards}
@keyframes draw{to{stroke-dashoffset:0}}

/* project card float icons subtle spin on hover already; add pulse ring */
.p-ic::after{content:"";position:absolute;inset:-6px;border-radius:20px;border:1.5px solid transparent;transition:.35s}
.proj:hover .p-ic{position:relative}
.proj:hover .p-ic::after{border-color:rgba(255,255,255,.4)}

/* floating animation utility for stat cards */
.data-sec .stat{will-change:transform}

/* reduce motion */
@media (prefers-reduced-motion: reduce){
  *{animation-duration:.001s!important;animation-iteration-count:1!important}
  .hero h1 .line{opacity:1;transform:none}
}
@media(max-width:1080px){#mind-canvas{opacity:.6}.cursor-glow,.cursor-dot{display:none}}

/* ===== BIG-PHOTO EDITION ===== */
.photo{position:relative;overflow:hidden;background:linear-gradient(135deg,#12245e,#2453c9 55%,#22a7d3)}
.photo::before{content:"♟";position:absolute;right:12px;bottom:-8px;font-size:70px;color:rgba(255,255,255,.14);line-height:1;z-index:0}
.photo .pimg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block;z-index:1;
  transition:transform 1.1s cubic-bezier(.2,.8,.2,1)}

/* hero big photo backdrop (under the network canvas) */
.hero-photo{position:absolute;inset:0;z-index:0;overflow:hidden}
.hero-photo .pimg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.42;
  filter:saturate(1.05) contrast(1.02);transform:scale(1.08)}
.hero-photo::after{content:"";position:absolute;inset:0;
  background:linear-gradient(120deg,rgba(10,27,78,.9) 0%,rgba(14,58,176,.7) 45%,rgba(var(--blue-rgb),.5) 100%)}
.hero{padding-bottom:120px}

/* image reveal-expand (curtain uncover + scale-down) */
.rise{clip-path:inset(10% 12% 12% 12% round 8px);transform:scale(1.14);opacity:0;
  transition:clip-path 1.1s cubic-bezier(.2,.8,.2,1),transform 1.25s cubic-bezier(.2,.8,.2,1),opacity .8s}
.rise.shown{clip-path:inset(0% 0% 0% 0% round 8px);transform:none;opacity:1}
.no-cssanim .rise{clip-path:none;transform:none;opacity:1}

/* signature scroll expander */
.expand-sec{padding:0;background:radial-gradient(120% 90% at 50% 0%,#0C2E88 0%,#0A1730 72%)}
.expand-stage{height:170vh;position:relative}
.expand-pin{position:sticky;top:0;height:100vh;display:grid;place-items:center;overflow:hidden}
.expand-cap-top{position:absolute;top:7%;left:0;right:0;text-align:center;z-index:4;padding:0 20px}
.expand-cap-top .eyebrow{justify-content:center;color:var(--cyan-3)}
.expand-cap-top h2{font-size:clamp(28px,4vw,46px);font-weight:900;margin-top:12px;color:#fff}
.expand-cap-top p{color:rgba(255,255,255,.75);margin-top:8px;font-size:15px}
.expand-img{position:relative;width:62%;height:76vh;border-radius:26px;overflow:hidden;
  box-shadow:0 40px 110px -28px rgba(0,0,0,.7);will-change:width,height,border-radius}
.expand-img .pimg{transition:none}
.expand-img::after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(6,16,45,.72),transparent 55%)}
.expand-cap{position:absolute;left:0;right:0;bottom:0;z-index:2;padding:5% 6%;color:#fff}
.expand-cap .lv{display:inline-block;background:var(--blue);font-size:12px;padding:4px 14px;border-radius:20px;font-weight:600;margin-bottom:14px}
.expand-cap h3{font-size:clamp(24px,3.4vw,44px);font-weight:900;line-height:1.1}
.expand-cap p{margin-top:10px;font-size:15px;color:rgba(255,255,255,.85);max-width:620px}

/* 赛事聚焦 big cards */
.focus-grid{display:grid;grid-template-columns:2fr 1fr 1fr;grid-auto-rows:212px;gap:18px}
.focus-card{position:relative;border-radius:20px;overflow:hidden;color:#fff;display:flex;align-items:flex-end;
  box-shadow:var(--shadow-sm);cursor:pointer;background:#12224e}
.focus-card.big{grid-row:span 2}
.focus-card .photo{position:absolute;inset:0}
.focus-card::after{content:"";position:absolute;inset:0;z-index:1;
  background:linear-gradient(to top,rgba(6,16,45,.86),rgba(6,16,45,.15) 55%,transparent)}
.focus-card:hover .pimg{transform:scale(1.09)}
.focus-card .fc{position:relative;z-index:2;padding:22px 24px}
.focus-card .date-badge{position:absolute;top:16px;left:16px;z-index:2;background:rgba(255,255,255,.16);
  backdrop-filter:blur(8px);border:1px solid rgba(255,255,255,.3);border-radius:12px;padding:8px 12px;text-align:center;line-height:1.1}
.focus-card .date-badge b{font-family:"Manrope",sans-serif;font-size:20px;font-weight:800;display:block}
.focus-card .date-badge span{font-size:11px;opacity:.9}
.focus-card .lv{display:inline-block;background:var(--blue);font-size:11px;padding:3px 11px;border-radius:20px;font-weight:600;margin-bottom:10px}
.focus-card.big h3{font-size:26px;font-weight:800}
.focus-card h3{font-size:17px;font-weight:700;line-height:1.35}
.focus-card .meta{font-size:12px;opacity:.85;margin-top:8px;display:flex;gap:12px;flex-wrap:wrap}

/* mega gallery */
.mega-gallery{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:210px;gap:14px}
.g-item{position:relative;border-radius:16px;overflow:hidden;cursor:pointer;background:#12224e}
.g-item.wide{grid-column:span 2}
.g-item.tall{grid-row:span 2}
.g-item .photo{position:absolute;inset:0}
.g-item::after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(10,27,78,.6),transparent 55%);opacity:.4;transition:.3s;z-index:1}
.g-item:hover::after{opacity:.75}
.g-item:hover .pimg{transform:scale(1.1)}
.g-item .cap{position:absolute;left:16px;bottom:14px;z-index:2;color:#fff;font-size:13px;font-weight:600;
  opacity:0;transform:translateY(10px);transition:.35s}
.g-item:hover .cap{opacity:1;transform:none}
.g-item .cap .s{display:block;font-size:11px;font-weight:400;opacity:.8;margin-top:2px}

/* upgraded news: image-forward */
.news-card{flex-direction:column;gap:0}
.news-card .news-thumb{width:100%;height:172px}
.news-card .news-thumb .photo{position:absolute;inset:0}
.news-card:hover .pimg{transform:scale(1.07)}
.news-body{padding:16px 18px}
.news-body h4{-webkit-line-clamp:2}
.split .news{grid-template-columns:1fr 1fr;gap:14px}
@media(max-width:1080px){.split .news{grid-template-columns:1fr 1fr}}

/* ===== full-screen 3D door-opening ===== */
.expand-sec,.door-sec{overflow:visible}   /* keep position:sticky working (section overflow would break it) */
.door-sec{position:relative;height:240vh;background:#050d24}
.door-pin{position:sticky;top:0;height:100vh;overflow:hidden;background:#050d24;
  perspective:1900px;perspective-origin:50% 50%}
.door-behind{position:absolute;inset:0;z-index:1;overflow:hidden}
.door-behind .photo{position:absolute;inset:0}
.door-behind .photo .pimg{transform:scale(1.06)}
.door-behind::after{content:"";position:absolute;inset:0;z-index:1;
  background:radial-gradient(80% 80% at 50% 45%,rgba(5,13,36,.25),rgba(5,13,36,.82))}
.door-behind-cap{position:absolute;inset:0;z-index:2;display:grid;place-content:center;justify-items:center;
  text-align:center;color:#fff;gap:8px;padding:20px;opacity:0;transform:translateY(24px) scale(.96);
  transition:opacity .5s,transform .6s}
.door-behind-cap .eyebrow{color:var(--cyan-3)}
.door-behind-cap h2{font-size:clamp(32px,5vw,64px);font-weight:900;letter-spacing:-.01em;line-height:1.08;
  text-shadow:0 10px 40px rgba(0,0,0,.5)}
.door-behind-cap h2 .g{background:linear-gradient(100deg,var(--cyan-3),#B9D0FF);-webkit-background-clip:text;background-clip:text;color:transparent}
.door-behind-cap p{color:rgba(255,255,255,.82);font-size:16px;margin-top:2px}
.door-behind-cap .btn{margin-top:18px}
.door{position:absolute;top:0;height:100%;width:50.4%;overflow:hidden;z-index:3;
  backface-visibility:hidden;will-change:transform,opacity;
  background:linear-gradient(135deg,#12245e,#2453c9 55%,#22a7d3)}
.door.l{left:0;transform-origin:left center;box-shadow:14px 0 40px -10px rgba(0,0,0,.6)}
.door.r{right:0;transform-origin:right center;box-shadow:-14px 0 40px -10px rgba(0,0,0,.6)}
.door .pimg{position:absolute;top:0;height:100%;width:200%;max-width:none;object-fit:cover}
.door.l .pimg{left:0}
.door.r .pimg{left:-100%}
.door .shade{position:absolute;inset:0;z-index:2;opacity:0;transition:none}
.door.l .shade{background:linear-gradient(90deg,transparent,rgba(0,0,0,.6))}
.door.r .shade{background:linear-gradient(270deg,transparent,rgba(0,0,0,.6))}
.door-seam{position:absolute;top:0;left:50%;width:3px;height:100%;transform:translateX(-1.5px);z-index:4;
  background:linear-gradient(180deg,rgba(255,255,255,.7),rgba(126,240,255,.35));
  box-shadow:0 0 22px rgba(126,240,255,.7)}
.door-hint{position:absolute;bottom:28px;left:50%;transform:translateX(-50%);z-index:5;color:rgba(255,255,255,.8);
  font-size:12px;letter-spacing:.22em;display:flex;flex-direction:column;align-items:center;gap:8px}

@media(max-width:1080px){
  .focus-grid{grid-template-columns:1fr 1fr}.focus-card.big{grid-row:span 1}
  .mega-gallery{grid-template-columns:repeat(2,1fr)}
  .expand-img{width:88%}
}
@media(max-width:560px){
  .focus-grid{grid-template-columns:1fr}.mega-gallery{grid-template-columns:1fr}
}

/* ===== v2 客户修订 ===== */
/* hero multi-project motifs + tags */
.hero-motifs{position:absolute;inset:0;z-index:1;pointer-events:none;overflow:hidden}
.hero-motifs b{position:absolute;font-size:clamp(40px,5vw,86px);color:rgba(255,255,255,.10);font-weight:400;
  animation:drift var(--d,26s) linear infinite;will-change:transform}
.hero-tags{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:26px;animation:fadeUp .8s .86s both}
.hero-tags .ht-label{font-size:12.5px;color:rgba(255,255,255,.7);margin-right:2px}
.hero-tags .ht{font-size:12.5px;font-weight:600;color:#fff;background:rgba(255,255,255,.14);
  border:1px solid rgba(255,255,255,.28);padding:5px 13px;border-radius:20px;backdrop-filter:blur(6px)}
/* 赛历 clean list */
.cal-list{display:grid;gap:14px}
.cal-row{display:flex;align-items:center;gap:22px;background:#fff;border:1px solid var(--line);border-radius:14px;
  padding:16px 20px;transition:.25s}
.cal-row:hover{border-color:var(--blue);box-shadow:var(--shadow-sm);transform:translateX(4px)}
.cal-date{flex-shrink:0;width:66px;text-align:center;line-height:1.1}
.cal-date b{font-family:"Manrope",sans-serif;font-size:28px;font-weight:800;color:var(--blue);display:block}
.cal-date span{font-size:12px;color:var(--blue)}
.cal-tag{flex-shrink:0;font-size:12.5px;font-weight:600;padding:5px 12px;border-radius:var(--radius);color:#fff}
.t-xq{background:#C0392B}.t-gj{background:#2C3E50}.t-wz{background:#16A085}.t-tq{background:#8E44AD}.t-qp{background:#2980B9}.t-mf{background:#E67E22}
.cal-main{flex:1;min-width:0}
.cal-main h4{font-size:16px;font-weight:700;margin-bottom:8px;line-height:1.45}
.cal-meta{display:flex;gap:16px;flex-wrap:wrap;font-size:12.5px;color:var(--muted)}
.cal-btn{flex-shrink:0;font-size:13px;font-weight:600;color:var(--blue);white-space:nowrap;transition:.2s}
.cal-row:hover .cal-btn{transform:translateX(3px)}
.cal-row{cursor:pointer}
/* news full-width grid */
.news-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.news-grid .news-card{flex-direction:column}
.news-grid .news-thumb{width:100%;height:190px}
/* data project tabs */
.proj-tabs{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:26px}
.proj-tabs .pt{font-family:inherit;font-size:14px;font-weight:600;cursor:pointer;padding:9px 20px;border-radius:24px;
  background:rgba(255,255,255,.08);color:rgba(255,255,255,.75);border:1px solid rgba(255,255,255,.16);transition:.22s}
.proj-tabs .pt:hover{background:rgba(255,255,255,.15);color:#fff}
.proj-tabs .pt.on{background:var(--cyan-3);color:var(--blue-3);border-color:var(--cyan-3)}
/* china map heatmap */
.map-panel h3{margin-bottom:2px}
.map-wrap{position:relative;margin-top:14px}
#cnMap{width:100%;height:auto;display:block;max-height:420px}
#cnMap .prov{fill:var(--blue-3);stroke:rgba(5,16,24,.5);stroke-width:.6;transition:fill .5s,filter .2s;cursor:pointer}
#cnMap .prov:hover{filter:brightness(1.22);stroke:var(--cyan-3);stroke-width:1}
.map-legend{position:absolute;left:8px;bottom:6px;display:flex;align-items:center;gap:8px;font-size:11px;color:rgba(255,255,255,.7)}
.map-legend .lg-bar{width:120px;height:8px;border-radius:6px;background:linear-gradient(90deg,color-mix(in srgb,var(--blue) 55%,#0a1b28),var(--blue),var(--cyan-3))}
.map-tip{position:absolute;pointer-events:none;opacity:0;transform:translate(-50%,-120%);background:rgba(6,16,45,.92);
  border:1px solid rgba(126,240,255,.4);color:#fff;font-size:12px;padding:6px 10px;border-radius:var(--radius);white-space:nowrap;transition:opacity .15s;z-index:5}
.map-tip b{color:var(--cyan-3);font-family:"Manrope",sans-serif;margin-left:6px}
/* feature video 16:9 */
.feat-vid{aspect-ratio:16/9;min-height:0}
/* gallery uniform 16:9 */
.mega-gallery{grid-template-columns:repeat(3,1fr)!important;grid-auto-rows:auto!important}
.mega-gallery .g-item{aspect-ratio:16/9}
.mega-gallery .g-item.wide{grid-column:auto!important}
.mega-gallery .g-item.tall{grid-row:auto!important}
/* partners logo redesign */
.rel-link{display:flex;align-items:center;gap:14px;background:#fff;border:1px solid var(--line);border-radius:12px;
  padding:16px 22px;margin-bottom:24px;box-shadow:var(--shadow-sm)}
.rel-link .rl-label{font-size:13px;font-weight:700;color:#fff;background:var(--grad);padding:6px 14px;border-radius:var(--radius);flex-shrink:0}
.rel-link .rl-item{font-size:15px;font-weight:600;color:var(--ink);transition:.2s;cursor:pointer}
.rel-link .rl-item:hover{color:var(--blue)}
.pt-groups{display:grid;grid-template-columns:1fr 1fr 1fr;gap:22px}
.pt-cat{font-size:14px;font-weight:700;color:var(--ink);margin-bottom:14px;padding-left:11px;border-left:4px solid var(--blue)}
.logo-row{display:flex;gap:14px;flex-wrap:wrap}
.logo-card{background:#fff;border:1px solid var(--line);border-radius:12px;padding:14px;width:calc(50% - 7px);
  display:flex;flex-direction:column;align-items:center;gap:10px;transition:.25s;text-align:center}
.pt-block:not(:first-child) .logo-card{width:100%}
.logo-card:hover{border-color:var(--blue);box-shadow:var(--shadow-sm);transform:translateY(-3px)}
.logo-box{height:56px;display:flex;align-items:center;justify-content:center}
.logo-ph{width:56px;height:56px;border-radius:12px;background:var(--tint);display:grid;place-items:center;
  font-weight:800;color:var(--blue);font-size:15px;overflow:hidden}
.logo-ph.gov{background:#FDECEA}
.logo-ph svg{width:44px;height:44px}
.logo-card span{font-size:12.5px;color:var(--ink-2);line-height:1.4}
.ph-note{font-size:12px;color:var(--muted);margin-top:16px}
/* footer QR */
.qr-row{border-top:1px solid rgba(255,255,255,.1);margin-top:36px;padding-top:26px;position:relative;z-index:2}
.qr-title{font-size:14px;font-weight:700;color:#fff;margin-bottom:16px}
.qr-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:16px;justify-items:center;align-items:start}
.qr-item{display:flex;flex-direction:column;align-items:center;gap:8px}
.qr-ph{width:88px;height:88px;background:#fff;border-radius:10px;padding:6px;box-shadow:0 6px 18px -8px rgba(0,0,0,.5)}
.qr-ph .qrsvg{width:100%;height:100%;display:block}
.qr-item span{font-size:12px;color:#9FB0D0}
@media(max-width:1080px){
  .news-grid{grid-template-columns:repeat(2,1fr)}
  .pt-groups{grid-template-columns:1fr}
  .qr-grid{grid-template-columns:repeat(3,1fr)}
  .mega-gallery{grid-template-columns:repeat(2,1fr)!important}
  .cal-row{flex-wrap:wrap}
}
@media(max-width:560px){
  .news-grid,.mega-gallery{grid-template-columns:1fr!important}
  .qr-grid{grid-template-columns:repeat(2,1fr)}
  .logo-card{width:100%}
}

/* ===== v3: 注册入口 + 合作伙伴真实图片位 ===== */
.reg-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.reg-card{display:block;border-radius:16px;overflow:hidden;background:#fff;border:1px solid var(--line);
  box-shadow:var(--shadow-sm);transition:transform .3s,box-shadow .3s;cursor:pointer}
.reg-card:hover{transform:translateY(-6px);box-shadow:var(--shadow)}
.reg-ill{aspect-ratio:16/9;position:relative;display:grid;place-items:center;overflow:hidden}
.reg1 .reg-ill{background:linear-gradient(135deg,#165DFF,#3E7BFF)}
.reg2 .reg-ill{background:linear-gradient(135deg,#0E42D6,#22A7D3)}
.reg3 .reg-ill{background:linear-gradient(135deg,#0891B2,#22D3EE)}
.reg-ill>svg{width:66px;height:66px;position:relative;z-index:1}
.reg-ill::after{content:"♟";position:absolute;right:-4px;bottom:-22px;font-size:130px;color:rgba(255,255,255,.13);line-height:1}
.reg-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:2}
.reg-bar{display:flex;align-items:center;justify-content:space-between;padding:16px 20px}
.reg-bar span{font-size:17px;font-weight:700;color:var(--blue)}
.reg-bar i{color:var(--blue);font-style:normal;font-size:18px;transition:.25s}
.reg-card:hover .reg-bar i{transform:translateX(5px)}
/* partner real logo image */
.logo-ph{overflow:hidden}
.plogo{max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain;display:block}
.logo-box .plogo{max-height:52px}
.logo-ph.noimg{background:repeating-linear-gradient(45deg,#eef2fb,#eef2fb 6px,#e6ecfa 6px,#e6ecfa 12px)}
.rl-logo{display:inline-flex;align-items:center;justify-content:center;height:30px;min-width:30px;margin-right:6px;vertical-align:middle}
.rl-logo .plogo{max-height:30px}
.rl-logo.noimg{display:none}
@media(max-width:1080px){.reg-grid{grid-template-columns:1fr}}

/* v4: real assets */
.reg-full{width:100%;display:block;aspect-ratio:16/9;object-fit:cover}
.qr-ph img{width:100%;height:100%;object-fit:contain;display:block}
.logo-box .plogo{max-height:54px;max-width:100%;object-fit:contain}

/* v4.1: 合作伙伴 logo 卡统一尺寸 + 最大宽度 */
.logo-card{width:190px!important;max-width:100%;height:130px;justify-content:center}
.pt-block:not(:first-child) .logo-card{width:190px!important}
.logo-box{height:60px}
.logo-box .plogo{max-height:56px}
.logo-row{align-items:stretch}

/* ===== v5 (改版意见2) ===== */
.eyebrow{display:none!important}
.sec-title{color:var(--blue)!important;font-size:clamp(21px,2.2vw,29px)!important}
.data-sec .sec-title{color:var(--cyan-3)!important}
.en-t{font-family:"Manrope",sans-serif;font-weight:700;color:var(--muted);font-size:.5em;margin-left:9px;letter-spacing:.03em;vertical-align:2px}
.data-sec .en-t{color:rgba(255,255,255,.55)}
/* hero shorter · only headline */
.hero{padding:72px 0 92px!important}
.hero-min{min-height:auto!important;align-items:center}
.hero-min .hero-copy h1{margin-top:0}
/* 赛历 two columns / 12 */
.cal-list{grid-template-columns:1fr 1fr!important;gap:14px}
.cal-row .cal-main h4{font-size:15px}
/* 赛历分组：保留组间间隔与分隔线，卡片宽度统一，不做自动伸缩 */
.cal-group{padding-bottom:22px;margin-bottom:4px;border-bottom:1px dashed var(--line)}
.cal-group:last-child{border-bottom:none}
/* culture：人物访谈视频卡 16:9（两格，不足两条补占位卡、有视频则替换）。
   专访框与视频卡底边对齐：height:0 使其不参与行高计算（行高只由 16:9 视频卡决定），min-height:100% 再撑到行高，
   条目多则框内滚动（DESIGN.md「不为对齐留空」）。不能用 height:100%——行高会先被专访自身内容撑大，永远不出滚动条。
   ≤1080 换列见下方 media。 */
.feat-vid{aspect-ratio:16/9!important;height:auto!important;min-height:0;align-self:start}
.interview{height:0;min-height:100%;overflow-y:auto;scrollbar-width:thin}
.interview::-webkit-scrollbar{width:6px}
.interview::-webkit-scrollbar-thumb{background:#cdd8f0;border-radius:6px}
@media(max-width:1080px){
  .cal-list{grid-template-columns:1fr!important}
  .feat-vid{height:auto}
  .interview{height:auto;min-height:0}
}

/* v6: 真实 Banner 背景图 */
.hero #mind-canvas{display:none!important}
.hero .hero-motifs{display:none!important}
.hero-photo .pimg{opacity:1!important;transform:none!important;object-position:center right}
.hero-photo::after{background:linear-gradient(90deg,rgba(6,14,42,.94) 0%,rgba(8,24,74,.62) 34%,rgba(8,24,74,.18) 58%,rgba(8,24,74,0) 78%)!important}
.hero-min{min-height:clamp(360px,34vw,470px)!important;align-items:center}
.hero{padding:64px 0 72px!important}
.sec-sub{display:none!important}

/* v7: 合作伙伴重排 */
.pcard-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}
.pcard{background:#fff;border:1px solid var(--line);border-radius:14px;padding:18px 16px 16px;
  display:flex;flex-direction:column;align-items:center;gap:12px;text-align:center;transition:.25s;position:relative}
.pcard:hover{border-color:var(--blue);box-shadow:var(--shadow-sm);transform:translateY(-4px)}
.pcard .cat-tag{align-self:flex-start;font-size:11.5px;font-weight:600;color:var(--blue);background:var(--tint);
  padding:4px 10px;border-radius:20px}
.pcard .pbox{height:72px;display:flex;align-items:center;justify-content:center}
.pcard .pbox .plogo{max-height:66px;max-width:100%;object-fit:contain}
.pcard .pname{font-size:13px;color:var(--ink-2);line-height:1.45}
@media(max-width:1080px){.pcard-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){.pcard-grid{grid-template-columns:1fr}}

/* ===== v9: 自由错落 · 可交互 Banner ===== */
.hero{padding:0!important;position:relative;overflow:hidden}
.hero .hero-photo{position:absolute;inset:0;z-index:0}
.hero .hero-photo .pimg{width:100%;height:100%;object-fit:cover;object-position:center;opacity:1!important;transform:none!important}
.hero .hero-photo::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(5,12,38,.94) 0%,rgba(6,18,60,.5) 32%,rgba(6,18,60,.08) 58%,rgba(6,18,60,0) 80%)}
.hero .hero-inner.hero-min{position:relative;z-index:3;min-height:clamp(420px,40vw,560px);display:flex;align-items:center;pointer-events:none}
.hero-copy{position:relative;z-index:3;max-width:42%}
.hero-sub{margin-top:22px;font-size:14px;color:rgba(255,255,255,.78);letter-spacing:.02em}
/* stage fills hero; elements freely placed */
.banner-stage{position:absolute;inset:0;z-index:2}
.bel{position:absolute;background:none;border:none;padding:0;margin:0;cursor:pointer;opacity:.5;
  display:block;transition:opacity .4s;animation:belFloat var(--d,7s) ease-in-out infinite var(--dl,0s)}
.bel img{display:block;height:100%;width:auto;filter:drop-shadow(0 16px 18px rgba(0,0,0,.5));
  transition:transform .4s cubic-bezier(.2,.8,.2,1),filter .35s}
@keyframes belFloat{50%{transform:translateY(-5px)}}
/* free placement (错落·不同高度·前后叠压) */
.b-xq{left:47%;bottom:24%;height:20%;z-index:5;--d:6s;--dl:.6s}
.b-gj{left:55%;bottom:19%;height:32%;z-index:4;--d:7s;--dl:0s}
.b-qp{left:64.5%;bottom:15%;height:16%;z-index:3;--d:8s;--dl:1.2s}
/* 8/28：banner 国际跳棋(带皇冠 b-tq)挪到五子棋(b-wz)前面，只对调二者水平位置 left（各自高度/纵向错落不变） */
.b-tq{left:75%;bottom:20%;height:26%;z-index:4;--d:7.6s;--dl:.9s}
.b-wz{left:83.5%;bottom:15%;height:17%;z-index:3;--d:6.6s;--dl:.3s}
.b-mf{left:91.5%;bottom:24%;height:20%;z-index:5;--d:6.9s;--dl:1.5s}
/* interaction: 默认常态; 悬停/选中高亮; 选中后其余变暗 */
.bel:hover,.bel.active{animation-play-state:paused;z-index:9}
.bel:hover img,.bel.active img{transform:translateY(-10px) scale(1.08);
  filter:drop-shadow(0 0 26px rgba(126,240,255,.85)) drop-shadow(0 18px 22px rgba(0,0,0,.55))}
.banner-stage.has-active .bel{opacity:.3}
.banner-stage.has-active .bel.active{opacity:1}
.bel-tip{position:absolute;left:50%;top:0;transform:translate(-50%,-135%);white-space:nowrap;
  background:rgba(6,16,45,.92);border:1px solid rgba(126,240,255,.55);color:#fff;font-size:13px;font-weight:600;
  padding:5px 13px;border-radius:20px;opacity:0;pointer-events:none;transition:opacity .25s,transform .25s}
.bel:hover .bel-tip,.bel.active .bel-tip{opacity:1;transform:translate(-50%,-122%)}
@media(max-width:1080px){
  .hero .hero-inner.hero-min{flex-direction:column;align-items:flex-start;min-height:0;padding:52px 22px 210px}
  .hero-copy{max-width:100%}
  .banner-stage{top:auto;height:200px}
  .bel{animation:none}
  .b-xq{left:2%;bottom:6%;height:26%}.b-gj{left:20%;bottom:6%;height:56%}.b-qp{left:40%;bottom:34%;height:26%}
  .b-tq{left:44%;bottom:10%;height:42%}.b-wz{left:66%;bottom:6%;height:24%}.b-mf{left:84%;bottom:6%;height:30%}
}

/* ===== v14: 移动端优化 ===== */
@media(max-width:1080px){
  .hero .hero-photo .pimg{object-position:70% center}
  .hero .hero-photo::after{background:linear-gradient(180deg,rgba(5,12,38,.86) 0%,rgba(6,18,60,.44) 46%,rgba(6,18,60,.1) 100%)!important}
}
@media(max-width:640px){
  /* 赛历:两行式布局,标题整行不再竖排 */
  .cal-row{flex-wrap:wrap;row-gap:8px;padding:14px 16px}
  .cal-date{width:auto;display:flex;align-items:baseline;gap:7px;text-align:left;line-height:1}
  .cal-date b{display:inline;font-size:20px}
  .cal-date span{display:inline;font-size:12px}
  .cal-main{flex:1 1 100%;min-width:100%;order:5}
  .cal-main h4{font-size:15px;margin-bottom:4px;line-height:1.45}
  .cal-meta{gap:10px}
  .cal-btn{margin-left:auto;font-size:12.5px}
  .hero-sub{font-size:13px}
}

/* v15.1: 二维码矩阵移至页脚品牌区 logo 下方 */
.brand-qr{display:grid;grid-template-columns:repeat(3,max-content);gap:14px 18px;margin:4px 0 22px}
.brand-qr .qr-ph{width:74px;height:74px;padding:5px}
.brand-qr .qr-item span{font-size:11.5px}
@media(max-width:1080px){.brand-qr{grid-template-columns:repeat(3,max-content)}}

/* v15.2: 二维码恢复一行平铺,置于页脚顶部 */
.qr-topbar{border-top:none!important;margin-top:0!important;padding-top:0!important;
  border-bottom:1px solid rgba(255,255,255,.1);padding-bottom:30px;margin-bottom:36px}
.qr-topbar .qr-ph{width:88px;height:88px;padding:6px}
.qr-topbar .qr-item span{font-size:12px}

/* ===== v16: 紧凑布局 + 字号提升 + 赛历重构 ===== */
.wrap{max-width:1400px;padding:0 32px}
section{padding:52px 0}
.sec-head{margin-bottom:22px}
.sec-title{font-size:clamp(24px,2.3vw,33px)!important}
.more{font-size:15px}
/* type scale up */
.p-name{font-size:16.5px}.p-en{font-size:12px}
.news-body h4{font-size:16.5px}.news-body .d{font-size:13px}
.n-item h4{font-size:16px}.n-item .date{font-size:13.5px}.tab{font-size:15.5px}
.entry h4{font-size:18px}.entry p{font-size:13px}
.stat .num{font-size:36px}.stat .lbl{font-size:14.5px}
.proj-tabs .pt{font-size:15px}
.iv-item p{font-size:15px}.interview h3{font-size:17px}
.g-item .cap{font-size:14px}
.pcard .pname{font-size:14px}.rl-item{font-size:16px!important}
.f-col a{font-size:14.5px}.f-col h5{font-size:15px}
.qr-topbar{padding-bottom:24px;margin-bottom:28px}
footer{padding:46px 0 22px}
.news-grid{gap:16px}.mega-gallery{gap:12px!important}.pcard-grid{gap:16px}
/* calendar rebuild */
.cal-filter{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:24px}
.cf{font-family:inherit;display:inline-flex;align-items:center;gap:7px;font-size:14.5px;font-weight:600;
  padding:8px 18px;border-radius:22px;border:1px solid var(--line);background:#fff;color:var(--ink-2);cursor:pointer;transition:.2s}
.cf svg{width:17px;height:17px}
.cf:hover{border-color:var(--blue);color:var(--blue)}
.cf.on{background:var(--blue);border-color:var(--blue);color:#fff}
.cal-group{margin-bottom:26px}
.cal-month{display:flex;align-items:baseline;gap:8px;margin-bottom:12px}
.cal-month b{font-family:"Manrope",sans-serif;font-size:20px;color:var(--blue)}
.cal-month span{font-size:14.5px;color:var(--ink-2);font-weight:600}
.cal-month::after{content:"";flex:1;height:1px;background:var(--line);align-self:center;margin-left:8px}
.cal-ic{flex-shrink:0;width:46px;height:46px;border-radius:12px;background:var(--tint);display:grid;place-items:center;color:var(--blue)}
.cal-ic svg{width:25px;height:25px}
.cal-main h4{font-size:17px}
.cal-meta{font-size:13.5px}
.cal-btn{font-size:14px}
.cal-date b{font-size:30px}
.cal-date span{font-size:12.5px}
@media(max-width:640px){
  .wrap{padding:0 20px}
  .cal-month b{font-size:17px}
}

/* v16.1: 进一步压缩留白 */
.wrap{max-width:1600px;padding:0 28px}
section{padding:38px 0}
#partners{padding-bottom:40px!important}
#calendar,#news,#notice,#gallery{padding-top:0!important}
.sec-head{margin-bottom:18px}
.cal-group{margin-bottom:20px}
footer{padding:40px 0 20px}
.qr-topbar{padding-bottom:20px;margin-bottom:24px}
.f-top{gap:30px}
@media(min-width:1700px){.wrap{max-width:1720px}}

/* ===== v16.2: 全站字号真正放大 ===== */
body{font-size:16px}
.menu>li>a{font-size:16px;padding:10px 12px}
/* 宽屏(≥1500)空间充足，菜单字号/间距回到更舒展的档位；1301–1500 保持紧凑；≤1300 收进汉堡 */
@media(min-width:1500px){.menu>li>a{font-size:17px;padding:11px 14px}.search{width:150px}}
.btn-primary{font-size:15.5px}
.search input{font-size:15px}
.hero-sub{font-size:16px!important}
.more{font-size:16.5px}
.sec-title{font-size:clamp(27px,2.6vw,37px)!important}
.en-t{font-size:.46em}
/* 赛历 */
.cf{font-size:16px;padding:9px 20px}
.cf svg{width:19px;height:19px}
.cal-date b{font-size:33px}
.cal-date span{font-size:14px}
.cal-main h4{font-size:19px!important}
.cal-meta{font-size:15px!important}
.cal-btn{font-size:15.5px!important}
.cal-month b{font-size:23px}
.cal-month span{font-size:16px}
.cal-ic{width:50px;height:50px}
.cal-ic svg{width:27px;height:27px}
/* 项目卡 */
.p-name{font-size:18px!important}
.p-en{font-size:13px!important}
/* 新闻 */
.news-body h4{font-size:18px!important;line-height:1.5}
.news-body .d{font-size:14.5px!important}
/* 通知+入口 */
.tab{font-size:17px!important}
.n-item h4{font-size:17.5px!important}
.n-item .date{font-size:15px!important}
.entry h4{font-size:20px!important}
.entry p{font-size:14.5px!important}
/* 数据 */
.proj-tabs .pt{font-size:16.5px}
.stat .num{font-size:40px!important}
.stat .lbl{font-size:16px!important}
.panel h3{font-size:18px}
.panel .cap{font-size:13.5px}
.bar-row{font-size:14.5px}
.mini b{font-size:30px}
.mini span{font-size:13.5px}
.data-tab{font-size:14.5px}
.map-tip{font-size:13.5px}
/* 文化 */
.feat-vid h4{font-size:22px}
.feat-vid p{font-size:14.5px}
.feat-vid .lv{font-size:13px}
.interview h3{font-size:19px}
.iv-item p{font-size:16.5px!important}
.iv-item .no{font-size:15px}
/* 图集/伙伴 */
.g-item .cap{font-size:15.5px!important}
.g-item .cap .s{font-size:12.5px}
.rl-label{font-size:14.5px!important}
.rl-item{font-size:17.5px!important}
.pcard .cat-tag{font-size:13px}
.pcard .pname{font-size:15.5px!important}
/* 页脚 */
.qr-title{font-size:16px}
.qr-item span{font-size:13.5px!important}
.f-col h5{font-size:16.5px!important}
.f-col a{font-size:16px!important;padding:7px 0}
.f-bottom{font-size:14px}
.bel-tip{font-size:14.5px}

/* ===== 内页版：卡片链接化补丁（不改变任何视觉） ===== */
a.proj,a.news-card,a.n-item,a.entry,a.iv-item,a.g-item{
  color:inherit;text-decoration:none;outline:none;-webkit-tap-highlight-color:transparent}
a.proj:focus,a.proj:active{outline:none}
a.proj:focus-visible{outline:2px solid var(--blue);outline-offset:2px}
a.feat-vid{text-decoration:none;color:#fff}
.feat-vid .fc h4,.feat-vid .fc p{color:#fff}
a.proj,a.g-item{display:block}
a.more,a.cal-btn{text-decoration:none}

/* ===== v17: 移动端设计重构（导航 / Banner / 赛历 / 全景数据 / 各分区） ===== */
/* 汉堡按钮（桌面隐藏） */
.nav-burger{display:none;width:42px;height:42px;border-radius:10px;border:1px solid var(--line);background:#fff;
  cursor:pointer;place-items:center;flex-shrink:0;color:var(--ink-2)}
.nav-burger svg{width:22px;height:22px}

@media(max-width:1300px){
  /* 导航：出现汉堡，菜单折叠为全宽下拉面板（10 个菜单项在窄屏/Mac 更宽字体下放不下，收进汉堡，避免右上角按钮被挤出/截断） */
  .nav-burger{display:grid}
  .nav .wrap{height:64px;gap:10px}
  #mainMenu{position:absolute;top:64px;left:0;right:0;flex:none;flex-direction:column;gap:0;background:#fff;
    border-top:1px solid var(--line);border-bottom:1px solid var(--line);box-shadow:var(--shadow);
    padding:8px 20px 16px;display:none;max-height:calc(100vh - 64px);overflow-y:auto;z-index:60}
  #mainMenu.open{display:flex}
  #mainMenu>li{position:static;width:100%;border-bottom:1px solid var(--line)}
  #mainMenu>li:last-child{border-bottom:none}
  #mainMenu>li>a{padding:14px 4px;font-size:16.5px;justify-content:flex-start}
  #mainMenu .caret{display:none}
  #mainMenu .dropdown{position:static;opacity:1;visibility:visible;transform:none;box-shadow:none;border:none;
    background:transparent;padding:0 0 10px 14px;display:grid;gap:0;min-width:0}
  #mainMenu .dropdown a{padding:9px 8px;font-size:15px}
}

@media(max-width:768px){
  section{padding:22px 0}
  .wrap{padding:0 14px}
  .sec-head{margin-bottom:12px;align-items:center}
  .sec-title{font-size:clamp(19px,5.2vw,24px)!important}
  .more{font-size:13px}
  .logo{font-size:15px}.logo .mark{width:32px;height:32px}
  .nav-actions{gap:7px}
  .btn-primary{padding:9px 15px;font-size:13px}

  /* Banner：棋子改为底部自适应一行，标题在上，避免拥挤/溢出 */
  .hero .hero-inner.hero-min{flex-direction:column;align-items:flex-start;
    min-height:clamp(300px,60vw,380px)!important;padding:44px 20px 104px!important}
  .hero-copy{max-width:100%!important}
  .hero-copy h1{font-size:clamp(30px,8.6vw,44px)!important;line-height:1.1}
  .hero-sub{font-size:13px;margin-top:16px}
  .banner-stage{position:absolute!important;top:auto!important;left:0;right:0;bottom:0;height:auto!important;
    display:flex;justify-content:space-around;align-items:flex-end;gap:4px;padding:0 12px 16px;z-index:2}
  .banner-stage .bel{position:static!important;left:auto!important;right:auto!important;top:auto!important;
    bottom:auto!important;height:auto!important;width:auto!important;flex:1 1 0;max-width:15.5%;
    opacity:1!important;animation:none!important;display:flex;align-items:flex-end;justify-content:center}
  .banner-stage.has-active .bel{opacity:1!important}
  .banner-stage .bel img{height:auto!important;width:auto;max-height:58px;max-width:100%;margin:0 auto;
    filter:drop-shadow(0 8px 10px rgba(0,0,0,.45))!important;transform:none!important}
  .bel-tip{display:none}

  /* 六大项目 · 紧凑图标宫格（一屏看全 6 项，不再是大卡片） */
  .proj-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:8px}
  .proj{padding:12px 4px!important;border-radius:12px;min-width:0;overflow:hidden}
  .p-ic{width:38px;height:38px;margin-bottom:6px;border-radius:11px}
  .p-ic svg{width:20px;height:20px}
  .p-name{font-size:12px;white-space:nowrap}
  .p-en{display:none}

  /* 赛历 · 密排（去图标框、标题两行换行不截断且各行等高、箭头替代按钮） */
  #calWrap .cal-list{grid-template-columns:1fr!important;gap:6px}
  .cal-group{margin-bottom:12px;padding-bottom:10px}
  .cal-month{margin-bottom:6px}.cal-month b{font-size:14px}.cal-month span{font-size:11.5px}
  .cal-row{gap:10px!important;padding:9px 12px!important;flex-wrap:nowrap!important;align-items:center}
  .cal-date{width:36px!important;flex-shrink:0;text-align:center!important;line-height:1!important;display:block!important}
  .cal-date b{font-size:19px!important;display:block!important}
  .cal-date span{font-size:9.5px!important;display:block!important;color:var(--blue)}
  .cal-ic{display:none!important}
  .cal-main{flex:1 1 auto!important;min-width:0!important;order:0!important}
  .cal-main h4{font-size:13.5px!important;line-height:1.35;margin-bottom:2px;
    display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;
    min-height:calc(1.35em * 2)}
  .cal-meta{font-size:11px!important;gap:8px;flex-wrap:nowrap;overflow:hidden;white-space:nowrap}
  .cal-btn{flex-shrink:0;font-size:0!important;margin-left:4px!important;align-self:center}
  .cal-btn::after{content:"›";font-size:20px;font-weight:700;color:var(--blue)}

  /* 通知公告 */
  .notice-wrap{padding:5px}
  .tabs{padding:6px 6px 0}
  .tab{padding:9px 11px;font-size:13.5px}
  .n-item{padding:10px 10px;gap:10px}
  .n-item h4{font-size:13.5px}.n-item .date{font-size:11.5px}
  /* 快捷入口 · 紧凑双列（去多余留白，摘要单行不换行） */
  .entries{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:8px;margin-top:14px}
  .entry{padding:12px 13px!important;min-height:0!important;min-width:0;overflow:hidden}
  .entry-top{gap:10px}
  .entry .eic{width:34px;height:34px}.entry svg{width:18px;height:18px}
  .entry h4{font-size:14px}
  .entry p{font-size:11px;margin-top:2px;min-height:0!important;
    white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .entry .arw{display:none}

  /* 新闻动态 · 手机端不显示图片，密排文字列表（中田认证 风格） */
  #news .news-grid{grid-template-columns:1fr!important;gap:0!important;background:#fff;
    border:1px solid var(--line);border-radius:14px;overflow:hidden;box-shadow:var(--shadow-sm)}
  #news .news-grid .news-card{flex-direction:row!important;border:none!important;border-radius:0!important;
    border-bottom:1px solid var(--line)!important;box-shadow:none!important;transform:none!important}
  #news .news-grid .news-card:last-child{border-bottom:none!important}
  #news .news-thumb{display:none!important}
  #news .news-body{padding:11px 14px!important;width:100%}
  #news .news-body h4{font-size:13.5px!important;line-height:1.4;
    display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
  #news .news-body .d{font-size:11px!important;margin-top:4px!important}

  /* 全景数据 · 紧凑并修复溢出（项目标签横向滚动，不再堆三行） */
  #data .stat-row{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:8px}
  #data .stat{min-width:0}
  #data .stat{padding:13px 12px}
  #data .stat .ic{width:30px;height:30px;margin-bottom:8px}
  #data .stat .ic svg{width:18px;height:18px}
  #data .stat .num{font-size:23px;word-break:break-word}
  #data .stat .num .plus{font-size:15px}
  #data .stat .lbl{font-size:12px;margin-top:4px}
  #data .proj-tabs{flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch;
    gap:7px;margin-bottom:14px;padding-bottom:4px}
  #data .proj-tabs .pt{flex:0 0 auto;font-size:12.5px;padding:6px 13px}
  #data .data-lower{grid-template-columns:1fr!important;gap:14px}
  #data .panel{padding:16px 14px}
  #data .bar-row{grid-template-columns:54px 1fr 42px;gap:9px;font-size:11.5px}
  #data .mini-grid{gap:9px}.mini b{font-size:20px}
  #data .map-wrap{overflow-x:hidden}
  #cnMap{max-width:100%;height:auto;max-height:300px}

  /* 文化 · 图集 */
  .feat-grid{gap:14px}
  .feat-vid,.interview{height:auto!important;min-height:0!important}
  .feat-vid{aspect-ratio:16/9;min-height:0}
  .mega-gallery{grid-template-columns:repeat(2,1fr)!important;gap:8px!important}
  .g-item{aspect-ratio:4/3}
  .g-item .cap{opacity:1;transform:none;font-size:12px}

  /* 合作伙伴 */
  .rel-link{flex-wrap:wrap;gap:10px;padding:14px 16px}
  .pcard-grid{grid-template-columns:repeat(2,1fr)!important;gap:10px}
  .pcard{padding:14px 10px 12px}
  .pcard .pbox{height:56px}.pcard .pbox .plogo{max-height:50px}

  /* 页脚 */
  .f-top{grid-template-columns:1fr!important;gap:22px}
  .f-brand p{max-width:none}
  .qr-topbar .qr-grid,.qr-grid{grid-template-columns:repeat(3,1fr)}
  .qr-ph{width:76px!important;height:76px!important}
  .f-bottom{flex-direction:column;align-items:flex-start;gap:10px}
  .f-bottom .badges{flex-wrap:wrap;gap:10px}
  .totop{bottom:18px;right:16px;width:44px;height:44px}
}

@media(max-width:400px){
  #data .stat .num{font-size:22px}
  .banner-stage .bel img{max-height:50px!important}
}

/* ===== v18: 通知公告(泰山式) + 入口卡图标修正 + 页脚紧凑 ===== */
/* 通知公告：日期块 + 完整标题(可换行) + 查看更多，不再单行截断 */
.notice-list{padding:6px 6px}
.n-item{display:flex;gap:14px;align-items:flex-start;justify-content:flex-start;padding:14px 12px;border-radius:10px;border-bottom:1px solid var(--line)}
.n-item:last-child{border-bottom:none}
.n-item:hover{background:var(--tint)}
.n-date{flex-shrink:0;width:56px;text-align:center;border:1px solid var(--line);border-radius:9px;padding:7px 0;background:#F7FAFF;line-height:1.05}
.n-date b{display:block;font-family:"Manrope",sans-serif;font-size:22px;font-weight:800;color:var(--blue)}
.n-date span{display:block;font-size:11px;color:var(--muted);margin-top:3px}
.n-main{flex:1;min-width:0}
.n-main h4{font-size:15.5px;font-weight:400;line-height:1.55;color:var(--ink);white-space:normal;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.n-item:hover .n-main h4{color:var(--blue)}
.n-more{display:inline-block;margin-top:6px;font-size:13px;font-weight:600;color:var(--blue)}

/* 入口卡：右侧图标固定不被文字挤出剪裁 */
.entry-top>div{min-width:0}
.entry .eic{flex-shrink:0}

/* 页脚：整体压缩留白 */
.f-col a{padding:4px 0}
.f-top{gap:26px}

@media(max-width:768px){
  /* 通知公告移动端 */
  .n-item{padding:11px 10px;gap:11px}
  .n-date{width:48px;padding:6px 0}
  .n-date b{font-size:19px}.n-date span{font-size:10px}
  .n-main h4{font-size:14px;line-height:1.5}
  .n-more{font-size:12px;margin-top:4px}
  /* 入口卡摘要单行 + 图标不挤 */
  .entry-top{gap:8px;align-items:center}
  /* 页脚紧凑：双列 + 压缩行距 */
  footer{padding:24px 0 14px!important}
  .f-top{grid-template-columns:1fr 1fr!important;gap:12px 16px!important}
  .f-brand{grid-column:1 / -1;margin-bottom:2px}
  .f-col h5{font-size:14px;margin-bottom:7px}
  .f-col a{padding:3px 0;font-size:13.5px}
  .f-bottom{margin-top:16px;padding-top:12px;gap:6px}
}

/* ===== v19: 赛历移除竖向时间轴装饰（保留分组/卡片）+ 移动端视频按钮 ===== */
#calWrap .cal-row{position:relative;margin-bottom:12px}
#calWrap .cal-row:hover{transform:none}

@media(max-width:768px){
  /* 视频卡按钮：移到右上角并缩小，避免与标题重叠（区别于桌面居中大按钮） */
  .feat-vid .play{width:40px;height:40px;top:12px;right:12px;left:auto;bottom:auto;transform:none}
  .feat-vid:hover .play{transform:scale(1.06)}
  .feat-vid .play svg{width:18px;height:18px}
  .feat-vid .fc{padding:16px 16px}
  #calWrap .cal-row{margin-bottom:8px}
}

/* ===== v20: 赛历桌面双列（缩短单行宽度、压缩右侧留白） ===== */
@media(min-width:1000px){
  #calWrap .cal-list{display:grid!important;grid-template-columns:1fr 1fr!important;column-gap:44px;row-gap:18px}
  #calWrap .cal-row{margin-bottom:0}
}

/* ===== 主题配色控件 + 移动端重构 ===== */
/* 主题配色悬浮控件（桌面/移动通用） */
.theme-fab{position:fixed;right:24px;bottom:88px;z-index:85}
.tf-btn{width:46px;height:46px;border-radius:50%;border:none;cursor:pointer;background:var(--grad);color:#fff;
  display:grid;place-items:center;box-shadow:0 12px 28px -10px rgba(var(--blue-rgb),.75);transition:.25s}
.tf-btn:hover{transform:translateY(-2px)}
.tf-btn svg{width:23px;height:23px}
.tf-pop{position:absolute;right:0;bottom:58px;width:236px;background:#fff;border:1px solid var(--line);
  border-radius:14px;box-shadow:var(--shadow);padding:14px 16px;opacity:0;visibility:hidden;transform:translateY(10px);
  transition:.22s cubic-bezier(.2,.7,.2,1)}
.theme-fab.open .tf-pop{opacity:1;visibility:visible;transform:none}
.tf-title{font-size:13.5px;font-weight:700;color:var(--ink);margin-bottom:12px}
.tf-swatches{display:grid;grid-template-columns:repeat(6,1fr);gap:8px}
.tf-sw{width:26px;height:26px;border-radius:50%;cursor:pointer;border:2px solid #fff;padding:0;
  box-shadow:0 0 0 1px var(--line);transition:.2s}
.tf-sw:hover{transform:scale(1.14)}
.tf-sw.on{box-shadow:0 0 0 2px var(--blue)}
.tf-custom{background:conic-gradient(from 0deg,#ff5757,#ffd93b,#6bc16b,#4dd0e1,#5b8def,#b06bff,#ff5757)!important;
  position:relative;overflow:hidden}
.tf-custom input[type=color]{position:absolute;inset:-6px;width:calc(100% + 12px);height:calc(100% + 12px);
  opacity:0;cursor:pointer;border:none;padding:0;background:none}

/* 顶栏：桌面显示完整搜索框，移动端用搜索图标（点击展开搜索框） */
.search-ic{display:none;width:40px;height:40px;border-radius:10px;place-items:center;color:var(--ink-2);
  border:1px solid var(--line);background:#fff;flex-shrink:0;cursor:pointer}
.search-ic svg{width:19px;height:19px}
.search-ic:hover{color:var(--blue);border-color:var(--blue)}

@media(max-width:1300px){
  /* favicon + 常显搜索框 + 登录 + 汉堡：隐藏 logo 文字，搜索框正常显示、撑满中间空间 */
  .logo-txt{display:none}
  .nav-actions{flex:1;min-width:0}
  .search{display:flex;flex:1;min-width:0;width:auto}
  .search:focus-within{width:auto}
  .search-ic{display:none}
}

@media(max-width:768px){
  .theme-fab{right:16px;bottom:74px}
  .tf-btn{width:42px;height:42px}

  /* —— 六个项目图表：一行 6 项、去方框、图标在上文本在下 —— */
  .proj-grid{grid-template-columns:repeat(6,minmax(0,1fr))!important;gap:2px}
  .proj{padding:4px 1px!important;border:none!important;background:transparent!important;box-shadow:none!important;
    border-radius:0;min-width:0;overflow:hidden;transform:none!important}
  .proj::after{display:none!important}
  /* 图标去方框：只留彩色图形，无底色/描边 */
  .proj .p-ic{width:32px;height:32px;margin:0 auto 5px!important;border-radius:0;background:transparent!important;color:var(--blue)}
  .proj .p-ic::after{display:none!important}
  .proj .p-ic svg{width:26px;height:26px}
  .proj .p-name{font-size:10px!important;white-space:nowrap;letter-spacing:-.02em;color:var(--ink)}
  .proj .p-en{display:none}
  .proj.feature .p-ic{background:transparent!important;color:var(--blue)}
  .proj.feature .p-name{color:var(--ink)}
  .proj:hover .p-ic{background:transparent!important;color:var(--blue)}
  .proj:hover .p-name{color:var(--ink)}

  /* —— 赛历筛选：tablist 样式（去图标、下划线选中、横向滚动） —— */
  .cal-filter{gap:0;flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch;margin-bottom:12px;
    border-bottom:1px solid var(--line);padding-bottom:0}
  /* 三个 tablist(赛历/通知公告/全景数据)统一：可横向滑动、都不显示滚动条 */
  .cal-filter,.tabs,#data .proj-tabs{scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch}
  .cal-filter::-webkit-scrollbar,.tabs::-webkit-scrollbar,#data .proj-tabs::-webkit-scrollbar{display:none;width:0;height:0}
  .cf{flex:0 0 auto;border:none!important;background:transparent!important;border-radius:0!important;
    padding:8px 12px!important;color:var(--ink-2)!important;font-weight:600;font-size:13.5px!important;
    border-bottom:2px solid transparent!important}
  .cf svg{display:none!important}
  .cf.on{background:transparent!important;color:var(--blue)!important;border-bottom-color:var(--blue)!important;font-weight:700}

  /* —— 新闻动态：去外边框（图标已在 HTML 中移除） —— */
  #news .news-grid{border:none!important;border-radius:0!important;box-shadow:none!important;background:transparent!important}
  #news .news-grid .news-card{border-bottom:1px solid var(--line)!important}
  #news .news-grid .news-card:last-child{border-bottom:none!important}

  /* —— 通知公告日期：去加重方框、整体蓝色扁平 —— */
  .n-date{border:none!important;background:transparent!important;width:auto!important;min-width:38px;
    padding:2px 6px 0 0!important;text-align:left;line-height:1.2}
  .n-date b{font-size:14px!important;font-weight:600!important;color:var(--blue)}
  .n-date span{font-size:11px!important;font-weight:400!important;color:var(--blue)!important;margin-top:0!important}

  /* —— 全景数据：扁平紧凑，卡片紧贴内容、不留白 —— */
  #data{padding-top:16px;padding-bottom:16px}
  /* 卡片铺满整行(auto-fit)，每张卡数字+标签横向铺满、无右侧空白；移动端精简掉装饰图标以腾出横向空间 */
  #data .stat-row{display:grid!important;grid-template-columns:repeat(auto-fit,minmax(150px,1fr))!important;gap:8px}
  #data .stat{display:flex!important;align-items:baseline;gap:7px;width:auto;padding:11px 13px;border-radius:12px}
  #data .stat .ic{display:none!important}
  #data .stat .num{flex-shrink:0;font-size:16px!important;line-height:1.1;white-space:nowrap}
  #data .stat .num .plus{font-size:12px!important}
  #data .stat .lbl{flex:1;min-width:0;font-size:11px!important;margin:0!important;line-height:1.3;
    white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  #data .data-lower{gap:10px}
  #data .panel{padding:12px 12px}
  #cnMap{max-height:180px}
  /* 国家级赛事(mini)：数字+标签同排铺满整行、无右侧空白 */
  #data .mini-grid{display:grid!important;grid-template-columns:repeat(auto-fit,minmax(140px,1fr))!important;gap:8px}
  #data .mini{display:flex;align-items:baseline;gap:7px;width:auto;padding:10px 13px}
  #data .mini b{font-size:16px!important;flex-shrink:0;display:inline!important}
  #data .mini span{flex:1;min-width:0;font-size:10.5px!important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  #data .proj-tabs .pt{padding:5px 12px;font-size:12px}
  #data .data-tabs .data-tab{padding:5px 11px;font-size:12px}
  #data .panel p{font-size:11px!important;margin-top:10px!important}

  /* —— 智力运动文化 · 视频区两栏卡片(图上·标题+描述在下) —— */
  .feat-grid{grid-template-columns:1fr 1fr!important;gap:10px}
  .feat-vid{flex-direction:column;align-items:stretch;height:auto!important;aspect-ratio:auto!important;min-height:0;
    background:#fff;border:1px solid var(--line);border-radius:14px;overflow:hidden;box-shadow:var(--shadow-sm)}
  .feat-vid .ph{position:relative!important;inset:auto!important;height:92px;width:100%}
  .feat-vid::after{display:none!important}
  .feat-vid .play{width:34px;height:34px;top:46px!important;left:50%!important;right:auto!important;bottom:auto!important;
    transform:translate(-50%,-50%)!important}
  .feat-vid:hover .play{transform:translate(-50%,-50%) scale(1.06)!important}
  .feat-vid .play svg{width:15px;height:15px}
  .feat-vid .fc{position:relative;z-index:2;padding:9px 11px 11px}
  .feat-vid .lv{font-size:10.5px!important;margin-bottom:6px}
  .feat-vid .fc h4,.feat-vid h4{color:var(--ink)!important;font-size:13.5px!important}
  .feat-vid .fc p,.feat-vid p{color:var(--ink-2)!important;font-size:11px!important;opacity:1!important;margin-top:3px;
    display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
  .interview{grid-column:1 / -1}
}

/* ============================================================
   全局扁平 + 紧凑（首页统一过一遍）：更小圆角/更薄卡片 + 收紧留白
   ============================================================ */
:root{--shadow:none;--shadow-sm:none}
.proj,.news-card,.entry,.notice-wrap,.stat,.panel,.cal-row,.feat-vid,.interview,.g-item,.pcard,.reg-card,.rel-link,.mini,.headline,.card{border-radius:var(--radius)}
/* 卡内顶部/边缘图片不自带圆角，交给卡片 overflow:hidden 统一裁成 8px（避免图片方角与卡片圆角错位） */
/* icon 去底板：只留彩色图形，不要背景色块（图形适当放大，避免空旷） */
.p-ic,.cal-ic,.entry .eic,.stat .ic,.proj:hover .p-ic,.proj.feature .p-ic{background:transparent!important;box-shadow:none!important}
.p-ic svg{width:38px;height:38px}
.cal-ic svg{width:32px;height:32px}
.entry .eic svg{width:30px;height:30px}
.stat .ic svg{width:26px;height:26px}
/* 扁平：去掉所有卡片/按钮阴影与 hover 抬升，用描边+底色区分层级（真正的 flat） */
.btn-primary,.proj-tabs .pt.on,.logo .mark,.cal-tag,.qr-ph{box-shadow:none!important}
.btn-primary:hover{box-shadow:none!important;transform:none}
.proj:hover,.entry:hover,.news-card:hover,.feat-vid:hover,.stat:hover,.pcard:hover,.g-item:hover,.reg-card:hover,.cal-row:hover{transform:none!important;box-shadow:none!important}
.totop,.tf-btn{box-shadow:0 4px 12px -6px rgba(15,42,120,.35)!important}
.tilt{transform:none!important}
.tilt .glare{display:none!important}
@media(min-width:769px){
  section{padding:44px 0}
  #partners{padding-bottom:46px!important}
  .sec-head{margin-bottom:22px}
  .proj{padding:24px 14px}
  .cal-row{padding:18px 22px}
  .cal-group{margin-bottom:24px}
  .news-body{padding:16px 18px}
  .notice-wrap{padding:10px}
  .n-item{padding:15px 16px}
  .entries{margin-top:26px}
  .entry{padding:22px}
  .stat{padding:20px 18px}
  .stat .ic{margin-bottom:14px}
  .data-lower{margin-top:24px}
  .panel{padding:24px 24px}
  .feat-vid .fc{padding:24px}
  .interview{padding:22px}
  .pcard{padding:18px 14px 16px}
  .rel-link{padding:18px 22px;margin-bottom:22px}
}

/* ============================================================
   移动端字号统一：修正 v16.2 里 !important 规则把通知/入口/标签/页脚
   等字号顶大、与新闻列表不一致的问题（列表标题统一 14px）
   ============================================================ */
@media(max-width:768px){
  #news .news-grid .news-body h4{font-size:14px!important}
  .n-item h4,.n-main h4{font-size:14px!important;font-weight:400;line-height:1.5}
  .tab{font-size:14px!important}
  .entry h4{font-size:14px!important}
  .entry p{font-size:11px!important}
  .iv-item p{font-size:13.5px!important}
  .g-item .cap{font-size:12px!important}
  .rl-item{font-size:14.5px!important}
  .pcard .pname{font-size:12.5px!important}
  .f-col h5{font-size:14px!important}
  .f-col a{font-size:13.5px!important}
  .qr-item span{font-size:11.5px!important}
}

/* ============================================================
   去 AI 味：纯色替代渐变 · 单色蓝(去青) · 去彩虹占位 · 去装饰动效与背景纹理
   目标气质 = 真实的政务/体育机构门户，不是"高级科技模板"
   ============================================================ */
/* 令牌层：渐变塌成纯色主色；青色一律换成主色的浅色调（单色体系，跟随换肤） */
:root{
  --grad:var(--blue)!important;
  --cyan:color-mix(in srgb,var(--blue) 72%,#fff)!important;
  --cyan-2:color-mix(in srgb,var(--blue) 52%,#fff)!important;
  --cyan-3:color-mix(in srgb,var(--blue) 30%,#fff)!important;
}
/* 图片占位统一为低调蓝灰，去掉紫/橙/青彩虹渐变 */
.ph-a,.ph-b,.ph-c,.ph-d,.ph-e,.ph-f,.ph-g{background:linear-gradient(140deg,#24406e,#32538f)!important}
/* 渐变文字改纯色 */
.hero h1 .g{background:none!important;-webkit-text-fill-color:#D6E4FF!important;color:#D6E4FF!important}
/* 视频播放按钮去玻璃拟态，改纯色 */
.feat-vid .play{backdrop-filter:none!important;-webkit-backdrop-filter:none!important;background:rgba(255,255,255,.92)!important;border-color:#fff!important}
.feat-vid .play svg{color:var(--blue)!important}
/* 去装饰动效：自定义光标 / 漂浮棋子符号 / hero 光斑网格 / 数据网格 */
.cursor-glow,.cursor-dot,.glyph-field,.hero-motifs,.hero-spot{display:none!important}
.hero::before,.hero::after,.hero .grid-ovl,.data-sec::before{display:none!important}
.bel{animation:none!important}
/* 揭幕动画简化为纯淡入（不再裁剪/缩放） */
.rise{clip-path:none!important;transform:none!important;opacity:0;transition:opacity .5s ease!important}
.rise.shown{opacity:1!important}
/* 数据区去玻璃模糊/发光，纯色扁平 */
.data-sec .stat,.data-sec .panel{backdrop-filter:none!important;-webkit-backdrop-filter:none!important}

/* 赛历：恢复行 hover 的动态反馈（扁平风：主色描边 + 浅蓝底 + 轻微右移，无阴影；箭头右滑） */
#calWrap .cal-row{transition:transform .22s cubic-bezier(.2,.7,.2,1),border-color .22s,background .22s}
#calWrap .cal-row:hover{transform:translateX(4px)!important;border-color:var(--blue);background:#F7FAFF}
#calWrap .cal-row:hover .cal-btn{transform:translateX(3px)}
@media(max-width:768px){ #calWrap .cal-row:hover{transform:none!important} }

/* ============================================================
   全景数据 v18：左列双口径 filter（分类口径 chips + 参数口径行式单选，
   色块 = 热力图色阶基色）+ 右侧含南海诸岛十段线插框的热力图
   ============================================================ */
.data-filters{display:flex;flex-direction:column;gap:16px;min-width:0}
.data-filters .fg-title{font-size:12.5px;font-weight:600;letter-spacing:.08em;color:rgba(255,255,255,.55);margin-bottom:8px}
.data-filters .fg-title .fg-en{font-family:"Manrope",sans-serif;font-size:10px;font-weight:700;letter-spacing:.16em;color:rgba(255,255,255,.32);margin-left:8px}
.data-filters .proj-tabs{margin-bottom:0;gap:7px}
.data-filters .proj-tabs .pt{font-size:13px;padding:6px 14px}
#data button.stat{font-family:inherit;color:#fff;text-align:left;cursor:pointer;width:100%}
#data .stat .sw{width:12px;height:12px;border-radius:3px;flex:0 0 auto}
#data .stat.on{background:rgba(255,255,255,.14);border-color:rgba(255,255,255,.55)}
@media(min-width:769px){
  #data .data-lower{grid-template-columns:360px 1fr}
  #data .data-filters{height:100%}
  #data .data-filters .filter-group:last-child{flex:1;display:flex;flex-direction:column}
  #data .data-filters .filter-group:last-child .stat-row{flex:1;grid-auto-rows:1fr}
  #data .stat-col{grid-template-columns:1fr;gap:8px}
  #data .stat-col .stat{display:grid;grid-template-columns:auto auto 1fr auto;align-items:center;column-gap:12px;padding:9px 14px}
  #data .stat-col .stat .sw{grid-column:1;grid-row:1}
  #data .stat-col .stat .ic{grid-column:2;grid-row:1;width:30px;height:30px;margin-bottom:0}
  #data .stat-col .stat .ic svg{width:20px;height:20px}
  #data .stat-col .stat .lbl{grid-column:3;grid-row:1;margin-top:0;font-size:13.5px!important}
  #data .stat-col .stat .num{grid-column:4;grid-row:1;justify-self:end;font-size:21px!important}
  #data .stat-col .stat .num .plus{font-size:14px}
}
@media(max-width:768px){
  #data .data-filters{gap:10px}
  #data .data-filters .fg-title{margin-bottom:6px}
  #data .stat .sw{align-self:center;width:10px;height:10px}
}

/* ============================================================
   首页新闻卡：整卡 4:3 + 封面作背景图 + 底部文字条半透明白
   作用域限定 #news，避免影响其它 .news-card；封面 URL 由模板 background-image 内联注入
   ============================================================ */
#news .news-grid{grid-template-columns:repeat(3,1fr);gap:20px;background:transparent}
#news .news-grid .news-card{
  position:relative;display:flex;flex-direction:column;justify-content:flex-end;gap:0;
  aspect-ratio:4/3;min-height:0;padding:0;overflow:hidden;
  background-color:#e8eefb;background-position:center;background-size:cover;background-repeat:no-repeat;
  border:1px solid var(--line);border-radius:var(--radius)}
/* 只把「底部白条」改成半透明白（图片从条后透出），不糊整卡 */
#news .news-grid .news-card .news-body{
  position:relative;z-index:2;width:100%;padding:14px 16px;
  background:rgba(255,255,255,.72);backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px);transition:background .25s}
#news .news-grid .news-card:hover .news-body{background:rgba(255,255,255,.84)}
#news .news-grid .news-card .news-body h4{color:var(--ink);font-size:16px;font-weight:800;line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;min-height:2.8em}
#news .news-grid .news-card .news-body .d{color:var(--muted);margin-top:6px;font-size:12.5px}
/* 移动端：单列全宽 4:3 背景卡堆叠，覆盖旧的“隐藏缩略图纯文字列表”规则 */
@media(max-width:900px){
  #news .news-grid{grid-template-columns:1fr!important;gap:14px!important;background:transparent!important}
  #news .news-grid .news-card{flex-direction:column!important;border:1px solid var(--line)!important;border-radius:var(--radius)!important;aspect-ratio:4/3}
  #news .news-grid .news-card .news-body{width:100%!important;padding:12px 14px!important}
}
