/* Port chapter: an editorial argument with lightweight, responsive diagrams. */
.platform-port { --port-rule: #b5603d; }
.platform-port .chapter-header h2 { font-size: clamp(2.25rem, 4.2vw, 4.9rem); }
.platform-port .chapter-header > span { font-size: clamp(2.8rem, 5vw, 5.1rem); }
.platform-port sup { margin-left: 3px; font-size: .7em; }
.platform-port sup a { text-decoration: underline; text-underline-offset: 2px; }
.platform-port .port-project-note { margin: 30px 0 38px; padding: 20px 0 20px 22px; border-left: 3px solid var(--port-rule); }
.platform-port .port-project-note h3 { margin: 0 0 9px; font: 600 .8rem/1.4 var(--body); letter-spacing: .07em; text-transform: uppercase; }
.platform-port .port-project-note p { margin: 0; color: #465762; font-size: .91rem; line-height: 1.7; }
.platform-port .port-project-note time { font-weight: 700; }
.platform-port .port-connections { margin: 38px 0; padding: clamp(22px, 3vw, 34px); background: #0b2434; color: #f4ead7; }
.platform-port .port-connections figcaption > span { display: block; margin-bottom: 12px; color: #e6b88c; font: 600 .7rem/1.5 var(--body); letter-spacing: .09em; text-transform: uppercase; }
.platform-port .port-connections figcaption strong { display: block; color: #f4ead7; font: 400 clamp(1.5rem, 2.4vw, 2.1rem)/1.17 var(--editorial); letter-spacing: -.025em; }
.platform-port .port-modes { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; margin: 28px 0 0; padding: 0 0 22px; list-style: none; border-bottom: 1px solid #738991; }
.platform-port .port-modes li { min-width: 0; margin: 0; }
.platform-port .port-modes svg { display: block; width: 42px; height: 40px; margin-bottom: 12px; fill: none; stroke: #e6b88c; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.platform-port .port-modes strong { display: block; color: #f4ead7; font: 600 .87rem/1.4 var(--body); }
.platform-port .port-modes span { display: block; margin-top: 6px; color: #cad5da; font-size: .73rem; line-height: 1.5; }
.platform-port .port-transfer { text-align: center; font-size: 1.75rem; color: #e6b88c; line-height: 1.5; }
.platform-port .port-value-chain { display: flex; justify-content: center; flex-wrap: wrap; column-gap: 24px; row-gap: 8px; margin: 0; padding: 0; list-style: none; }
.platform-port .port-value-chain li { position: relative; margin: 0; color: #f4ead7; font-size: .85rem; font-weight: 600; line-height: 1.5; }
.platform-port .port-value-chain li:not(:last-child)::after { position: absolute; content: "→"; right: -19px; color: #e6b88c; font-weight: 400; }
.platform-port .port-connections > p { margin: 20px 0 0; color: #cad5da; font-size: .76rem; line-height: 1.7; text-align: center; }
.platform-port .port-section-nav { display: flex; flex-wrap: wrap; gap: 0 24px; margin-top: 40px; padding-block: 8px; border-block: 1px solid var(--line); }
.platform-port .port-section-nav a { display: inline-flex; min-height: 44px; align-items: center; color: var(--copper-dark); font-size: .82rem; font-weight: 650; text-decoration: underline; text-underline-offset: 4px; }
.platform-port .port-reading-note { margin: 12px 0 38px; font-size: .8rem; color: #596771; }
.platform-port .port-detail-group,
.platform-port .port-pillars { margin-top: 42px; scroll-margin-top: 140px; }
.platform-port .port-detail-group > h3,
.platform-port .port-pillars > h3 { margin: 0 0 20px; font: 400 clamp(1.55rem, 2.6vw, 2.3rem)/1.17 var(--editorial); letter-spacing: -.025em; text-transform: none; }
.platform-port .port-detail { margin: 0; border-top: 1px solid var(--line); }
.platform-port .port-detail:last-child { border-bottom: 1px solid var(--line); }
.platform-port .port-detail summary { position: relative; padding: 19px 32px 19px 0; color: var(--ink); font: 600 .99rem/1.5 var(--body); list-style: none; cursor: pointer; }
.platform-port .port-detail summary::-webkit-details-marker { display: none; }
.platform-port .port-detail summary::after { content: "+"; position: absolute; right: 2px; top: 16px; color: var(--copper-dark); font: 400 1.5rem/1.3 var(--body); }
.platform-port .port-detail[open] summary::after { content: "−"; }
.platform-port .port-detail summary:hover { color: var(--copper-dark); }
.platform-port .port-detail summary:focus-visible,
.platform-port .port-section-nav a:focus-visible { outline: 2px solid var(--copper-dark); outline-offset: 4px; }
.platform-port .port-detail-body { padding: 0 0 22px; }
.platform-port .port-detail-body p,
.platform-port .port-detail-body li,
.platform-port .port-pillars p { color: #3f4f59; font-size: 1rem; line-height: 1.75; }
.platform-port .port-detail-body p { margin: 0 0 18px; }
.platform-port .port-detail-body > :last-child { margin-bottom: 0; }
.platform-port .port-detail-body h4 { margin: 28px 0 12px; color: var(--ink); font: 400 1.4rem/1.3 var(--editorial); }
.platform-port .port-detail-body ul,
.platform-port .port-detail-body ol { margin: 0 0 22px; padding-left: 23px; }
.platform-port .port-detail-body li { padding-left: 3px; margin-bottom: 6px; }
.platform-port .port-pillars { padding: 28px 0 10px; border-top: 3px solid var(--port-rule); }
.platform-port .port-pillars > .eyebrow { color: var(--copper-dark); font-size: .7rem; letter-spacing: .1em; line-height: 1.5; }
.platform-port .port-pillar-rows { margin-block: 25px; border-top: 1px solid var(--line); }
.platform-port .port-pillar-rows > section { display: grid; grid-template-columns: 44px minmax(0, 1fr); gap: 20px; padding-block: 24px; border-bottom: 1px solid var(--line); }
.platform-port .port-pillar-rows > section > span { color: var(--copper-dark); font: italic 1.8rem/1 var(--editorial); }
.platform-port .port-pillar-rows h4 { margin: 0 0 8px; color: var(--ink); font: 400 1.45rem/1.25 var(--editorial); }
.platform-port .port-pillar-rows p { margin: 0 0 8px; font-size: .96rem; }
.platform-port .port-pillar-rows a { display: inline-block; padding-block: 6px; color: var(--copper-dark); font-size: .8rem; font-weight: 650; text-underline-offset: 4px; }
.platform-port .port-principle { margin-block: 42px 26px; }
.platform-port .port-source-link { font-size: .86rem; }
.platform-port .port-source-link a { color: var(--copper-dark); text-underline-offset: 4px; }
@media (max-width: 620px) {
  .platform-port .port-modes { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px 18px; }
  .platform-port .port-modes svg { width: 40px; height: 36px; }
  .platform-port .port-value-chain { display: grid; grid-template-columns: minmax(0, 1fr); gap: 16px; text-align: center; }
  .platform-port .port-value-chain li:not(:last-child)::after { content: "↓"; top: 20px; right: auto; left: 50%; transform: translateX(-50%); }
  .platform-port .port-pillar-rows > section { grid-template-columns: 30px minmax(0, 1fr); gap: 14px; }
  .platform-port .port-detail summary { font-size: .96rem; }
  .platform-port .port-project-note { padding-left: 16px; }
}
@media print {
  .platform-port .port-detail > .port-detail-body { display: block !important; }
  .platform-port .port-detail summary::after { content: none; }
  .platform-port .port-connections { break-inside: avoid; background: #f4ead7; color: #0b2434; }
  .platform-port .port-connections strong,
  .platform-port .port-connections span,
  .platform-port .port-connections p,
  .platform-port .port-connections li { color: #0b2434 !important; }
}
