/* Nexus Observatory pages: host rules. On the canvas template the page is black edge to edge; with
   _nxo_hide_theme_chrome the theme's header and footer are hidden on that page only (Ohio and common themes). */
html,body.nxo-canvas-page,body.nxo-hide-theme-chrome{margin:0;background:var(--nxo-bg,#000);cursor:auto!important}
/* the ground and type outside .nxo-view (overscroll, consent, overlays) follow the visitor's theme and the kit's face, not
   black and the browser's serif (QA H-02, 2026-11-02); dark stays the default when no theme is chosen */
:root[data-theme=light],:root[data-theme=light] :is(body.nxo-canvas-page,body.nxo-hide-theme-chrome){background:var(--nxo-bg,#fff);color-scheme:light}
body.nxo-canvas-page,body.nxo-hide-theme-chrome{font-family:var(--nxo-sans,"IBM Plex Sans","IBM Plex Sans Fallback",system-ui,sans-serif)}
body.nxo-hide-theme-chrome .site-header,body.nxo-hide-theme-chrome #masthead,body.nxo-hide-theme-chrome .header,
body.nxo-hide-theme-chrome header.header,body.nxo-hide-theme-chrome .site-footer,body.nxo-hide-theme-chrome #colophon,
body.nxo-hide-theme-chrome .site-footer-wrap,body.nxo-hide-theme-chrome footer.site-footer,body.nxo-hide-theme-chrome .clb-subscribe-popup,
body.nxo-hide-theme-chrome .page-headline,body.nxo-hide-theme-chrome .breadcrumbs{display:none!important}
body.nxo-hide-theme-chrome .page-container,body.nxo-hide-theme-chrome .site-content,body.nxo-hide-theme-chrome .site-main{max-width:none!important;padding:0!important;margin:0!important}
.nxo-view{position:relative;isolation:isolate}
/* "Skip to content", printed by the canvas templates before the consent banner and the view (WCAG 2.4.1, audit L10): out of
   sight until focused, then over the bar and every overlay (token z-skip), never under the bar (WCAG 2.4.11) */
body .nx-skip{position:fixed;top:8px;inset-inline-start:8px;z-index:var(--nxo-z-skip,60);box-sizing:border-box;padding:10px 14px;border-radius:5px;background:var(--nxo-t1,#fff);color:var(--nxo-bg,#000);font:600 14px/1.2 var(--nxo-sans,"IBM Plex Sans",system-ui,sans-serif);text-decoration:none;transform:translateY(calc(-100% - 16px))}
body .nx-skip:focus,body .nx-skip:focus-visible{transform:none;outline:2px solid var(--nxo-accent,#FF1F1F);outline-offset:2px}
.nxo-view-notice{padding:12px 16px;border:1px dashed #ff3b2f;color:#ff3b2f;font:500 13px/1.4 ui-monospace,monospace}

/* The server-recorded page (.nxo-ssr: the page's own text, printed by the plugin for readers without scripts and shown
   until the view mounts, or for good when it cannot): a reading column below the fixed bar and sub-header, the type
   scale of the views, never full-width text under the bar (owner P0 2026-11-06). Tokens with fallbacks: this sheet
   comes first, before the bundle's tokens. A view's own rules (cov.css) still refine it. */
.nxo-ssr{box-sizing:border-box;max-width:880px;margin:0 auto;padding:calc(var(--nx-bar-end,104px) + 40px) 24px 64px;color:var(--t1,#f2f2f2);font:400 17px/1.6 var(--sans,"IBM Plex Sans",system-ui,sans-serif)}
.nxo-ssr h1{margin:14px 0 18px;font:500 clamp(32px,4.2vw,52px)/1.08 var(--sans,"IBM Plex Sans",system-ui,sans-serif);letter-spacing:-.02em}
.nxo-ssr h2{margin:44px 0 12px;font:500 clamp(22px,2.4vw,30px)/1.22 var(--sans,"IBM Plex Sans",system-ui,sans-serif);letter-spacing:-.01em}
.nxo-ssr h3{margin:28px 0 8px;font:600 18px/1.35 var(--sans,"IBM Plex Sans",system-ui,sans-serif)}
.nxo-ssr p,.nxo-ssr li,.nxo-ssr dd{max-width:72ch;color:var(--t2,#c9c9c9)}
.nxo-ssr ul,.nxo-ssr ol{padding-inline-start:1.2em}
.nxo-ssr .crumb{display:flex;flex-wrap:wrap;gap:6px;font:400 12px/1.4 var(--mono,"IBM Plex Mono",ui-monospace,monospace);color:var(--t3,#8c8c8c)}
.nxo-ssr .crumb a,.nxo-ssr a{color:var(--t1,#f2f2f2);text-decoration:underline;text-underline-offset:3px}
.nxo-ssr .crumb a{color:inherit}
.nxo-ssr img,.nxo-ssr svg{max-width:100%;height:auto}
.nxo-ssr table{border-collapse:collapse;font-size:15px}.nxo-ssr th,.nxo-ssr td{padding:6px 10px;border-bottom:1px solid var(--hair,rgba(127,127,127,.25));text-align:start}
@media (max-width:640px){.nxo-ssr{padding:calc(var(--nx-bar-end,96px) + 24px) 16px 40px;font-size:16px}}
