/* Community page. Shared layout, typography, navigation, FAQ scrolling
   and reversible entrances come from ocean.css, without changing that page. */
.community-page .opening,
.community-page .step,
.community-page .faq-panel { background: var(--wire-surface); color: #0a1740; }
.community-page .opening::after,
.community-page .step:not(.community-animated)::before { content: none; }

/* Keep the wide header proportions, but let longer copy grow at narrow widths. */
.community-page .opening { aspect-ratio: auto; min-height: clamp(420px, calc((100vw - var(--wire-gutter) * 2) / 3), 480px); }
.community-page .opening-primary { width: min(980px, 100%); color: #0a1740; }
.community-page .opening h1 { max-width: 980px; color: #014bd0; }
.community-page .opening-subtext { max-width: 800px; color: #52617a; }
.community-status { display: inline-block; margin: 0 0 22px; padding: 8px 15px; border-radius: 24px; background: #d6e4ff; color: #014bd0; font: 700 12px/1.5 "Noto Sans", Arial, sans-serif; }
.community-release { margin: 16px 0 0; color: #52617a; font: 14px/1.5 "Noto Sans", Arial, sans-serif; }
.community-page .opening.community-hero { min-height: clamp(480px, 37.5vw, 600px); align-items: center; background: #0a1740; }
.community-hero-art { position: absolute; inset: 0; overflow: hidden; }
.community-hero-image { display: block; width: 100%; height: 100%; object-fit: cover; object-position: right center; }
.community-hero-video { object-position: right center; pointer-events: none; }
.community-page .community-hero::after { content: ""; background: linear-gradient(90deg, rgb(10 23 64 / .72), rgb(10 23 64 / .38) 43%, transparent 57%); }
.community-page .community-hero .opening-primary { width: 43%; color: #fff; }
.community-page .community-hero h1 { color: #fff; font-size: clamp(30px, 3vw, 44px); text-wrap: balance; }
.community-page .community-hero .opening-subtext { color: #f0f5ff; }
.community-hero .community-release { color: #d4e3f9; }
.community-page .process-heading { grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); align-items: center; gap: clamp(32px, 4.5vw, 64px); min-height: 300px; padding: 48px clamp(28px, 4vw, 56px); text-align: left; }
.community-workspace { background: linear-gradient(110deg, #eaf1ff, #f2f6fc); box-shadow: inset 0 0 0 1px #dce6f6; }
.community-workspace-intro { min-width: 0; }
.community-kicker { margin: 0 0 16px; color: #014bd0; font: 700 11px/1.5 "Noto Sans", Arial, sans-serif; letter-spacing: .1em; text-transform: uppercase; }
.community-workspace .community-kicker { display: flex; align-items: center; gap: 12px; margin-bottom: 22px; color: #014bd0; letter-spacing: .13em; }
.community-workspace .community-kicker::before { content: ""; width: 28px; height: 2px; flex: none; background: currentColor; }
.community-page .process-heading h2 { max-width: 20ch; margin: 0; color: #0a1740; font: 700 clamp(28px, 2.8vw, 40px)/1.22 "Sora", Arial, sans-serif; letter-spacing: -.045em; text-wrap: balance; }
.community-workspace h2 span { display: block; color: #014bd0; }
.community-overview-copy { min-width: 0; padding: 4px 0 4px clamp(32px, 4vw, 56px); border-left: 1px solid #cbd9ef; color: #52617a; font: 15px/1.75 "Noto Sans", Arial, sans-serif; }
.community-overview-copy p { margin: 0; }
.community-overview-copy p + p { margin-top: 20px; }
.community-overview-copy strong { color: #0a1740; font-weight: 700; }
.community-page .step:not(.community-animated) h2 { color: #014bd0; }
.community-page .step:not(.community-animated) p { color: #52617a; }
.community-page .step.community-animated { background: #193c70; color: #fff; }
.community-page .community-copy { min-height: 360px; }
.community-page .community-copy h3 { margin: 0 0 20px; font-size: clamp(20px, 1.8vw, 25px); line-height: 1.35; }
.community-copy > p:not(.community-kicker) { margin: 16px 0 0; color: #52617a; font-size: 15px; line-height: 1.75; }
.community-copy > p.community-detail-note { padding-left: 16px; border-left: 2px solid #b8c9e8; font-size: 13px; }
.community-copy > p.community-sequence { margin-top: 26px; padding-top: 22px; border-top: 1px solid #d9dfe7; color: #014bd0; font-size: 13px; line-height: 1.9; font-weight: 700; }
.community-sequence span { display: inline-block; margin: 0 3px; }
.community-page .results-band { min-height: 236px; }
.community-page .sources-panel { min-height: 280px; }
.community-evidence > h2 { max-width: 780px; font-size: clamp(24px, 2.3vw, 32px); line-height: 1.3; letter-spacing: -.035em; text-transform: none; }
.community-evidence .sources-note { max-width: 840px; margin-top: 16px; font-size: 15px; }
.community-evidence .sources-list { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 36px; }
.community-evidence .sources-list li { display: flex; flex-direction: column; gap: 18px; }
.community-evidence-stat { color: #014bd0; font: 700 clamp(28px, 2.8vw, 38px)/1.2 "Sora", Arial, sans-serif; letter-spacing: -.035em; }
.community-evidence .sources-list h3 { font-size: 16px; }
.community-evidence .sources-list p { margin-top: 12px; font-size: 14px; line-height: 1.7; }
.community-evidence .community-design-choice { color: #0a1740; }
.community-source-link { display: inline-block; margin-top: 20px; font-size: 13px; line-height: 1.6; }

/* The inherited FAQ panel stays at 1080 / 1000 / 970px. Its .faq-list retains
   the reveal clearance and hidden, scrollable overflow from the shared CSS. */
@media (prefers-reduced-motion: reduce) {
  .community-hero-video { display: none; }
}
@media (max-width: 1199px) {
  .community-page .opening.community-hero { display: flex; flex-direction: column; align-items: stretch; min-height: 0; padding: 0; }
  .community-hero-art { position: relative; inset: auto; flex: none; height: clamp(220px, 40vw, 480px); }
  .community-hero-art::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, transparent 75%, #0a1740); pointer-events: none; }
  .community-page .community-hero::after { content: none; }
  .community-page .community-hero .opening-primary { width: 100%; padding: 24px clamp(24px, 4.4vw, 48px) 36px; }
}
@media (max-width: 991px) {
  .community-page .process-heading { grid-template-columns: 1fr; gap: 24px; }
  .community-page .process-heading h2 { max-width: 22ch; }
  .community-overview-copy { padding: 24px 0 0; border-top: 1px solid #cbd9ef; border-left: 0; }
  .community-page .community-copy { padding-right: 24px; padding-left: 24px; }
  .community-evidence .sources-list { grid-template-columns: 1fr; gap: 28px; }
  .community-evidence .sources-list li { display: grid; grid-template-columns: minmax(140px, .35fr) 1fr; gap: 24px; }
  .community-evidence .sources-list li + li { padding-top: 28px; border-top: 1px solid #d9dfe7; }
}
@media (max-width: 767px) {
  .community-page .opening { min-height: 420px; padding: 32px 28px; }
  .community-status { max-width: 100%; margin-bottom: 20px; font-size: 11px; }
  .community-page .process-heading { padding: 32px 28px; }
  .community-page .step h2 { font-size: clamp(22px, 5.6vw, 30px); }
  .community-page .step p { font-size: 14px; }
  .community-page .community-copy { min-height: 0; padding-top: 4px; padding-bottom: 28px; }
  .community-page .community-copy h3 { font-size: 21px; }
  .community-copy > p:not(.community-kicker) { font-size: 14px; }
  .community-copy > p.community-sequence, .community-copy > p.community-detail-note { font-size: 13px; }
  .community-evidence .sources-list li { display: flex; gap: 14px; }
}
