/* ============================================================
   WAIC 2026 情报档案 — Signal Registry / Intelligence Dossier
   ============================================================ */
:root{
  --ink:#0b0d10; --ink-2:#111419; --ink-3:#181c23; --ink-4:#1f242d;
  --line:#242a33; --line-2:#2f3742;
  --paper:#edece6; --muted:#8b929e; --faint:#6b7280;
  --signal:#ff5a1f; --signal-soft:rgba(255,90,31,.13);
  --cyan:#38e0c3; --cyan-soft:rgba(56,224,195,.12);
  --c-product:#ff5a1f; --c-tech:#38e0c3; --c-collab:#ffc53d;
  --c-funding:#8aa2ff; --c-strategy:#c792ea; --c-show:#9aa1ac;
  --font-display:'Big Shoulders Display','Noto Sans SC',sans-serif;
  --font-mono:'IBM Plex Mono','SFMono-Regular',Consolas,'Liberation Mono',monospace;
  --font-body:'IBM Plex Sans','Noto Sans SC','PingFang SC','Microsoft YaHei',sans-serif;
  --shadow:0 24px 60px -20px rgba(0,0,0,.7);
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{
  background:var(--ink); color:var(--paper);
  font-family:var(--font-body); font-size:15px; line-height:1.6;
  -webkit-font-smoothing:antialiased; overflow-x:hidden;
}
::selection{background:var(--signal); color:#0b0d10}
a{color:inherit}
button{font-family:inherit; cursor:pointer; border:none; background:none; color:inherit}
.mono{font-family:var(--font-mono)}

/* ---- 背景纹理 ---- */
.bg-grid{
  position:fixed; inset:0; z-index:-2; pointer-events:none;
  background-image:
    linear-gradient(var(--line) 1px,transparent 1px),
    linear-gradient(90deg,var(--line) 1px,transparent 1px);
  background-size:64px 64px; opacity:.16;
  mask-image:radial-gradient(ellipse 120% 90% at 50% 0%,#000 30%,transparent 85%);
}
.bg-glow{
  position:fixed; inset:0; z-index:-1; pointer-events:none;
  background:
    radial-gradient(700px 420px at 82% -8%,var(--signal-soft),transparent 70%),
    radial-gradient(600px 400px at 8% 4%,var(--cyan-soft),transparent 70%);
}

/* ============================================================ 报头 */
.masthead{
  display:flex; justify-content:space-between; align-items:flex-end; gap:40px;
  padding:38px 44px 26px; border-bottom:1px solid var(--line);
  position:relative;
}
.masthead::after{
  content:""; position:absolute; left:44px; bottom:-1px; height:2px; width:120px;
  background:var(--signal);
}
.eyebrow{
  font-family:var(--font-mono); font-size:11px; letter-spacing:.22em;
  color:var(--muted); display:flex; align-items:center; gap:10px; margin-bottom:14px;
}
.eyebrow .tick{width:26px; height:1px; background:var(--signal); display:inline-block}
.title{
  font-family:var(--font-display); font-weight:800;
  font-size:clamp(38px,5.6vw,74px); line-height:.92; letter-spacing:.01em;
  text-transform:uppercase;
}
.title .yr{color:var(--signal)}
.title .cn{
  font-family:'Noto Sans SC',sans-serif; font-weight:900;
  font-size:.42em; letter-spacing:.06em; vertical-align:middle;
  margin-left:14px; color:var(--paper);
}
.subtitle{margin-top:14px; color:var(--muted); font-size:13.5px; max-width:640px}
.credit{margin-top:10px; font-family:var(--font-mono); font-size:12px; color:var(--cyan); display:flex; align-items:center; gap:8px}
.credit::before{content:""; width:14px; height:1px; background:var(--cyan); opacity:.7}
.credit b{color:var(--paper); font-weight:600}
.credit a{color:var(--cyan); text-decoration:none; border-bottom:1px dashed rgba(56,224,195,.4); transition:.15s}
.credit a:hover{border-bottom-color:var(--cyan)}
.mast-right{display:flex; flex-direction:column; align-items:flex-end; gap:18px; flex-shrink:0}
.search-wrap{position:relative; width:340px}
.search-wrap .s-ico{position:absolute; left:14px; top:50%; transform:translateY(-50%); width:16px; height:16px; color:var(--faint)}
#search{
  width:100%; padding:12px 40px 12px 40px; background:var(--ink-2);
  border:1px solid var(--line-2); border-radius:2px; color:var(--paper);
  font-family:var(--font-mono); font-size:13px; transition:.2s;
}
#search:focus{outline:none; border-color:var(--signal); background:var(--ink-3); box-shadow:0 0 0 3px var(--signal-soft)}
#search::placeholder{color:var(--faint)}
.search-wrap .slash{
  position:absolute; right:12px; top:50%; transform:translateY(-50%);
  font-family:var(--font-mono); font-size:11px; color:var(--faint);
  border:1px solid var(--line-2); border-radius:3px; padding:1px 6px;
}
.mast-stats{display:flex; gap:26px}
.mstat{text-align:right}
.mstat b{
  font-family:var(--font-display); font-weight:800; font-size:40px; line-height:1;
  display:block; letter-spacing:.01em;
}
.mstat span{font-family:var(--font-mono); font-size:10.5px; letter-spacing:.14em; color:var(--muted); text-transform:uppercase}
.mstat.hot b{color:var(--signal)}
.mstat.cyan b{color:var(--cyan)}

/* ============================================================ 总览带 */
.overview{padding:22px 44px 26px; border-bottom:1px solid var(--line); background:linear-gradient(180deg,var(--ink-2),transparent)}
.ov-head{display:flex; justify-content:space-between; align-items:baseline; margin-bottom:16px}
.ov-label{font-family:var(--font-mono); font-size:11px; letter-spacing:.2em; color:var(--muted)}
.ov-hint{font-family:var(--font-mono); font-size:11px; color:var(--faint)}
.ov-bars{display:grid; grid-template-columns:repeat(4,1fr); gap:14px 30px}
.ov-bar{cursor:pointer; transition:.18s}
.ov-bar:hover{transform:translateX(3px)}
.ov-bar .ob-top{display:flex; justify-content:space-between; align-items:baseline; margin-bottom:6px}
.ov-bar .ob-name{font-size:13px; font-weight:500}
.ov-bar .ob-num{font-family:var(--font-mono); font-size:11px; color:var(--muted)}
.ov-bar .ob-num b{color:var(--signal); font-weight:600}
.ob-track{height:7px; background:var(--ink-3); border-radius:1px; overflow:hidden; position:relative}
.ob-fill{position:relative; z-index:1; height:100%; background:linear-gradient(90deg,var(--signal),#ff8a5c); border-radius:1px; width:0; transition:width 1s cubic-bezier(.2,.8,.2,1)}
.ob-ghost{position:absolute; left:0; top:0; bottom:0; background:var(--line-2); opacity:.35; border-radius:1px}
.ov-bar.active .ob-name{color:var(--signal)}
.ov-bar.active .ob-track{box-shadow:0 0 0 1px var(--signal)}

/* ============================================================ Tabs */
.tabs{display:flex; gap:2px; padding:0 44px; border-bottom:1px solid var(--line); background:var(--ink)}
.tab{
  padding:16px 24px 14px; font-size:14px; font-weight:600; color:var(--muted);
  border-bottom:2px solid transparent; transition:.18s; display:flex; align-items:center; gap:10px;
}
.tab .t-no{font-family:var(--font-mono); font-size:11px; color:var(--faint)}
.tab em{font-style:normal; font-family:var(--font-mono); font-size:11px; color:var(--cyan); background:var(--cyan-soft); padding:1px 7px; border-radius:2px}
.tab:hover{color:var(--paper)}
.tab.active{color:var(--paper); border-bottom-color:var(--signal)}
.tab.active .t-no{color:var(--signal)}

/* ============================================================ 布局 */
.layout{display:grid; grid-template-columns:262px 1fr; gap:0; align-items:start}
.rail{
  position:sticky; top:0; align-self:start; max-height:100vh; overflow-y:auto;
  padding:26px 24px 40px; border-right:1px solid var(--line);
}
.rail::-webkit-scrollbar{width:8px}
.rail::-webkit-scrollbar-thumb{background:var(--line-2); border-radius:4px}
.rail-block{margin-bottom:26px}
.rail-title{font-family:var(--font-mono); font-size:11px; letter-spacing:.16em; color:var(--muted); text-transform:uppercase; margin-bottom:12px; display:flex; justify-content:space-between}
.rail-title .en{color:var(--faint); letter-spacing:.1em}

.chips{display:flex; flex-wrap:wrap; gap:7px}
.chip{
  font-size:12px; padding:5px 11px; border:1px solid var(--line-2); border-radius:2px;
  color:var(--muted); transition:.15s; display:flex; align-items:center; gap:6px;
}
.chip .dot{width:7px; height:7px; border-radius:50%; background:currentColor; opacity:.85}
.chip:hover{border-color:var(--muted); color:var(--paper)}
.chip.on{background:var(--paper); color:var(--ink); border-color:var(--paper); font-weight:600}
.chip.on .dot{opacity:1}
.chip .n{font-family:var(--font-mono); font-size:10px; opacity:.6}

.ind-list{list-style:none}
.ind-list li{
  display:flex; align-items:center; gap:9px; padding:7px 9px; border-radius:2px;
  font-size:13px; color:var(--muted); cursor:pointer; transition:.14s; margin-bottom:1px;
}
.ind-list li:hover{background:var(--ink-3); color:var(--paper)}
.ind-list li.on{background:var(--signal-soft); color:var(--paper)}
.ind-list li.on .bar{background:var(--signal)}
.ind-list li .bar{width:3px; height:15px; background:var(--line-2); border-radius:1px; flex-shrink:0}
.ind-list li .nm{flex:1}
.ind-list li .ct{font-family:var(--font-mono); font-size:11px; color:var(--faint)}
.ind-list li.on .ct{color:var(--signal)}

.switch{display:flex; align-items:center; gap:10px; font-size:13px; color:var(--muted); cursor:pointer; padding:6px 0; user-select:none}
.switch input{display:none}
.switch .track{width:34px; height:18px; background:var(--ink-4); border:1px solid var(--line-2); border-radius:20px; position:relative; transition:.2s; flex-shrink:0}
.switch .track::after{content:""; position:absolute; top:2px; left:2px; width:12px; height:12px; background:var(--muted); border-radius:50%; transition:.2s}
.switch input:checked + .track{background:var(--signal-soft); border-color:var(--signal)}
.switch input:checked + .track::after{transform:translateX(16px); background:var(--signal)}
.switch:hover{color:var(--paper)}

.seg{display:grid; grid-template-columns:1fr 1fr; gap:6px}
.seg button{font-size:12px; padding:7px; border:1px solid var(--line-2); border-radius:2px; color:var(--muted); transition:.14s}
.seg button:hover{color:var(--paper); border-color:var(--muted)}
.seg button.on{background:var(--ink-4); color:var(--paper); border-color:var(--line-2); font-weight:600}

.reset{width:100%; padding:10px; border:1px dashed var(--line-2); border-radius:2px; color:var(--muted); font-size:12.5px; font-family:var(--font-mono); transition:.15s; margin-top:4px}
.reset:hover{border-color:var(--signal); color:var(--signal)}
.rail-foot{margin-top:22px; font-family:var(--font-mono); font-size:10px; color:var(--faint); letter-spacing:.05em}

/* ============================================================ 内容区 */
.content{padding:24px 44px 80px; min-width:0}
.result-bar{display:flex; justify-content:space-between; align-items:center; gap:20px; margin-bottom:20px; flex-wrap:wrap}
.result-count{font-size:14px; color:var(--muted)}
.result-count b{font-family:var(--font-display); font-weight:800; font-size:30px; color:var(--paper); vertical-align:-2px; margin-right:4px}
.result-count span{font-family:var(--font-mono); font-size:11.5px; color:var(--faint)}
.active-pills{display:flex; gap:7px; flex-wrap:wrap}
.pill{font-size:11.5px; font-family:var(--font-mono); padding:4px 9px; background:var(--ink-3); border:1px solid var(--line-2); border-radius:2px; color:var(--muted); display:flex; align-items:center; gap:7px}
.pill b{color:var(--paper); font-weight:500}
.pill .x{cursor:pointer; color:var(--faint); font-size:13px}
.pill .x:hover{color:var(--signal)}

.grid{display:grid; grid-template-columns:repeat(auto-fill,minmax(320px,1fr)); gap:14px}
.card{
  background:var(--ink-2); border:1px solid var(--line); border-radius:3px;
  padding:18px 18px 16px; position:relative; cursor:pointer; overflow:hidden;
  transition:transform .18s cubic-bezier(.2,.8,.2,1), border-color .18s, background .18s;
  animation:rise .5s cubic-bezier(.2,.8,.2,1) both;
}
@keyframes rise{from{opacity:0; transform:translateY(14px)}to{opacity:1; transform:none}}
.card::before{content:""; position:absolute; left:0; top:0; bottom:0; width:2px; background:var(--line-2); transition:.18s}
.card.rel::before{background:var(--signal)}
.card:hover{transform:translateY(-4px); border-color:var(--line-2); background:var(--ink-3)}
.card:hover::before{width:3px}
.card-top{display:flex; justify-content:space-between; align-items:center; margin-bottom:11px}
.card-no{font-family:var(--font-mono); font-size:11px; color:var(--faint); letter-spacing:.08em}
.conf{display:flex; align-items:center; gap:6px; font-family:var(--font-mono); font-size:10px; letter-spacing:.1em; text-transform:uppercase; color:var(--faint)}
.conf .cdot{width:7px; height:7px; border-radius:50%}
.conf.high .cdot{background:var(--signal); box-shadow:0 0 8px var(--signal)}
.conf.high{color:var(--signal)}
.conf.medium .cdot{background:var(--c-collab)}
.conf.low .cdot{background:var(--faint)}
.card-name{font-size:16.5px; font-weight:700; line-height:1.35; margin-bottom:3px}
.card-en{font-family:var(--font-mono); font-size:11px; color:var(--faint); margin-bottom:12px; letter-spacing:.02em; white-space:nowrap; overflow:hidden; text-overflow:ellipsis}
.card-meta{display:flex; gap:8px; align-items:center; margin-bottom:12px; flex-wrap:wrap}
.tag-ind{font-size:11px; padding:3px 8px; background:var(--ink-4); border-radius:2px; color:var(--muted)}
.tag-booth{font-family:var(--font-mono); font-size:11px; color:var(--faint)}
.card-cats{display:flex; gap:6px; flex-wrap:wrap; margin-bottom:12px}
.cat-badge{font-size:10.5px; font-weight:600; padding:2px 8px; border-radius:2px; letter-spacing:.03em}
.card-sum{font-size:13px; color:var(--muted); line-height:1.55; display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; overflow:hidden}
.card-sum.none{color:var(--faint); font-style:italic}
.card-more{position:absolute; left:0; right:0; bottom:0; padding:26px 18px 12px; font-family:var(--font-mono); font-size:11px; color:var(--signal); letter-spacing:.08em; opacity:0; transform:translateY(6px); transition:.18s; background:linear-gradient(transparent,var(--ink-3) 55%); pointer-events:none}
.card:hover .card-more{opacity:1; transform:none}
.card .rescan-flag{position:absolute; top:0; right:0; font-family:var(--font-mono); font-size:9px; letter-spacing:.1em; color:var(--cyan); background:var(--cyan-soft); padding:2px 7px; border-bottom-left-radius:3px}

.grid-end{text-align:center; padding:34px; font-family:var(--font-mono); font-size:12px; color:var(--faint)}
.empty{text-align:center; padding:80px 20px; color:var(--faint)}
.empty .big{font-family:var(--font-display); font-size:60px; font-weight:800; color:var(--ink-4)}

/* ============================================================ 抽屉 */
.scrim{position:fixed; inset:0; background:rgba(6,8,10,.66); backdrop-filter:blur(3px); opacity:0; pointer-events:none; transition:.28s; z-index:40}
.scrim.on{opacity:1; pointer-events:auto}
.drawer{
  position:fixed; top:0; right:0; bottom:0; width:min(560px,92vw); z-index:50;
  background:var(--ink-2); border-left:1px solid var(--line-2);
  transform:translateX(100%); transition:transform .34s cubic-bezier(.32,.72,.24,1);
  overflow-y:auto; box-shadow:var(--shadow);
}
.drawer.on{transform:none}
.drawer::-webkit-scrollbar{width:9px}
.drawer::-webkit-scrollbar-thumb{background:var(--line-2); border-radius:4px}
.dw-head{position:sticky; top:0; background:linear-gradient(180deg,var(--ink-2) 82%,transparent); padding:26px 30px 18px; z-index:2; border-bottom:1px solid var(--line)}
.dw-close{position:absolute; top:22px; right:26px; width:34px; height:34px; border:1px solid var(--line-2); border-radius:2px; color:var(--muted); font-size:18px; transition:.15s; display:flex; align-items:center; justify-content:center}
.dw-close:hover{border-color:var(--signal); color:var(--signal); transform:rotate(90deg)}
.dw-no{font-family:var(--font-mono); font-size:12px; color:var(--signal); letter-spacing:.14em; margin-bottom:8px}
.dw-name{font-size:23px; font-weight:900; line-height:1.3; padding-right:40px}
.dw-en{font-family:var(--font-mono); font-size:12px; color:var(--faint); margin-top:5px}
.dw-body{padding:8px 30px 50px}
.dw-sec{padding:20px 0; border-bottom:1px solid var(--line)}
.dw-sec:last-child{border-bottom:none}
.dw-sec-t{font-family:var(--font-mono); font-size:11px; letter-spacing:.16em; color:var(--muted); text-transform:uppercase; margin-bottom:13px; display:flex; align-items:center; gap:9px}
.dw-sec-t::before{content:""; width:14px; height:1px; background:var(--signal)}
.dw-grid{display:grid; grid-template-columns:1fr 1fr; gap:14px 20px}
.dw-field .k{font-family:var(--font-mono); font-size:10.5px; color:var(--faint); letter-spacing:.08em; margin-bottom:3px; text-transform:uppercase}
.dw-field .v{font-size:13.5px; color:var(--paper)}
.dw-field.wide{grid-column:1/-1}
.dw-field .v.dim{color:var(--muted)}
.dw-release{background:var(--signal-soft); border:1px solid rgba(255,90,31,.28); border-radius:3px; padding:16px 18px}
.dw-release .sum{font-size:15px; font-weight:600; line-height:1.55; margin-bottom:10px}
.dw-release .det{font-size:13.5px; color:var(--muted); line-height:1.7; white-space:pre-wrap}
.dw-norelease{color:var(--faint); font-size:13.5px; font-style:italic; padding:6px 0}
.dw-cats{display:flex; gap:7px; flex-wrap:wrap; margin-bottom:14px}
.dw-links{list-style:none; display:flex; flex-direction:column; gap:8px}
.dw-links li{display:flex; gap:9px; align-items:baseline}
.dw-links .idx{font-family:var(--font-mono); font-size:10px; color:var(--faint)}
.dw-links a{font-family:var(--font-mono); font-size:12px; color:var(--cyan); text-decoration:none; word-break:break-all; line-height:1.5}
.dw-links a:hover{text-decoration:underline}
.dw-src{font-family:var(--font-mono); font-size:11px; color:var(--faint); margin-top:6px}

/* ============================================================ OPC */
.opc-view{padding:30px 44px 80px; max-width:1240px}
.opc-intro h2{font-family:var(--font-display); font-weight:800; font-size:40px; text-transform:uppercase; line-height:1}
.opc-intro h2::after{content:" / ONE PERSON COMPANY"; font-family:var(--font-mono); font-size:13px; color:var(--cyan); letter-spacing:.14em; vertical-align:middle; margin-left:14px}
.opc-intro p{color:var(--muted); font-size:14px; max-width:760px; margin:14px 0 22px}
.opc-list{display:grid; grid-template-columns:repeat(auto-fill,minmax(320px,1fr)); gap:14px; margin-top:26px}
.opc-card{background:var(--ink-2); border:1px solid var(--line); border-left:2px solid var(--cyan); border-radius:3px; padding:17px 19px; animation:rise .5s both}
.opc-card .kw{font-size:14px; font-weight:700; margin-bottom:8px; display:flex; align-items:center; gap:9px; flex-wrap:wrap}
.opc-card .btag{font-size:10px; font-family:var(--font-mono); padding:2px 7px; background:var(--cyan-soft); color:var(--cyan); border-radius:2px; letter-spacing:.05em}
.opc-card .snip{font-size:13px; color:var(--muted); line-height:1.65; margin-bottom:11px; display:-webkit-box; -webkit-line-clamp:4; -webkit-box-orient:vertical; overflow:hidden}
.opc-card .src{font-family:var(--font-mono); font-size:11px; color:var(--faint); word-break:break-all}
.opc-card .src a{color:var(--cyan); text-decoration:none}
.opc-card .src a:hover{text-decoration:underline}
.opc-more{grid-column:1/-1; text-align:center; padding:10px}
.opc-more button{font-family:var(--font-mono); font-size:12px; color:var(--muted); border:1px solid var(--line-2); padding:9px 22px; border-radius:2px; transition:.15s}
.opc-more button:hover{color:var(--cyan); border-color:var(--cyan)}

/* ============================================================ 页脚 */
.foot{display:flex; justify-content:space-between; gap:20px; padding:26px 44px; border-top:1px solid var(--line); color:var(--faint); font-size:12px; flex-wrap:wrap}
.foot .mono{font-size:11px; letter-spacing:.04em}

/* ============================================================ 响应式 */
@media(max-width:1080px){
  .ov-bars{grid-template-columns:repeat(2,1fr)}
  .layout{grid-template-columns:1fr}
  .rail{position:static; max-height:none; border-right:none; border-bottom:1px solid var(--line)}
  .masthead{flex-direction:column; align-items:flex-start; gap:24px}
  .mast-right{align-items:flex-start; width:100%}
  .search-wrap{width:100%}
}
@media(max-width:640px){
  .masthead,.overview,.content,.opc-view,.foot,.tabs{padding-left:20px; padding-right:20px}
  .ov-bars{grid-template-columns:1fr}
  .dw-grid{grid-template-columns:1fr}
}

/* ============================================================ 01 要闻 / 新闻版 */
.news-view{display:block}
.ticker-wrap{display:flex; align-items:stretch; border-bottom:1px solid var(--line); background:var(--ink-2); overflow:hidden}
.ticker-label{flex-shrink:0; display:flex; align-items:center; padding:0 20px; font-family:var(--font-mono); font-size:11px; letter-spacing:.16em; color:#0b0d10; background:var(--signal); font-weight:600; position:relative; z-index:2}
.ticker-label::after{content:""; position:absolute; right:-12px; top:0; bottom:0; width:12px; background:linear-gradient(90deg,var(--signal),transparent)}
.ticker{flex:1; overflow:hidden; position:relative; mask-image:linear-gradient(90deg,transparent,#000 3%,#000 97%,transparent)}
.ticker-track{display:inline-flex; align-items:center; white-space:nowrap; padding:11px 0; animation:tick 95s linear infinite; will-change:transform}
.ticker-wrap:hover .ticker-track{animation-play-state:paused}
@keyframes tick{from{transform:translateX(0)}to{transform:translateX(-33.333%)}}
.tk-item{font-size:13px; color:var(--paper); display:inline-flex; align-items:center; gap:8px}
.tk-tag{font-family:var(--font-mono); font-size:10.5px; letter-spacing:.05em; padding:1px 7px; background:var(--ink-4); border-radius:2px}
.tk-co{color:var(--faint); font-size:12px}
.tk-sep{color:var(--signal); margin:0 26px; font-size:9px; opacity:.7}

.news-layout{display:grid; grid-template-columns:280px 1fr; gap:0; align-items:start}
.news-rail{position:sticky; top:0; align-self:start; max-height:100vh; overflow-y:auto; padding:30px 26px 40px; border-right:1px solid var(--line)}
.news-headline{margin-bottom:30px}
.nh-kicker{font-family:var(--font-mono); font-size:11px; letter-spacing:.22em; color:var(--signal); margin-bottom:12px}
.news-headline h2{font-family:var(--font-display); font-weight:800; font-size:52px; line-height:.94; text-transform:uppercase; letter-spacing:.01em}
.nh-sub{margin-top:14px; color:var(--muted); font-size:13px; line-height:1.6}
.nh-sub b{color:var(--paper); font-family:var(--font-mono)}
.nh-sub b.hot{color:var(--signal)}
.news-rail .rail-block{margin-bottom:24px}

.news-feed{padding:28px 40px 80px; display:flex; flex-direction:column; gap:14px; min-width:0}
.news-card{display:flex; gap:20px; background:var(--ink-2); border:1px solid var(--line); border-radius:3px; padding:20px 22px; cursor:pointer; position:relative; overflow:hidden; transition:transform .18s cubic-bezier(.2,.8,.2,1), border-color .18s, background .18s; animation:rise .5s both}
.news-card::before{content:""; position:absolute; left:0; top:0; bottom:0; width:2px; background:var(--line-2); transition:.18s}
.news-card.s-tier::before{background:var(--signal); width:3px}
.news-card:hover{transform:translateX(4px); border-color:var(--line-2); background:var(--ink-3)}
.nc-left{flex-shrink:0; display:flex; flex-direction:column; align-items:center; gap:6px; width:46px}
.nc-tier{width:40px; height:40px; display:flex; align-items:center; justify-content:center; font-family:var(--font-display); font-weight:800; font-size:26px; border-radius:3px; border:1px solid var(--line-2); color:var(--muted)}
.nc-tier.S{background:var(--signal); color:#0b0d10; border-color:var(--signal); box-shadow:0 0 18px -4px var(--signal)}
.nc-tier.A{color:var(--paper); border-color:var(--line-2)}
.nc-score{font-family:var(--font-mono); font-size:11px; color:var(--faint)}
.nc-body{flex:1; min-width:0}
.nc-tags{display:flex; align-items:center; gap:10px; margin-bottom:9px}
.nc-tag{font-size:11px; font-weight:600; padding:2px 9px; border-radius:2px}
.nc-ind{font-family:var(--font-mono); font-size:11px; color:var(--faint)}
.nc-head{font-size:18px; font-weight:700; line-height:1.4; margin-bottom:7px}
.s-tier .nc-head{color:var(--paper)}
.nc-co{font-size:13px; color:var(--muted); margin-bottom:10px; font-weight:500}
.nc-en{color:var(--faint); font-family:var(--font-mono); font-size:11.5px}
.nc-why{font-size:13.5px; color:var(--muted); line-height:1.65; border-left:2px solid var(--line-2); padding-left:12px}
.nc-foot{display:flex; justify-content:space-between; margin-top:13px; font-family:var(--font-mono); font-size:11px; color:var(--faint)}
.nc-more{color:var(--faint); letter-spacing:.06em; transition:.15s}
.news-card:hover .nc-more{color:var(--signal)}

/* ============================================================ 04 OPC 参展公司 */
.opcex-view{padding:34px 44px 80px; max-width:1300px; margin:0 auto}
.opcex-intro{margin-bottom:14px}
.opcex-intro h2{font-family:var(--font-display); font-weight:800; font-size:44px; text-transform:uppercase; line-height:1; display:flex; align-items:baseline; gap:16px; flex-wrap:wrap}
.opcex-intro .cn-sub{font-family:'Noto Sans SC',sans-serif; font-size:16px; font-weight:700; color:var(--muted); letter-spacing:.04em}
.opcex-intro p{color:var(--muted); font-size:14px; max-width:820px; margin:16px 0 22px; line-height:1.7}
.opcex-intro p b{color:var(--cyan)}
.opcex-grid{display:grid; grid-template-columns:repeat(auto-fill,minmax(360px,1fr)); gap:16px; margin-top:26px}
.opcex-card{background:var(--ink-2); border:1px solid var(--line); border-radius:3px; padding:20px 22px; cursor:pointer; position:relative; overflow:hidden; transition:transform .18s cubic-bezier(.2,.8,.2,1), border-color .18s, background .18s; animation:rise .5s both; display:flex; flex-direction:column; will-change:transform; -webkit-font-smoothing:antialiased}
.opcex-card::before{content:""; position:absolute; left:0; top:0; bottom:0; width:2px; background:var(--cyan); opacity:.7; transition:.18s}
.opcex-card:hover{transform:translateY(-4px); border-color:var(--line-2); background:var(--ink-3)}
.opcex-card:hover::before{width:3px; opacity:1}
.ox-top{display:flex; justify-content:space-between; align-items:center; margin-bottom:12px}
.ox-type{font-size:11px; font-weight:600; padding:3px 10px; border-radius:2px; letter-spacing:.03em}
.ox-name{font-size:17px; font-weight:700; line-height:1.35; margin-bottom:5px}
.ox-meta{font-family:var(--font-mono); font-size:11px; color:var(--faint); margin-bottom:12px}
.ox-ev{font-size:12.5px; color:var(--muted); line-height:1.6; background:var(--ink-3); border-radius:2px; padding:9px 11px; margin-bottom:13px}
.ox-k{display:block; font-family:var(--font-mono); font-size:10px; letter-spacing:.12em; color:var(--cyan); text-transform:uppercase; margin-bottom:6px}
.ox-prod{font-size:13px; color:var(--paper); line-height:1.55; margin-bottom:14px}
.ox-borrow{flex:1}
.ox-list{list-style:none; display:flex; flex-direction:column; gap:8px}
.ox-list li{font-size:12.5px; color:var(--muted); line-height:1.55; display:flex; gap:9px}
.ox-list .ob-n{font-family:var(--font-mono); font-size:10px; color:var(--cyan); flex-shrink:0; padding-top:1px}
.ox-foot{margin-top:15px; padding-top:12px; border-top:1px solid var(--line); font-family:var(--font-mono); font-size:11px; color:var(--faint); letter-spacing:.06em; transition:.15s}
.opcex-card:hover .ox-foot{color:var(--cyan)}

@media(max-width:1080px){
  .news-layout{grid-template-columns:1fr}
  .news-rail{position:static; max-height:none; border-right:none; border-bottom:1px solid var(--line)}
  .news-headline h2{font-size:40px}
}
@media(max-width:640px){
  .news-feed,.opcex-view{padding-left:20px; padding-right:20px}
  .news-card{flex-direction:column; gap:12px}
  .nc-left{flex-direction:row; width:auto}
}

/* ============================================================ 04 OPC 新版面 */
.opcex-nav{display:flex; gap:8px; flex-wrap:wrap; margin-top:22px}
.opcex-nav a{font-family:var(--font-mono); font-size:12px; color:var(--muted); text-decoration:none; border:1px solid var(--line-2); border-radius:2px; padding:7px 14px; transition:.18s; letter-spacing:.04em; position:relative}
.opcex-nav a:hover{color:var(--cyan); border-color:var(--cyan); transform:translateY(-2px)}
.opcex-nav a.on-nav{color:#0b0d10; background:var(--cyan); border-color:var(--cyan); font-weight:600; box-shadow:0 0 16px -4px var(--cyan)}
.opc-sec{margin-top:52px; scroll-margin-top:20px}
.sec-head{display:flex; gap:20px; align-items:flex-start; margin-bottom:26px; border-bottom:1px solid var(--line); padding-bottom:18px}
.sec-no{font-family:var(--font-display); font-weight:800; font-size:46px; line-height:.9; color:var(--ink-4); -webkit-text-stroke:1px var(--line-2)}
.sec-head h3{font-family:var(--font-display); font-weight:800; font-size:27px; text-transform:uppercase; letter-spacing:.02em}
.sec-head p{color:var(--muted); font-size:13px; margin-top:4px}

/* 思路图谱 */
.pattern-grid{display:grid; grid-template-columns:repeat(auto-fill,minmax(300px,1fr)); gap:16px}
.pattern-card{background:var(--ink-2); border:1px solid var(--line); border-top:3px solid var(--pc,#ff5a1f); border-radius:3px; padding:20px 22px; position:relative; transition:transform .18s cubic-bezier(.2,.8,.2,1), box-shadow .18s; animation:rise .5s both}
.pattern-card:hover{transform:translateY(-5px); box-shadow:0 16px 40px -18px rgba(0,0,0,.8)}
.pattern-card.featured{border-color:var(--pc); background:linear-gradient(180deg,color-mix(in srgb,var(--pc) 7%,var(--ink-2)),var(--ink-2) 55%)}
.p-flag{position:absolute; top:0; right:16px; background:var(--pc); color:#0b0d10; font-family:var(--font-mono); font-size:11px; font-weight:700; padding:5px 12px 6px; letter-spacing:.14em; border-radius:0 0 4px 4px; box-shadow:0 6px 18px -6px var(--pc); transform:translateY(-1px)}
.p-count{font-family:var(--font-display); font-weight:800; font-size:34px; color:var(--pc); line-height:1}
.p-count span{font-size:13px; color:var(--muted); font-family:var(--font-mono); margin-left:3px}
.p-name{font-size:17px; font-weight:700; margin:9px 0 7px}
.p-essence{font-size:13px; color:var(--pc); font-weight:500; margin-bottom:10px; line-height:1.5}
.p-summary{font-size:12.5px; color:var(--muted); line-height:1.65; margin-bottom:14px}
.p-members{display:flex; flex-wrap:wrap; gap:6px}
.pm{font-size:10.5px; font-family:var(--font-mono); color:var(--faint); background:var(--ink-3); border-radius:2px; padding:2px 7px}
.pm.more{color:var(--pc)}

/* 精品思路分析 */
.featured-list{display:flex; flex-direction:column; gap:20px}
.featured-card{background:var(--ink-2); border:1px solid var(--line-2); border-left:3px solid var(--signal); border-radius:3px; overflow:hidden; animation:rise .55s both}
.f-head{padding:22px 26px 18px; background:linear-gradient(120deg,var(--signal-soft),transparent 60%); border-bottom:1px solid var(--line)}
.f-idx{font-family:var(--font-mono); font-size:11px; letter-spacing:.18em; color:var(--signal); font-weight:600}
.f-head h4{font-family:var(--font-display); font-weight:800; font-size:30px; text-transform:uppercase; margin:7px 0 6px}
.f-essence{color:var(--muted); font-size:14px; font-weight:500}
.f-body{display:grid; grid-template-columns:1.15fr 1fr; gap:0}
.f-col{padding:22px 26px 26px}
.f-col + .f-col{border-left:1px solid var(--line)}
.f-k{display:block; font-family:var(--font-mono); font-size:10px; letter-spacing:.14em; color:var(--cyan); text-transform:uppercase; margin:0 0 8px}
.f-col .f-k:not(:first-child){margin-top:20px}
.f-why{font-size:13.5px; color:var(--paper); line-height:1.75}
.f-how{list-style:none; display:flex; flex-direction:column; gap:9px}
.f-how li{font-size:13px; color:var(--muted); line-height:1.6; display:flex; gap:10px}
.f-n{font-family:var(--font-mono); font-size:10px; color:var(--signal); flex-shrink:0; padding-top:2px}
.f-exs{display:flex; flex-direction:column; gap:11px}
.f-ex{background:var(--ink-3); border-radius:2px; padding:11px 13px}
.f-ex b{display:block; font-size:13px; color:var(--paper); margin-bottom:3px}
.f-ex span{font-size:12px; color:var(--muted); line-height:1.6}
.f-bound{font-size:12.5px; color:var(--paper); line-height:1.7; background:rgba(255,197,61,.1); border:1px solid rgba(255,197,61,.28); border-left:3px solid var(--c-collab); padding:11px 13px; border-radius:0 3px 3px 0}
.f-bound::before{content:"⚠ 边界"; display:block; font-family:var(--font-mono); font-size:10px; letter-spacing:.12em; color:var(--c-collab); margin-bottom:5px}

/* 重点公司深访 */
.deep-grid{display:grid; grid-template-columns:repeat(auto-fill,minmax(400px,1fr)); gap:16px}
.deep-card{background:var(--ink-2); border:1px solid var(--line); border-radius:3px; padding:22px 24px; position:relative; overflow:hidden; transition:transform .18s, border-color .18s; animation:rise .5s both}
.deep-card::before{content:""; position:absolute; left:0; top:0; right:0; height:3px; background:linear-gradient(90deg,var(--cyan) 0%,rgba(56,224,195,.45) 55%,rgba(56,224,195,.14) 100%)}
.deep-card:hover{transform:translateY(-4px); border-color:var(--line-2)}
.d-top{display:flex; justify-content:space-between; align-items:center; margin-bottom:8px}
.d-brand{font-family:var(--font-display); font-weight:800; font-size:22px; text-transform:uppercase; letter-spacing:.02em; color:var(--cyan)}
.d-name{font-size:13px; color:var(--muted); font-weight:500; margin-bottom:9px}
.d-oneliner{font-size:14px; color:var(--paper); font-weight:600; line-height:1.55; margin-bottom:12px}
.d-tags{display:flex; gap:7px; flex-wrap:wrap; margin-bottom:14px}
.d-tag{font-size:10.5px; font-family:var(--font-mono); color:var(--cyan); background:var(--cyan-soft); border-radius:2px; padding:2px 8px}
.d-traction{background:#1d222b; border:1px solid var(--line); border-radius:2px; padding:12px 14px}
.d-traction p{font-size:12.5px; color:var(--paper); line-height:1.65}
.d-more{margin-top:15px}
.d-more summary{font-family:var(--font-mono); font-size:11.5px; color:var(--cyan); cursor:pointer; letter-spacing:.06em; list-style:none; user-select:none; transition:.15s}
.d-more summary:hover{color:var(--paper)}
.d-more[open] summary{margin-bottom:16px}
.d-detail{border-top:1px solid var(--line); padding-top:16px}
.d-detail .f-k{margin-top:16px}
.d-detail .f-k:first-child{margin-top:0}
.d-detail p{font-size:13px; color:var(--muted); line-height:1.7}
.d-feats{list-style:none; display:flex; flex-direction:column; gap:6px}
.d-feats li{font-size:12.5px; color:var(--muted); line-height:1.55; padding-left:14px; position:relative}
.d-feats li::before{content:"▸"; position:absolute; left:0; color:var(--cyan); font-size:10px}
.d-risk{background:rgba(255,90,31,.06); border-left:2px solid var(--signal); padding:9px 12px; border-radius:0 2px 2px 0}
.d-srcs{display:flex; gap:10px; flex-wrap:wrap; margin-top:18px}
.d-srcs a{font-family:var(--font-mono); font-size:11px; color:var(--cyan); text-decoration:none; border:1px solid var(--line-2); padding:4px 10px; border-radius:2px; transition:.15s}
.d-srcs a:hover{border-color:var(--cyan); background:var(--cyan-soft)}

@media(max-width:900px){ .f-body{grid-template-columns:1fr} .f-col + .f-col{border-left:none; border-top:1px solid var(--line)} }
@media(max-width:640px){ .deep-grid{grid-template-columns:1fr} .sec-no{font-size:34px} }
