/* Chapter-scale art. Light has a job: it follows a relationship to its finding.
   The approved original opportunity map is deliberately not restyled here. */
.visual-study-heading { width: var(--page); max-width: 1440px; margin: auto; padding: 68px 0 34px; }
.visual-study-heading h1 { font-size: clamp(36px, 4vw, 60px); line-height: 1.12; letter-spacing: -.045em; }
.visual-study-heading p { max-width: 680px; margin-top: 20px; font-size: 18px; color: var(--muted); line-height: 1.6; }
.visual-study-heading nav { display: flex; flex-wrap: wrap; gap: 12px 30px; margin-top: 32px; }
.visual-study-heading nav a { display: inline-flex; align-items: center; min-height: 48px; padding: 6px 0; font-size: 18px; border-bottom: 2px solid transparent; color: #6c6672; }
.visual-study-heading nav a[aria-current] { color: #6123a0; border-color: #773cb5; }
.visual-study-heading nav a:hover { color: #6123a0; }
.visual-study-stage { width: var(--page); max-width: 1440px; margin: auto; scroll-margin-top: 125px; }
.visual-study-return { width: var(--page); max-width: 1440px; margin: 30px auto 80px; }
.visual-study-return a { display: inline-flex; align-items: center; gap: 28px; min-height: 44px; color: #6123a0; font-size: 17px; }

.opportunity-refinement { isolation: isolate; }
.opportunity-refinement .opportunity-landscape { grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr); }
.art-geography { height: 440px; margin: 24px 0 24px 24px; }
.art-opportunity-map { width: 100%; height: 100%; overflow: visible; }
.art-link, .art-link-glow { fill: none; stroke-linecap: round; vector-effect: non-scaling-stroke; }
.art-link { stroke: #8050b2; stroke-width: 1.25; }
.art-link-glow { stroke: #a87bd1; stroke-width: 6; opacity: .10; }
.art-beacon-aura { fill: #a16bd5; opacity: .065; }
.art-beacon-ring { fill: #fefcff; stroke: #a47ccc; stroke-width: 1; vector-effect: non-scaling-stroke; }
.art-beacon-core { fill: #7431ab; }
.art-beacon-cross { fill: none; stroke: #9b75bc; stroke-width: .7; vector-effect: non-scaling-stroke; }
.art-beacon-glint { fill: none; stroke: #fff; stroke-width: .55; }
.art-survey { fill: none; stroke: #a59baa; stroke-width: .35; }
.art-signal image { opacity: .65; }
.art-label-leader { fill: none; stroke: #9c8aac; stroke-width: .65; }
.art-orbit { fill: none; stroke: #a398b4; stroke-width: .65; stroke-dasharray: 1 5; opacity: .6; }
.art-geography .signal-motion-path, .report-atlas .signal-motion-path { stroke: #8b48d1; stroke-width: 2.6; filter: drop-shadow(0 0 3px #b486f0); }
.art-geography .geographic-label { background: #f3f3f0e8; border-radius: 3px; }
.art-signal .geographic-developer { top: 36%; left: 3%; }
.art-signal .geographic-projects { top: 74%; left: 49%; }
.art-orbital { margin-block: 14px; height: 460px; }
.art-orbital .geographic-label { background: #f7f6f9e8; }
.art-orbital .geographic-developer { top: 31%; left: 0; }
.art-orbital .geographic-projects { top: 65%; bottom: auto; left: 56%; max-width: 44%; }
.art-orbital .art-beacon-aura { opacity: .11; }
.opportunity-refinement .opportunity-copy { border: 1px solid #e3ddea; border-radius: 14px; box-shadow: 0 1px 2px #2d174510, 0 16px 32px -30px #311d4659; }
.opportunity-refinement .opportunity-copy h3 { text-wrap: balance; }
.opportunity-refinement .opportunity-decision { color: #3d3347; }

/* Shared supply: a dimensional dependency field, not four interchangeable cards. */
.impact-story { background: #f4f3f6; border-color: #ddd8e3; border-radius: 16px; }
.impact-story-main { grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr); }
.impact-network { isolation: isolate; height: 400px; margin: 32px 26px; }
.art-data-terrain { position: absolute; inset: 0; width: 100%; height: 100%; pointer-events: none; }
.impact-connections { z-index: 1; }
.impact-track { stroke: #cabbd9; opacity: .42; }
.impact-connections .impact-trace { stroke: #9261bc; stroke-width: 1.35; }
.impact-network .signal-motion-path { stroke: #8535c8; stroke-width: 2.6; filter: drop-shadow(0 0 3px #b580e3); }
.impact-node { z-index: 2; background: transparent; border: 0; border-radius: 0; box-shadow: none; width: 29%; max-width: 180px; height: 126px; min-height: 0; padding: 70px 0 0; gap: 5px; justify-content: start; transform: translate(-50%, -40px); color: #292330; }
.impact-node strong { padding: 2px 5px; background: #f4f3f6e8; border-radius: 2px; font-size: 18px; white-space: nowrap; }
.impact-node > span:not(.topology-beacon) { color: #75687d; font-size: 16px; background: #f4f3f6e8; padding-inline: 4px; }
.impact-node.impact-business strong { color: #642c9a; }
.impact-node.impact-source > span:not(.topology-beacon) { color: #785d5c; }
.topology-beacon { position: absolute; top: 17px; left: 50%; width: 80px; height: 80px; transform: translateX(-50%); }
.topology-beacon svg { display: block; width: 100%; height: 100%; overflow: visible; }
.beacon-floor { fill: #c9b4df; fill-opacity: .10; stroke: #b6a3c7; stroke-width: .65; }
.beacon-floor-inner { fill: none; stroke: #c8b6d9; stroke-width: .7; }
.beacon-stem { stroke: #a289b8; stroke-width: .75; }
.beacon-disc-side { fill: #c1accf; stroke: #a88dbc; stroke-width: .7; }
.beacon-disc { fill: #fdfbff; stroke: #a786c4; stroke-width: .8; filter: drop-shadow(0 3px 3px #60268517); }
.beacon-reticle { fill: #f4f3f6; fill-opacity: .85; stroke: #b1a0c0; stroke-width: .65; stroke-dasharray: 24 3; }
.beacon-glyph { fill: none; stroke: #9361b8; stroke-width: 1.1; }
.beacon-ticks { fill: none; stroke: #a89ab8; stroke-width: .75; }
.topology-source .beacon-disc-side { fill: #373139; stroke: #706275; }
.topology-source .beacon-disc { fill: #514755; stroke: #817389; }
.topology-source .beacon-reticle { stroke: #87758d; }
.topology-source .beacon-glyph { stroke: #e9bbba; stroke-dasharray: 3 2; }
.topology-business .beacon-disc { fill: #8f52c0; stroke: #7543a2; }
.topology-business .beacon-disc-side { fill: #663191; stroke: #7436a3; }
.topology-business .beacon-glyph { stroke: #fff; }
.topology-business .beacon-floor { fill-opacity: .25; }
.impact-conclusion { background: #fff; border-left: 1px solid #e0dae7; padding: 36px; }
.impact-conclusion h3 { max-width: none; font-size: 30px; }
.impact-evidence { border-color: #e0dae7; }

/* A board exhibit has one argument, geographic evidence and a clear decision. */
.report-document.report-deck { box-shadow: 0 1px 2px #2c233514, 0 26px 38px -28px #37224459; }
.report-deck .report-document-header { background: #fff; }
.report-deck-slide { background: #f8f7fa; color: #241d2d; padding: 32px 30px 4px; overflow: hidden; }
.report-deck-slide h3 { max-width: 640px; font-size: clamp(28px, 2.55vw, 39px); line-height: 1.15; letter-spacing: -.04em; }
.report-deck .report-document-conclusion { background: #fff; }
.report-atlas { position: relative; height: 290px; margin: 14px -14px 0; }
.report-atlas > svg { position: absolute; width: 100%; height: 100%; }
.report-atlas .art-link-glow { stroke-width: 6; opacity: .11; }
.report-atlas-leaders { fill: none; stroke: #918499; stroke-width: .7; }
.atlas-label { position: absolute; display: flex; flex-direction: column; font-size: 16px; line-height: 1.3; gap: 5px; background: #f8f7fae8; padding: 4px 7px; white-space: nowrap; }
.atlas-label strong { font-size: 16px; font-weight: 500; }
.atlas-label > span { font-size: 16px; color: #706577; }
.atlas-business { left: 0; top: 60%; color: #642a99; }
.atlas-primary { left: 33%; top: 7%; }
.atlas-backup { right: 0; top: 58%; }
.atlas-source { left: 55%; top: 78%; }
.atlas-marker { position: absolute; left: var(--x); top: var(--y); width: 24px; height: 24px; transform: translate(-50%,-50%); pointer-events: none; }
.atlas-marker-orbit { position: absolute; inset: 0; border: 1px solid #9e79bd38; border-radius: 50%; background: #a584bf0c; }
.atlas-marker .art-beacon-core { position: absolute; width: 10px; height: 10px; left: 50%; top: 50%; transform: translate(-50%,-50%); border-radius: 50%; background: #8b55bc; border: 2px solid #fff; box-shadow: 0 0 0 1px #bfa4d4; }
.atlas-marker-event .art-beacon-core { background: #453c4c; box-shadow: 0 0 0 1px #94839f; }
.atlas-marker-business .atlas-marker-orbit { background: #a584bf22; }
.atlas-marker-business .art-beacon-core { background: #7833b3; }
.impact-art-frame { min-width: 0; align-self: stretch; display: flex; align-items: center; padding: 36px 24px; overflow: hidden; }
.impact-art-frame .impact-topology { display: none; }
.impact-art-frame .impact-atlas { display: block; width: 100%; height: 340px; max-width: none; margin: 0; }
.impact-atlas .atlas-label { background: #f4f3f6ef; font-size: 16px; }
.impact-atlas .atlas-label strong { font-size: 16px; }
.impact-atlas .atlas-source { top: 83%; left: 53%; }
.impact-atlas .atlas-primary { left: 32%; top: 4%; }
.impact-atlas .atlas-business { left: 0; top: 61%; }
.impact-atlas .atlas-backup { top: 59%; right: 0; }
.impact-atlas .art-beacon-ring { stroke-width: 1.1; }
.impact-atlas .art-link { stroke-width: 1.5; }
.impact-atlas .art-link-glow { opacity: .16; stroke-width: 7; }
.report-mobile-topology { display: none; }
.report-opportunity-art .art-geography { height: 270px; width: 100%; max-width: 560px; margin: 10px auto 24px; }
.report-opportunity-art .geographic-label { background: #fffE; }
.report-opportunity-art .art-signal .geographic-developer { top: 33%; left: 4%; }
.report-opportunity-art .art-signal .geographic-projects { top: 70%; left: 54%; }
.report-opportunity-art .geographic-label strong, .report-opportunity-art .geographic-label span { font-size: 16px; }

@media (hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference) {
  .opportunity-refinement .art-link-glow { transition: opacity 450ms; }
  .opportunity-refinement:hover .art-link-glow { opacity: .23; }
  .opportunity-refinement .art-beacon-aura { transition: opacity 450ms; }
  .opportunity-refinement:hover .art-beacon-aura { opacity: .18; }
  .impact-story .beacon-disc { transition: filter 400ms; }
  .impact-story:hover .beacon-disc { filter: drop-shadow(0 3px 5px #7532b040); }
}
@media (max-width:1200px) {
  .impact-story-main { grid-template-columns: 1fr; }
  .impact-network { max-width: 850px; width: calc(100% - 64px); height: 360px; margin: 32px auto; }
  .impact-conclusion { border-left: 0; }
  .impact-art-frame { justify-content: center; padding: 26px 32px; }
  .impact-art-frame .impact-atlas { max-width: 920px; height: 370px; }
}
@media (max-width:1000px) {
  .opportunity-refinement .opportunity-landscape { grid-template-columns: 1fr; }
  .art-geography { width: min(680px, calc(100% - 40px)); height: 400px; margin: 20px auto 0; }
  .art-orbital { width: min(560px, calc(100% - 40px)); height: 460px; }
  .report-atlas { max-width: 900px; margin-inline: auto; }
}
@media (max-width:700px) {
  .visual-study-heading { padding: 42px 0 26px; }
  .visual-study-heading p { font-size: 17px; }
  .visual-study-heading nav { gap: 20px; margin-top: 22px; }
  .visual-study-heading nav a { font-size: 16px; }
  .report-atlas { display: none; }
  .report-mobile-topology { display: block; }
  .report-mobile-topology .report-supply-graph { margin-top: 20px; }
  .report-mobile-topology .report-supply-graph::before { background: radial-gradient(circle, #a18bb94d .65px, transparent .8px) 0 0 / 13px 13px; opacity: .45; inset: 0; }
  .report-mobile-topology .report-graph-node strong { background: #f8f7fa; color: #63506e; }
  .report-mobile-topology .report-graph-node i { background: #fff; border-color: #9c77bd; box-shadow: 0 0 0 5px #a677c510; }
  .report-mobile-topology .report-graph-business i { background: #8952b8; }
  .report-mobile-topology .report-supply-graph > svg { stroke: #9a77b7; }
  .report-mobile-topology .signal-motion-path { stroke: #995dcc; }
  .report-opportunity-art .art-geography { height: 270px; margin: 8px 0 22px; }
  .report-opportunity-art .art-signal .geographic-developer { top: 31%; left: 0; }
  .report-opportunity-art .art-signal .geographic-projects { top: 73%; left: 35%; max-width: 65%; }
}
@media (max-width:650px) {
  .art-geography { width: calc(100% - 24px); height: 310px; margin-top: 12px; }
  .art-signal .geographic-developer { top: 30%; left: 0; }
  .art-signal .geographic-projects { top: 73%; bottom: auto; left: 38%; }
  .art-orbital { height: 360px; }
  .art-orbital .geographic-developer { top: 28%; left: 0; }
  .art-orbital .geographic-projects { top: 69%; bottom: auto; left: 43%; max-width: 57%; }
  .geographic-label strong, .geographic-label span { font-size: 16px; }
}
@media (max-width:600px) {
  .impact-art-frame { padding: 0; display: block; }
  .impact-art-frame .impact-atlas { display: none; }
  .impact-art-frame .impact-topology { display: block; }
  .impact-network { width: calc(100% - 32px); height: 450px; margin: 20px auto 38px; }
  .impact-node { width: 46%; height: 144px; padding-top: 86px; }
  .impact-node strong { white-space: normal; font-size: 16px; }
  .impact-node > span:not(.topology-beacon) { font-size: 16px; }
  .impact-source, .impact-business { width: 68%; }
  .impact-source { top: calc(55 / 450 * 100%); }
  .impact-business { top: calc(345 / 450 * 100%); }
  .impact-primary, .impact-backup { top: calc(200 / 450 * 100%); }
}
@media (prefers-reduced-motion:reduce) {
  .art-geography *, .report-atlas *, .topology-beacon * { transition: none!important; }
}
@media (forced-colors:active) {
  .art-link, .beacon-floor, .beacon-disc, .beacon-stem, .beacon-glyph, .report-atlas-leaders { stroke: CanvasText; }
  .art-link-glow, .art-data-terrain, .art-beacon-aura, .art-opportunity-map image, .report-atlas image { display: none; }
  .art-beacon-ring, .beacon-disc { fill: Canvas; stroke: CanvasText; }
  .art-beacon-core { fill: CanvasText; }
  .atlas-marker .art-beacon-core { background: CanvasText; border-color: Canvas; outline: 1px solid CanvasText; }
  .atlas-label, .geographic-label, .impact-node strong { color: CanvasText; background: Canvas; }
}
