/* Inner sections and articles reuse the homepage's palette and type. */
.portal-head{ padding-top: calc(var(--header) + var(--block-gap)); }
.portal-breadcrumbs{ margin-bottom: var(--page-head-gap); color: var(--soft); font-size: 13px; line-height: 1.5; }
.portal-breadcrumbs ol{ display: flex; flex-wrap: wrap; gap: var(--inline-gap) 0; }
.portal-breadcrumbs li{ display: inline; min-width: 0; overflow-wrap: anywhere; }
.portal-breadcrumbs li + li::before{ content: "/"; display: inline-block; margin-inline: var(--text-gap); color: var(--muted); }
.portal-breadcrumbs a{ text-decoration: underline; text-decoration-color: transparent; text-underline-offset: 4px; transition: color var(--motion), text-decoration-color var(--motion); }
.portal-breadcrumbs a:hover{ color: var(--teal); text-decoration-color: currentColor; }
.portal-breadcrumbs [aria-current]{ color: var(--soft); }
.portal-head-grid{ display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: end; gap: var(--block-gap) var(--grid-gap); }
.portal-head .eyebrow{ margin-top: 0; font-size: 12px; }
.portal-head h1{ overflow-wrap: break-word; }
.portal-head p.portal-intro{ max-width: 42em; margin: 0; color: var(--soft); font-size: clamp(18px, 1.55vw, 21px); line-height: 1.65; }
.portal-section-head{ display: flex; flex-wrap: wrap; align-items: last baseline; justify-content: space-between; gap: var(--group-gap); margin-bottom: var(--section-content-gap); }
.portal-section-head .h2{ font-size: clamp(30px, 3.5vw, 46px); }
.portal-count{ color: var(--gold); font: 400 14px/1.4 var(--mono); }
.portal-text-link{ display: inline-flex; align-items: center; gap: var(--text-gap); min-height: 44px; color: var(--teal); font-size: 15px; line-height: 1.5; }
.portal-text-link span{ font-size: 21px; transition: transform var(--motion); }
.portal-text-link:hover{ text-decoration: underline; text-underline-offset: 5px; }
.portal-text-link:hover span{ transform: translate(2px, -2px); }
.portal-section-intro{ max-width: 760px; margin-bottom: var(--section-content-gap); color: var(--soft); font-size: 18px; }
.portal-topic-list{ border-top: 1px solid var(--stroke); }
.portal-topic-list li{ border-bottom: 1px solid var(--stroke); }
.portal-topic-list a{ display: grid; grid-template-columns: 32px minmax(0, 1fr) minmax(0, 1fr) 44px; align-items: center; gap: var(--group-gap); padding-block: var(--block-gap); transition: background var(--motion); }
.portal-topic-number{ align-self: start; padding-top: var(--detail-gap); color: var(--gold); font: 400 12px/1.6 var(--mono); }
.portal-topic-list h3{ color: var(--paper); font: 400 clamp(22px, 2.3vw, 30px)/1.2 var(--display); letter-spacing: -.02em; transition: color var(--motion); }
.portal-topic-list p{ color: var(--soft); font-size: 16px; line-height: 1.65; }
.portal-topic-list svg{ width: 44px; height: 44px; padding: var(--text-gap); color: var(--teal); border: 1px solid var(--stroke); border-radius: 50%; fill: none; stroke: currentColor; stroke-width: 1.4; transition: background var(--motion), transform var(--motion); }
.portal-topic-list a:hover h3{ color: var(--teal); }
.portal-topic-list a:hover svg{ background: var(--navy-2); transform: translateX(3px); }
.portal-topic-intro{ max-width: 780px; margin-bottom: var(--spacious-gap); color: var(--soft); font-size: 18px; }
.portal-reading{ background: var(--navy); }
.portal-article-grid{ display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--grid-gap); }
.portal-card{ display: flex; min-width: 0; flex-direction: column; padding: var(--card-padding); background: var(--card); border: 1px solid var(--stroke); border-radius: var(--radius); transition: border-color var(--motion), background var(--motion); }
.portal-card:hover{ border-color: rgba(0, 201, 167, .38); background: var(--navy-2); }
.portal-tags{ display: flex; flex-wrap: wrap; gap: var(--inline-gap); }
.portal-tags a{ display: inline-flex; align-items: center; min-height: 32px; padding: var(--detail-gap) var(--text-gap); color: var(--teal); border: 1px solid rgba(0, 201, 167, .22); border-radius: var(--radius-sm); font: 400 11px/1.55 var(--mono); overflow-wrap: anywhere; transition: background var(--motion), border-color var(--motion); }
.portal-tags a:hover{ background: rgba(0, 201, 167, .08); border-color: var(--teal); }
.portal-card h3{ margin-top: var(--group-gap); font: 400 clamp(24px, 2.4vw, 31px)/1.24 var(--display); letter-spacing: -.025em; overflow-wrap: break-word; }
.portal-card h3 a:hover{ color: var(--teal); }
.portal-card-summary{ margin-top: var(--item-gap); margin-bottom: var(--block-gap); color: var(--soft); font-size: 16px; line-height: 1.7; }
.portal-card-bottom{ display: flex; align-items: center; justify-content: space-between; gap: var(--text-gap); margin-top: auto; padding-top: var(--group-gap); border-top: 1px solid var(--hairline); }
.portal-meta{ display: flex; flex-wrap: wrap; gap: var(--inline-gap) var(--item-gap); color: var(--soft); font: 400 12px/1.65 var(--mono); }
.portal-card-go{ display: grid; flex: 0 0 44px; place-items: center; width: 44px; height: 44px; color: var(--teal); background: var(--navy-deep); border: 1px solid var(--stroke); border-radius: 50%; transition: color var(--motion), background var(--motion); }
.portal-card-go svg{ width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 1.4; }
.portal-card-go:hover{ color: var(--ink); background: var(--teal); }
.portal-cta{ padding-block: var(--section-space); border-top: 1px solid var(--hairline); background: var(--navy-deep); }
.portal-cta-inner{ display: flex; align-items: center; justify-content: space-between; gap: var(--block-gap); padding: var(--card-padding); background: var(--card); border-radius: var(--radius); box-shadow: inset 0 0 0 1px var(--stroke); }
.portal-cta-inner > div{ max-width: 700px; }
.portal-cta h2{ margin-top: var(--item-gap); font: 400 clamp(30px, 3.6vw, 48px)/1.12 var(--display); letter-spacing: -.03em; text-wrap: balance; }
.portal-cta-text{ margin-top: var(--group-gap); color: var(--soft); font-size: 17px; }
.portal-cta .btn{ flex: none; }
.portal-blog{ padding-top: var(--section-content-gap); }
.portal-filters{ display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(0, .9fr) minmax(0, 1.1fr) auto; align-items: end; gap: var(--item-gap); padding-bottom: var(--block-gap); border-bottom: 1px solid var(--stroke); }
.portal-filter{ display: flex; min-width: 0; flex-direction: column; gap: var(--field-gap); }
.portal-filter label{ color: var(--soft); font: 400 12px/1.5 var(--mono); letter-spacing: .06em; text-transform: uppercase; }
.portal-filter input,.portal-filter select{ width: 100%; min-width: 0; min-height: var(--control-height); padding: var(--field-padding-y) var(--field-padding-x); color: var(--paper); background-color: var(--navy); border: 1px solid var(--stroke); border-radius: var(--radius-sm); font-size: 15px; line-height: 1.4; }
.portal-filter input::placeholder{ color: var(--muted); opacity: 1; }
.portal-filter select{ padding-right: var(--select-affordance-inset); }
.portal-filter select option{ background: var(--navy); }
.portal-filter-submit{ min-height: var(--control-height); }
.portal-results-heading{ display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--text-gap); min-height: var(--empty-state-padding); padding-block: var(--item-gap); }
.portal-results-heading h2{ color: var(--soft); font: 400 14px/1.5 var(--text); }
.portal-results-heading h2 span{ margin-left: var(--text-gap); color: var(--gold); font-family: var(--mono); }
.portal-results-heading .portal-text-link{ font-size: 14px; }
.portal-empty{ padding: var(--empty-state-padding) var(--card-padding); text-align: center; border: 1px solid var(--stroke); border-radius: var(--radius); }
.portal-empty-symbol{ display: inline-block; margin-bottom: var(--item-gap); color: var(--gold); font: 400 42px/1 var(--mono); }
.portal-empty h3{ font: 400 clamp(26px, 3vw, 36px)/1.2 var(--display); letter-spacing: -.02em; }
.portal-empty p{ max-width: 40em; margin: var(--item-gap) auto var(--group-gap); color: var(--soft); }
.portal-pagination{ display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: var(--group-gap); margin-top: var(--section-content-gap); }
.portal-pagination > :first-child{ justify-self: start; }
.portal-pagination > :last-child{ justify-self: end; }
.portal-pagination p{ color: var(--soft); font: 400 12px/1.5 var(--mono); text-align: center; }
.portal-pagination strong{ color: var(--paper); }
.portal-pagination .btn{ font-weight: 400; }
.portal-article-head h1{ max-width: 1000px; font-size: clamp(36px, 5.2vw, 66px); line-height: 1.12; }
.portal-article-head p.portal-intro{ max-width: 800px; margin-top: var(--group-gap); }
.portal-article-head .portal-meta{ margin-top: var(--group-gap); }
.portal-topic-link:hover{ color: var(--paper); }
.portal-article-layout{ display: grid; grid-template-columns: minmax(0, 270px) minmax(0, 760px); align-items: start; justify-content: space-between; gap: var(--grid-gap-wide); }
.portal-article-main{ min-width: 0; }
.portal-article-main:only-child{ grid-column: 1 / -1; width: min(100%, 760px); margin-inline: auto; }
.portal-article-aside{ position: sticky; top: calc(var(--header) + 32px); }
.portal-toc{ padding-left: var(--group-gap); border-left: 1px solid var(--stroke); }
.portal-toc h2{ margin-bottom: var(--group-gap); color: var(--gold); font: 400 11px/1.7 var(--mono); letter-spacing: .06em; text-transform: uppercase; }
.portal-toc ol{ display: flex; flex-direction: column; gap: var(--text-gap); }
.portal-toc a{ display: block; padding-block: var(--detail-gap); color: var(--soft); font-size: 14px; line-height: 1.6; transition: color var(--motion); }
.portal-toc a:hover{ color: var(--teal); }
.portal-prose{ color: var(--paper); font-size: 18px; line-height: 1.85; overflow-wrap: break-word; }
.portal-prose > * + *{ margin-top: var(--prose-paragraph-gap); }
.portal-prose h2{ margin-top: var(--prose-heading-before); margin-bottom: var(--prose-heading-after); color: var(--paper); font: 400 clamp(27px, 2.7vw, 36px)/1.22 var(--display); letter-spacing: -.025em; }
.portal-prose > :first-child{ margin-top: 0; }
.portal-prose h3{ margin-top: var(--prose-subheading-before); font: 400 24px/1.35 var(--display); letter-spacing: -.015em; }
.portal-prose li + li{ margin-top: var(--text-gap); }
.portal-prose blockquote{ margin: var(--block-gap) 0; padding: var(--card-padding-dense); color: var(--soft); background: var(--card); border-radius: var(--radius-sm); box-shadow: inset 0 0 0 1px var(--stroke); }
.portal-prose strong{ color: var(--white); }
.portal-prose table{ display: block; max-width: 100%; border-collapse: collapse; overflow-x: auto; font-size: 15px; line-height: 1.6; }
.portal-prose th,.portal-prose td{ padding: var(--text-gap); border: 1px solid var(--stroke); text-align: left; }
.portal-prose th{ color: var(--gold); background: var(--navy); }
.portal-prose pre{ max-width: 100%; padding: var(--card-padding-compact); background: var(--navy); border: 1px solid var(--stroke); border-radius: var(--radius-sm); overflow-x: auto; font-size: 14px; }
.portal-sources{ margin-top: var(--prose-heading-before); padding: var(--card-padding); background: var(--navy); border: 1px solid var(--stroke); border-radius: var(--radius-sm); }
.portal-sources h2,.portal-article-topics h2{ margin-bottom: var(--group-gap); font: 400 12px/1.6 var(--mono); letter-spacing: .04em; text-transform: uppercase; }
.portal-sources h2{ color: var(--gold); }
.portal-sources ol{ display: grid; gap: var(--item-gap); padding-left: var(--group-gap); list-style: decimal; color: var(--muted); font-size: 14px; }
.portal-sources a{ color: var(--soft); line-height: 1.7; overflow-wrap: anywhere; }
.portal-sources a:hover{ color: var(--teal); text-decoration: underline; text-underline-offset: 4px; }
.portal-sources a span{ color: var(--teal); }
.portal-article-topics{ margin-top: var(--block-gap); }
.portal-article-topics h2{ color: var(--soft); }

