/* TraceLite theme layer, loaded last on every page.
   Monochrome: black, white and grey, serif display type for headlines.
   Overrides the per-page tokens so every page shares one palette. */
:root{
  /* index / blog / papers / research / wechat tokens */
  --bg:#F6F6F5; --bg-rgb:246,246,245;
  --text:#111111; --text-2:#5A5A5A;
  --ocean:#111111; --teal:#2B2B2B; --aqua:#9A9A9A; --blue:#2B2B2B;
  --border:rgba(17,17,17,.13);
  --font-sans:'Geist','Noto Sans SC','PingFang SC',system-ui,-apple-system,'Segoe UI',sans-serif;
  --font-mono:'IBM Plex Mono',ui-monospace,Menlo,monospace;
  --font-display:'Source Serif 4','Noto Serif SC','Songti SC',Georgia,serif;
  /* timeline / trial-by-trace tokens */
  --ink:#111111; --muted:#5A5A5A; --line:#DDDDDD; --paper:#FFFFFF;
  --sans:'Geist','Noto Sans SC','PingFang SC',system-ui,-apple-system,'Segoe UI',sans-serif;
  --mono:'IBM Plex Mono',ui-monospace,Menlo,monospace;
}
body{background:var(--bg);color:var(--text,var(--ink));}
::selection{background:#DDDDDD;color:#111111;}

/* Display type */
.hero h1,.page-hero h1,h2.title,.report-title,.timeline-hero-copy h1,
.timeline-home-intro h2,.cases-section h2,.section h2,.citation-section h2,
.pm-card h3,.note-row .nt,.home-timeline .entry-title,.entry-title{
  font-family:var(--font-display);font-weight:600;letter-spacing:-.018em;
}
.hero h1{color:var(--text);font-size:clamp(42px,5.6vw,72px);line-height:1.05;}
.hero h1 .teal{color:var(--teal);}
.page-hero h1{letter-spacing:-.02em;}
html[lang="zh-CN"] .hero h1,html[lang="zh-CN"] .page-hero h1{letter-spacing:0;}

/* Eyebrows and small caps in the accent */
.mono,.eyebrow,.report-kicker,.bp-topic,.hero .release-eyebrow{color:var(--teal);}
.release-eyebrow::before,.status-dot,.timeline-dot{background:var(--teal)!important;}

/* Buttons */
.btn-primary,.button-dark,.reset-button{background:var(--teal)!important;border-color:var(--teal)!important;color:#fff!important;}
.btn-primary:hover,.button-dark:hover,.reset-button:hover{background:#1A1A1A!important;box-shadow:0 14px 34px -16px rgba(43,43,43,.7);}
.btn-ghost:hover{border-color:var(--teal);color:var(--teal);}
.lang-toggle{border-color:var(--border)!important;color:var(--text,var(--ink))!important;}
.lang-toggle:hover{border-color:var(--teal)!important;color:var(--teal)!important;background:rgba(43,43,43,.06)!important;}
.nav-links a.lk.active{border-color:var(--teal);color:var(--teal);}

/* Hero glow in the brand color instead of grey haze */
.hero::before{background:radial-gradient(circle,rgba(43,43,43,.14) 0%,rgba(43,43,43,.06) 34%,rgba(43,43,43,0) 70%)!important;}
.hero-bg .blob-1{background:radial-gradient(circle,rgba(43,43,43,.12),rgba(43,43,43,.03) 55%,rgba(43,43,43,0) 74%)!important;}
.hero-bg .blob-2{background:radial-gradient(circle,rgba(154,154,154,.14),rgba(154,154,154,0) 72%)!important;}
.hero-bg .tint{background:linear-gradient(180deg,rgba(246,246,245,.15) 0%,rgba(246,246,245,.45) 45%,rgba(246,246,245,.9) 82%,var(--bg) 100%)!important;}

/* Links and rules */
.report-link,.blog-read,.coverage-link,.hero-note a,.text-link,.entry-links a,.contact-link,.timeline-jump,.home-blog .blog-all-link{border-bottom-color:rgba(43,43,43,.45)!important;}
.report-link:hover,.blog-read:hover,.text-link:hover,.entry-links a:hover{color:var(--teal);border-bottom-color:var(--teal)!important;}
.report-feature{background:#fff;border-color:var(--border);box-shadow:0 1px 0 rgba(17,17,17,.04);}
.report-feature:hover{border-color:var(--teal);}

/* Tags and pills */
.note-row .tag,.pm-meta span{color:var(--teal)!important;background:rgba(43,43,43,.09)!important;}
.home-timeline .timeline-entry[data-type="report"] .entry-type,.filter-button[aria-pressed="true"]{background:var(--ink,#111111)!important;border-color:var(--ink,#111111)!important;color:#fff!important;}
.home-timeline .timeline-entry:first-child::before,.timeline-entry:first-child::before{background:var(--teal)!important;border-color:var(--teal)!important;}

/* Imagery: stop washing everything to grey */
.blog-preview-image img{filter:none!important;}

/* Footer */
.footer:not(.wrap){background:var(--ocean);}
.footer .f-bottom{border-top-color:rgba(255,255,255,.14);}

/* Blog list: roadmap badge */
.note-row .tag.roadmap{background:var(--teal)!important;color:#fff!important;}
.note-row .note-thumb{background:#EAEAEA;}

/* Homepage timeline: scrolling panel with slow auto-scroll */
.timeline-home-entries{position:relative;max-height:560px;overflow-y:auto;overscroll-behavior:contain;padding-right:12px;padding-left:8px;scrollbar-width:none;
  -webkit-mask-image:linear-gradient(180deg,transparent 0,#000 28px,#000 calc(100% - 64px),transparent 100%);mask-image:linear-gradient(180deg,transparent 0,#000 28px,#000 calc(100% - 64px),transparent 100%);padding-top:14px;padding-bottom:48px;}
.timeline-home-entries::-webkit-scrollbar{display:none;}
@media(max-width:767px){.timeline-home-entries{max-height:480px;}}

.tl-frame{position:relative;padding-right:18px;min-width:0;}
.tl-rail{position:absolute;top:14px;right:0;bottom:48px;width:2px;background:rgba(17,17,17,.08);cursor:pointer;}
.tl-rail::before{content:"";position:absolute;inset:0 -8px;}
.tl-thumb{position:absolute;left:0;top:0;width:100%;background:#111;cursor:grab;touch-action:none;transition:width .15s,left .15s;}
.tl-rail:hover .tl-thumb,.tl-thumb:active{width:4px;left:-1px;}
.tl-controls{display:none;}
.tl-frame.no-overflow .tl-rail{display:none;}

/* Inner-page header: plain, aligned to the content column, no decorative lines */
.page-hero{min-height:0;padding-top:148px;padding-bottom:44px;background:var(--bg);}
.page-hero .hero-bg{display:none;}
.page-hero .hero-content{width:100%;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,420px);column-gap:64px;align-items:end;}
.page-hero .hero-content>.mono{grid-column:1/-1;margin-bottom:18px;color:var(--text-2);letter-spacing:.16em;}
.page-hero .hero-content>.mono::before{content:"";display:inline-block;width:18px;height:1px;background:currentColor;vertical-align:middle;margin-right:10px;}
.page-hero h1{margin:0;max-width:none;font-size:clamp(44px,6.4vw,88px);line-height:1;}
.page-hero p.lead{margin:0 0 8px;max-width:none;font-size:16.5px;color:var(--text-2);}
@media(max-width:767px){
  .page-hero{padding-top:112px;padding-bottom:32px;}
  .page-hero .hero-content{grid-template-columns:1fr;}
  .page-hero p.lead{margin-top:16px;}
}
/* Compact header: no big title, just the gray line */
.page-hero.is-compact{padding-top:128px;padding-bottom:28px;}
.page-hero.is-compact .hero-content{grid-template-columns:1fr;}
.page-hero.is-compact .hero-content>.mono{margin-bottom:10px;}
.page-hero.is-compact p.lead{margin:0;font-size:15px;line-height:1.6;color:var(--text-2);}
.page-hero.is-compact{border-bottom:0;padding-bottom:8px;}
.page-hero.is-compact + .paper-list{padding-top:24px;}

/* ---- Homepage cleanup: flat background, one rhythm, no decorative washes ---- */
.hero::before,.home-ext .ext-module::before{display:none;}
.home-ext .section-head::before,.home-ext .section-head::after{display:none;}
.home-ext .ext-module{padding-block:clamp(64px,7vw,104px);border-top:1px solid var(--border);background:transparent;}
.home-ext .home-timeline{padding-block:clamp(64px,7vw,104px);}
.home-ext h2.title{font-size:clamp(30px,3.4vw,44px);letter-spacing:-.02em;}
.home-ext .eyebrow{color:var(--text-2);letter-spacing:.16em;}
/* papers: calmer list, larger figures */
.home-ext .out-grid{margin-top:36px;gap:8px 48px;}
.home-ext .out-col h3.sub{display:none;}
.home-ext .paper-items{display:grid;grid-template-columns:1fr 1fr;gap:0 48px;}
.home-ext .item{padding:24px 0;border-radius:0;border-top:1px solid var(--border);gap:22px;}
.home-ext .item+.item{margin-top:0;}
.home-ext .item:hover,.home-ext .item.home-item:hover{background:transparent;box-shadow:none;transform:none;}
.home-ext .item .ph-thumb{width:132px;height:92px;border-radius:8px;padding:6px;background:#fff;}
.home-ext .item .it-body h4{font-size:17px;line-height:1.35;}
.home-ext .item .it-body p{font-size:14.5px;-webkit-line-clamp:2;}
.home-ext .out-link{color:var(--text);}
@media(max-width:900px){.home-ext .paper-items{grid-template-columns:1fr;}}
@media(max-width:520px){.home-ext .item .ph-thumb{width:96px;height:68px;}}

/* ---- Motion layer (assets/motion.js) ---- */
.mo-progress{position:fixed;left:0;top:0;right:0;height:2px;background:#111;transform-origin:0 50%;transform:scaleX(0);z-index:200;pointer-events:none;}
.mo .mo-rise{opacity:0;transform:translateY(28px);filter:blur(6px);transition:opacity .8s cubic-bezier(.2,.7,.2,1),transform .8s cubic-bezier(.2,.7,.2,1),filter .8s ease;transition-delay:calc(var(--mo-i,0) * 70ms);}
.mo .mo-rise.mo-in{opacity:1;transform:none;filter:none;}
.mo .hero h1 .mo-line{display:inline-block;white-space:pre;opacity:0;transform:translateY(.45em);filter:blur(10px);transition:opacity 1s cubic-bezier(.2,.7,.2,1),transform 1s cubic-bezier(.2,.7,.2,1),filter 1s ease;transition-delay:calc(.15s + var(--mo-i,0) * 140ms);}
.mo .hero h1.mo-go .mo-line{opacity:1;transform:none;filter:none;}
.hero .mo-field{position:absolute;inset:0;z-index:0;pointer-events:none;}
.hero>.wrap{position:relative;z-index:1;}
.mo-tilt{transform:perspective(900px) rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg));transition:transform .5s cubic-bezier(.2,.7,.2,1),box-shadow .3s,border-color .3s;will-change:transform;position:relative;}
.mo-tilt:hover{transition:transform .12s linear,box-shadow .3s,border-color .3s;}
.mo-tilt::after{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;opacity:0;transition:opacity .3s;background:radial-gradient(420px circle at var(--sx,50%) var(--sy,50%),rgba(255,255,255,.55),rgba(255,255,255,0) 45%);}
.mo-tilt:hover::after{opacity:1;}
.home-ext .blog-prev.mo-tilt:hover{transform:perspective(900px) rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg)) translateY(-4px);}
.hero-cta .btn{transition:transform .35s cubic-bezier(.2,.7,.2,1),background .3s,color .3s,border-color .3s;}

/* Conferences list */
.event-list{list-style:none;margin:36px 0 0;padding:0;border-top:1px solid var(--border);}
.event-row{display:grid;grid-template-columns:110px minmax(0,1fr) auto 110px;gap:28px;align-items:center;padding:26px 0;border-bottom:1px solid var(--border);transition:padding-left .35s cubic-bezier(.2,.7,.2,1);}
.event-row:hover{padding-left:10px;}
.ev-date{font:12px var(--font-mono);letter-spacing:.06em;color:var(--text-2);}
.ev-name{font-family:var(--font-display);font-size:24px;font-weight:600;letter-spacing:-.015em;line-height:1.2;}
.ev-what{margin-top:6px;font-size:14.5px;line-height:1.55;color:var(--text-2);max-width:62ch;}
.ev-tag{font:11px var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--text);border:1px solid var(--border);border-radius:999px;padding:5px 11px;white-space:nowrap;}
.ev-link{justify-self:end;font-size:14px;white-space:nowrap;border-bottom:1px solid rgba(43,43,43,.45);padding-bottom:3px;}
@media(max-width:767px){
  .event-row{grid-template-columns:1fr auto;gap:10px 16px;}
  .ev-date{grid-column:1/-1;}
  .ev-link{justify-self:start;}
}
/* Timeline page: same compact header as the other sub-pages */
.timeline-hero.is-compact{padding-block:56px 28px;}
.timeline-hero.is-compact .hero-heading{display:block;min-height:0;}
.timeline-hero.is-compact .timeline-hero-copy{padding-block:0;}
.timeline-hero.is-compact .timeline-visual,.timeline-hero.is-compact .timeline-jump{display:none;}
.timeline-hero.is-compact .hero-description{margin-top:10px;font-size:15px;line-height:1.6;max-width:none;}

/* ---- Leaderboard ---- */
.lb{padding-block:24px 96px;}
.lb-bar{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;margin-bottom:18px;}
.lb-seg{display:inline-flex;padding:3px;border:1px solid var(--border);border-radius:999px;background:rgba(255,255,255,.6);}
.lb-tab{border:0;background:transparent;font:500 13.5px var(--font-sans);color:var(--text-2);padding:8px 16px;border-radius:999px;cursor:pointer;transition:background .25s,color .25s;}
.lb-tab.is-on{background:#111;color:#fff;}
.lb-filter{display:flex;align-items:center;gap:10px;font-size:13px;color:var(--text-2);}
.lb-filter[hidden]{display:none;}
.lb-filter select{font:13px var(--font-sans);padding:7px 30px 7px 12px;border:1px solid var(--border);border-radius:8px;background:#fff;color:var(--text);}
.lb-scroll{overflow-x:auto;border-top:1px solid #111;}
.lb-table{width:100%;border-collapse:collapse;min-width:860px;font-variant-numeric:tabular-nums;}
.lb-table th{font:500 11px var(--font-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--text-2);text-align:right;padding:14px 9px;border-bottom:1px solid var(--border);white-space:nowrap;user-select:none;}
.lb-table th.c-name,.lb-table th.c-rank{text-align:left;}
.lb-table th.sortable,.lb-table th.c-name{cursor:pointer;}
.lb-table th.sortable:hover,.lb-table th.c-name:hover{color:var(--text);}
.lb-table th.is-sorted{color:var(--text);}
.lb-table th.is-sorted::after{content:"↓";margin-left:4px;}
.lb-table th.is-sorted[aria-sort="ascending"]::after{content:"↑";}
.lb-table td{padding:16px 9px;border-bottom:1px solid var(--border);text-align:right;font-size:14.5px;color:var(--text-2);}
.lb-table td.c-rank{text-align:left;font:13px var(--font-mono);color:var(--text-2);width:40px;}
.lb-table td.c-name{text-align:left;min-width:190px;white-space:nowrap;}
.lb-h{display:block;font-weight:600;color:var(--text);font-size:15.5px;}
.lb-sub{display:block;font-size:12.5px;color:var(--text-2);margin-top:2px;}
.lb-table td.c-lay{position:relative;min-width:170px;}
.lb-table td.c-lay b{position:relative;font-weight:600;color:var(--text);font-size:16px;}
.lb-bar-v{position:absolute;right:62px;top:50%;height:6px;width:calc((100% - 74px) * var(--w));transform:translateY(-50%) scaleX(0);transform-origin:100% 50%;background:#111;border-radius:3px;opacity:.85;transition:transform .9s cubic-bezier(.2,.7,.2,1);transition-delay:calc(var(--mo-i,0) * 45ms);}
.lb-table tbody.is-in .lb-bar-v{transform:translateY(-50%) scaleX(1);}
.lb-table td.is-key{color:var(--text);font-weight:600;}
.lb-table tbody tr{transition:background .2s;}
.lb-table tbody tr:hover{background:rgba(255,255,255,.7);}
.lb-table tbody tr:first-child td.c-rank{color:#111;font-weight:700;}
.lb-notes{margin-top:26px;max-width:78ch;}
.lb-notes p{font-size:13.5px;line-height:1.7;color:var(--text-2);}
.lb-notes p+p{margin-top:8px;}
.lb-src{display:inline-block;margin-top:16px;font-size:14px;color:var(--text);border-bottom:1px solid rgba(43,43,43,.45);padding-bottom:3px;}

/* Nav icon buttons: one size, one shape */
.nav-cta .soc,.nav-cta .ext,.nav-cta .lang-toggle{width:auto!important;display:inline-flex!important;align-items:center;justify-content:center;height:34px;min-width:34px;padding:0 9px!important;border:1px solid var(--border)!important;border-radius:8px!important;background:transparent;color:var(--text)!important;line-height:1;box-sizing:border-box;transition:border-color .2s,background-color .2s;}
.nav-cta .soc:hover,.nav-cta .ext:hover,.nav-cta .lang-toggle:hover{border-color:#111!important;background:rgba(255,255,255,.7);}
.nav-cta .ext{font-size:0!important;gap:0!important;}
.nav-cta .ext svg{width:17px;height:17px;}
.nav-cta .soc img{width:18px!important;height:18px!important;}
.nav-cta .soc-txt{font-size:12.5px;font-weight:700;letter-spacing:.02em;color:#333;white-space:nowrap;}
.nav-cta .lang-toggle{font-size:13px!important;font-weight:600;}
@media(max-width:767px){.nav-cta .ext,.nav-cta .soc{display:none!important;}}
/* Same wordmark size on every page */
.brand img.logo,.nav .brand img,.site-header .brand img{height:26px!important;width:auto!important;display:block;}

/* Research projects list */
.proj-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(420px,1fr));gap:20px;margin-top:20px;}
.proj-card{display:flex;flex-direction:column;gap:10px;padding:28px 30px;background:#fff;border:1px solid var(--border);border-radius:14px;transition:border-color .2s,transform .2s;}
.proj-card:not(.is-soon):hover{border-color:#111;transform:translateY(-2px);}
.proj-card.is-soon{background:transparent;border-style:dashed;}
.proj-tag{font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--text-2);}
.proj-card h3{font-size:24px;font-weight:600;letter-spacing:-.01em;color:var(--text);}
.proj-name{color:inherit;}
.proj-desc{font-size:15px;line-height:1.65;color:var(--text-2);}
.proj-links{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px;}
.proj-link{display:inline-flex;align-items:center;gap:4px;font-size:13.5px;padding:7px 12px;border:1px solid var(--border);border-radius:999px;color:var(--text);white-space:nowrap;transition:border-color .2s,background .2s;}
a.proj-link:hover{border-color:#111;background:#fff;}
.proj-link.is-soon{color:#9a9a9a;border-style:dashed;}
@media(max-width:520px){.proj-grid{grid-template-columns:1fr;}}
.proj-eyebrow{display:flex;align-items:center;gap:10px;font-size:12px;letter-spacing:.16em;color:var(--text-2);}
.proj-eyebrow::before{content:"";width:18px;height:1px;background:currentColor;}
.proj-block .proj-grid{margin-top:16px;}
