:root { --ink:#103434; --ink-deep:#082a2a; --paper:#f8f7f2; --lime:#d8ff72; --orange:#ff805e; --sand:#ece9dd; --line:rgba(16,52,52,.17); --muted:#587071; --serif: Georgia, 'Times New Roman', serif; --sans: Arial, Helvetica, sans-serif; --mono: 'Courier New', monospace; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; background:var(--paper); color:var(--ink); font-family:var(--sans); font-size:16px; line-height:1.6; }
a { color:inherit; text-underline-offset:3px; }
img { display:block; max-width:100%; }
button { font:inherit; }
.shell { width:min(1200px, calc(100% - 64px)); margin-inline:auto; }
.skip-link { position:absolute; z-index:10; left:1rem; top:-4rem; background:var(--lime); color:var(--ink-deep); padding:.75rem 1rem; font-weight:700; }
.skip-link:focus { top:1rem; }
.site-header { position:sticky; top:0; z-index:4; background:rgba(248,247,242,.92); backdrop-filter:blur(12px); border-bottom:1px solid var(--line); }
.header-inner { min-height:76px; display:flex; align-items:center; justify-content:space-between; gap:1rem; }
.brand { display:inline-flex; align-items:center; gap:.65rem; text-decoration:none; font-weight:700; font-size:1.08rem; letter-spacing:-.04em; white-space:nowrap; }
.brand em { font-family:var(--serif); font-weight:500; }
.brand-mark { position:relative; display:block; width:25px; height:25px; }
.brand-mark i { position:absolute; display:block; border-radius:999px; background:var(--ink); }
.brand-mark i:nth-child(1) { width:10px; height:10px; left:0; top:7px; }.brand-mark i:nth-child(2) { width:7px; height:7px; right:1px; top:1px; background:var(--orange); }.brand-mark i:nth-child(3) { width:8px; height:8px; right:0; bottom:1px; background:var(--lime); }.brand-mark i:nth-child(4) { width:5px; height:5px; left:9px; bottom:1px; }
.site-nav { display:flex; align-items:center; gap:1.5rem; font-size:.86rem; font-weight:600; }
.site-nav a { text-decoration:none; }.site-nav a:not(.nav-cta):hover { text-decoration:underline; }
.nav-cta { background:var(--ink); color:var(--paper); padding:.55rem .95rem; border-radius:999px; }.nav-cta:hover { background:#1c5252; }
.menu-button { display:none; border:0; background:none; color:var(--ink); cursor:pointer; font-size:.82rem; font-weight:700; }.menu-close { display:none; }
.hero { position:relative; overflow:hidden; padding:clamp(4.25rem, 9vw, 8.6rem) 0 1.25rem; background:var(--ink-deep); color:var(--paper); }
.hero::before { content:""; position:absolute; width:45vw; height:45vw; max-width:680px; max-height:680px; top:-39vw; right:-14vw; border:1px solid rgba(216,255,114,.25); border-radius:50%; box-shadow:0 0 0 50px rgba(216,255,114,.04),0 0 0 100px rgba(216,255,114,.03),0 0 0 150px rgba(216,255,114,.02); }
.hero-grid { position:relative; display:grid; grid-template-columns:1.08fr .92fr; align-items:center; gap:clamp(2rem, 7vw, 7rem); }
.eyebrow,.section-label { margin:0; font:500 .69rem/1.3 var(--mono); letter-spacing:.1em; text-transform:uppercase; }.eyebrow { color:var(--lime); margin-bottom:1.35rem; }
h1,h2,h3,p { margin-top:0; }h1,h2,h3 { line-height:1.03; letter-spacing:-.045em; }
h1 { max-width:690px; margin-bottom:1.5rem; font:600 clamp(3rem, 5.7vw, 5.85rem)/.98 var(--serif); }h1 span { color:var(--lime); font-style:italic; }
.lede { max-width:620px; margin-bottom:2rem; color:#d0dddc; font-size:clamp(1rem,1.5vw,1.15rem); line-height:1.65; }
.button-row,.join-links { display:flex; flex-wrap:wrap; align-items:center; gap:1.25rem; }
.button { display:inline-flex; align-items:center; justify-content:center; gap:.65rem; min-height:48px; padding:.78rem 1.15rem; border:1px solid transparent; border-radius:999px; text-decoration:none; font-size:.84rem; font-weight:700; transition:transform .2s, background .2s, color .2s; }.button:hover { transform:translateY(-2px); }.button-primary { background:var(--lime); color:var(--ink-deep); }.button-primary:hover { background:#e4ff9d; }.button-dark { background:var(--ink); color:var(--paper); }.button-dark:hover { background:#1c5252; }.button-outline { border-color:var(--ink); color:var(--ink); }.button-outline:hover { background:var(--ink); color:var(--paper); }
.text-link { display:inline-flex; gap:.4rem; align-items:center; text-decoration:none; border-bottom:1px solid currentColor; padding-bottom:2px; font-size:.89rem; font-weight:700; }.text-link:hover { color:var(--orange); }
.hero-visual { position:relative; isolation:isolate; padding:0 2rem 2rem 0; }.hero-visual::before { content:""; position:absolute; z-index:-1; width:70%; height:70%; right:0; bottom:0; background:var(--orange); border-radius:50%; }.hero-visual img { width:100%; aspect-ratio:1/1; object-fit:cover; border-radius:50% 50% 50% 10%; filter:saturate(.75) contrast(1.08); }.image-caption { position:absolute; left:-.5rem; bottom:0; display:flex; align-items:center; gap:.4rem; max-width:208px; color:var(--paper); font:400 .65rem/1.35 var(--mono); text-transform:uppercase; letter-spacing:.07em; }.image-caption span { color:var(--lime); }
.hero-footer { position:relative; display:flex; justify-content:space-between; gap:1rem; padding-top:clamp(3rem,6vw,6rem); color:#b3c8c6; font:500 .61rem/1.3 var(--mono); letter-spacing:.09em; }
.section { padding:clamp(5rem, 10vw, 9rem) 0; }.intro { border-bottom:1px solid var(--line); }.intro-grid { display:grid; grid-template-columns:24% 1fr; gap:2rem; }.section-label { color:var(--muted); }.display-copy { max-width:970px; font:500 clamp(2rem,3.85vw,4.15rem)/1.12 var(--serif); letter-spacing:-.048em; }.intro .text-link { margin-top:.6rem; }
.section-heading { display:grid; grid-template-columns:1fr minmax(250px, .55fr); justify-content:space-between; align-items:end; gap:2rem; margin-bottom:3rem; }.section-heading h2,.software-intro h2,.publications-layout h2,.join-grid h2 { max-width:680px; margin:1rem 0 0; font:600 clamp(2.6rem,4.5vw,4.7rem)/1.02 var(--serif); }.section-heading > p { max-width:390px; margin-bottom:.3rem; color:var(--muted); }
.research-section { background:var(--sand); }.research-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:1rem; }.research-card { min-height:360px; padding:1.5rem; border-radius:1px; overflow:hidden; color:var(--ink-deep); }.research-card h3 { max-width:230px; margin:2.75rem 0 1rem; font:600 2rem/1.03 var(--serif); }.research-card p:not(.card-number) { max-width:325px; font-size:.91rem; line-height:1.6; }.card-number { font:500 .7rem var(--mono); letter-spacing:.1em; }.research-card ul { margin:1.5rem 0 0; padding:0; list-style:none; font:500 .64rem/1.7 var(--mono); letter-spacing:.05em; text-transform:uppercase; }.research-card li { display:flex; align-items:center; gap:.5rem; }.research-card li::before { content:""; width:6px; height:6px; flex:0 0 auto; border-radius:50%; background:currentColor; }.diversity { background:var(--lime); }.evolution { background:var(--orange); }.communities { background:var(--ink); color:var(--paper); }.communities .card-number { color:var(--lime); }.definition { display:flex; gap:1rem; max-width:875px; margin:4rem auto 0; padding:2rem 0 0; border-top:1px solid var(--line); }.definition-mark { color:var(--orange); font:600 4.5rem/.6 var(--serif); }.definition p { margin:0; font:500 1.17rem/1.55 var(--serif); }.definition strong { color:#bd4d33; }
.software-section { background:var(--paper); }.software-layout { display:grid; grid-template-columns:.72fr 1.28fr; gap:clamp(3rem,8vw,9rem); align-items:start; }.software-intro { position:sticky; top:110px; }.software-intro > p:not(.section-label) { max-width:355px; color:var(--muted); margin:1.25rem 0 2rem; }.tool-list { border-top:1px solid var(--ink); }.tool { display:grid; grid-template-columns:48px 1fr auto; gap:1rem; align-items:center; padding:1.3rem .25rem; border-bottom:1px solid var(--line); text-decoration:none; transition:padding .2s, background .2s; }.tool:hover { padding-inline:.8rem; background:#eeeee7; }.tool-index { align-self:start; padding-top:.2rem; color:var(--muted); font:400 .65rem var(--mono); }.tool strong,.tool small { display:block; }.tool strong { font:600 1.35rem/1.15 var(--serif); }.tool small { margin-top:.25rem; color:var(--muted); font-size:.78rem; }.tool b { font-size:1rem; font-weight:500; }
.people-section { background:var(--ink); color:var(--paper); }.people-section .section-label { color:var(--lime); }.people-heading > p { color:#b6ceca; }.people-feature { display:grid; grid-template-columns:minmax(220px,.38fr) 1fr; gap:clamp(2rem,5vw,5rem); align-items:center; max-width:840px; margin:1rem auto 4rem; }.people-feature img { width:min(100%,285px); aspect-ratio:1; object-fit:cover; border-radius:50%; filter:saturate(.75); }.people-feature h3 { margin:1rem 0; font:600 clamp(2.1rem,3.5vw,3.5rem) var(--serif); }.people-feature p:not(.section-label) { max-width:545px; color:#d2e0de; }.people-feature .text-link { color:var(--lime); }.team-grid { display:grid; grid-template-columns:repeat(3,1fr); border-top:1px solid rgba(255,255,255,.25); }.team-grid article { padding:1.45rem 1.25rem 1.5rem 0; border-bottom:1px solid rgba(255,255,255,.2); }.team-grid article:not(:nth-child(3n+1)) { padding-left:1.25rem; border-left:1px solid rgba(255,255,255,.2); }.team-grid h3 { margin-bottom:.5rem; color:var(--lime); font:600 1.23rem/1.13 var(--serif); }.team-grid p { margin:0; color:#c9d7d5; font-size:.79rem; line-height:1.55; }.people-note { margin:2rem 0 0; color:#a8bfbd; font-size:.75rem; }.people-note a { color:var(--lime); }
.publications-section { background:var(--paper); }.publications-layout { display:grid; grid-template-columns:.68fr 1.32fr; gap:clamp(3rem,9vw,10rem); }.muted { max-width:310px; color:var(--muted); }.publications-layout .button { margin-top:1.35rem; }.publication-list { list-style:none; margin:0; padding:0; border-top:1px solid var(--ink); }.publication-list li { display:grid; grid-template-columns:55px 1fr; gap:.5rem; padding:1.35rem 0; border-bottom:1px solid var(--line); }.publication-list span { padding-top:.22rem; color:var(--muted); font:400 .67rem var(--mono); }.publication-list a { position:relative; padding-right:1.75rem; text-decoration:none; font:500 1.05rem/1.45 var(--serif); }.publication-list a:hover { color:#c65336; }.publication-list em { color:var(--muted); font-style:italic; }.publication-list b { position:absolute; right:0; color:var(--orange); font:500 1rem var(--sans); }
.join-section { padding:clamp(4rem,8vw,7rem) 0; background:var(--lime); }.join-grid { display:grid; grid-template-columns:1fr 1fr; gap:3rem; }.join-grid h2 { max-width:520px; }.join-grid > div:nth-child(2)>p:first-child { max-width:460px; font:500 1.25rem/1.5 var(--serif); }.join-links { margin:1.7rem 0; }.join-links .text-link { color:var(--ink); }.join-small { max-width:510px; margin-bottom:0; font-size:.78rem; line-height:1.6; }.join-small a { font-weight:700; }
.site-footer { padding:2.5rem 0; background:var(--ink-deep); color:#d0dfdc; }.site-footer .brand { color:var(--paper); }.footer-grid { display:grid; grid-template-columns:1.1fr .95fr .9fr 1fr; align-items:start; gap:2rem; font-size:.73rem; line-height:1.65; }.footer-grid address { font-style:normal; }.footer-grid a { color:var(--paper); }.footer-meta { display:flex; flex-direction:column; gap:.8rem; color:#a1b7b3; }.footer-meta a { width:max-content; color:var(--lime); font-weight:700; text-decoration:none; }.github-logo { display:block; width:96px; height:auto; filter:invert(1); }
@media (max-width: 800px) { .shell{width:min(100% - 40px, 650px)}.header-inner{min-height:67px}.menu-button{display:block}.site-nav{display:none;position:absolute;top:67px;left:0;right:0;padding:1.25rem calc((100% - min(100% - 40px, 650px))/2) 1.65rem;background:var(--paper);border-bottom:1px solid var(--line);box-shadow:0 12px 16px rgba(8,42,42,.08);flex-direction:column;align-items:flex-start;gap:1rem}.site-nav.is-open{display:flex}.site-nav .nav-cta{margin-top:.3rem}.menu-button[aria-expanded="true"] .menu-open{display:none}.menu-button[aria-expanded="true"] .menu-close{display:inline}.hero{padding-top:4rem}.hero-grid,.intro-grid,.software-layout,.publications-layout,.join-grid{grid-template-columns:1fr}.hero-grid{gap:3rem}.hero-visual{max-width:440px;justify-self:center;width:85%;}.hero-footer{display:grid;grid-template-columns:1fr 1fr;gap:.8rem;padding-top:3rem}.intro-grid{gap:1.5rem}.section-heading{grid-template-columns:1fr;gap:1rem;margin-bottom:2.3rem}.research-grid{grid-template-columns:1fr}.research-card{min-height:0}.research-card h3{margin-top:1.7rem}.software-intro{position:static}.team-grid{grid-template-columns:1fr 1fr}.team-grid article:not(:nth-child(3n+1)){padding-left:0;border-left:0}.team-grid article:nth-child(even){padding-left:1rem;border-left:1px solid rgba(255,255,255,.2)}.people-feature{grid-template-columns:150px 1fr;gap:1.5rem}.footer-grid{grid-template-columns:1fr 1fr}.definition{margin-top:3rem}.publications-layout{gap:2.5rem} }
@media (max-width: 500px) { body{font-size:15px}.shell{width:calc(100% - 32px)}.hero{padding-top:3.1rem}h1{font-size:3rem}.hero-visual{width:100%;padding-right:1rem}.hero-footer{grid-template-columns:1fr}.section{padding:4.3rem 0}.display-copy{font-size:2rem}.people-feature{grid-template-columns:1fr}.people-feature img{width:155px}.team-grid{grid-template-columns:1fr}.team-grid article:nth-child(even){padding-left:0;border-left:0}.publication-list li{grid-template-columns:43px 1fr}.publication-list a{font-size:1rem}.footer-grid{grid-template-columns:1fr;gap:1rem}.join-grid{gap:1.5rem} }
@media (prefers-reduced-motion: reduce) { html{scroll-behavior:auto}.button,.tool{transition:none} }


/* Publication archive */
.publication-actions { display:flex; flex-wrap:wrap; align-items:center; gap:1.25rem; margin-top:1.35rem; }
.publication-actions .button { margin-top:0; }
.archive-hero { padding:clamp(4.4rem,9vw,8rem) 0 clamp(3.5rem,7vw,6.3rem); background:var(--ink-deep); color:var(--paper); }
.archive-back { display:inline-flex; margin-bottom:clamp(3rem,6vw,5rem); padding-bottom:.15rem; transform:translateY(-.75rem); border-bottom:1px solid currentColor; color:var(--lime); font:600 .78rem var(--sans); letter-spacing:.01em; text-decoration:none; }
.archive-back:hover { color:var(--paper); }
.archive-back::before { content:"←"; margin-right:.38rem; }
.archive-hero h1 { max-width:810px; margin:0 0 1.5rem; font:600 clamp(3.2rem,6.4vw,6.5rem)/.97 var(--serif); }
.archive-hero h1 span { color:var(--lime); font-style:italic; }
.archive-lede { max-width:665px; color:#cfdddb; font-size:clamp(1rem,1.55vw,1.17rem); }
.archive-stats { display:flex; flex-wrap:wrap; gap:2.2rem; margin-top:3rem; padding-top:1.2rem; border-top:1px solid rgba(255,255,255,.25); color:#bbcfcc; font:500 .68rem var(--mono); letter-spacing:.08em; text-transform:uppercase; }
.archive-stats b { display:block; margin-bottom:.15rem; color:var(--lime); font:600 1.45rem var(--serif); letter-spacing:0; }
.archive-section { padding-top:clamp(4.5rem,8vw,7rem); }
.archive-intro { display:grid; grid-template-columns:24% 1fr; gap:2rem; margin-bottom:clamp(3rem,6vw,5rem); }
.archive-intro h2 { max-width:780px; margin:0 0 1rem; font:600 clamp(2.4rem,4vw,4.1rem)/1.04 var(--serif); letter-spacing:-.05em; }
.archive-intro div > p { max-width:635px; margin:0; color:var(--muted); }
.archive-list { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1.2rem; }
.publication-card { display:grid; grid-template-columns:155px 1fr; gap:1.35rem; align-items:start; min-height:265px; padding:1.25rem; background:#efeee6; border-top:2px solid var(--ink); }
.publication-content h2 { margin:.65rem 0 .6rem; font:600 clamp(1.35rem,2.1vw,1.8rem)/1.13 var(--serif); letter-spacing:-.04em; }
.publication-content h2 a { text-decoration:none; }.publication-content h2 a:hover { color:#b94f36; }.publication-content h2 b { color:var(--orange); font:500 .86em var(--sans); }
.pub-kicker { margin:0; color:var(--muted); font:500 .61rem/1.4 var(--mono); letter-spacing:.07em; text-transform:uppercase; }.pub-kicker span { color:#bd4e35; }
.pub-authors { margin:0 0 .6rem; color:#4e6565; font-size:.72rem; line-height:1.45; }.publication-content > p:last-child { margin-bottom:0; font-size:.78rem; line-height:1.58; }
.concept { position:relative; display:flex; align-items:center; justify-content:center; min-height:200px; overflow:hidden; background:var(--ink); color:var(--paper); isolation:isolate; }.concept::before,.concept::after,.concept span { content:""; position:absolute; display:block; }.concept figcaption { position:absolute; z-index:3; left:.65rem; right:.65rem; bottom:.55rem; color:#c6d8d5; font:500 .53rem/1.35 var(--mono); letter-spacing:.04em; text-align:center; text-transform:uppercase; }.concept-signatures::before { width:105px; height:105px; border-radius:50%; border:1px solid var(--lime); box-shadow:25px -34px 0 -9px var(--orange),-43px 28px 0 -18px var(--lime); }.concept-signatures::after { width:2px; height:112px; background:var(--lime); transform:rotate(45deg); }.concept-signatures span { width:19px; height:19px; border-radius:50%; background:var(--lime); }.concept-signatures span:nth-of-type(1){transform:translate(-35px,-28px)}.concept-signatures span:nth-of-type(2){transform:translate(34px,-18px);background:var(--orange)}.concept-signatures span:nth-of-type(3){transform:translate(18px,37px);background:#8fc9c0}.concept-signatures span:nth-of-type(4){transform:translate(-36px,31px);background:#f8f7f2}
.concept-taxonomy::before { width:85px; height:2px; background:var(--lime); box-shadow:0 -27px 0 var(--orange),0 27px 0 #8fc9c0,0 54px 0 #f8f7f2; }.concept-taxonomy::after { width:2px; height:145px; background:rgba(255,255,255,.35); }.concept-taxonomy span { width:13px; height:13px; border-radius:50%; background:var(--paper); transform:translateX(-35px); }.concept-taxonomy span:nth-of-type(2){transform:translate(-12px,-27px);background:var(--orange)}.concept-taxonomy span:nth-of-type(3){transform:translate(18px,27px);background:var(--lime)}.concept-taxonomy span:nth-of-type(4){transform:translate(38px,54px);background:#8fc9c0}
.concept-adhesion::before { width:95px; height:50px; border-radius:50px; background:var(--orange); transform:rotate(-18deg); }.concept-adhesion::after { width:130px; height:1px; background:var(--lime); transform:rotate(12deg); box-shadow:0 24px 0 rgba(216,255,114,.7),0 -24px 0 rgba(216,255,114,.5); }.concept-adhesion span { width:9px; height:9px; border-radius:50%; background:var(--paper); }.concept-adhesion span:nth-of-type(1){transform:translate(-10px,-11px)}.concept-adhesion span:nth-of-type(2){transform:translate(12px,3px)}.concept-adhesion span:nth-of-type(3){transform:translate(-34px,9px)}
.concept-network::before { width:100px; height:100px; border:1px solid rgba(216,255,114,.55); border-radius:50%; }.concept-network::after { width:116px; height:2px; background:var(--orange); transform:rotate(-35deg); box-shadow:0 0 0 0 var(--orange); }.concept-network span { width:20px; height:20px; border-radius:50%; background:var(--lime); }.concept-network span:nth-of-type(1){transform:translate(-42px,-35px)}.concept-network span:nth-of-type(2){transform:translate(41px,-22px);background:var(--orange)}.concept-network span:nth-of-type(3){transform:translate(-16px,39px);background:#8fc9c0}.concept-network span:nth-of-type(4){transform:translate(39px,40px);background:var(--paper)}
.concept-guilds::before { width:106px; height:106px; border:1px solid rgba(255,255,255,.35); border-radius:50%; }.concept-guilds span { width:32px; height:32px; border-radius:50%; background:var(--lime); }.concept-guilds span:nth-of-type(1){transform:translate(-35px,-24px)}.concept-guilds span:nth-of-type(2){transform:translate(29px,-29px);background:var(--orange)}.concept-guilds span:nth-of-type(3){transform:translate(-34px,33px);background:#8fc9c0}.concept-guilds span:nth-of-type(4){transform:translate(32px,30px);background:var(--paper)}.concept-guilds span:nth-of-type(5){transform:translate(0,3px);background:#f7c663}
.concept-pipeline::before { width:138px; height:2px; background:var(--lime); }.concept-pipeline::after { right:21px; border:8px solid transparent; border-left-color:var(--lime); }.concept-pipeline span { width:22px; height:22px; background:var(--orange); }.concept-pipeline span:nth-of-type(1){transform:translate(-47px);border-radius:50%}.concept-pipeline span:nth-of-type(2){transform:translate(-15px);background:#8fc9c0}.concept-pipeline span:nth-of-type(3){transform:translate(18px);border-radius:50%;background:var(--paper)}.concept-pipeline span:nth-of-type(4){transform:translate(48px);background:var(--lime)}
.concept-resolution::before { width:122px; height:122px; border:1px solid var(--lime); border-radius:50%; box-shadow:0 0 0 18px transparent,0 0 0 19px rgba(216,255,114,.5),0 0 0 38px transparent,0 0 0 39px rgba(216,255,114,.22); }.concept-resolution::after { width:16px; height:16px; border-radius:50%; background:var(--orange); }.concept-resolution span { width:7px; height:7px; border-radius:50%; background:var(--paper); }.concept-resolution span:nth-of-type(1){transform:translate(-39px,-17px)}.concept-resolution span:nth-of-type(2){transform:translate(33px,20px);background:var(--lime)}.concept-resolution span:nth-of-type(3){transform:translate(12px,-40px);background:#8fc9c0}
.concept-dispersal::before { width:135px; height:1px; background:var(--lime); transform:rotate(-26deg); box-shadow:0 26px 0 rgba(216,255,114,.6); }.concept-dispersal::after { width:18px; height:18px; border:6px solid var(--orange); border-radius:50%; transform:translate(-38px,-27px); }.concept-dispersal span { width:20px; height:20px; border:5px solid var(--paper); border-radius:50%; }.concept-dispersal span:nth-of-type(1){transform:translate(35px,-31px)}.concept-dispersal span:nth-of-type(2){transform:translate(-26px,25px);border-color:var(--lime)}.concept-dispersal span:nth-of-type(3){transform:translate(47px,30px);border-color:#8fc9c0}.concept-dispersal span:nth-of-type(4){transform:translate(-55px,-4px);border-color:#f7c663}
.concept-lifespan::before { width:130px; height:61px; border:2px solid var(--lime); border-left:0; border-bottom:0; border-radius:0 80px 0 0; transform:translate(-8px,10px) rotate(-8deg); }.concept-lifespan::after { width:145px; height:1px; background:rgba(255,255,255,.5); transform:translateY(37px); }.concept-lifespan span { width:9px; height:9px; border-radius:50%; background:var(--orange); }.concept-lifespan span:nth-of-type(1){transform:translate(-52px,34px)}.concept-lifespan span:nth-of-type(2){transform:translate(-4px,3px);background:var(--lime)}.concept-lifespan span:nth-of-type(3){transform:translate(54px,-28px);background:#8fc9c0}
.concept-bag::before { width:42px; height:42px; border-radius:50%; background:var(--orange); box-shadow:-44px -26px 0 -5px var(--lime),-46px 29px 0 -7px #8fc9c0; transform:translate(-31px); }.concept-bag::after { width:2px; height:113px; background:var(--paper); }.concept-bag span { width:31px; height:31px; border:2px solid var(--lime); border-radius:8px; }.concept-bag span:nth-of-type(1){transform:translate(38px,-34px)}.concept-bag span:nth-of-type(2){transform:translate(39px,5px);border-color:var(--orange)}.concept-bag span:nth-of-type(3){transform:translate(39px,43px);border-color:#8fc9c0}
.archive-cta { padding:clamp(4rem,7vw,6.5rem) 0; background:var(--lime); color:var(--ink-deep); }.archive-cta-layout { display:grid; grid-template-columns:1fr 1fr; gap:3rem; }.archive-cta h2 { max-width:510px; margin:1rem 0 0; font:600 clamp(2.35rem,4vw,4rem)/1.03 var(--serif); letter-spacing:-.05em; }.archive-cta-layout > div:last-child > p { max-width:465px; font:500 1.12rem/1.55 var(--serif); }.archive-cta .button { margin-top:.7rem; }
@media (max-width: 950px) { .archive-list { grid-template-columns:1fr; }.publication-card { grid-template-columns:180px 1fr; }.concept { min-height:220px; } }
@media (max-width: 800px) { .archive-intro,.archive-cta-layout { grid-template-columns:1fr; }.archive-intro { gap:1.4rem; }.archive-cta-layout { gap:1.5rem; }.publication-card { grid-template-columns:145px 1fr; min-height:0; }.concept { min-height:200px; } }
@media (max-width: 560px) { .archive-stats { gap:1rem 1.5rem; }.publication-card { grid-template-columns:1fr; }.concept { min-height:180px; }.publication-content h2 { font-size:1.55rem; }.publication-actions { align-items:flex-start; flex-direction:column; gap:1rem; } }
@media (max-width: 500px) { .archive-hero h1 { font-size:2.25rem; } }

/* Detail pages and portrait-led people section */
.site-nav a[aria-current="page"] { text-decoration:underline; text-decoration-thickness:1px; text-underline-offset:5px; }
.section-more { display:inline-flex; align-items:center; gap:.45rem; margin-top:1.65rem; color:var(--ink); font:700 .81rem var(--sans); text-decoration:none; border-bottom:1px solid currentColor; padding-bottom:2px; }
.section-more:hover { color:#bd4e35; }
.research-card { display:block; text-decoration:none; transition:transform .2s, box-shadow .2s; }
.research-card:hover { transform:translateY(-4px); box-shadow:0 9px 0 rgba(8,42,42,.13); }
.people-section .team-grid { grid-template-columns:repeat(5, minmax(0,1fr)); gap:1px; border:0; background:rgba(255,255,255,.24); }
.people-section .member-card { display:flex; flex-direction:column; padding:0; border:0; background:var(--ink-deep); min-width:0; }
.people-section .member-card:not(:nth-child(3n+1)) { padding-left:0; border-left:0; }
.member-card img { width:100%; aspect-ratio:1/.92; object-fit:cover; object-position:center top; filter:saturate(.78) contrast(1.02); }
.member-card > div { display:flex; min-height:145px; flex-direction:column; padding:1rem .9rem 1.15rem; }
.people-section .member-card h3 { margin:.38rem 0 .52rem; color:var(--paper); font:600 1.24rem/1.05 var(--serif); }
.people-section .member-card p { margin:0; color:#c9d7d5; font-size:.75rem; line-height:1.5; }
.member-card .member-role { color:var(--lime); font:500 .58rem/1.3 var(--mono); letter-spacing:.08em; text-transform:uppercase; }
.people-section .member-card.is-pi .member-role { color:var(--orange); }
.people-footer { display:flex; align-items:flex-start; justify-content:space-between; gap:2rem; margin-top:1.4rem; }
.people-footer .section-more { margin-top:.35rem; color:var(--lime); }
.people-note { max-width:485px; margin:0; text-align:right; }
.detail-hero { padding:clamp(4.4rem,9vw,8rem) 0 clamp(3.8rem,7vw,6.4rem); background:var(--ink-deep); color:var(--paper); }
.detail-hero h1 { max-width:825px; margin:0 0 1.5rem; font:600 clamp(3.2rem,6.4vw,6.5rem)/.97 var(--serif); }
.detail-hero h1 span { color:var(--lime); font-style:italic; }
.research-hero h1 { max-width:1000px; }
.detail-jump { display:flex; flex-wrap:wrap; gap:.65rem; margin-top:2.25rem; }
.detail-jump a { border:1px solid rgba(255,255,255,.35); border-radius:999px; color:var(--paper); padding:.48rem .78rem; font:600 .69rem var(--mono); letter-spacing:.04em; text-decoration:none; text-transform:uppercase; }
.detail-jump a:hover { background:var(--lime); border-color:var(--lime); color:var(--ink-deep); }
.detail-actions { margin-top:2.1rem; }
.detail-section { padding:clamp(4.7rem,9vw,7.8rem) 0; }
.detail-overview { background:var(--sand); }
.detail-split { display:grid; grid-template-columns:1fr minmax(290px,.82fr); align-items:center; gap:clamp(2.5rem,7vw,7rem); }
.detail-split h2,.theme-layout h2,.tool-detail-card h2,.opportunity-grid h2,.contact-layout h2 { margin:1rem 0 1.2rem; font:600 clamp(2.3rem,3.8vw,3.8rem)/1.05 var(--serif); letter-spacing:-.05em; }
.detail-split > div > h2:first-child { margin-top:0; }
.detail-split > div > p:not(.section-label) { max-width:620px; color:#3f5d5d; }
.detail-image { position:relative; margin:0; padding:0 1.1rem 1.1rem 0; }
.detail-image::after { content:""; position:absolute; z-index:0; right:0; bottom:0; width:73%; height:74%; background:var(--orange); }
.detail-image img { position:relative; z-index:1; width:100%; min-height:280px; object-fit:cover; background:var(--ink); }
.research-workflow-image img { min-height:0; object-fit:contain; background:#fff; }
.detail-image figcaption { position:relative; z-index:1; margin-top:.8rem; color:var(--muted); font:500 .64rem/1.4 var(--mono); letter-spacing:.04em; }
.theme-section { scroll-margin-top:76px; }
.theme-diversity { background:var(--lime); }.theme-evolution { background:var(--orange); }.theme-communities { background:var(--ink); color:var(--paper); }
.theme-layout { display:grid; grid-template-columns:90px minmax(0,1fr) minmax(205px,.36fr); gap:clamp(1.5rem,4vw,4rem); align-items:start; }
.theme-number { padding-top:.15rem; font:500 1rem var(--mono); }.theme-communities .theme-number,.theme-communities .section-label { color:var(--lime); }
.theme-layout h2 { max-width:660px; }
.theme-layout > div:nth-child(2) > p:not(.section-label) { max-width:675px; }
.theme-aside { margin-top:1rem; padding-top:1rem; border-top:1px solid currentColor; }
.theme-aside h3 { margin:0 0 .9rem; font:600 1.05rem var(--sans); letter-spacing:-.025em; }.theme-aside ul { margin:0; padding:0; list-style:none; }.theme-aside li { padding:.48rem 0; border-bottom:1px solid rgba(16,52,52,.25); font-size:.79rem; }.theme-communities .theme-aside li { border-color:rgba(255,255,255,.25); }
.tool-detail-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1px; background:var(--line); border-top:1px solid var(--ink); }
.tool-detail-card { position:relative; min-height:285px; padding:1.5rem; background:var(--paper); } .tool-detail-card .tool-logo { position:absolute; top:1.5rem; right:1.5rem; display:block; width:min(38%, 175px); height:54px; margin:0; object-fit:contain; object-position:right center; } .tool-detail-card .tool-logo + h2 { padding-right:min(38%, 175px); } .tool-detail-card h2 { margin:.8rem 0 1rem; font-size:2rem; }.tool-detail-card > p:not(.card-number) { max-width:490px; color:#466060; font-size:.87rem; }.tool-detail-card .text-link { margin-top:.6rem; } .tool-detail-card .member-links .text-link { margin-top:0; }
.older-software-section { background:var(--sand); }.older-tool-grid { background:rgba(16,52,52,.22); }.older-tool-grid .tool-detail-card { min-height:245px; background:#f1f0e9; }.older-tool-grid .card-number { color:#8b604a; } .pipelines-section { background:var(--ink); color:var(--paper); }.pipelines-section .archive-intro .section-label { color:var(--lime); }.pipelines-section .archive-intro div > p { color:#bdd0cd; }.pipeline-grid { background:rgba(255,255,255,.24); border-color:rgba(255,255,255,.3); }.pipeline-grid .tool-detail-card { min-height:325px; background:var(--paper); }.pipeline-grid .tool-detail-card h2 { color:var(--ink); }.pipeline-grid .tool-detail-card > p:not(.card-number) { color:#466060; }.pipeline-grid .card-number { color:var(--muted); }.pipeline-grid .text-link { color:var(--ink); }.pipeline-grid .tool-stat { color:#a6412c; }.tool-detail-card:last-child { grid-column:auto; } .tool-stat { margin:1rem 0 -.1rem; color:#a6412c; font:600 .62rem/1.35 var(--mono); letter-spacing:.055em; text-transform:uppercase; } .tool-stars { margin:.35rem 0 -.1rem; color:var(--muted); font:600 .62rem/1.35 var(--mono); letter-spacing:.055em; text-transform:uppercase; }.tool-stars b { color:var(--ink); font-weight:700; } .tool-stat-low { display:none; }.tool-stat-unavailable { color:var(--muted); letter-spacing:.035em; text-transform:none; } .pipeline-grid .tool-stat-unavailable { color:#bdd0cd; }
.people-page-section { background:var(--ink); color:var(--paper); }.people-team-heading { margin-bottom:2rem; text-align:center; }.people-team-heading h2 { max-width:850px; margin:0 auto; font:600 clamp(2.4rem,4vw,4.1rem)/1.04 var(--serif); letter-spacing:-.05em; }.people-team-heading h2 span { color:var(--lime); font-style:italic; }.former-members-intro > div { grid-column:2; }
.team-grid-full { grid-template-columns:repeat(4,minmax(0,1fr)); gap:1px; border:0; background:rgba(255,255,255,.25); }.team-grid-full .member-card { display:flex; flex-direction:column; padding:0; border:0; background:var(--ink-deep); min-width:0; }.team-grid-full .member-card:not(:nth-child(3n+1)) { padding-left:0; border-left:0; }.team-grid-full .member-card > div { min-height:188px; }.team-grid-full .member-card h3 { margin:.42rem 0 .55rem; color:var(--paper); font:600 1.35rem/1.05 var(--serif); }.team-grid-full .member-card p { margin:0; color:#c9d7d5; font-size:.78rem; line-height:1.52; }.team-grid-full .member-card .member-role { color:var(--lime); }.team-grid-full .member-card.is-pi .member-role { color:var(--orange); }.member-link { display:inline-block; margin-top:auto; padding-top:.95rem; color:var(--lime); font-size:.71rem; font-weight:700; text-decoration:none; }
.detail-cta { padding:clamp(4.3rem,7vw,6.5rem) 0; background:var(--lime); color:var(--ink-deep); }.detail-cta-layout { display:grid; grid-template-columns:1fr 1fr; gap:3rem; }.detail-cta h2 { max-width:530px; margin:1rem 0 0; font:600 clamp(2.35rem,4vw,4rem)/1.03 var(--serif); letter-spacing:-.05em; }.detail-cta-layout > div:first-child > h2:first-child { margin-top:0; }.detail-cta-layout > div:last-child > p { max-width:475px; font:500 1.12rem/1.55 var(--serif); }
.opportunity-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1px; background:var(--line); border-top:1px solid var(--ink); }.opportunity-grid article { min-height:275px; padding:1.5rem; background:var(--sand); }.opportunity-grid h2 { margin:.8rem 0 1rem; font-size:2rem; }.opportunity-grid article > p:not(.card-number) { max-width:480px; color:#466060; font-size:.88rem; }.opportunity-grid .text-link { margin-top:.6rem; }
.contact-section { padding:clamp(4.5rem,8vw,7rem) 0; background:var(--ink); color:var(--paper); }.contact-layout { display:grid; grid-template-columns:1fr minmax(250px,.65fr); gap:3rem; }.contact-layout .section-label { color:var(--lime); }.contact-layout h2 { max-width:630px; }.contact-layout p { margin:1rem 0 1.5rem; font:500 1.15rem/1.6 var(--serif); }.contact-layout a { color:var(--lime); }.contact-layout address { color:#c8d8d5; font-size:.9rem; font-style:normal; }
@media (max-width: 980px) { .people-section .team-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }.team-grid-full { grid-template-columns:repeat(3,minmax(0,1fr)); }.theme-layout { grid-template-columns:55px minmax(0,1fr); }.theme-aside { grid-column:2; max-width:500px; }.tool-detail-grid,.opportunity-grid { grid-template-columns:1fr; }.tool-detail-card:last-child { grid-column:auto; } }
@media (max-width: 800px) { .detail-split,.detail-cta-layout,.contact-layout { grid-template-columns:1fr; }.detail-split { gap:2rem; }.theme-layout { grid-template-columns:1fr; gap:1.25rem; }.theme-number { font-size:.8rem; }.theme-aside { grid-column:auto; }.people-section .team-grid,.team-grid-full { grid-template-columns:repeat(2,minmax(0,1fr)); }.people-footer { flex-direction:column; gap:1rem; }.people-note { text-align:left; }.member-card > div { min-height:0; }.team-grid-full .member-card > div { min-height:0; }.detail-cta-layout { gap:1.5rem; }.contact-layout { gap:1.5rem; }.former-members-intro > div { grid-column:1; } }
@media (max-width: 500px) { .detail-hero { padding-top:3.3rem; }.detail-hero h1 { font-size:3.05rem; }.detail-jump { display:grid; grid-template-columns:1fr; }.detail-jump a { text-align:center; }.people-section .team-grid,.team-grid-full { grid-template-columns:1fr; }.member-card img { aspect-ratio:1.2/1; }.tool-detail-card,.opportunity-grid article { min-height:0; }.detail-split h2,.theme-layout h2,.tool-detail-card h2,.opportunity-grid h2,.contact-layout h2 { font-size:2.1rem; } }

/* Official profiles and research/news highlights */
.member-links { display:flex; flex-wrap:wrap; gap:.8rem; margin-top:auto; padding-top:.95rem; }
.member-links .member-link { margin:0; padding:0; }
.lab-news-section { padding:clamp(4.7rem,9vw,7.8rem) 0; background:var(--paper); }
.news-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1px; border-top:1px solid var(--ink); background:var(--line); }
.news-card { min-height:250px; padding:1.5rem; background:var(--sand); }
.news-meta { margin:0; color:var(--muted); font:500 .62rem/1.35 var(--mono); letter-spacing:.07em; text-transform:uppercase; }
.news-card h3 { max-width:475px; margin:1.15rem 0 .8rem; font:600 clamp(1.45rem,2.2vw,2rem)/1.12 var(--serif); letter-spacing:-.035em; }
.news-card h3 a { text-decoration:none; }.news-card h3 a:hover { color:#bd4e35; }.news-card h3 span { color:var(--orange); font:500 .8em var(--sans); }
.news-card > p:last-child { max-width:475px; margin-bottom:0; color:#466060; font-size:.84rem; line-height:1.55; }
@media (max-width: 800px) { .news-grid { grid-template-columns:1fr; }.news-card { min-height:0; } }

/* People overview, member status and portrait framing */
.people-overview { max-width:965px; margin-top:1.15rem; padding:clamp(2rem,4vw,3.8rem); background:var(--ink-deep); border-left:1px solid rgba(216,255,114,.55); }
.people-section .people-overview .display-copy { max-width:765px; margin:0; color:var(--paper); font-size:clamp(2rem,3.75vw,3.85rem); }
.people-overview-footer { display:flex; align-items:center; justify-content:space-between; gap:2rem; margin-top:2.3rem; padding-top:1.25rem; border-top:1px solid rgba(255,255,255,.22); }
.people-overview-footer p { max-width:410px; margin:0; color:#bdd0cd; font-size:.79rem; line-height:1.55; }
.people-overview-footer p a { color:var(--lime); font-weight:700; }
.member-card img.portrait-hajra { object-position:50% 37%; }
.member-card img.portrait-shijia { object-position:50% 54%; }
.member-card img.portrait-kaden { object-position:50% 29%; }
.former-members-section { background:var(--sand); }
.team-grid-former { grid-template-columns:repeat(3,minmax(0,1fr)); max-width:none; gap:1px; border:0; background:var(--line); }
.team-grid-former .member-card { display:grid; grid-template-columns:76px minmax(0,1fr); align-items:start; min-height:130px; padding:1rem; border:0; background:var(--paper); min-width:0; }
.team-grid-former .member-card:not(:nth-child(3n+1)) { padding-left:1rem; border-left:0; }
.team-grid-former .member-card img { width:76px; height:76px; min-height:76px; aspect-ratio:1; border-radius:50%; object-position:center top; }
.team-grid-former .member-card > div { min-height:0; padding:0 0 0 .9rem; }
.team-grid-former .member-card h3 { margin:.32rem 0 .45rem; color:var(--ink); font:600 1.2rem/1.06 var(--serif); }
.team-grid-former .member-card p { margin:0; color:#466060; font-size:.74rem; line-height:1.48; }
.team-grid-former .member-card .member-role { color:#a6412c; }
@media (max-width: 980px) { .team-grid-former { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width: 800px) { .people-overview-footer { flex-direction:column; align-items:flex-start; gap:1.35rem; }.team-grid-former .member-card { grid-template-columns:68px minmax(0,1fr); padding:.9rem; }.team-grid-former .member-card:not(:nth-child(3n+1)) { padding-left:.9rem; }.team-grid-former .member-card img { width:68px; height:68px; min-height:68px; }.team-grid-former .member-card > div { padding-left:.8rem; } }
@media (max-width: 500px) { .people-overview { padding:1.5rem; }.team-grid-former { grid-template-columns:1fr; }.team-grid-former .member-card { grid-template-columns:64px minmax(0,1fr); min-height:0; }.team-grid-former .member-card img { width:64px; height:64px; min-height:64px; }.team-grid-former .member-card > div { padding-left:.8rem; } }

/* Curated reading list */
.reading-group + .reading-group { margin-top:clamp(3.4rem,6vw,5.5rem); }
.reading-group-heading { display:block; margin-bottom:1.55rem; padding-left:12%; }
.reading-group-heading h2,.reading-group-heading h3 { margin:0 0 .55rem; font:600 clamp(2rem,3vw,3rem)/1.06 var(--serif); letter-spacing:-.045em; }
.reading-group-heading h2 { font-size:clamp(2.7rem,4.3vw,4.4rem); }
.reading-group-heading p:not(.section-label) { max-width:585px; margin:0; color:var(--muted); font-size:.88rem; }
.news-grid-featured .news-card { background:var(--ink); }.news-grid-featured .news-meta { color:var(--lime); }.news-grid-featured .news-card h3 a { color:var(--paper); }.news-grid-featured .news-card h3 a:hover { color:var(--lime); }.news-grid-featured .news-card > p:last-child { color:#c7d9d6; }
@media (max-width: 800px) { .reading-group-heading { padding-left:0; } }

/* A focused methods snapshot keeps the landing page lighter than the full software catalogue. */
.software-section { padding:clamp(3.9rem,7vw,6.4rem) 0; }
.software-section .tool { padding-block:1rem; }

/* Give the publication introduction the same breathing room as adjacent homepage sections. */
.publications-layout { grid-template-columns:.85fr 1.15fr; gap:clamp(3rem,7vw,7rem); }
.publications-layout .muted { max-width:390px; }
@media (max-width: 800px) { .publications-layout { grid-template-columns:1fr; gap:2.5rem; } }

/* Match the buffered, stacked heading treatment used by the research reading groups. */
.former-members-intro { display:block; padding-left:12%; }
.former-members-intro > div { grid-column:auto; }
@media (max-width: 800px) { .former-members-intro { padding-left:0; } }

.opportunities-intro { display:block; padding-left:12%; }
@media (max-width: 800px) { .opportunities-intro { padding-left:0; } }

/* Shared funder marks in every site footer. */
.footer-branding { display:flex; flex-direction:column; align-items:flex-start; }
.funder-logos { display:flex; align-items:center; gap:.55rem; margin-top:1.1rem; }
.funder-logo { display:block; height:36px; overflow:hidden; background:#fff; }
.funder-logo img { display:block; width:100%; height:100%; object-fit:cover; }
.funder-logo-bbsrc { width:95px; }
.funder-logo-bbsrc img { object-fit:contain; }
.funder-logo-erc { width:58px; }
