/* Platform inherits the launch manifesto's continuous canvas and editorial rhythm. */
#platform > .col, #platform > section, #platform > figure { width: 100%; max-width: var(--container); margin-left: auto; margin-right: auto; }
#platform h1 { max-width: 20ch; }
#platform h2 { font-size: clamp(30px, 3vw, 44px); font-weight: 500; letter-spacing: -.02em; line-height: 1.12; text-wrap: balance; margin-bottom: 20px; }
#platform p { max-width: 680px; font-size: calc(1em + 2pt); }
.platform-stage { margin-top: 88px; border-top: 1px solid var(--hairline); padding-top: 32px; }
.platform-stage__header { max-width: 720px; }
.platform-stage__header .num { font-family: var(--sans); font-size: 18px; }
.platform-capture { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; width: 100%; max-width: 800px; margin: 32px 0 0; align-items: start; }
.platform-capture figure { margin: 0; min-width: 0; }
.platform-capture img { display: block; width: 100%; height: auto; aspect-ratio: auto; object-fit: contain; border-radius: 4px; }
.platform-capture figcaption { color: var(--subtle); font-size: 17px; line-height: 1.5; margin-top: 10px; }
#platform .ontology-story { border: 0; margin: 40px 0 0; padding: 0; }
#platform .ontology-story__figure { margin: 0; }
#platform .ontology-story__diagram { max-width: 620px; }
#platform .ontology-story__orbit { transform-origin: 280px 190px; }
#platform .ontology-story__wire { stroke-opacity: .28; }
#platform .ontology-story__hub-ring { stroke-opacity: .35; }
.platform-capture--work { margin-top: 36px; }
.city-globe { margin: 20px auto 0; max-width: 720px; }
.city-globe svg { width: 100%; height: auto; display: block; overflow: visible; }
.city-globe__surface { fill: none; stroke: var(--ink); stroke-width: 1; stroke-opacity: .15; }
.city-globe__wire { stroke: var(--ink); stroke-width: 1; }
.city-globe__node circle { fill: var(--lime); }
.city-globe__node text { fill: var(--ink); font-family: var(--sans); font-size: 18px; text-anchor: middle; paint-order: stroke; stroke: var(--canvas); stroke-width: 5; stroke-linejoin: round; }
.city-globe__hub { fill: var(--canvas); stroke: var(--ink); stroke-opacity: .45; }
.platform-proof { margin-top: 80px; border-top: 1px solid var(--hairline); padding-top: 32px; }
.platform-proof__stories { display: grid; grid-template-columns: 1fr 1fr; gap: 48px; margin-top: 32px; }
.platform-proof__story h3 { font-size: 25px; font-weight: 500; letter-spacing: -.02em; margin-bottom: 12px; }
#platform .platform-proof__story p { font-size: 20px; margin-bottom: 20px; }
.platform-close { margin-top: 64px; }
.manifesto-platform-link { margin-top: 48px !important; }
@media (max-width: 640px) {
  #hdr nav { gap: 10px; } #hdr nav .link { font-size: 15px; } #hdr .wordmark img { height: 15px; }
  .platform-stage, .platform-proof { margin-top: 64px; padding-top: 28px; }
  .platform-capture { grid-template-columns: 1fr; gap: 28px; }
  .platform-proof__stories { grid-template-columns: 1fr; gap: 32px; }
  #platform p { font-size: 21px; }
  .city-globe { margin-inline: -10px; }
  .city-globe__node text { font-size: 23px; }
  #platform .ontology-story__label { font-size: 25px; }
}
@media (prefers-reduced-motion: reduce) { #platform .rv { opacity: 1; } }
