/* Observatory: a landing-only layer. Real reports keep their own semantics.
   Specificity is intentional: this page has historical inline !important rules. */
body.rs-observatory { --obs-ink:#242b25; --obs-muted:#63695f; --obs-paper:#f7f8f2; --obs-line:#d9ddd3; background:var(--obs-paper); }
body.rs-observatory .nav { background:rgba(247,248,242,.97)!important; border-bottom:1px solid var(--obs-line)!important; min-height:78px; padding-inline:max(28px,calc((100vw - 1240px)/2)); }
body.rs-observatory .nav-logo { font-size:21px!important; letter-spacing:-.8px!important; }
body.rs-observatory #signupBtn { background:var(--obs-ink)!important; color:#fff!important; border-color:var(--obs-ink)!important; padding:12px 18px; }
body.rs-observatory .nav-signin { font-weight:500; }
body.rs-observatory #heroSection { padding:54px 0 0!important; background:var(--obs-paper)!important; }
body.rs-observatory .hero-inner { max-width:1240px!important; width:calc(100% - 80px)!important; padding:0!important; grid-template-columns:minmax(0,1.02fr) minmax(0,1fr)!important; gap:0 56px!important; align-items:center!important; }
body.rs-observatory .hero-text { grid-column:1!important; grid-row:1!important; padding:8px 0 0; }
body.rs-observatory .hero-text .brand-signature-button { display:none!important; }
body.rs-observatory .hero-text .brand-signature-row { margin:0 0 27px!important; min-height:0; gap:0; }
body.rs-observatory .hero-text .badge { background:none!important; border:0!important; font:500 10px/1.6 'IBM Plex Mono',monospace!important; color:#5c6755!important; letter-spacing:.11em!important; margin:0!important; width:auto!important; max-width:none!important; }
body.rs-observatory .hero-text .badge::before { display:none; }
body.rs-observatory #heroSection .hero-text h1 { color:var(--obs-ink)!important; font:500 clamp(54px,5.9vw,80px)/1.08 'Public Sans',sans-serif!important; letter-spacing:-.06em!important; margin:0 0 26px!important; overflow-wrap:normal!important; }
body.rs-observatory .hero-text h1 span { color:#59694c!important; font-family:'Source Serif 4',Georgia,serif!important; font-style:italic!important; font-weight:400!important; letter-spacing:-.045em!important; background:none!important; -webkit-text-fill-color:currentColor!important; }
body.rs-observatory .hero-tension { font-size:16px!important; line-height:1.8!important; max-width:45ch; color:#61665e!important; }
body.rs-observatory .hero-tension strong { display:block; margin-top:7px; font-weight:500; color:#394633; }
.obs-hero-actions { display:flex; align-items:center; flex-wrap:wrap; gap:14px 23px; margin-top:30px; }
.obs-primary,.obs-secondary { display:inline-flex; align-items:center; justify-content:center; gap:25px; min-height:48px; text-decoration:none!important; font-size:13px; font-weight:500; }
.obs-primary { background:var(--obs-ink); color:#fff!important; padding:13px 22px; border:1px solid var(--obs-ink); border-radius:4px; }
.obs-primary:hover { background:#3d4936; border-color:#3d4936; }
.obs-secondary { color:var(--obs-ink)!important; border-bottom:1px solid #b3baaa; min-height:43px; gap:12px; }
.obs-secondary:hover { border-color:var(--obs-ink); }
.obs-hero-actions a span { font-size:20px; font-weight:400; }
.obs-offer-note { font-size:11px; color:#646b60; margin:13px 0 0; }
.obs-offer-note span { padding:0 6px; }
.obs-hero-footnote { margin-top:32px; padding-top:18px; border-top:1px solid var(--obs-line); display:flex; flex-direction:column; gap:8px; }
.obs-hero-footnote span:first-child { font:10px 'IBM Plex Mono',monospace; letter-spacing:.08em; color:#6b7465; }
.obs-hero-footnote span:last-child { font-size:12px; color:#5e6857; }
.obs-intelligence { grid-column:2; grid-row:1; margin:0; border:1px solid #d6dcd0; border-radius:12px; overflow:hidden; background:#fff; box-shadow:0 24px 65px -35px #35452c35,0 2px 6px #35452c04; min-width:0; text-align:left; }
.obs-figure-heading { padding:16px 24px; display:flex; justify-content:space-between; align-items:center; gap:12px; color:#5d6957; border-bottom:1px solid #e9ece4; }
.obs-figure-heading>span:first-child { font:500 9px 'IBM Plex Mono',monospace; letter-spacing:.1em; }
.obs-method-label { font-size:10px; color:#707669; }
.obs-map-heading { display:flex; align-items:center; justify-content:space-between; gap:16px; padding:22px 24px 8px; background:#fafbf7; }
.obs-map-heading p { font:500 26px/1.22 'Public Sans',sans-serif; letter-spacing:-.035em; color:#2b3526; margin:0; }
.obs-map-heading em { font:400 italic 30px/1.22 'Source Serif 4',Georgia,serif; color:#5d7050; letter-spacing:-.035em; }
.obs-map-reference { font:8px/1.5 'IBM Plex Mono',monospace; color:#6f7c63; text-align:center; letter-spacing:.08em; white-space:nowrap; }
.obs-map-reference span { display:inline-block; margin-inline:5px; font:16px/1.3 'Public Sans',sans-serif; color:#8d9d81; }
.obs-map { background:#fafbf7; padding:2px 0 6px; position:relative; }
.obs-map svg { display:block; width:100%; height:auto!important; max-height:240px; }
.obs-mobile-map { display:none; }
.obs-orbits { stroke:#c8d2bf; stroke-opacity:.5; }
.obs-edge { stroke:#adbba1; transition:stroke .25s,stroke-width .25s; }
.obs-node rect { fill:#fff; stroke:#dde3d6; transition:fill .25s,stroke .25s; }
.obs-node circle { fill:#96a588; }
.obs-node text { fill:#394632; font:500 12px 'Public Sans',sans-serif; }
.obs-node .obs-node-detail { font:9px 'Public Sans',sans-serif; fill:#6a745f; }
.obs-center rect { fill:#2f402e; stroke:#243523; stroke-width:1; }
.obs-center text { fill:#fff; font:500 15px 'Public Sans',sans-serif; }
.obs-center .obs-node-detail { font:7px 'IBM Plex Mono',monospace; fill:#c1cfb5; letter-spacing:.05em; }
.obs-sweep { transform-origin:280px 130px; opacity:0; }
.obs-view-controls { display:flex; gap:6px; padding:8px 18px; border-block:1px solid #e6eadf; }
.obs-view-controls button { flex:1; min-height:44px; padding:8px 5px; border-radius:5px; background:transparent; border:1px solid transparent; color:#646f5c; font:500 11px 'Public Sans',sans-serif; cursor:pointer; }
.obs-view-controls button span { margin-right:7px; font:9px 'IBM Plex Mono',monospace; color:#747e6b; }
.obs-view-controls button[aria-pressed="true"] { background:#edf1e7; border-color:#dae2d1; color:#31412b; }
.obs-view-controls button[aria-pressed="true"] span { color:#3c562d; }
.obs-view-controls button:hover { background:#f3f5ee; }
.obs-view-controls button:focus-visible { outline:2px solid #526d3e; outline-offset:2px; }
.obs-reading { min-height:116px; padding:20px 24px; display:flex; gap:16px; box-sizing:border-box; }
.obs-reading-index { font:9px 'IBM Plex Mono',monospace; color:#6a7660; white-space:nowrap; padding-top:4px; }
.obs-reading strong { display:block; font-size:14px; font-weight:600; line-height:1.5; color:#303b2a; margin-bottom:7px; }
.obs-reading p { margin:0; font-size:12px; line-height:1.75; color:#636d5c; }
.obs-figure-note { margin:0; padding:0 24px 16px; font-size:10px; line-height:1.6; color:#747a6c; max-width:none!important; }
.obs-intelligence[data-view="identity"] .obs-node-identity rect,
.obs-intelligence[data-view="vigilance"] .obs-node-vigilance rect,
.obs-intelligence[data-view="decision"] .obs-node rect { fill:#f0f4ea; stroke:#b6c8a6; }
.obs-intelligence[data-view="identity"] .obs-edge-identity,
.obs-intelligence[data-view="vigilance"] .obs-edge-vigilance,
.obs-intelligence[data-view="decision"] .obs-edge { stroke:#718b5c; stroke-width:1.7; }
.obs-source-band { grid-column:1/-1; grid-row:2; margin:42px 0 56px; }
body.rs-observatory #how.obs-start { display:block!important; grid-column:1!important; grid-row:3!important; padding:0!important; margin:0; scroll-margin-top:115px; width:auto; background:transparent!important; text-align:left!important; }
.obs-start h2 { font:400 clamp(31px,3vw,42px)/1.18 'Source Serif 4',Georgia,serif!important; letter-spacing:-.04em!important; color:var(--obs-ink); margin:0 0 18px; }
.obs-start h2 em { color:#657456; }
.obs-start>p:not(.editorial-kicker) { font-size:14px; color:var(--obs-muted); line-height:1.8; max-width:35ch; margin:0; }
.obs-workflow { padding:0; margin:30px 0 24px; list-style:none; }
.obs-workflow li { display:flex; gap:23px; padding:18px 0; border-top:1px solid var(--obs-line); }
.obs-workflow li>span { font:10px 'IBM Plex Mono',monospace; color:#6f7b62; margin-top:3px; }
.obs-workflow h3 { margin:0 0 6px; font-size:13px; color:#35402e; }
.obs-workflow p { margin:0; max-width:37ch; font-size:12px; line-height:1.7; color:#66705f; }
.obs-method-link { color:#435637; font-size:12px; text-decoration:underline; text-underline-offset:5px; }
.obs-method-link span { margin-left:12px; }
body.rs-observatory .hero-form-col { grid-column:2!important; grid-row:3!important; align-self:start; padding:30px!important; border-radius:8px!important; background:#fff!important; box-shadow:0 10px 32px -24px #35442a30; transform:none!important; }
body.rs-observatory .hero-form-col::before,body.rs-observatory .hero-form-col::after { display:none!important; }
body.rs-observatory .verify-heading h2 { font-size:25px!important; }
body.rs-observatory .verify-offer { font-size:10px!important; }
body.rs-observatory .hero-form-col :is(input,select) { border-radius:4px!important; }
.obs-report-disclosure { max-width:1240px; width:calc(100% - 80px); margin:40px auto 42px; border-block:1px solid var(--obs-line); scroll-margin-top:100px; }
.obs-report-disclosure>summary { padding:26px 0; display:flex; align-items:center; justify-content:space-between; gap:24px; list-style:none; cursor:pointer; color:#2d3827; font:400 27px 'Source Serif 4',Georgia,serif; }
.obs-report-disclosure>summary::-webkit-details-marker { display:none; }
.obs-report-disclosure>summary small { display:block; color:#68765c; font:9px 'IBM Plex Mono',monospace; letter-spacing:.1em; margin-bottom:10px; }
.obs-disclosure-label { font:12px 'Public Sans',sans-serif; display:flex; align-items:center; gap:24px; }
.obs-disclosure-label b { font-size:25px; font-weight:300; }
.obs-report-disclosure[open] .obs-disclosure-label b { transform:rotate(45deg); }
.obs-report-outline { display:grid; grid-template-columns:1fr 1.2fr; gap:26px 48px; padding:30px; margin:4px 0 28px; background:#fff; border:1px solid #dce2d3; border-radius:8px; text-align:left; }
.obs-report-outline h2 { font:400 30px/1.2 'Source Serif 4',Georgia,serif; letter-spacing:-.03em; color:#2d3926; margin:20px 0 14px; }
.obs-report-outline h2 em { color:#637955; }
.obs-report-outline header>p { margin:0; max-width:36ch; font-size:12px; line-height:1.8; color:#687260; }
.obs-report-contents { margin:0; }
.obs-report-contents>div { padding:14px 0; border-bottom:1px solid #e5e9df; }
.obs-report-contents>div:first-child { padding-top:0; }
.obs-report-contents>div:last-child { border-bottom:0; padding-bottom:0; }
.obs-report-contents dt { font-size:13px; font-weight:600; color:#38472e; }
.obs-report-contents dt span { font:10px 'IBM Plex Mono',monospace; color:#708462; margin-right:15px; }
.obs-report-contents dd { font-size:12px; line-height:1.7; color:#65705c; margin:6px 0 0 30px; }
.obs-report-outline>footer { grid-column:1/-1; display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:12px 24px; padding:16px 0 0; background:transparent; border-top:1px solid #e0e6d7; }
.obs-report-outline>footer>span { font-size:10px; line-height:1.6; color:#6b745f; }
.obs-report-outline>footer>a { font-size:12px; color:#344c26; text-underline-offset:4px; min-height:44px; display:inline-flex; align-items:center; gap:12px; }
body.rs-observatory #sourcesBar { padding:0!important; border-block:1px solid var(--obs-line)!important; background:transparent!important; }
body.rs-observatory .source-ledger { max-width:1240px; width:100%; display:grid; grid-template-columns:190px 1fr auto; gap:24px; padding-block:24px; text-align:left; }
body.rs-observatory .source-ledger p { font-size:12px; font-weight:500; color:#35412f; }
body.rs-observatory .source-ledger p small { display:block; font-size:10px; font-weight:400; color:#737a6b; margin-top:5px; }
body.rs-observatory .source-ledger ul { font-family:'Public Sans',sans-serif; justify-content:center; gap:12px 24px; }
body.rs-observatory .source-ledger li { font-size:13px; font-weight:600; color:#64705b; letter-spacing:-.02em; }
body.rs-observatory .source-ledger a { font-size:11px; min-height:44px; display:inline-flex; align-items:center; gap:8px; }
body.rs-observatory #vs { background:var(--obs-paper)!important; padding:66px 40px!important; }
body.rs-observatory .landing-value-inner { max-width:1240px; }
body.rs-observatory #security.landing-close { padding:44px 40px!important; background:#ecefe4!important; border-block-color:var(--obs-line); }
body.rs-observatory .landing-close-inner { max-width:1240px; }
body.rs-observatory #pricing.landing-offer { border-radius:6px; background:#2a362b; padding:32px 28px!important; min-height:0; }
body.rs-observatory #cta { display:none!important; }
body.rs-observatory>footer { background:#f7f8f2!important; border-top:0!important; padding:0!important; }
body.rs-observatory>footer .ft-brand:has(>.rs-brand-mark) .ft-logo::before { display:none; content:none; }
body.rs-observatory>footer .ft-wrap { max-width:1240px; padding:40px 0 24px; width:calc(100% - 80px); }
body.rs-observatory>footer .ft-grid { grid-template-columns:1.1fr 1.5fr .8fr; gap:50px; padding-bottom:24px; }
body.rs-observatory>footer .ft-col:nth-child(2) ul { display:grid; grid-template-columns:1fr 1fr; gap:0 20px; }
body.rs-observatory>footer .ft-col li { margin:0 0 9px; }
body.rs-observatory>footer .ft-col a { font-size:11px; line-height:1.6; }
body.rs-observatory>footer .ft-bottom { margin-top:20px; padding-top:20px; }
body.rs-observatory>footer .ft-disclaimer { font-size:10px; line-height:1.7; }
@media(prefers-reduced-motion:no-preference) {
  .obs-intelligence.is-sweeping .obs-sweep { animation:obs-sweep 2.4s ease-out both; }
  @keyframes obs-sweep { 0% { transform:rotate(-45deg); opacity:0; } 15% { opacity:1; } 90% { opacity:1; } 100% { transform:rotate(315deg); opacity:0; } }
  .obs-primary { transition:background .18s,border-color .18s; }
}
@media(min-width:1450px) { body.rs-observatory #heroSection { padding-top:68px!important; } }
@media(max-width:1100px) {
  body.rs-observatory .hero-inner { gap:0 36px!important; width:calc(100% - 56px)!important; }
  body.rs-observatory #heroSection .hero-text h1 { font-size:61px!important; }
  .obs-hero-actions { gap:10px 16px; }
  .obs-primary,.obs-secondary { font-size:12px; }
  .obs-hero-footnote { margin-top:26px; }
  .obs-report-disclosure { width:calc(100% - 56px); }
  body.rs-observatory .source-ledger { grid-template-columns:180px 1fr; gap:12px 24px; }
  body.rs-observatory .source-ledger a { grid-column:1/-1; justify-self:start; min-height:30px; }
}
@media(max-width:800px) {
  body.rs-observatory .nav { min-height:66px; padding-inline:22px; }
  body.rs-observatory #heroSection { padding-top:38px!important; }
  body.rs-observatory .hero-inner { grid-template-columns:minmax(0,1fr)!important; gap:0!important; width:calc(100% - 44px)!important; }
  body.rs-observatory .hero-text { grid-column:1!important; grid-row:1!important; padding:0; }
  body.rs-observatory #heroSection .hero-text h1 { font-size:clamp(44px,7.8vw,64px)!important; }
  body.rs-observatory .hero-text .brand-signature-row { margin-bottom:22px!important; }
  body.rs-observatory .hero-text .badge { font-size:9px!important; }
  body.rs-observatory .hero-tension { max-width:55ch; font-size:15px!important; }
  .obs-hero-footnote { display:none; }
  .obs-intelligence { grid-column:1; grid-row:2; width:100%; max-width:600px; justify-self:center; margin-top:35px; }
  .obs-map svg { height:auto!important; }
  .obs-figure-heading { padding:18px 22px; }
  .obs-map-heading { padding:22px 22px 0; }
  .obs-reading { padding:20px 22px; }
  .obs-figure-note { padding-inline:22px; }
  .obs-source-band { grid-row:3; margin:28px 0 38px; }
  body.rs-observatory .source-ledger { grid-template-columns:1fr; gap:16px; padding-block:22px; }
  body.rs-observatory .source-ledger ul { justify-content:flex-start; }
  body.rs-observatory #how.obs-start { grid-column:1!important; grid-row:4!important; margin-bottom:28px; }
  .obs-start h2 { font-size:34px!important; }
  .obs-start>p:not(.editorial-kicker) { max-width:48ch; }
  .obs-workflow { display:none; }
  .obs-method-link { display:inline-flex; margin-top:15px; min-height:32px; align-items:center; }
  body.rs-observatory .hero-form-col { grid-column:1!important; grid-row:5!important; padding:26px!important; }
  .obs-report-disclosure { width:calc(100% - 44px); margin-block:36px; }
  .obs-report-disclosure>summary { font-size:25px; flex-wrap:wrap; gap:15px; padding-block:24px; }
  .obs-disclosure-label { width:100%; justify-content:space-between; }
  .obs-report-outline { grid-template-columns:1fr; padding:22px; gap:24px; }
  .obs-report-outline h2 { font-size:27px; }
  body.rs-observatory #vs,body.rs-observatory #security.landing-close { padding:40px 22px!important; }
  body.rs-observatory>footer .ft-wrap { width:calc(100% - 44px); }
  body.rs-observatory>footer .ft-grid { grid-template-columns:1fr 1fr; gap:28px; }
  body.rs-observatory>footer .ft-col:first-child { grid-column:1/-1; }
  body.rs-observatory>footer .ft-col:nth-child(2) ul { display:block; }
}
@media(max-width:400px) {
  body.rs-observatory #heroSection .hero-text h1 { font-size:43px!important; }
  .obs-hero-actions { gap:12px; }
  .obs-primary { padding-inline:14px; gap:12px; }
  .obs-secondary { gap:8px; }
  .obs-reading { padding:18px; gap:12px; }
  .obs-reading-index { display:none; }
  .obs-figure-heading { padding-inline:18px; }
  .obs-method-label { font-size:9px; text-align:right; line-height:1.5; }
  .obs-map-heading { padding-inline:18px; }
  .obs-map-heading p { font-size:23px; }
  .obs-map-heading em { font-size:27px; }
  .obs-map-reference { display:none; }
  .obs-figure-note { padding-inline:18px; }
  .obs-view-controls { padding-inline:10px; }
  .obs-view-controls button { font-size:10px; }
  body.rs-observatory .hero-form-col { padding:22px 18px!important; }
}
/* At phone widths, the method stays readable without making the diagram wider. */
@media(max-width:600px) {
  .obs-reading { min-height:172px; }
  .obs-map svg { display:none; }
  .obs-mobile-map { display:block; padding:24px 18px 18px; }
  .obs-mobile-center { width:max-content; margin:0 auto; padding:12px 18px; border-radius:6px; background:#2f402e; color:#fff; text-align:center; position:relative; }
  .obs-mobile-center::after { content:''; position:absolute; width:1px; height:18px; background:#bdcbb0; top:100%; left:50%; }
  .obs-mobile-center strong { display:block; font-size:13px; font-weight:500; }
  .obs-mobile-center span { display:block; color:#d1ddc7; font-size:9px; margin-top:4px; }
  .obs-mobile-sources { display:grid; grid-template-columns:1fr 1fr; gap:10px; margin-top:18px; padding-top:14px; border-top:1px solid #bdcbb0; }
  .obs-mobile-node { padding:12px 9px; border:1px solid #dde3d6; border-radius:5px; background:#fff; min-width:0; }
  .obs-mobile-node strong { display:block; font-size:12px; font-weight:500; color:#394632; }
  .obs-mobile-node span { display:block; font-size:10px; line-height:1.5; margin-top:5px; color:#6a745f; }
  .obs-intelligence[data-view="identity"] .obs-mobile-node.obs-node-identity,
  .obs-intelligence[data-view="vigilance"] .obs-mobile-node.obs-node-vigilance,
  .obs-intelligence[data-view="decision"] .obs-mobile-node { background:#edf2e7; border-color:#b6c8a6; }
}
@media(prefers-reduced-motion:reduce) {
  .obs-intelligence .obs-edge,.obs-intelligence .obs-node rect { transition:none; }
}
