@font-face{font-family:'Space Grotesk';src:url('../fonts/space-grotesk-v22-latin-regular.woff2') format('woff2');font-weight:400;font-display:swap}
@font-face{font-family:'Space Grotesk';src:url('../fonts/space-grotesk-v22-latin-700.woff2') format('woff2');font-weight:700;font-display:swap}
:root{
  --lab-paper:#f3f1e9;
  --lab-surface:#faf9f5;
  --lab-ink:#191a17;
  --lab-muted:#65665e;
  --lab-rule:#d2d1c7;
  --lab-content:1280px;
  --lab-gutter:clamp(48px,5.55vw,100px);
  --lab-space:120px;
  --lab-sans:'Space Grotesk',-apple-system,BlinkMacSystemFont,'PingFang SC','Microsoft YaHei',sans-serif;
  --lab-serif:Georgia,'Times New Roman','Songti SC',serif;
  --lab-ease:cubic-bezier(.16,1,.3,1);
}
html{scroll-behavior:smooth;scroll-padding-top:40px;scrollbar-color:#8c8c82 var(--lab-paper)}
.lab-site{margin:0;background:var(--lab-paper);color:var(--lab-ink);font-family:var(--lab-sans);font-size:17px;line-height:1.65;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
.lab-site *, .lab-header *, .lab-footer *{box-sizing:border-box}
.lab-site h1,.lab-site h2,.lab-site h3,.lab-site h4,.lab-site p,.lab-site figure{margin:0}
.lab-site h1,.lab-site h2,.lab-site h3,.lab-site h4{line-height:1.13;letter-spacing:-.035em;text-wrap:balance;font-weight:400}
.lab-site h1{font-size:clamp(60px,5.9vw,84px);font-weight:700;line-height:1.055}
.lab-site h1 em{font-style:normal;text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:9px}
.lab-site h2{font-size:46px}
.lab-site h3{font-size:28px}
.lab-site a,.lab-header a,.lab-footer a{color:inherit;text-decoration-thickness:1px;text-underline-offset:5px}
.lab-site button,.lab-header button{font:inherit;color:inherit;cursor:pointer}
.lab-site img,.lab-site svg{max-width:100%;display:block}
.lab-site ::selection,.context-page ::selection,.lab-footer ::selection{background:#d6d5c8;color:var(--lab-ink)}
.lab-site :focus-visible,.lab-header :focus-visible,.lab-footer :focus-visible{outline:2px solid currentColor;outline-offset:5px}
.lab-site [hidden]{display:none!important}
.shell,.lab-site .shell,.lab-footer .shell,.lab-header.shell{width:calc(100% - var(--lab-gutter)*2);max-width:var(--lab-content);margin-inline:auto}
.lab-site .section-space{margin-top:var(--lab-space)}
.lab-site .arrow,.lab-header .arrow,.lab-footer .footer-bottom svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.35;flex:none}
.lab-header{display:flex;align-items:center;justify-content:space-between;min-height:108px;gap:40px;position:relative;z-index:20;color:var(--lab-ink);font-family:var(--lab-sans)}
.lab-brand{display:inline-flex;align-items:center;gap:11px;text-decoration:none;font-size:28px;line-height:1.2;font-weight:700;letter-spacing:-1.1px;white-space:nowrap}
.lab-brand img{width:32px;height:32px;object-fit:contain;flex:none}
.lab-nav{display:flex;gap:32px;align-items:center;font-size:15px;line-height:1.3}
.lab-nav>a{text-decoration:none;padding:8px 0;border-bottom:1px solid transparent;white-space:nowrap}
.lab-nav>a[aria-current=page],.lab-nav>a:hover{border-bottom-color:currentColor}
.lab-nav .nav-code{display:inline-flex;gap:6px;align-items:center;margin-left:12px}
/* Ecosystem menu: opens on hover or keyboard focus; on touch and narrow screens the link simply goes to the page */
.nav-menu{position:relative;display:flex;align-items:center}
.nav-menu>a{display:inline-flex;align-items:center;gap:6px;text-decoration:none;padding:8px 0;border-bottom:1px solid transparent;white-space:nowrap}
.nav-menu>a[aria-current=page],.nav-menu>a:hover{border-bottom-color:currentColor}
.nav-caret{width:12px;height:12px;fill:none;stroke:currentColor;stroke-width:1.4;transition:transform .22s var(--lab-ease)}
.nav-panel{position:absolute;top:calc(100% + 22px);left:-30px;min-width:250px;display:flex;flex-direction:column;padding:20px 30px 22px;background:var(--lab-surface);border:1px solid rgba(25,26,23,.07);border-radius:16px;box-shadow:0 1px 2px rgba(25,26,23,.04),0 14px 34px -16px rgba(25,26,23,.2);opacity:0;visibility:hidden;transform:translateY(6px);transition:opacity .18s ease,transform .24s var(--lab-ease),visibility 0s linear .24s;z-index:60}
.nav-panel::before{content:'';position:absolute;left:0;right:0;top:-24px;height:24px}
.lab-header .nav-group{margin:0 0 8px;font-size:13px;line-height:1.4;color:var(--lab-muted)}
.nav-panel a{padding:4px 0;font:400 17px/1.35 var(--lab-serif);color:var(--lab-ink);text-decoration:none;white-space:nowrap}
.nav-panel a:hover,.nav-panel a:focus-visible{text-decoration:underline;text-underline-offset:4px;text-decoration-thickness:1px}
.nav-panel a:focus-visible{outline:none}
.nav-menu:focus-within .nav-panel,.nav-menu.is-open .nav-panel{opacity:1;visibility:visible;transform:none;transition-delay:0s}
.nav-menu:focus-within .nav-caret,.nav-menu.is-open .nav-caret{transform:rotate(180deg)}
.nav-menu.is-closed .nav-panel{opacity:0;visibility:hidden;transform:translateY(6px)}
.nav-menu.is-closed .nav-caret{transform:none}
@media (hover:hover) and (pointer:fine){.nav-menu:hover .nav-panel{opacity:1;visibility:visible;transform:none;transition-delay:0s}.nav-menu:hover .nav-caret{transform:rotate(180deg)}}
@media (max-width:820px),(hover:none){.nav-panel,.nav-caret{display:none}}
@media (prefers-reduced-motion:reduce){.nav-panel,.nav-caret{transition:none}}
.lab-nav .nav-code .arrow{width:15px;height:15px;transform:rotate(-45deg)}
.lab-header .language-button{background:transparent;border:1px solid var(--lab-rule);border-radius:4px;font-size:12px;line-height:1;padding:9px 10px;min-width:42px;transition:border-color .18s}
.language-button:hover{border-color:var(--lab-ink)}
.lab-skip{position:fixed;top:10px;left:10px;padding:10px 16px;background:var(--lab-ink);color:var(--lab-paper)!important;z-index:99;transform:translateY(-180%)}
.lab-skip:focus{transform:none}
.intro{display:grid;grid-template-columns:1.46fr 1fr;gap:8%;padding-block:92px 104px;align-items:start}
.intro-aside{padding-top:0}
.intro.home-intro{align-items:start;padding-bottom:72px}
.lab-site .home-intro h1{font-size:clamp(60px,5.3vw,76px)}
.lab-site .research-intro h1{font-size:clamp(60px,5vw,72px)}
.home-intro>.intro-aside{padding-top:0}
.lab-site .home-intro+.vision{margin-top:0}
.lab-site .serif-lede{font:28px/1.38 var(--lab-serif);letter-spacing:-.018em;max-width:25ch;text-wrap:pretty}
.line-link{display:inline-flex;align-items:center;gap:18px;text-decoration:none;padding:7px 0;border-bottom:1px solid var(--lab-ink);font-size:15px;line-height:1.45;margin-top:26px;width:fit-content}
.line-link .arrow{width:18px;height:18px;transition:transform .2s var(--lab-ease)}
a:hover .arrow{transform:translateX(3px)}
.vision{padding:64px 0 72px;border-block:1px solid var(--lab-rule);display:grid;grid-template-columns:1fr 1.3fr;gap:10%}
.lab-site .vision-heading h2{font-size:32px;line-height:1.2;letter-spacing:-.025em;margin-bottom:24px}
.lab-site .vision-description{font-size:16px;color:var(--lab-muted);max-width:44ch}
.meaning-grid{display:grid;grid-template-columns:1fr 1fr;gap:15%}
.lab-site .meaning-grid h3{font:76px/1 var(--lab-serif);letter-spacing:-.035em;margin:0 0 28px}
.meaning-grid p{font-size:15px;color:var(--lab-muted);line-height:1.65}
.section-head{display:grid;grid-template-columns:1.4fr 1fr;gap:12%;align-items:end;margin-bottom:46px}
.section-head>p,.section-head>div>p{max-width:46ch;font-size:17px;color:var(--lab-muted)}
.agenda-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:50px;border-top:1px solid var(--lab-rule);padding-top:32px}
.lab-site .agenda-grid h3{font-size:25px;letter-spacing:-.025em;margin-bottom:18px}
.agenda-grid p{font-size:16px;color:var(--lab-muted);max-width:35ch}
.lab-site .section-heading{display:flex;justify-content:space-between;align-items:baseline;gap:40px;margin:0;padding:0 0 26px;border-bottom:1px solid var(--lab-ink)}
.lab-site .section-heading h2{font-size:30px;max-width:none;line-height:1.2;letter-spacing:-.025em}
.lab-site .section-heading>p{font-size:14px;color:var(--lab-muted);margin:0}
.section-heading .line-link{margin:0;border:0;font-size:14px;padding:0}
.eco-home{margin-bottom:var(--lab-space)}
.eco-index{border-top:1px solid var(--lab-rule)}
.eco-index>a{display:grid;grid-template-columns:1fr 1.25fr 24px;gap:8%;align-items:center;padding:30px 0;border-bottom:1px solid var(--lab-rule);text-decoration:none}
.lab-site .eco-index h3{font-size:24px;letter-spacing:-.025em}
.eco-index p{font-size:15px;color:var(--lab-muted)}
.eco-index>a:hover h3{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:5px}
.lab-footer{background:#191a17;color:#f3f1e9;padding:64px 0 28px;font-family:var(--lab-sans);font-size:14px;line-height:1.5}
.footer-top{display:grid;grid-template-columns:1.55fr 1fr 1fr 1fr .9fr;gap:38px}
.footer-brand{display:flex;align-items:center;gap:12px;text-decoration:none;font-size:26px;letter-spacing:-1px;font-weight:700;line-height:1.2}
.footer-brand img{width:36px;height:36px;object-fit:contain;flex:none}
.footer-identity p{max-width:18ch;font-size:13px;color:#b6b8af;margin:22px 0 0}
.footer-column{display:flex;align-items:flex-start;flex-direction:column;gap:14px}
.lab-site .footer-column h2,.lab-footer .footer-column h2{font:400 14px/1.5 var(--lab-sans);letter-spacing:0;margin:0 0 8px;color:#f3f1e9}
.footer-column a{font-size:13px;line-height:1.6;color:#b6b8af;text-decoration:none}
.footer-column a:hover{color:#fff;text-decoration:underline}
.footer-location{font-size:12px;color:#b6b8af;margin-top:14px}
.footer-bottom{margin-top:60px;padding-top:24px;border-top:1px solid #45463e;display:flex;justify-content:space-between;gap:34px;align-items:center;color:#b6b8af;font-size:11px}
.footer-bottom a{display:flex;gap:10px;align-items:center;white-space:nowrap;text-decoration:none}
.lab-footer .footer-bottom svg{width:16px;height:16px}
.research-article{display:grid;grid-template-columns:1fr 2fr;gap:10%;padding:64px 0;border-bottom:1px solid var(--lab-rule);scroll-margin-top:40px}
.article-meta{display:flex;flex-direction:column;align-items:flex-start;gap:10px;font-size:13px;color:var(--lab-muted)}
.lab-site .article-meta h3{font-size:30px;color:var(--lab-ink);letter-spacing:-.025em;margin-bottom:14px}
.lab-site #mneme .article-meta h3{font:54px/1.1 var(--lab-serif);letter-spacing:-.03em}
.lab-site .article-content h4{font:48px/1.1 var(--lab-serif);letter-spacing:-.03em;margin-bottom:22px}
.article-content>p{max-width:66ch;margin:0 0 24px;font-size:17px}
.lab-site .article-subtitle{font-size:14px;color:var(--lab-muted);margin-top:-8px;margin-bottom:30px}
.research-result{border-block:1px solid var(--lab-rule);padding:22px 0;margin:30px 0 20px}
.lab-site .research-result p{font-size:15px;line-height:1.65}
.lab-site .research-result p+p{margin-top:10px;font-size:13px;color:var(--lab-muted)}
.lab-site .small-copy{font-size:13px;color:var(--lab-muted);line-height:1.65}
.references{margin-bottom:var(--lab-space)}
.lab-site .references h2{font-size:34px}
.reference-list{margin-top:34px;border-top:1px solid var(--lab-rule)}
.reference-list a{padding:25px 0;display:grid;grid-template-columns:.8fr 1.2fr auto;gap:20px;border-bottom:1px solid var(--lab-rule);text-decoration:none;font-size:14px;align-items:center}
.reference-list strong{font-weight:400;font-size:18px}
.reference-list a>span{color:var(--lab-muted)}
.reference-list a>span:last-child{display:flex;align-items:center;gap:24px}
.reference-list .arrow{width:18px;height:18px}
.reference-list a:hover strong{text-decoration:underline}
.project-row{display:grid;grid-template-columns:1fr 1.3fr;gap:12%;padding:46px 0;border-top:1px solid var(--lab-rule);align-items:start;scroll-margin-top:40px}
.project-heading .project-status{display:block;font-size:13px;color:var(--lab-muted);margin-top:22px}
.lab-site .project-heading h2{font:40px/1.12 var(--lab-serif);letter-spacing:-.03em}
.project-copy>p{font-size:18px;line-height:1.55;max-width:48ch}
.project-functions{list-style:none;padding:0;margin:20px 0 0;display:grid;gap:8px;font-size:15px;color:var(--lab-muted)}
.project-copy>.project-functions:first-child{margin-top:0;font-size:18px;color:var(--lab-ink)}
.project-functions li{display:flex;gap:12px;align-items:baseline}
.project-functions li::before{content:'';width:14px;height:1px;background:var(--lab-muted);align-self:center;flex:none}
.project-links{display:flex;gap:30px}
.applications{margin-bottom:var(--lab-space)}
/* Read pages and the outer Context shell share the lab's editorial scale. */
.lab-site.developer-page,.lab-site.developer-page main{background:var(--lab-paper);color:var(--lab-ink)}
.doc-section{display:grid;grid-template-columns:1fr 1.65fr;gap:10%;padding:48px 0;border-top:1px solid var(--lab-rule)}
.lab-site .doc-section h2{font-size:30px;line-height:1.2}
.doc-section p{font-size:17px;max-width:64ch}.doc-section p+p{margin-top:18px}
.doc-section ul,.doc-section ol{padding-left:20px}.doc-section li{margin-bottom:12px}
.doc-end{margin-bottom:100px}
.context-page{background:var(--lab-paper);color:var(--lab-ink)}
.context-page .hero{width:calc(100% - var(--lab-gutter)*2);max-width:var(--lab-content);padding:94px 0 70px;margin-inline:auto}
.context-page .hero__copy{max-width:960px}
.context-page .hero h1{font-size:80px;line-height:1.06;letter-spacing:-.035em;max-width:880px}
.context-page .hero__lede{font-size:21px;color:var(--lab-muted);max-width:720px;line-height:1.55;text-wrap:balance;margin-top:28px}
.context-page .context-language-note{font-size:13px;color:var(--lab-muted);margin-top:18px}
.context-page .hero__actions{margin-top:22px}
.context-page .hero__actions .button{min-height:42px;padding:10px 17px;font-size:14px;background:var(--lab-ink);color:var(--lab-paper);box-shadow:none;border:0}
.context-page .hero__actions .text-link{font-size:14px;color:var(--lab-ink)}
.context-page .hero__artifact{margin-top:48px}
.context-page .doc-section{font-family:var(--lab-sans)}
.context-page .doc-section h2{font-size:32px;line-height:1.2;letter-spacing:-.025em;margin:0}
.context-page .doc-section p{color:var(--lab-muted);margin-top:0}
html[lang=zh-CN] .lab-site h1{font-size:clamp(56px,5.25vw,76px);line-height:1.22;letter-spacing:-.035em}
html[lang=zh-CN] .lab-site h1 em{text-underline-offset:12px}
html[lang=zh-CN] .serif-lede{font-family:var(--lab-sans);font-size:25px;line-height:1.65;max-width:25ch}
html[lang=zh-CN] .lab-site h2{line-height:1.23}
html[lang=zh-CN] .lab-site h3,html[lang=zh-CN] .lab-site h4{line-height:1.3}
html[lang=zh-CN] .article-content h4{font-family:var(--lab-sans);font-size:42px;line-height:1.3}
html[lang=zh-CN] .meaning-grid h3{line-height:1}
@media(min-width:1600px){.intro{padding-block:116px 128px}}
@media(max-width:1100px){:root{--lab-gutter:40px;--lab-space:96px}.lab-nav{gap:23px}.intro{gap:7%;padding-block:86px 110px}.lab-site h1{font-size:60px}.lab-site .serif-lede{font-size:27px}.meaning-grid{gap:11%}.vision{gap:7%}.lab-site .meaning-grid h3{font-size:65px}.footer-top{gap:28px}.lab-site .article-content h4{font-size:42px}.context-page .hero h1{font-size:70px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.lab-site *,.lab-site *::before,.lab-site *::after{transition:none!important;animation:none!important}}

/* The receipt is available on demand, not a second decorative desktop. */
.context-page .audit-showcase{width:calc(100% - var(--lab-gutter)*2);max-width:var(--lab-content);margin:0 auto 64px;padding:0;border-top:1px solid var(--lab-rule)}
.context-page .receipt-summary{display:flex;align-items:center;justify-content:space-between;gap:30px;padding:26px 0;cursor:pointer;list-style:none}
.context-page .receipt-summary::-webkit-details-marker{display:none}
.context-page .receipt-summary h2{font:400 30px/1.2 var(--lab-sans);letter-spacing:-.025em;margin:0}
.context-page .receipt-summary>svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.3;transition:transform .2s}
.context-page .audit-showcase[open] .receipt-summary>svg{transform:rotate(180deg)}
.context-page .receipt-caption{margin:0 0 30px;color:var(--lab-muted);font-size:15px}
.context-page .audit-screen{margin-top:0}
.context-page .audit-showcase[open]{padding-bottom:16px}
.context-page .doc-section h2{font-weight:400}
.context-page .doc-section .line-link{color:var(--lab-ink)}
.context-page .doc-section .arrow{display:block;width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.35}

/* Research-first pages: one featured work, then the agenda it opens. */
.intro-links{display:flex;gap:26px;align-items:baseline;flex-wrap:wrap}
.quiet-link{display:inline-flex;align-items:center;gap:10px;font-size:14px;text-decoration:none;margin-top:24px}
.quiet-link .arrow{width:16px;height:16px}
.quiet-link:hover{text-decoration:underline}
.lab-site .compact-heading{align-items:baseline;margin-bottom:0;padding-block:0 22px}
.lab-site .compact-heading h2{font-size:17px;letter-spacing:0;line-height:1.4}
.section-heading>p{font-size:13px;color:var(--lab-muted);line-height:1.5}
.question-list{border-top:1px solid var(--lab-rule)}
.question-list>a{display:grid;grid-template-columns:1fr 1.25fr 24px;gap:8%;padding:32px 0;border-bottom:1px solid var(--lab-rule);text-decoration:none;align-items:start}
.lab-site .question-list h3{font:34px/1.2 var(--lab-serif);letter-spacing:-.025em}
.question-list p{max-width:55ch;font-size:16px;color:var(--lab-muted)}
.question-list .arrow{margin-top:6px}
.question-list>a:hover h3{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:6px}
.page-index{display:flex;flex-wrap:wrap;column-gap:24px;row-gap:8px;margin-top:32px;font-size:13px}
.page-index a{text-decoration:none;border-bottom:1px solid var(--lab-rule);padding-bottom:4px}
.page-index a:hover{border-color:var(--lab-ink)}
.research-feed .research-article{padding-top:44px;padding-bottom:36px;border-bottom:0}
.roadmap-meta{display:flex;justify-content:space-between;border-bottom:1px solid var(--lab-ink);padding-bottom:14px;color:var(--lab-muted);font-size:12px;line-height:1.5}
.roadmap-track{display:grid;grid-template-columns:1fr 1.65fr;gap:10%;padding:36px 0 30px;border-bottom:1px solid var(--lab-rule);scroll-margin-top:40px}
.track-state{font-size:12px;color:var(--lab-muted);line-height:1.5;margin-bottom:13px!important;display:flex;align-items:center;gap:8px}
.track-state::before{content:'';width:6px;height:6px;border:1px solid var(--lab-muted);border-radius:50%;flex:none}
.track-state-current::before{background:var(--lab-ink);border-color:var(--lab-ink)}
.lab-site .track-heading h3{font-size:30px;line-height:1.15;max-width:21ch}
.track-content>p{font-size:18px;line-height:1.6;max-width:62ch}
.track-detail{margin-top:22px}
.track-detail summary{font-size:13px;display:flex;align-items:center;justify-content:space-between;gap:24px;padding:4px 0;cursor:pointer;list-style:none;width:100%;color:var(--lab-muted)}
.track-detail summary::-webkit-details-marker{display:none}
.track-detail summary:hover{color:var(--lab-ink)}
.track-detail summary>span{text-decoration:underline;text-underline-offset:4px;text-decoration-color:var(--lab-rule)}
.track-detail summary svg{width:16px;height:16px;stroke:currentColor;stroke-width:1.2;fill:none;flex:none}
.track-detail[open] summary svg path{d:path('M4 10h12')}
.track-detail-body{display:grid;grid-template-columns:1fr 1fr;gap:24px 32px;border-top:1px solid var(--lab-rule);margin-top:18px;padding-top:24px}
.lab-site .track-detail-body h4{font-size:13px;line-height:1.5;letter-spacing:0;margin-bottom:10px;font-weight:700}
.track-detail-body p{font-size:14px;color:var(--lab-muted);line-height:1.65}
.roadmap-reference{grid-column:1/-1;border-top:1px solid var(--lab-rule);padding-top:20px;display:grid;grid-template-columns:140px 1fr;gap:24px}
.roadmap-reference a{display:flex;gap:12px;align-items:baseline;font-size:13px;text-decoration:none;white-space:nowrap}
.roadmap-reference a:hover{text-decoration:underline}
.roadmap-reference .arrow{width:14px;height:14px;align-self:center}
.lab-site .references .section-heading h2{font-size:34px}
.references .reference-list{margin-top:0;border-top:0}
.applications-grid{margin-top:36px;margin-bottom:8px}
html[lang=zh-CN] .question-list h3{font-family:var(--lab-sans);font-size:29px;line-height:1.3}
html[lang=zh-CN] .track-heading h3{font-size:28px;line-height:1.35}
@media(max-width:1100px){.intro-links{gap:20px}.lab-site .track-heading h3{font-size:26px}.roadmap-track{gap:8%}.lab-site .question-list h3{font-size:30px}}

.intro.ecosystem-intro{padding-block:64px 72px;align-items:start}
.lab-site .ecosystem-intro h1{font-size:68px}
.ecosystem-intro .intro-aside{padding-top:4px}
.lab-site .ecosystem-intro .serif-lede{font-size:25px;line-height:1.45}
html[lang=zh-CN] .lab-site .ecosystem-intro h1{font-size:64px}
html[lang=zh-CN] .lab-site .ecosystem-intro .serif-lede{font-size:23px;line-height:1.65}
