/* Shared visual direction: saturated structural color, crisp surfaces, stable content. */
:root {
  --paper:#f5f7ff;
  --ink:#11172a;
  --muted:#4b5670;
  --line:#c8d1e6;
  --soft:#e7edfc;
  --launch-paper:#f5f7ff;
  --launch-ink:#11172a;
  --launch-blue:#c6d9ff;
  --launch-lilac:#d2c5ff;
  --launch-blush:#f5c5d4;
  --launch-line:#b6c5e3;
  --launch-shadow:0 12px 28px #142a5814,0 2px 0 #ffffff80 inset;
  --signal-blue:#175bdb;
  --signal-violet:#7138da;
  --signal-red:#c92a50;
}
body,body.home-page { background:#f5f7ff; }
::selection { color:#fff; background:#254dc4; }
.announcement { background:linear-gradient(100deg,#11214c,#2635a8 60%,#58175f); color:#fff; }
.site-header { background:#ffffffed; border-color:#c2cde3; box-shadow:0 4px 18px #0d1f4510; }
.mega-menu { background:linear-gradient(135deg,#fff 60%,#e7edff); border-color:#a6b9e0; box-shadow:0 22px 60px #07112735; }
.mega-links>a:is(:hover,:focus-visible) { background:#e5ebff; color:#143aa2; }
.mega-menu .nav-icon { color:#2852cd; }
.mega-feature { background:linear-gradient(140deg,#0b1536 25%,#233b9e 72%,#6e2061); color:#fff; border:1px solid #566ed2; }
.mega-feature .eyebrow { color:#d0deff; }
.button.primary:not(.hero-dark .button),.button.secondary,.button.outline { color:#173ba4; background:#ffffff70; border-color:#6481d0; box-shadow:inset 0 0 0 1px #ffffff70,0 4px 14px #173fa515; }
.button.primary:not(.hero-dark .button):is(:hover,:focus-visible),.button.secondary:is(:hover,:focus-visible),.button.outline:is(:hover,:focus-visible) { color:#102966; background:#edf2ff; border-color:#244ed0; box-shadow:0 0 0 1px #244ed025,0 0 22px #3167ef35; }
.button.dark { background:#111a34; border-color:#42568a; color:#fff; }
:is(a,button,input,summary):focus-visible { outline-color:#1b54d4; }
:is(.home-hero,.home-night,.hero-dark,.detail-hero,.insights-hero,.article-hero,.home-insights,.policy-section) :is(a,button,input,summary):focus-visible { outline-color:#a2d8ff; }
h2>span,.home-journey-copy h3>span { color:#304bab; }
.eyebrow { color:#3c50a1; }

/* Main hero scene keeps its own darker visual system. */
.home-hero { background:#030711; }
.home-page .home-hero { margin-bottom:0; }
.home-hero-main::before { background:linear-gradient(90deg,#030711 0%,#030711f2 31%,#030711af 46%,#03071120 69%,transparent 100%),linear-gradient(0deg,#030711d9 0%,transparent 35%); }
.home-hero h1 span { color:#f39a4e; }
.home-hero-action { background:#080b13d9; border-color:#d7a26b; box-shadow:0 5px 20px #0007,inset 0 1px #ffd5aa1f; }
.home-hero-preview { border-color:#b8895e; box-shadow:0 16px 32px #0009,0 0 20px #c76c2522; }

/* Detail pages and utility heroes share a stronger dark introduction. */
.detail-hero,.hero-dark { color:#f7f9ff; background:#080e20; border:1px solid #384c81; border-radius:14px; box-shadow:0 20px 42px #07163320; }
.detail-hero:not(.hero-dark) { padding-inline:clamp(22px,4vw,64px); }
.detail-hero .hero-wash,.hero-dark .hero-wash { background:linear-gradient(120deg,#080d1e 27%,#192967 64%,#452267 88%,#86233f); }
.detail-hero .hero-art::after,.hero-dark .hero-art::after { background:linear-gradient(90deg,#080d1ed9 5%,#080d1e70 47%,transparent 80%); }
.detail-hero h1,.hero-dark h1 { color:#fff; }
.detail-hero h1>span,.hero-dark h1>span { color:#a8caff; background:none; -webkit-text-fill-color:currentColor; }
.detail-hero :is(.detail-intro,.hero-footnote,.breadcrumb),.hero-dark :is(.hero-description,.hero-footnote) { color:#d3dff5; }
.detail-hero .eyebrow,.hero-dark .eyebrow { color:#aac8ff; }
.detail-hero-visual>span { color:#d5def3; background:#10182bcc; border-color:#6581b4; }
:is(.detail-hero,.hero-dark,.home-night,.home-page .policy-section,.domestic-mission) .button { color:#f5f8ff; background:#08102299; border-color:#799cf0; }
:is(.detail-hero,.hero-dark,.home-night,.home-page .policy-section,.domestic-mission) .button.primary:not(.hero-dark .button),.hero-dark .button.primary { color:#dce9ff; background:#16397830; border-color:#789ff5; }
:is(.detail-hero,.hero-dark,.home-night,.home-page .policy-section,.domestic-mission) .button:is(:hover,:focus-visible) { color:#fff; background:#173164; border-color:#b7d8ff; box-shadow:0 0 25px #346ef044; }

/* Homepage chapters vary between clean reading surfaces and decisive color fields. */
.home-page .ecosystem-band.container { background:linear-gradient(130deg,#050912 31%,#101e56 65%,#382072); border-color:#384c89; }
.home-page .policy-section { background:linear-gradient(115deg,#07101f 20%,#122f71 65%,#4c185f); }
.home-page .opensource-section.home-night { background:linear-gradient(120deg,#081226 17%,#192b7e 62%,#65225e); border-color:#6888dd; }
.home-night h2>span { color:#a5c9ff; }
.home-night .eyebrow { color:#bed1ff; }
.ecosystem-band .brand-rail>a { --card-light:77 134 255; background:linear-gradient(145deg,#172957,#090f23 68%); border-radius:12px; }
.ecosystem-band .brand-rail>a:nth-child(3n+2) { --card-light:142 91 255; }
.ecosystem-band .brand-rail>a:nth-child(3n) { --card-light:255 86 125; }
.ecosystem-band .brand-rail>* { filter:none; }
.home-journey { background:linear-gradient(125deg,#fff 40%,#dee8ff 85%,#cad8ff); border-block:1px solid #becbea; }
.home-journey-media { border-radius:14px; border:1px solid #b8c8e6; box-shadow:0 16px 30px #1c396724; }
.home-journey-links a { color:#233f92; border-color:#8da5d6; background:#fff; border-radius:7px; }
.home-journey-links a:is(:hover,:focus-visible) { border-color:#2759d7; box-shadow:0 0 18px #3562ce33; }
.marketplace-teaser { background:linear-gradient(117deg,#fff 40%,#dce5ff 75%,#ebc8e2); border-block:2px solid #4268cd; }
.closing-cta { background:linear-gradient(120deg,#fff 22%,#d2e0ff 66%,#cbb8ff); border:1px solid #7d99d9; border-radius:14px; box-shadow:0 18px 45px #17356f22; }

.downloads-hero .hero-wash { background:linear-gradient(120deg,#ffffff 30%,#c6d9ff 68%,#d6b9f2); }
.downloads-hero h1>span { color:#253e9d; }
.downloads-hero .hero-art { border-block:1px solid #a6bdea; }
/* Information cards remain light; high-contrast edges carry the color. */
:is(.detail-cards article,.solution-card,.resource-card,.platform-card,.marketplace-card,.connection-card,.compatibility-contract article,.tech-brief article,.ecosystem-grid>*,.marketplace-review-grid article) { border-color:#b3c3e2; border-radius:12px; background:linear-gradient(130deg,#fff 65%,#ecf1ff); box-shadow:0 10px 24px #0a255314,inset 0 3px #3566d3; }
:is(.detail-cards article,.solution-card,.resource-card,.platform-card,.marketplace-card,.connection-card):nth-child(3n+2) { box-shadow:0 10px 24px #0a255314,inset 0 3px #793bd6; }
:is(.detail-cards article,.solution-card,.resource-card,.platform-card,.marketplace-card,.connection-card):nth-child(3n) { box-shadow:0 10px 24px #0a255314,inset 0 3px #c42e5c; }
:is(.solution-card,.resource-card,.marketplace-card,.connection-card):is(:hover,:focus-visible) { border-color:#587ccb; }
.story-slider { background:linear-gradient(135deg,#fff 35%,#e1e9ff); border:1px solid #a8bbdf; border-radius:14px; }
.story-panel { border-color:#b4c5e5; }
.corporate-connections,.marketplace-review-section { background:linear-gradient(120deg,#e1eaff,#f7f9ff 55%,#e0d8fa); border-color:#b0c0e0; }
:is(.story-tabs,.tour-tabs) button[aria-selected='true'],:is(.ecosystem-filters,.marketplace-filters,.connection-filters) button[aria-pressed='true'] { color:#15328a; background:#e1eaff; border-color:#2d5bd8; box-shadow:inset 0 -3px #2d5bd8,0 0 18px #2d5bd826; }
:is(.story-tabs,.tour-tabs) button[aria-selected='true']::before,:is(.ecosystem-filters,.marketplace-filters,.connection-filters) button[aria-pressed='true']::before { background:linear-gradient(115deg,#275cdb,#7f3cdb 60%,#d43563); }
.ecosystem-category { background:#e7ecfc; color:#354780; }
.connection-search input { background:#fff; border-color:#aebfdf; color:#152343; }

/* Editorial sections use stronger frames while articles retain light reading bodies. */
.insights-hero,.article-hero,.home-insights { background:linear-gradient(118deg,#060e21 24%,#183773 62%,#571e64); }
.insights-hero h1 span,.home-insights h2 span { color:#b4ceff; }
.insight-card-featured { border:1px solid #9fb6df; border-radius:14px; background:linear-gradient(125deg,#fff 60%,#dae6ff); box-shadow:0 16px 35px #122e5e20; }
.insight-topic-links a { border-color:#a9bad9; color:#233f7c; }
.insight-topic-links a[aria-current='page'],.insight-topic-links a:hover { color:#142f80; border-color:#3860cb; background:#e6edff; }
.insight-kind { background:#e9e2fd; border-color:#9174c6; color:#52328e; }
.insight-kind.is-news { background:#ffe3eb; border-color:#c16c89; color:#8a2344; }
.site-footer { border-color:#b9c8e3; background:#eaf0fc; }

@media (max-width:760px) {
  .detail-hero:not(.hero-dark) { padding-inline:22px; }
  .detail-hero,.hero-dark,.closing-cta { border-radius:10px; }
}
@media (forced-colors:active) {
  body,body.home-page,.announcement,.site-header,.mega-menu,.mega-feature,.detail-hero,.hero-dark,.home-hero,.home-page .ecosystem-band.container,.home-page .policy-section,.home-page .opensource-section.home-night,.home-journey,.marketplace-teaser,.closing-cta,.insights-hero,.article-hero,.home-insights,.site-footer { color:CanvasText; background:Canvas; border-color:CanvasText; box-shadow:none; }
  .detail-hero .hero-art,.hero-dark .hero-art,.home-hero-main::before,.home-hero::after { display:none; }
  :is(.detail-hero,.hero-dark,.home-hero,.home-night,.home-insights,.insights-hero,.mega-feature) :is(h1,h2,h3,p,span,small) { color:CanvasText; -webkit-text-fill-color:currentColor; }
  .button,.home-hero-action,:is(.detail-hero,.hero-dark,.home-night,.home-page .policy-section,.domestic-mission) .button,.button.primary:not(.hero-dark .button) { color:LinkText; background:Canvas; border-color:LinkText; box-shadow:none; }
  :is(.detail-cards article,.solution-card,.resource-card,.platform-card,.marketplace-card,.connection-card,.compatibility-contract article,.tech-brief article,.ecosystem-grid>*,.marketplace-review-grid article,.story-slider,.story-panel,.corporate-connections,.marketplace-review-section,.insight-card-featured) { background:Canvas; color:CanvasText; border-color:CanvasText; box-shadow:none; }
  :is(.story-tabs,.tour-tabs) button[aria-selected='true'],:is(.ecosystem-filters,.marketplace-filters,.connection-filters) button[aria-pressed='true'] { background:Highlight; color:HighlightText; border-color:Highlight; box-shadow:none; }
  :is(a,button,input,summary):focus-visible { outline-color:Highlight; }
}