@media (max-width: 1000px){
  .portal-filters{ grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .portal-filter-submit{ justify-self: start; }
  .portal-article-layout{ grid-template-columns: 200px minmax(0, 1fr); gap: var(--block-gap); }
  .portal-cta-inner{ align-items: flex-start; flex-direction: column; }
}
@media (max-width: 760px){
  .portal-head{ padding-top: calc(var(--header) + var(--group-gap)); }
  .portal-head-grid{ grid-template-columns: minmax(0, 1fr); gap: var(--group-gap); }
  .portal-head h1{ font-size: clamp(36px, 7vw, 52px); }
  .portal-article-grid{ grid-template-columns: minmax(0, 1fr); }
  .portal-topic-list a{ grid-template-columns: 26px minmax(0, 1fr) 44px; gap: var(--item-gap); padding-block: var(--block-gap); }
  .portal-topic-list h3{ grid-column: 2; }
  .portal-topic-list p{ grid-column: 2; grid-row: 2; }
  .portal-topic-list svg{ grid-column: 3; grid-row: 1 / 3; }
  .portal-article-layout{ grid-template-columns: minmax(0, 1fr); gap: var(--section-content-gap); }
  .portal-article-aside{ position: static; }
  .portal-toc{ padding: var(--group-gap); background: var(--navy); border: 1px solid var(--stroke); border-radius: var(--radius-sm); }
  .portal-toc ol{ gap: var(--inline-gap); }
  .portal-toc h2{ margin-bottom: var(--item-gap); }
  .portal-prose{ font-size: 17px; line-height: 1.8; }
}
@media (max-width: 480px){
  .portal-breadcrumbs{ font-size: 12px; }
  .portal-breadcrumbs li + li::before{ margin-inline: var(--inline-gap); }
  .portal-head h1{ font-size: 36px; }
  .portal-head p.portal-intro{ font-size: 17px; }
  .portal-section-head{ gap: var(--text-gap); margin-bottom: var(--section-content-gap); }
  .portal-topic-list a{ grid-template-columns: 22px minmax(0, 1fr); gap: var(--text-gap); }
  .portal-topic-list svg{ display: none; }
  .portal-topic-list h3{ font-size: 24px; }
  .portal-topic-list p{ font-size: 15px; }
  .portal-card{ padding: var(--card-padding); }
  .portal-card h3{ margin-top: var(--group-gap); font-size: 25px; }
  .portal-card-summary{ font-size: 15px; }
  .portal-tags a{ font-size: 11px; }
  .portal-filters{ grid-template-columns: minmax(0, 1fr); }
  .portal-filter-submit{ width: 100%; }
  .portal-pagination{ grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--item-gap); }
  .portal-pagination p{ grid-column: 1 / -1; grid-row: 1; }
  .portal-pagination .btn{ width: 100%; padding-inline: var(--text-gap); font-size: 13px; }
  .portal-cta h2{ font-size: 30px; }
  .portal-cta .btn{ max-width: 100%; font-size: 14px; white-space: normal; line-height: 1.3; text-align: left; }
  .portal-article-head h1{ font-size: 34px; }
  .portal-sources{ padding: var(--card-padding); }
}
@media (prefers-reduced-motion: reduce){
  .portal-topic-list svg,.portal-text-link span,.portal-card,.portal-card-go{ transition: none; }
}

