/* Warm spatial typography, editorial imagery and a functional relationship canvas. */
:root { --eco-ease: cubic-bezier(.2,.75,.25,1); --eco-spring: cubic-bezier(.2,.9,.3,1.12); }
/* Project summaries navigate; likes remain a separate, accessible action. */
.project-list .project-row { display:block; }
.project-row-link { display:grid; grid-template-columns:60px minmax(0,1fr) auto; gap:18px; color:inherit; text-decoration:none; border-radius:4px; }
.project-row-link .row-view { color:var(--brand); font-size:14px; }
.project-story-link { display:block; color:inherit; text-decoration:none; border-radius:4px; }
.project-story-view { display:flex; align-items:center; gap:8px; min-height:44px; margin:12px 0 4px 126px; font-size:14px; color:var(--brand); }
.project-story-view svg { width:16px; height:16px; }
.project-story-link:hover h3,.project-row-link:hover h3 { color:var(--brand); }
.project-interest { display:flex; align-items:center; margin:8px 0 4px 78px; }
.project-story .project-interest { margin:0 0 20px 126px; }
.project-like { display:inline-flex; align-items:center; justify-content:center; gap:8px; min-height:44px; padding:8px 12px; border:1px solid var(--line); border-radius:8px; color:var(--muted); background:transparent; font-size:13px; line-height:1.4; transition:color 180ms,background 180ms,border-color 180ms; }
.project-like svg { width:17px; height:17px; flex-shrink:0; }
.project-like:hover,.project-like.is-liked { color:var(--brand); background:var(--brand-tint,#FAEEEB); border-color:#A22E2D30; }
.project-like.is-liked svg { fill:#A22E2D15; }
.like-count { font-variant-numeric:tabular-nums; min-width:10px; }
.interest-ranking { margin:24px 0 32px; padding:20px 0; border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.interest-ranking-heading { display:flex; align-items:baseline; gap:16px; margin-bottom:16px; }
.interest-ranking-heading h3 { font-size:18px; }
.interest-ranking-heading>span,.interest-demo-note { color:var(--muted); font-size:12px; }
.interest-ranking ol { list-style:none; padding:0; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; }
.interest-ranking li { display:flex; align-items:center; gap:10px; min-width:0; }
.interest-rank { color:var(--brand); font-size:12px; }
.interest-ranking li>a { flex:1; min-width:0; font-size:14px; line-height:1.6; }
.interest-ranking .project-like { padding:8px; gap:5px; flex-shrink:0; }
.interest-demo-note { margin-top:14px; }
@media(max-width:1100px){.project-story-view,.project-story .project-interest{margin-left:114px}.interest-ranking ol{grid-template-columns:1fr;gap:8px}}
@media(max-width:760px){.project-row-link{grid-template-columns:48px minmax(0,1fr);gap:12px}.project-interest{margin-left:60px}.project-story-view,.project-story .project-interest{margin-left:62px}.interest-ranking-heading{display:block}.interest-ranking-heading>span{display:block;margin-top:6px}.interest-ranking{margin-top:18px}.interest-ranking li>a{min-height:44px;display:flex;align-items:center}}
@media(max-width:359px){.project-row-link{grid-template-columns:42px minmax(0,1fr);gap:10px}.project-interest{margin-left:52px}}
html { scroll-behavior: smooth; scroll-padding-top: 120px; }
.eco-home { padding-top: 0; padding-bottom: 90px; }
.eco-eyebrow { color: var(--brand); font-size: 12px; letter-spacing: .2em; font-weight: 600; line-height: 1.5; margin-bottom: 24px; }
.eco-hero { position: relative; padding: 68px 0 36px; isolation: isolate; }
.eco-hero::before { content: ''; position: absolute; z-index: -1; inset: -40px 0 -30px; pointer-events: none; background: radial-gradient(ellipse at 77% 32%,#eedcd06b,transparent 62%); }
.eco-hero-grid { display: grid; grid-template-columns: 1.05fr 1fr; gap: 48px; align-items: center; min-height: 490px; }
.eco-hero h1 { font-size: clamp(48px,5.1vw,74px); line-height: 1.24; letter-spacing: -.035em; font-weight: 600; }
.eco-hero h1 span { color: var(--brand); }
.eco-hero-copy>p { margin-top: 26px; color: var(--muted); font-size: 18px; line-height: 1.75; }
.eco-hero-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 28px; }
.eco-hero-actions .btn { min-height: 48px; padding: 11px 22px; font-size: 15px; }
.eco-hero-note { display: block; margin-top: 28px; color: var(--muted); font-size: 12px; line-height: 1.75; }
.eco-photo-space { position: relative; min-width: 0; height: 490px; perspective: 1200px; }
.eco-film { margin: 0; position: absolute; overflow: hidden; border: 1px solid #fff; border-radius: 12px; background: #fff; box-shadow: 0 30px 52px -25px #5a3c393b; transition: box-shadow 200ms; will-change: transform; }
.eco-film img { display: block; width: 100%; height: auto; }
.eco-film figcaption { padding: 10px 14px; color: var(--muted); font-size: 12px; letter-spacing: .01em; background: #fff; }
.film-main { width: 94%; right: 0; top: 44px; z-index: 2; transform: rotate(-2deg); }
.film-small { width: 48%; left: -8px; bottom: 25px; z-index: 3; transform: rotate(4deg); }
.eco-photo-index { position: absolute; right: 8px; bottom: 22px; font-size: 26px; line-height: 1.3; letter-spacing: -.02em; color: #a28d7c; font-weight: 400; }
.hero-connection { position: absolute; inset: -30px -20px; width: calc(100% + 40px); height: calc(100% + 60px); pointer-events: none; fill: var(--brand); }
.hero-connection path { fill: none; stroke: #a22e2d33; stroke-width: 1; }
.eco-search-shelf { display: flex; align-items: center; gap: 48px; margin-top: 22px; }
.eco-search-shelf .searchbox { flex: 1; max-width: 860px; min-height: 58px; background: #fff; padding-right: 7px; }
.eco-search-shelf .btn { min-height: 44px; }
.eco-scroll-cue { padding: 10px 0; color: var(--muted); display: flex; gap: 24px; align-items: center; font-size: 13px; min-height: 44px; border: 0; background: transparent; cursor: pointer; }
.eco-scroll-cue span { color: var(--brand); font-size: 22px; }
.eco-home>.quick-links { border: 0; margin: 0; padding: 18px 0 28px; gap: 24px; }
.eco-home>.quick-links .quick-link { background: transparent; padding: 12px 0; border-bottom: 1px solid var(--line); border-radius: 0; gap: 16px; }
.eco-home>.quick-links .quick-icon { width: 24px; height: 32px; background: none; border: 0; }
.eco-home>.quick-links b { font-size: 15px; font-weight: 500; }
.eco-home>.quick-links .portal-arrow { margin-left: auto; }
.eco-section { margin-top: 112px; }
.eco-section-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 40px; margin-bottom: 40px; }
.eco-section-head h2, .narrative-pin h2 { font-size: clamp(34px,3.5vw,48px); line-height: 1.35; letter-spacing: -.025em; }
.eco-section-head h2 span, .narrative-pin h2 span { color: #82796f; }
.eco-section-head p { font-size: 16px; color: var(--muted); max-width: 310px; }
.eco-section-head .eco-eyebrow { margin-bottom: 18px; }
.network-toolbar { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; margin-bottom: 12px; }
.network-toolbar button { min-height: 44px; padding: 8px 15px; border: 1px solid transparent; border-radius: 20px; color: var(--muted); font: inherit; font-size: 14px; background: transparent; cursor: pointer; transition: color 180ms,background 180ms; }
.network-toolbar button.active { background: var(--brand); color: white; }
.network-toolbar button:hover:not(.active) { background: var(--warm); color: var(--text); }
.network-data-note { margin-left: auto; font-size: 12px; color: var(--muted); }
.network-layout { display: grid; grid-template-columns: minmax(0,1fr) 290px; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.network-canvas { height: 620px; position: relative; min-width: 0; overflow: hidden; background: radial-gradient(ellipse at center,#f5ebe177,transparent 72%); }
.network-orbit { position: absolute; left: 25%; top: 14%; width: 52%; height: 68%; border: 1px solid #a598851a; border-radius: 50%; pointer-events: none; }
.network-lines { position: absolute; inset: 0; width: 100%; height: 100%; overflow: visible; pointer-events: none; }
.network-edge { fill: none; stroke: #a99d8d; stroke-width: .85; opacity: .2; transition: opacity 200ms,stroke 200ms; }
.network-edge.active { stroke: var(--brand); stroke-width: 1.4; opacity: .7; }
.network-node { position: absolute; left: var(--nx); top: var(--ny); transform: translate(-50%,-50%); width: 66px; min-height: 60px; display: flex; flex-direction: column; align-items: center; justify-content: center; border: 0; padding: 0; background: none; font: inherit; cursor: pointer; z-index: 2; transition: opacity 180ms; }
.network-node .node-core { display: flex; align-items: center; justify-content: center; width: 44px; height: 44px; font-size: 17px; border-radius: 50%; border: 1px solid #d4c9ba; color: var(--text); background: #fff; box-shadow: 0 5px 13px #44332607; transition: transform 220ms var(--eco-spring),background 180ms,box-shadow 180ms,border-color 180ms; }
.node-core img { width: 100%; height: 100%; border-radius: 50%; object-fit: cover; }
.node-core svg { width: 18px; height: 18px; }
.network-node.kind-项目 .node-core { border-radius: 11px; color: var(--brand); background: #faeeeb; }
.network-node.kind-资源 .node-core { width: 38px; height: 38px; background: #f5ebe1; }
.network-node.kind-教师 .node-core { border: 2px solid #b1937c; }
.network-node.kind-中心 { width: 86px; height: 86px; z-index: 3; }
.network-node.kind-中心 .node-core { width: 74px; height: 74px; font-size: 26px; color: white; background: var(--brand); border-color: var(--brand); font-weight: 600; box-shadow: 0 10px 22px #a22e2d20; }
.network-node.kind-中心 .node-label { display: none; }
.node-label { position: absolute; top: calc(100% - 2px); font-size: 12px; line-height: 1.4; min-width: 84px; max-width: 120px; color: var(--muted); text-align: center; white-space: nowrap; }
.network-node:hover .node-core, .network-node:focus-visible .node-core { transform: scale(1.1); border-color: var(--brand); box-shadow: 0 8px 20px #a22e2d1c; }
.network-node.selected .node-core { border: 2px solid var(--brand); box-shadow: 0 0 0 5px #a22e2d0b; }
.network-node.selected .node-label { color: var(--brand); }
.network-node.dimmed { opacity: .3; }
.network-node[hidden] { display: none; }
.network-node:focus-visible { outline: 2px solid var(--brand); outline-offset: 6px; border-radius: 14px; }
.network-canvas-caption { position: absolute; left: 0; bottom: 14px; font-size: 11px; letter-spacing: .15em; color: #8d8275; }
.network-detail { padding: 40px 0 30px 28px; border-left: 1px solid var(--line); align-self: stretch; }
.network-detail-top h3 { font-size: 26px; line-height: 1.4; margin: 18px 0 12px; letter-spacing: -.02em; }
.network-type { display: block; color: var(--brand); font-size: 13px; margin-bottom: 10px; }
.network-detail .data-label, .network-detail .profile-provenance { font-size: 11px; }
.network-detail p { color: var(--muted); font-size: 14px; line-height: 1.8; margin-bottom: 22px; }
.network-detail .network-detail-meta { font-size: 12px; margin-bottom: 24px; }
.network-detail .btn { width: 100%; margin-top: 10px; font-size: 14px; }
.network-relations { list-style: none; padding: 0; border-top: 1px solid var(--line); margin: 0 0 24px; }
.network-relations li { display: flex; flex-direction: column; padding: 12px 0; border-bottom: 1px solid var(--line); gap: 5px; }
.network-relations span { font-size: 11px; color: var(--muted); }
.network-relations button { border: 0; text-align: left; background: none; padding: 4px 0; font: inherit; font-size: 14px; color: var(--text); cursor: pointer; min-height: 32px; }
.network-relations button:hover { color: var(--brand); }
.network-role-list { color: var(--brand); font-size: 14px; margin: 36px 0; line-height: 2; }
.eco-narrative { display: grid; grid-template-columns: 1fr 1fr; gap: 90px; padding-top: 56px; border-top: 1px solid var(--line); }
.narrative-pin { position: sticky; top: 138px; align-self: start; }
.narrative-visual { margin: 24px 0 0; }
.narrative-visual svg { width: 100%; height: auto; display: block; }
.narrative-track { stroke: var(--line); stroke-width: 2; fill: none; }
.narrative-progress { stroke: var(--brand); stroke-width: 2; fill: none; stroke-dasharray: 1; stroke-dashoffset: var(--story-progress,1); }
.narrative-visual circle { fill: #f5ebe1; stroke: #c6af99; stroke-width: 1; transition: fill 200ms,stroke 200ms; }
.narrative-visual circle.is-active { fill: var(--brand); stroke: var(--brand); }
.narrative-visual text { font: 14px var(--font); text-anchor: middle; fill: var(--muted); }
.narrative-photo { margin: 0; width: 70%; border-radius: 10px; overflow: hidden; }
.narrative-photo img { width: 100%; height: auto; display: block; }
.narrative-photo figcaption { font-size: 12px; color: var(--muted); padding-top: 8px; }
.narrative-stage { min-height: 330px; display: flex; flex-direction: column; justify-content: center; padding: 40px 0; border-bottom: 1px solid var(--line); opacity: .6; transition: opacity 240ms,transform 240ms; }
.narrative-stage.is-current { opacity: 1; }
.narrative-number { font-size: 12px; color: var(--brand); letter-spacing: .15em; }
.narrative-stage h3 { font-size: 40px; letter-spacing: -.02em; margin: 16px 0; }
.narrative-stage p { font-size: 18px; color: var(--muted); }
.narrative-example { margin-top: 32px; display: flex; flex-direction: column; align-items: flex-start; gap: 6px; }
.narrative-example b { font-size: 16px; font-weight: 500; }
.narrative-example>span:not(.data-label) { font-size: 13px; color: var(--muted); }
.project-stories { border-top: 1px solid var(--line); }
.project-story { padding: 34px 0 0; border-bottom: 1px solid var(--line); transition: background 200ms; }
.project-story-heading { display: flex; gap: 24px; align-items: flex-start; }
.story-order { font-size: 12px; color: var(--muted); padding-top: 21px; min-width: 28px; }
.project-story-identity { flex: 1; min-width: 0; }
.project-story-identity h3 { font-size: 30px; line-height: 1.4; margin: 8px 0; }
.project-story-identity h3 a { display: block; }
.project-story-identity>p { font-size: 16px; color: var(--muted); }
.project-story-heading>.project-logo { margin-top: 8px; }
.project-story-heading>time { font-size: 12px; color: var(--muted); padding-top: 16px; }
.project-story .meta { font-size: 12px; }
.story-disclosure { margin: 12px 0 0 126px; }
.story-disclosure>summary { list-style: none; display: flex; align-items: center; justify-content: space-between; cursor: pointer; font-size: 14px; color: var(--brand); min-height: 56px; outline-offset: -3px; }
.story-disclosure>summary::-webkit-details-marker { display: none; }
.disclosure-plus { font-size: 26px; font-weight: 300; transition: transform 240ms var(--eco-spring); }
.story-disclosure[open] .disclosure-plus { transform: rotate(45deg); }
.story-content { display: grid; grid-template-columns: 1fr 1fr; gap: 36px; padding: 22px 0 36px; animation: storyContentIn 240ms var(--eco-ease); }
@keyframes storyContentIn { from {opacity:0;transform:translateY(7px)} to {opacity:1;transform:translateY(0)} }
.story-label { display: block; font-size: 12px; color: var(--brand); margin-bottom: 8px; }
.story-content p { font-size: 15px; line-height: 1.8; color: var(--muted); margin-bottom: 20px; }
.story-team-links { display: grid; gap: 12px; margin-bottom: 20px; }
.story-team-links a { display: flex; align-items: center; gap: 12px; min-height: 44px; }
.story-team-links .avatar { width: 32px; height: 32px; font-size: 12px; flex-shrink: 0; }
.story-team-links a>span:last-child { font-size: 14px; }
.story-team-links small { display: block; color: var(--muted); font-size: 12px; margin-top: 3px; }
.story-actions { display: flex; gap: 10px; flex-wrap: wrap; }
.story-actions .btn { font-size: 13px; }
.eco-more-projects { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 30px; margin-top: 24px; }
.eco-more-projects>a { padding: 20px 0; border-bottom: 1px solid var(--line); display: flex; flex-direction: column; align-items: flex-start; gap: 8px; }
.eco-more-projects>a>span:first-child { font-size: 18px; }
.eco-more-projects small { font-size: 12px; color: var(--muted); }
.project-list .compact-story { grid-column: 2 / -1; margin: 0; }
.project-list .compact-story>summary { min-height: 36px; font-size: 12px; }
.compact-story .story-content { border-top: 1px solid var(--line); margin-top: 8px; padding-bottom: 12px; }
.compact-story .story-content p { font-size: 14px; }
.people-feature-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 30px; }
.people-photo { display: flex; align-items: center; justify-content: center; aspect-ratio: 1.28; overflow: hidden; background: #f1ebe3; border-radius: 9px; }
.people-photo img { width: 100%; height: 100%; object-fit: cover; object-position: center 30%; transition: transform 300ms var(--eco-ease); }
.people-photo:hover img { transform: scale(1.035); }
.people-feature-meta { display: flex; justify-content: space-between; gap: 14px; flex-wrap: wrap; margin-top: 20px; color: var(--brand); font-size: 12px; }
.people-feature-meta span { color: var(--muted); }
.people-feature h3 { font-size: 26px; margin: 10px 0; }
.people-feature p { font-size: 15px; color: var(--muted); line-height: 1.7; }
.people-fields { display: flex; gap: 12px; flex-wrap: wrap; margin-top: 20px; font-size: 12px; color: var(--muted); }
.people-more { display: flex; gap: 40px; padding-top: 30px; margin-top: 30px; border-top: 1px solid var(--line); }
.people-more>a { display: flex; gap: 14px; align-items: center; flex: 1; }
.people-more small { display: block; font-size: 12px; color: var(--muted); margin-top: 5px; }
.photo-avatar { background: #f5ebe1; overflow: hidden; padding: 0; flex-shrink: 0; }
.photo-avatar img { width: 100%; height: 100%; object-fit: cover; object-position: center 25%; }
.profile-provenance { display: inline-block; color: var(--muted); border: 1px solid var(--line); font-size: 12px; padding: 3px 8px; border-radius: 5px; font-weight: 400; }
.eco-resource-list { border-top: 1px solid var(--line); }
.eco-resource-list>a { display: flex; align-items: center; gap: 30px; min-height: 126px; padding: 26px 0; border-bottom: 1px solid var(--line); transition: padding 200ms; }
.eco-resource-list>a:hover { padding-left: 12px; }
.eco-resource-kind { font-size: 13px; color: var(--brand); min-width: 100px; }
.eco-resource-list h3 { font-size: 22px; margin-bottom: 6px; }
.eco-resource-list p { font-size: 14px; color: var(--muted); }
.eco-resource-owner { margin-left: auto; font-size: 12px; color: var(--muted); display: flex; flex-direction: column; align-items: flex-start; gap: 8px; }
.eco-archives .archive-editorial { margin-top: 8px; }
.public-ecosystem-visual { position: relative; min-height: 450px; background: radial-gradient(ellipse at center,#f0dfd259,transparent 65%); }
.public-ecosystem-visual svg { position: absolute; width: 100%; height: 100%; fill: none; stroke: #a22e2d40; stroke-width: 1; }
.public-core { position: absolute; left: 50%; top: 49%; transform: translate(-50%,-50%); width: 96px; height: 96px; background: var(--brand); border-radius: 50%; color: #fff; display: grid; place-items: center; font-size: 30px; font-weight: 600; box-shadow: 0 20px 40px #a22e2d18; }
.public-ecosystem-visual button { position: absolute; left: var(--nx); top: var(--ny); transform: translate(-50%,-50%); width: 68px; height: 68px; border: 1px solid #cfbfae; background: white; border-radius: 50%; font: inherit; color: var(--text); cursor: pointer; transition: background 180ms,color 180ms,box-shadow 180ms; }
.public-ecosystem-visual button:hover, .public-ecosystem-visual button[aria-pressed=true] { background: #faeeeb; color: var(--brand); box-shadow: 0 8px 24px #a22e2d14; }
.public-node-description { position: absolute; top: 100%; width: 100%; font-size: 14px; color: var(--muted); text-align: center; }
.public-purpose-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 36px 60px; }
.public-purpose-grid>a { border-top: 1px solid var(--line); padding: 28px 0; }
.public-purpose-grid>a>span { font-size: 12px; color: var(--brand); }
.public-purpose-grid h3 { font-size: 26px; margin: 14px 0; }
.public-purpose-grid p { font-size: 16px; color: var(--muted); margin-bottom: 20px; }
.public-purpose-grid small { color: var(--brand); font-size: 14px; }
.public-access-note { margin-top: 36px; border-top: 1px solid var(--line); padding: 24px 0; display: flex; gap: 14px; color: var(--muted); align-items: center; font-size: 14px; }
.public-access-note svg { width: 18px; height: 18px; flex-shrink: 0; }
.eco-public-hero { padding-bottom: 80px; }
@media(max-width:1100px){.eco-hero-grid{gap:30px}.eco-photo-space{height:430px}.eco-photo-index{font-size:22px}.film-small{bottom:20px}.network-layout{grid-template-columns:minmax(0,1fr) 250px}.network-detail{padding-left:22px}.network-node .node-core{width:40px;height:40px}.network-node{width:56px;min-height:54px}.node-label{font-size:11px}.eco-narrative{gap:50px}.eco-hero h1{font-size:58px}.project-story-heading{gap:18px}.story-disclosure{margin-left:114px}}
@media(max-width:760px){html{scroll-padding-top:100px}.eco-home{padding-bottom:48px}.eco-hero{padding:38px 0 24px}.eco-hero-grid{grid-template-columns:1fr;gap:24px;min-height:0}.eco-hero .eco-eyebrow{font-size:11px;margin-bottom:20px}.eco-hero h1{font-size:44px;line-height:1.3;letter-spacing:-.03em}.eco-hero-copy>p{font-size:16px;margin-top:20px}.eco-hero-actions{margin-top:22px;gap:10px}.eco-hero-actions .btn{font-size:14px;padding:10px 16px}.eco-hero-note{font-size:12px;margin-top:22px}.eco-photo-space{height:330px;margin-top:6px}.film-main{width:94%;top:18px;right:2px}.film-small{width:50%;bottom:12px;left:0}.eco-photo-index{font-size:16px;bottom:17px}.eco-film figcaption{font-size:11px;padding:8px 10px}.eco-search-shelf{margin-top:22px;gap:0}.eco-scroll-cue{display:none}.eco-home>.quick-links{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 22px;padding:10px 0 16px}.eco-home>.quick-links .quick-link{gap:10px;padding:10px 0;min-height:48px}.eco-home>.quick-links b{font-size:14px}.eco-section{margin-top:72px}.eco-section-head{display:block;margin-bottom:28px}.eco-section-head h2,.narrative-pin h2{font-size:32px}.eco-section-head .eco-eyebrow{font-size:11px;margin-bottom:14px}.eco-section-head>p{font-size:14px;margin-top:18px;max-width:none}.eco-section-head>.btn{margin-top:20px;font-size:14px}.network-toolbar{gap:4px;margin-bottom:14px}.network-toolbar button{font-size:13px;min-height:44px;padding:8px 13px}.network-data-note{margin-left:0;width:100%;padding-top:8px;font-size:11px}.network-layout{grid-template-columns:1fr}.network-canvas{height:440px}.network-node{width:60px;min-height:56px}.network-node .node-core{width:44px;height:44px}.network-node.kind-资源 .node-core{width:44px;height:44px}.network-node.kind-中心 .node-core{width:58px;height:58px;font-size:22px}.network-node.kind-中心{width:66px;height:66px}.node-label{font-size:11px;min-width:70px;max-width:90px;white-space:normal;top:100%}.network-detail{border-left:0;border-top:1px solid var(--line);padding:28px 0;min-height:300px}.network-detail-top h3{font-size:26px}.network-detail p{font-size:15px}.network-detail .btn{width:auto;margin-right:8px;min-height:44px}.network-relations{display:grid;grid-template-columns:1fr 1fr;gap:0 20px}.network-relations button{min-height:44px}.eco-narrative{grid-template-columns:1fr;gap:20px;padding-top:36px}.narrative-pin{position:relative;top:auto}.narrative-photo{width:100%;max-width:360px;display:none}.narrative-visual{margin-top:0}.narrative-stage{min-height:220px;padding:30px 0;opacity:1}.narrative-stage h3{font-size:30px;margin:12px 0}.narrative-stage p{font-size:16px}.narrative-example{margin-top:20px}.project-story{padding-top:24px}.project-story-heading{gap:14px;flex-wrap:wrap}.story-order{display:none}.project-story-heading>.project-logo{width:48px;height:48px;font-size:24px;margin-top:10px}.project-story-identity{min-width:0;flex-basis:calc(100% - 62px)}.project-story-identity h3{font-size:24px;margin:8px 0}.project-story-identity>p{font-size:15px}.project-story-heading>time{display:none}.story-disclosure{margin:10px 0 0 62px}.story-content{grid-template-columns:1fr;gap:10px;padding:18px 0 26px}.story-content p{font-size:15px}.story-disclosure>summary{min-height:50px}.story-team-links small{font-size:12px}.story-actions .btn{font-size:12px;padding:9px 12px}.eco-more-projects{grid-template-columns:1fr;gap:0}.eco-more-projects>a{padding:18px 0}.eco-more-projects small{font-size:13px}.people-feature-grid{grid-template-columns:1fr;gap:36px}.people-photo{aspect-ratio:1.4}.people-feature-meta{font-size:12px}.people-feature h3{font-size:26px}.people-feature p{font-size:16px}.people-fields{margin-top:14px;font-size:12px}.people-more{flex-direction:column;gap:24px}.people-more small{font-size:13px}.eco-resource-list>a{gap:12px;align-items:flex-start;flex-wrap:wrap;padding:22px 0}.eco-resource-kind{width:100%;font-size:13px}.eco-resource-list h3{font-size:20px}.eco-resource-list p{font-size:14px}.eco-resource-owner{width:100%;margin-left:0;flex-direction:row;gap:14px}.project-list .compact-story{grid-column:2;margin:0}.compact-story .story-content{gap:10px}.compact-story>summary{min-height:44px}.public-ecosystem-visual{min-height:350px;margin-top:8px}.public-core{width:78px;height:78px;font-size:26px}.public-ecosystem-visual button{width:58px;height:58px;font-size:14px}.public-node-description{font-size:13px;padding-top:15px}.eco-public-hero{padding-bottom:60px}.public-purpose-grid{grid-template-columns:1fr;gap:12px}.public-purpose-grid h3{font-size:24px}.public-purpose-grid p{font-size:15px}.public-purpose-grid>a{padding:22px 0}.public-access-note{align-items:flex-start;font-size:13px}}
@media(max-width:359px){.eco-hero h1{font-size:36px}.eco-hero-actions .btn{font-size:13px;padding:10px 12px}.eco-photo-space{height:280px}.eco-photo-index{font-size:14px}.eco-section-head h2,.narrative-pin h2{font-size:28px}.network-toolbar button{padding:8px 11px;font-size:12px}.node-label{font-size:11px}.story-disclosure{margin-left:0}.project-story-identity h3{font-size:21px}.eco-resource-list h3{font-size:19px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.eco-film{will-change:auto;transform:none!important}.network-node{transition:none!important}.narrative-stage{opacity:1!important;transform:none!important}.narrative-progress{stroke-dashoffset:0!important}.story-content{animation:none!important}.people-photo img{transform:none!important}}

/* Content direction: retain the existing ivory, rules and type system. */
.platform-direction{display:grid;grid-template-columns:1fr 1fr;gap:48px;margin-top:28px;padding:32px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.platform-direction article{min-width:0}.platform-phase{color:var(--brand);font-size:12px;letter-spacing:.06em}.platform-direction h2{font-size:22px;line-height:1.5;margin-top:10px}.platform-direction p{color:var(--muted);font-size:15px;line-height:1.75;margin-top:10px;max-width:480px}
@media(max-width:600px){.platform-direction{grid-template-columns:1fr;gap:28px;padding:28px 0}.platform-direction h2{font-size:20px}}