/* Author identity keeps the site's compact portrait rhythm. */
.author-grid{ display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--grid-gap); }
.author-card{ display: flex; flex-direction: column; min-width: 0; padding: var(--card-padding); border: 1px solid var(--stroke); border-radius: var(--radius); background: var(--card); }
.author-card-top{ display: grid; grid-template-columns: 76px minmax(0, 1fr); align-items: center; gap: var(--group-gap); }
.author-card-top img{ width: 76px; height: 76px; object-fit: cover; border-radius: var(--radius-sm); }
.author-card h3{ font: 400 clamp(23px, 2.4vw, 30px)/1.2 var(--display); letter-spacing: -.02em; }
.author-card h3 a:hover{ color: var(--teal); }
.author-role{ margin-top: var(--inline-gap); color: var(--soft); font-size: 14px; line-height: 1.6; }
.author-expertise{ display: grid; gap: var(--text-gap); margin-block: var(--group-gap); color: var(--soft); font-size: 16px; line-height: 1.6; }
.author-expertise li{ padding-left: var(--item-gap); border-left: 1px solid var(--teal); }
.author-card > .portal-text-link{ align-self: flex-start; margin-top: auto; }
.author-profile-head{ display: grid; grid-template-columns: 152px minmax(0, 1fr); align-items: center; gap: var(--block-gap); }
.author-profile-head > img{ width: 152px; height: 152px; object-fit: cover; border-radius: var(--radius); }
.author-profile-head h1{ margin-top: var(--item-gap); }
.author-profile-head .portal-intro{ margin-top: var(--item-gap); }
.author-profile-layout{ display: grid; grid-template-columns: minmax(0, 300px) minmax(0, 760px); align-items: start; justify-content: space-between; gap: var(--grid-gap-wide); }
.author-profile-aside h2{ color: var(--gold); font: 400 12px/1.6 var(--mono); text-transform: uppercase; letter-spacing: .06em; }
.author-biography > h2:first-child{ margin-top: 0; }
.article-byline{ color: var(--paper); font-size: 15px; line-height: 1.6; }
.article-byline span{ color: var(--soft); margin-right: var(--inline-gap); }
.article-byline a:hover{ color: var(--teal); text-decoration: underline; text-underline-offset: 4px; }
.portal-article-head .article-byline{ margin-top: var(--group-gap); }
.portal-article-head .article-byline + .portal-meta{ margin-top: var(--item-gap); }
.portal-card .article-byline{ margin-top: auto; margin-bottom: var(--group-gap); }
.portal-card .article-byline + .portal-card-bottom{ margin-top: 0; }
.article-author{ margin-top: var(--prose-heading-before); }
@media (max-width: 760px){
  .author-grid,.author-profile-layout{ grid-template-columns: minmax(0, 1fr); }
  .author-profile-layout{ gap: var(--section-content-gap); }
  .author-card-top{ grid-template-columns: 64px minmax(0, 1fr); gap: var(--item-gap); }
  .author-card-top img{ width: 64px; height: 64px; }
  .author-profile-head{ grid-template-columns: 96px minmax(0, 1fr); gap: var(--group-gap); }
  .author-profile-head > img{ width: 96px; height: 96px; }
}
@media (max-width: 480px){
  .author-profile-head{ grid-template-columns: minmax(0, 1fr); }
  .author-card h3{ font-size: 23px; }
  .author-role{ font-size: 13px; }
}

/* External coverage keeps the outlet and original publication date together. */
.press-card-meta{ display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: var(--text-gap) var(--group-gap); }
.press-publisher{ color: var(--gold); font: 400 13px/1.6 var(--mono); }
.press-language{ color: var(--muted); }
.press-card h3{ font-size: clamp(23px, 2.4vw, 30px); }
.press-card-link{ align-self: flex-start; margin-top: auto; padding-top: var(--item-gap); }
.press-card-link span{ flex: none; }
@media (max-width: 480px){
  .press-card h3{ font-size: 24px; }
}
