/* b/6e28ec410172/host.css */
/* 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}}

/* ui/dist/nxo-ui.3643bcbdca.css */
/* nexus-observatory-ui tokens: generated from site-src/system/tokens/tokens.json; do not edit. */
@font-face{font-family:"IBM Plex Sans";src:url(/_nxo/ui/dist/fonts/plex-sans-400.4ea58f2db7.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:"IBM Plex Sans";src:url(/_nxo/ui/dist/fonts/plex-sans-500.f77a509766.woff2) format("woff2");font-weight:500;font-style:normal;font-display:swap}
@font-face{font-family:"IBM Plex Sans";src:url(/_nxo/ui/dist/fonts/plex-sans-600.4d2eac2d26.woff2) format("woff2");font-weight:600;font-style:normal;font-display:swap}
@font-face{font-family:"IBM Plex Mono";src:url(/_nxo/ui/dist/fonts/plex-mono-400.4ef03b12ee.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:"IBM Plex Mono";src:url(/_nxo/ui/dist/fonts/plex-mono-500.2575194967.woff2) format("woff2");font-weight:500;font-style:normal;font-display:swap}
@font-face{font-family:"IBM Plex Sans Condensed";src:url(/_nxo/ui/dist/fonts/plex-sans-condensed-500.3ba975b546.woff2) format("woff2");font-weight:500;font-style:normal;font-display:swap}
@font-face{font-family:"IBM Plex Sans Fallback";src:local("Arial"),local("Liberation Sans"),local("Helvetica");size-adjust:101.82%;ascent-override:100.67%;descent-override:27.01%;line-gap-override:0%}
@font-face{font-family:"IBM Plex Mono Fallback";src:local("Courier New"),local("Liberation Mono"),local("Menlo");size-adjust:99.98%;ascent-override:102.52%;descent-override:27.50%;line-gap-override:0%}
:root{--nxo-bg:#000;--nxo-surface:#0a0a0a;--nxo-elev:#111;--nxo-muted:#141414;--nxo-hover:#1a1a1a;--nxo-hair:rgba(255,255,255,.08);--nxo-hair2:rgba(255,255,255,.20);--nxo-t1:#fff;--nxo-t2:#d4d4d4;--nxo-t3:#a3a3a3;--nxo-accent:#FF1F1F;--nxo-accent-bg:#3A0404;--nxo-btn-primary-hover:#FF4A3D;--nxo-code-string:#FF7A6E;--nxo-code-comment:#8c8c8c;--nxo-accent-graphic:#FF1F1F;--nxo-accent-hot:#FF4A3D;--nxo-accent-text:#FF1F1F;--nxo-accent-glint:#FFE1DD;--nxo-on-accent:#000;--nxo-accent-pressed:#D91414;--nxo-on-accent-pressed:#fff;--nxo-ink:255,255,255;--nxo-paper:0,0,0;--nxo-ramp-1:#1A0303;--nxo-ramp-2:#4D0606;--nxo-ramp-3:#8A0A0A;--nxo-ramp-4:#D91414;--nxo-ramp-5:#FF1F1F;--nxo-ramp-6:#FF7A6E;--nxo-ramp-7:#FFE1DD;color-scheme:dark;--nxo-r:5px;--nxo-rc:4px;--nxo-sans:"IBM Plex Sans","IBM Plex Sans Fallback",system-ui,sans-serif;--nxo-mono:"IBM Plex Mono","IBM Plex Mono Fallback",ui-monospace,monospace;--nxo-condensed:"IBM Plex Sans Condensed","IBM Plex Sans",sans-serif;--nxo-display:var(--nxo-mono);--nxo-cond:var(--nxo-sans);--nxo-numeric:tabular-nums slashed-zero;--nxo-scene-filter-light:invert(1) hue-rotate(178deg) saturate(3.4);--nxo-track-display-1:-0.045em;--nxo-track-display-2:-0.045em;--nxo-track-title:-0.012em;--nxo-track-lede:-0.008em;--nxo-track-sub:-0.008em;--nxo-track-body:0;--nxo-track-small:0;--nxo-track-eyebrow:0.16em;--nxo-track-nav:0.06em;--nxo-track-data:0;--nxo-track-button:-0.005em;--nxo-space-1:4px;--nxo-space-2:8px;--nxo-space-3:12px;--nxo-space-4:16px;--nxo-space-5:24px;--nxo-space-6:32px;--nxo-space-7:48px;--nxo-space-8:64px;--nxo-space-gutter:48px;--nxo-space-gutter-md:20px;--nxo-space-gutter-sm:16px;--nxo-space-section:120px;--nxo-space-section-md:88px;--nxo-space-page-max:1440px;--nxo-space-nav-h:64px;--nxo-dur-fast:150ms;--nxo-dur-base:250ms;--nxo-dur-slow:600ms;--nxo-ease-standard:cubic-bezier(0.2,0,0,1);--nxo-ease-out:cubic-bezier(0,0,0.2,1);--nxo-z-content:2;--nxo-z-caption:3;--nxo-z-sticky:10;--nxo-z-nav:20;--nxo-z-site-bar:30;--nxo-z-overlay:40;--nxo-z-consent:50;--nxo-shadow-menu:0 40px 80px rgba(var(--nxo-paper),.6);--nxo-shadow-marker:inset 2px 0 #FF1F1F}
:root[data-theme=light]{--nxo-bg:#fff;--nxo-surface:#f6f6f5;--nxo-elev:#efefee;--nxo-muted:#ebebea;--nxo-hover:#e5e5e4;--nxo-hair:rgba(0,0,0,.09);--nxo-hair2:rgba(0,0,0,.22);--nxo-t1:#0a0a0a;--nxo-t2:#2b2b2b;--nxo-t3:#5c5c5c;--nxo-accent:#FF1F1F;--nxo-accent-bg:#FFF0EE;--nxo-btn-primary-hover:#FF4A3D;--nxo-code-string:#8A0A0A;--nxo-code-comment:#6b6b6b;--nxo-accent-graphic:#FF1F1F;--nxo-accent-hot:#FF4A3D;--nxo-accent-text:#0a0a0a;--nxo-accent-glint:#FFE1DD;--nxo-on-accent:#000;--nxo-accent-pressed:#D91414;--nxo-on-accent-pressed:#fff;--nxo-ink:0,0,0;--nxo-paper:255,255,255;--nxo-ramp-1:#FFF0EE;--nxo-ramp-2:#FFC6BF;--nxo-ramp-3:#FF7A6E;--nxo-ramp-4:#FF1F1F;--nxo-ramp-5:#D91414;--nxo-ramp-6:#8A0A0A;--nxo-ramp-7:#4D0606;color-scheme:light}
@media (prefers-color-scheme:light){:root:not([data-theme]){--nxo-bg:#fff;--nxo-surface:#f6f6f5;--nxo-elev:#efefee;--nxo-muted:#ebebea;--nxo-hover:#e5e5e4;--nxo-hair:rgba(0,0,0,.09);--nxo-hair2:rgba(0,0,0,.22);--nxo-t1:#0a0a0a;--nxo-t2:#2b2b2b;--nxo-t3:#5c5c5c;--nxo-accent:#FF1F1F;--nxo-accent-bg:#FFF0EE;--nxo-btn-primary-hover:#FF4A3D;--nxo-code-string:#8A0A0A;--nxo-code-comment:#6b6b6b;--nxo-accent-graphic:#FF1F1F;--nxo-accent-hot:#FF4A3D;--nxo-accent-text:#0a0a0a;--nxo-accent-glint:#FFE1DD;--nxo-on-accent:#000;--nxo-accent-pressed:#D91414;--nxo-on-accent-pressed:#fff;--nxo-ink:0,0,0;--nxo-paper:255,255,255;--nxo-ramp-1:#FFF0EE;--nxo-ramp-2:#FFC6BF;--nxo-ramp-3:#FF7A6E;--nxo-ramp-4:#FF1F1F;--nxo-ramp-5:#D91414;--nxo-ramp-6:#8A0A0A;--nxo-ramp-7:#4D0606;color-scheme:light}}
.nxo-ui[data-theme=dark]{--nxo-bg:#000;--nxo-surface:#0a0a0a;--nxo-elev:#111;--nxo-muted:#141414;--nxo-hover:#1a1a1a;--nxo-hair:rgba(255,255,255,.08);--nxo-hair2:rgba(255,255,255,.20);--nxo-t1:#fff;--nxo-t2:#d4d4d4;--nxo-t3:#a3a3a3;--nxo-accent:#FF1F1F;--nxo-accent-bg:#3A0404;--nxo-btn-primary-hover:#FF4A3D;--nxo-code-string:#FF7A6E;--nxo-code-comment:#8c8c8c;--nxo-accent-graphic:#FF1F1F;--nxo-accent-hot:#FF4A3D;--nxo-accent-text:#FF1F1F;--nxo-accent-glint:#FFE1DD;--nxo-on-accent:#000;--nxo-accent-pressed:#D91414;--nxo-on-accent-pressed:#fff;--nxo-ink:255,255,255;--nxo-paper:0,0,0;--nxo-ramp-1:#1A0303;--nxo-ramp-2:#4D0606;--nxo-ramp-3:#8A0A0A;--nxo-ramp-4:#D91414;--nxo-ramp-5:#FF1F1F;--nxo-ramp-6:#FF7A6E;--nxo-ramp-7:#FFE1DD;color-scheme:dark}
.nxo-ui[data-theme=light]{--nxo-bg:#fff;--nxo-surface:#f6f6f5;--nxo-elev:#efefee;--nxo-muted:#ebebea;--nxo-hover:#e5e5e4;--nxo-hair:rgba(0,0,0,.09);--nxo-hair2:rgba(0,0,0,.22);--nxo-t1:#0a0a0a;--nxo-t2:#2b2b2b;--nxo-t3:#5c5c5c;--nxo-accent:#FF1F1F;--nxo-accent-bg:#FFF0EE;--nxo-btn-primary-hover:#FF4A3D;--nxo-code-string:#8A0A0A;--nxo-code-comment:#6b6b6b;--nxo-accent-graphic:#FF1F1F;--nxo-accent-hot:#FF4A3D;--nxo-accent-text:#0a0a0a;--nxo-accent-glint:#FFE1DD;--nxo-on-accent:#000;--nxo-accent-pressed:#D91414;--nxo-on-accent-pressed:#fff;--nxo-ink:0,0,0;--nxo-paper:255,255,255;--nxo-ramp-1:#FFF0EE;--nxo-ramp-2:#FFC6BF;--nxo-ramp-3:#FF7A6E;--nxo-ramp-4:#FF1F1F;--nxo-ramp-5:#D91414;--nxo-ramp-6:#8A0A0A;--nxo-ramp-7:#4D0606;color-scheme:light}
/* nexus-observatory-ui components (docs/30 §1, system/ui/README). Every value is a token (--nxo-*, generated from
   system/tokens/tokens.json); no colour literals. Scope: .nxo-ui, plus the Connect containers (.nxo-c, .nxo-native,
   .nxo-um) whose markup predates the package. Dark is the default; html[data-theme] or the device decides. */
:is(.nxo-ui, .nxo-c, .nxo-native, .nxo-um){
  color:var(--nxo-t1);font:400 14px/1.5 var(--nxo-sans);font-variant-numeric:var(--nxo-numeric);-webkit-font-smoothing:antialiased;
  --nxo-focus:0 0 0 2px var(--nxo-bg),0 0 0 4px var(--nxo-accent);
}
:is(.nxo-ui, .nxo-c, .nxo-native, .nxo-um) *,:is(.nxo-ui, .nxo-c, .nxo-native, .nxo-um) *::before,:is(.nxo-ui, .nxo-c, .nxo-native, .nxo-um) *::after{box-sizing:border-box}
:is(.nxo-ui, .nxo-c, .nxo-native, .nxo-um) :is(a,button,input,select,textarea,summary,[tabindex]):focus-visible{outline:2px solid var(--nxo-accent);outline-offset:2px}
.nxo-ui [hidden]{display:none!important}

/* ---- type ---- */
:is(.nxo-ui, .nxo-c) .nxo-eyebrow{display:inline-flex;align-items:center;gap:8px;margin:0;font:500 11px/1.4 var(--nxo-mono);letter-spacing:.16em;text-transform:uppercase;color:var(--nxo-t3)}
:is(.nxo-ui, .nxo-c) .nxo-eyebrow--dot::before,.nxo-ui .nxo-eyebrow[data-dot]::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--nxo-accent)}
.nxo-ui .nxo-title{margin:0;font:400 20px/1.15 var(--nxo-mono);letter-spacing:var(--nxo-track-display-1);color:var(--nxo-t1)}
.nxo-ui .nxo-text{margin:0;color:var(--nxo-t2);font-size:13.5px;line-height:1.55}
.nxo-ui .nxo-mono,.nxo-ui .nxo-num{font-family:var(--nxo-mono);font-variant-numeric:tabular-nums slashed-zero}
.nxo-ui .nxo-link,.nxo-ui .nxo-text a{color:var(--nxo-t1);text-decoration:underline;text-decoration-color:var(--nxo-accent);text-decoration-thickness:1px;text-underline-offset:.2em}
.nxo-ui .nxo-link:hover,.nxo-ui .nxo-text a:hover{text-decoration-thickness:2px}

/* ---- buttons: outlined by default; primary = red fill, black label; text = a link that is a button ---- */
:is(.nxo-ui, .nxo-c, .nxo-native, .nxo-um) .nxo-btn{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:40px;padding:0 16px;margin:0;
  border:1px solid var(--nxo-hair2);border-radius:var(--nxo-r);background:transparent;color:var(--nxo-t1);
  font:600 13.5px/1 var(--nxo-sans);letter-spacing:-.005em;text-decoration:none;white-space:nowrap;cursor:pointer;
  transition:background var(--nxo-dur-fast) var(--nxo-ease-standard),border-color var(--nxo-dur-fast) var(--nxo-ease-standard),color var(--nxo-dur-fast)}
:is(.nxo-ui, .nxo-c, .nxo-native, .nxo-um) .nxo-btn:hover{background:var(--nxo-hover);border-color:var(--nxo-t3)}
:is(.nxo-ui, .nxo-c, .nxo-native, .nxo-um) .nxo-btn:active{background:var(--nxo-muted)}
:is(.nxo-ui, .nxo-c, .nxo-native, .nxo-um) :is(.nxo-btn--primary,.nxo-btn[data-variant=primary]){background:var(--nxo-accent);border-color:var(--nxo-accent);color:var(--nxo-on-accent)}
:is(.nxo-ui, .nxo-c, .nxo-native, .nxo-um) :is(.nxo-btn--primary,.nxo-btn[data-variant=primary]):hover{background:var(--nxo-accent-hot);border-color:var(--nxo-accent-hot);color:var(--nxo-on-accent)}
:is(.nxo-ui, .nxo-c, .nxo-native, .nxo-um) :is(.nxo-btn--primary,.nxo-btn[data-variant=primary]):active{background:var(--nxo-accent-pressed);border-color:var(--nxo-accent-pressed);color:var(--nxo-on-accent-pressed)}
:is(.nxo-ui, .nxo-c, .nxo-native, .nxo-um) :is(.nxo-btn--ghost,.nxo-btn[data-variant=ghost]){border-color:transparent;color:var(--nxo-t2)}
:is(.nxo-ui, .nxo-c, .nxo-native, .nxo-um) :is(.nxo-btn--ghost,.nxo-btn[data-variant=ghost]):hover{color:var(--nxo-t1);background:var(--nxo-hover)}
:is(.nxo-ui, .nxo-c, .nxo-native, .nxo-um) .nxo-btn--text{min-height:32px;padding:0 4px;border-color:transparent;background:none;color:var(--nxo-t1);font-weight:500;text-decoration:underline;text-decoration-color:var(--nxo-accent);text-underline-offset:.2em}
:is(.nxo-ui, .nxo-c, .nxo-native, .nxo-um) .nxo-btn--text:hover{background:none;text-decoration-thickness:2px}
:is(.nxo-ui, .nxo-c, .nxo-native, .nxo-um) :is(.nxo-btn--sm,.nxo-btn[data-size=sm]){min-height:32px;padding:0 12px;font-size:12.5px}
:is(.nxo-ui, .nxo-c, .nxo-native, .nxo-um) :is(.nxo-btn--lg,.nxo-btn[data-size=lg]){min-height:48px;padding:0 20px;font-size:15px}
:is(.nxo-ui, .nxo-c, .nxo-native, .nxo-um) .nxo-btn--block{display:flex;width:100%}
:is(.nxo-ui, .nxo-c, .nxo-native, .nxo-um) :is(.nxo-btn[disabled],.nxo-btn[aria-disabled=true]){opacity:.45;cursor:not-allowed;pointer-events:none}
.nxo-ui .nxo-actions{display:flex;flex-wrap:wrap;gap:8px}

/* ---- forms ---- */
.nxo-ui .nxo-form{display:grid;gap:18px}
.nxo-ui .nxo-form__row{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px}
:is(.nxo-ui, .nxo-c, .nxo-native) .nxo-field{display:grid;gap:6px;min-width:0}
:is(.nxo-ui, .nxo-c, .nxo-native) .nxo-label{font:500 11px/1.3 var(--nxo-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--nxo-t2)}
:is(.nxo-ui, .nxo-c, .nxo-native) :is(.nxo-hint,.nxo-help){font-size:12.5px;line-height:1.45;color:var(--nxo-t3)}
:is(.nxo-ui, .nxo-c, .nxo-native) :is(.nxo-input,.nxo-select,.nxo-textarea){
  width:100%;min-height:42px;padding:9px 12px;margin:0;border:1px solid var(--nxo-hair2);border-radius:var(--nxo-r);
  background:var(--nxo-surface);color:var(--nxo-t1);font:400 14px/1.4 var(--nxo-sans);box-shadow:none;
  transition:border-color var(--nxo-dur-fast),background var(--nxo-dur-fast)}
:is(.nxo-ui, .nxo-c, .nxo-native) :is(.nxo-input,.nxo-select,.nxo-textarea)::placeholder{color:var(--nxo-t3);opacity:1}
:is(.nxo-ui, .nxo-c, .nxo-native) :is(.nxo-input,.nxo-select,.nxo-textarea):hover{border-color:var(--nxo-t3)}
:is(.nxo-ui, .nxo-c, .nxo-native) :is(.nxo-input,.nxo-select,.nxo-textarea):focus{outline:none;border-color:var(--nxo-accent);background:var(--nxo-bg);box-shadow:0 0 0 1px var(--nxo-accent)}
:is(.nxo-ui, .nxo-c, .nxo-native) :is(.nxo-input,.nxo-select,.nxo-textarea)[aria-invalid=true]{border-color:var(--nxo-t1);box-shadow:inset 3px 0 0 var(--nxo-accent)}
.nxo-ui .nxo-textarea,.nxo-c textarea.nxo-input{min-height:110px;resize:vertical}
.nxo-ui .nxo-select{appearance:none;padding-inline-end:36px;background-image:linear-gradient(45deg,transparent 50%,var(--nxo-t2) 50%),linear-gradient(135deg,var(--nxo-t2) 50%,transparent 50%);background-position:calc(100% - 18px) 50%,calc(100% - 13px) 50%;background-size:5px 5px;background-repeat:no-repeat}
/* errors: ink text with a red icon and the word, never colour alone, never red text */
:is(.nxo-ui, .nxo-c, .nxo-native) :is(.nxo-error,.nxo-err){display:flex;gap:8px;align-items:flex-start;font-size:12.5px;line-height:1.45;color:var(--nxo-t1)}
:is(.nxo-ui, .nxo-c, .nxo-native) :is(.nxo-error,.nxo-err):not(:empty)::before{content:"";flex:none;width:14px;height:14px;margin-top:1px;background:var(--nxo-accent);-webkit-mask:var(--nxo-ico-error) center/14px no-repeat;mask:var(--nxo-ico-error) center/14px no-repeat}
:is(.nxo-ui, .nxo-c, .nxo-native) :is(.nxo-errors,.nxo-summary){padding:14px 16px 14px 18px;border:1px solid var(--nxo-hair2);border-inline-start:3px solid var(--nxo-accent);border-radius:var(--nxo-r);background:var(--nxo-surface);color:var(--nxo-t1)}
:is(.nxo-ui, .nxo-c, .nxo-native) :is(.nxo-errors,.nxo-summary) :is(h2,h3,strong){display:block;margin:0 0 6px;font:600 13.5px/1.4 var(--nxo-sans)}
:is(.nxo-ui, .nxo-c, .nxo-native) :is(.nxo-errors,.nxo-summary) ul{margin:0;padding-inline-start:18px}
:is(.nxo-ui, .nxo-c, .nxo-native) :is(.nxo-errors,.nxo-summary) a{color:var(--nxo-t1);text-decoration:underline;text-decoration-color:var(--nxo-accent)}

/* checkbox and radio */
:is(.nxo-ui, .nxo-c, .nxo-native) :is(.nxo-check,.nxo-radio){display:grid;grid-template-columns:20px 1fr;gap:10px;align-items:start;font-size:13.5px;color:var(--nxo-t2)}
:is(.nxo-ui, .nxo-c, .nxo-native) :is(.nxo-check,.nxo-radio) input{appearance:none;width:20px;height:20px;margin:0;border:1px solid var(--nxo-hair2);background:var(--nxo-surface);display:grid;place-items:center;cursor:pointer}
:is(.nxo-ui, .nxo-c, .nxo-native) .nxo-check input{border-radius:4px}
:is(.nxo-ui, .nxo-c, .nxo-native) .nxo-radio input{border-radius:50%}
:is(.nxo-ui, .nxo-c, .nxo-native) :is(.nxo-check,.nxo-radio) input:hover{border-color:var(--nxo-t3)}
:is(.nxo-ui, .nxo-c, .nxo-native) .nxo-check input:checked{background:var(--nxo-accent);border-color:var(--nxo-accent)}
:is(.nxo-ui, .nxo-c, .nxo-native) .nxo-check input:checked::after{content:"";width:10px;height:6px;border:2px solid var(--nxo-on-accent);border-top:0;border-inline-end:0;transform:translateY(-1px) rotate(-45deg)}
:is(.nxo-ui, .nxo-c, .nxo-native) .nxo-radio input:checked{border-color:var(--nxo-accent)}
:is(.nxo-ui, .nxo-c, .nxo-native) .nxo-radio input:checked::after{content:"";width:10px;height:10px;border-radius:50%;background:var(--nxo-accent)}

/* switch: <span class="nxo-switch"><input role="switch" class="nxo-switch__input"><span class="nxo-switch__track"></span><span class="nxo-switch__state">Off</span></span> */
.nxo-ui .nxo-switch{position:relative;display:inline-flex;align-items:center;gap:10px;flex:none}
.nxo-ui .nxo-switch__input{position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:pointer;z-index:1}
.nxo-ui .nxo-switch__track{position:relative;width:38px;height:22px;border:1px solid var(--nxo-hair2);border-radius:11px;background:var(--nxo-muted);transition:background var(--nxo-dur-fast),border-color var(--nxo-dur-fast)}
.nxo-ui .nxo-switch__track::after{content:"";position:absolute;top:3px;inset-inline-start:3px;width:14px;height:14px;border-radius:50%;background:var(--nxo-t2);transition:transform var(--nxo-dur-fast) var(--nxo-ease-standard),background var(--nxo-dur-fast)}
.nxo-ui .nxo-switch__input:checked+.nxo-switch__track{background:var(--nxo-accent);border-color:var(--nxo-accent)}
.nxo-ui .nxo-switch__input:checked+.nxo-switch__track::after{transform:translateX(16px);background:var(--nxo-on-accent)}.nxo-ui .nxo-switch__input:checked+.nxo-switch__track:dir(rtl)::after{transform:translateX(-16px)}
.nxo-ui .nxo-switch__input:focus-visible+.nxo-switch__track{box-shadow:var(--nxo-focus)}
.nxo-ui .nxo-switch__input:disabled+.nxo-switch__track{opacity:.45}
.nxo-ui .nxo-switch__state{min-width:2.6em;font:500 11px var(--nxo-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--nxo-t2)}

/* ---- surfaces ---- */
.nxo-ui .nxo-card{padding:20px;border:1px solid var(--nxo-hair);border-radius:var(--nxo-r);background:var(--nxo-surface)}
/* framed surfaces: hairline frame, no corner marks (owner rule) */
.nxo-ui .nxo-panel{position:relative;padding:24px;border:1px solid var(--nxo-hair);background:var(--nxo-bg)}
.nxo-ui :is(.nxo-panel--ticks,.nxo-hudcard,.nxo-dialog,.nxo-sheet,.nxo-toast){background-color:var(--nxo-bg)}
.nxo-ui .nxo-hudcard{position:relative;padding:20px 20px 18px;border:1px solid var(--nxo-hair2);color:var(--nxo-t1)}
.nxo-ui .nxo-hudcard__head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin:0 0 12px;padding:0 0 10px;border-bottom:1px solid var(--nxo-hair)}

/* dialog, sheet, overlay, toast */
.nxo-ui .nxo-overlay{position:fixed;inset:0;z-index:var(--nxo-z-overlay);background:color-mix(in srgb,var(--nxo-paper-c) 72%,transparent)}
.nxo-ui .nxo-dialog{position:fixed;z-index:calc(var(--nxo-z-overlay) + 1);top:50%;left:50%;transform:translate(-50%,-50%);width:min(640px,calc(100vw - 32px));max-height:min(86vh,820px);display:flex;flex-direction:column;border:1px solid var(--nxo-hair2);color:var(--nxo-t1);box-shadow:var(--nxo-shadow-menu)}
.nxo-ui :is(.nxo-dialog__head,.nxo-dialog__foot){display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 20px}
.nxo-ui .nxo-dialog__head{border-bottom:1px solid var(--nxo-hair)}
.nxo-ui .nxo-dialog__foot{border-top:1px solid var(--nxo-hair);justify-content:flex-end;flex-wrap:wrap}
.nxo-ui .nxo-dialog__body{overflow:auto;padding:18px 20px;display:grid;gap:14px}
.nxo-ui .nxo-sheet{position:fixed;z-index:calc(var(--nxo-z-overlay) + 1);inset-inline-start:0;inset-inline-end:0;bottom:0;max-height:88vh;overflow:auto;padding:20px 16px calc(16px + env(safe-area-inset-bottom));border-top:1px solid var(--nxo-hair2)}
.nxo-ui .nxo-close{display:inline-grid;place-items:center;width:32px;height:32px;padding:0;border:1px solid transparent;border-radius:var(--nxo-r);background:none;color:var(--nxo-t2);font:400 20px/1 var(--nxo-sans);cursor:pointer}
.nxo-ui .nxo-close:hover{color:var(--nxo-t1);border-color:var(--nxo-hair2)}
.nxo-ui .nxo-toast{position:fixed;z-index:var(--nxo-z-consent);inset-inline-start:16px;bottom:16px;max-width:min(420px,calc(100vw - 32px));padding:12px 14px 12px 16px;border:1px solid var(--nxo-hair2);color:var(--nxo-t1);font-size:13px;line-height:1.45;box-shadow:var(--nxo-shadow-menu)}
.nxo-ui .nxo-toast::before{content:"";display:inline-block;width:6px;height:6px;margin:0 10px 1px 0;border-radius:50%;background:var(--nxo-accent);vertical-align:middle}

/* tabs and segmented control */
.nxo-ui .nxo-tabs{display:flex;gap:2px;border-bottom:1px solid var(--nxo-hair);overflow-x:auto}
.nxo-ui .nxo-tabs [role=tab]{min-height:40px;padding:0 14px;border:0;border-bottom:2px solid transparent;margin-bottom:-1px;background:none;color:var(--nxo-t3);font:500 12px var(--nxo-mono);letter-spacing:.08em;text-transform:uppercase;cursor:pointer}
.nxo-ui .nxo-tabs [role=tab]:hover{color:var(--nxo-t1)}
.nxo-ui .nxo-tabs [role=tab][aria-selected=true]{color:var(--nxo-t1);border-bottom-color:var(--nxo-accent)}
.nxo-ui .nxo-seg{display:inline-flex;padding:2px;gap:2px;border:1px solid var(--nxo-hair2);border-radius:var(--nxo-r)}
.nxo-ui .nxo-seg button{min-height:30px;padding:0 12px;border:0;border-radius:4px;background:none;color:var(--nxo-t3);font:500 12px var(--nxo-mono);letter-spacing:.04em;cursor:pointer}
.nxo-ui .nxo-seg button:hover{color:var(--nxo-t1)}
.nxo-ui .nxo-seg button[aria-pressed=true]{background:var(--nxo-hover);color:var(--nxo-t1);box-shadow:inset 0 -2px 0 var(--nxo-accent)}

/* table, badge, tag */
.nxo-ui .nxo-table{width:100%;border-collapse:collapse;font-size:13.5px}
.nxo-ui .nxo-table th{text-align:start;padding:0 14px 10px 0;border-bottom:1px solid var(--nxo-hair2);font:500 10.5px var(--nxo-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--nxo-t3)}
.nxo-ui .nxo-table td{padding:12px 14px 12px 0;border-bottom:1px solid var(--nxo-hair);color:var(--nxo-t2);vertical-align:top}
.nxo-ui .nxo-table td:first-child{color:var(--nxo-t1);font-weight:500}
.nxo-ui .nxo-table :is(td,th).nxo-num{text-align:end;font-family:var(--nxo-mono)}
:is(.nxo-ui, .nxo-c) .nxo-badge{display:inline-flex;align-items:center;gap:7px;height:22px;padding:0 8px;border:1px solid var(--nxo-hair2);border-radius:var(--nxo-rc);font:500 10.5px/1 var(--nxo-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--nxo-t2)}
:is(.nxo-ui, .nxo-c) .nxo-badge::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--nxo-accent)}
.nxo-ui .nxo-tag{display:inline-flex;align-items:center;height:22px;padding:0 8px;border:1px solid var(--nxo-hair2);border-radius:var(--nxo-rc);font:400 11px var(--nxo-mono);color:var(--nxo-t2)}

/* alert and empty state */
.nxo-ui .nxo-alert{display:flex;gap:12px;align-items:flex-start;padding:14px 16px;border:1px solid var(--nxo-hair2);border-radius:var(--nxo-r);background:var(--nxo-surface);color:var(--nxo-t1)}
.nxo-ui .nxo-alert::before{content:"";flex:none;width:18px;height:18px;background:var(--nxo-accent);-webkit-mask:var(--nxo-ico-error) center/18px no-repeat;mask:var(--nxo-ico-error) center/18px no-repeat}
.nxo-ui .nxo-alert--done::before{background:var(--nxo-t1);-webkit-mask-image:var(--nxo-ico-done);mask-image:var(--nxo-ico-done)}
.nxo-ui .nxo-alert--warning::before{-webkit-mask-image:var(--nxo-ico-warning);mask-image:var(--nxo-ico-warning)}
.nxo-ui .nxo-alert b{font:600 13.5px/1.4 var(--nxo-sans)}.nxo-ui .nxo-alert p{margin:4px 0 0;color:var(--nxo-t2);font-size:13.5px}
.nxo-ui .nxo-empty{padding:36px 24px;border:1px dashed var(--nxo-hair2);border-radius:var(--nxo-r)}
.nxo-ui .nxo-empty h3{margin:0 0 6px;font:600 15px/1.35 var(--nxo-sans)}.nxo-ui .nxo-empty p{margin:0 0 16px;color:var(--nxo-t2);font-size:13.5px}

/* media on the theme surface: no letterbox bars in either theme */
:is(.nxo-ui, .nxo-c) .nxo-media{display:block;width:100%;background:var(--nxo-surface);object-fit:cover}

/* monogram: a person without a photo (account header, menus). Ink only, 5px corners, mono initials or the person glyph. */
.nxo-monogram{display:inline-grid;place-items:center;flex:none;width:var(--nxo-mono-size,40px);height:var(--nxo-mono-size,40px);border:1px solid var(--nxo-hair2);border-radius:var(--nxo-r);background:var(--nxo-muted);color:var(--nxo-t1);font:500 calc(var(--nxo-mono-size,40px) * .36)/1 var(--nxo-mono);letter-spacing:.02em;text-transform:uppercase;overflow:hidden}
.nxo-monogram svg{width:55%;height:55%;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.nxo-monogram img{display:block;width:100%;height:100%;object-fit:contain}

/* guide: the plain-language help at the foot of a page (account sections and any view that ships guide data). Ink on
   the page surface, hairlines, 5px corners; red only on hover and focus. Headings stay in the document outline. */
.nxo-guide{margin:48px 0 0;padding:28px 0 0;border-top:1px solid var(--nxo-hair2);color:var(--nxo-t2);font:400 15px/1.6 var(--nxo-sans)}
.nxo-guide *{box-sizing:border-box}
.nxo-guide__kicker{margin:0 0 6px;font:500 11px/1.4 var(--nxo-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--nxo-t3)}
.nxo-guide .nxo-guide__title{margin:0;font:600 20px/1.3 var(--nxo-sans);letter-spacing:-.01em;color:var(--nxo-t1)}
.nxo-guide .nxo-guide__intro{max-width:68ch;margin:10px 0 0;color:var(--nxo-t2)}
.nxo-guide__part{margin:28px 0 0}
.nxo-guide .nxo-guide__h{margin:0 0 12px;font:600 15px/1.4 var(--nxo-sans);color:var(--nxo-t1)}
.nxo-guide__steps{display:grid;gap:0;margin:0;padding:0;list-style:none;counter-reset:nxo-guide;border:1px solid var(--nxo-hair);border-radius:var(--nxo-r);background:var(--nxo-surface)}
.nxo-guide__steps>li{counter-increment:nxo-guide;margin:0;display:grid;grid-template-columns:32px minmax(0,1fr);gap:4px 12px;padding:14px 16px;border-bottom:1px solid var(--nxo-hair)}
.nxo-guide__steps>li:last-child{border-bottom:0}
.nxo-guide__steps>li::before{content:counter(nxo-guide,decimal-leading-zero);grid-row:span 2;font:500 12px/1.9 var(--nxo-mono);color:var(--nxo-t3);font-variant-numeric:tabular-nums}
.nxo-guide__st{margin:0;font:600 14px/1.45 var(--nxo-sans);color:var(--nxo-t1)}
.nxo-guide__sx{margin:0;max-width:72ch;font-size:14px;color:var(--nxo-t2)}
.nxo-guide__faq{border-top:1px solid var(--nxo-hair)}
.nxo-guide__faq details{border-bottom:1px solid var(--nxo-hair)}
.nxo-guide__faq summary{position:relative;display:block;min-height:44px;padding:11px 32px 11px 0;cursor:pointer;list-style:none;font:500 14px/1.45 var(--nxo-sans);color:var(--nxo-t1)}
.nxo-guide__faq summary::-webkit-details-marker{display:none}
.nxo-guide__faq summary::after{content:"";position:absolute;inset-inline-end:6px;top:17px;width:7px;height:7px;border-inline-end:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:rotate(45deg)}
.nxo-guide__faq details[open] summary::after{transform:rotate(-135deg);top:21px}
.nxo-guide__faq summary:hover{color:var(--nxo-t1);text-decoration:underline;text-decoration-color:var(--nxo-accent);text-underline-offset:3px}
.nxo-guide__faq summary:focus-visible,.nxo-guide a:focus-visible{outline:2px solid var(--nxo-accent);outline-offset:2px}
.nxo-guide__faq details>p{max-width:72ch;margin:0 0 14px;font-size:14px;color:var(--nxo-t2)}
.nxo-guide__notes{margin:0;padding:0;list-style:none;display:grid;gap:8px}
.nxo-guide__notes>li{position:relative;max-width:72ch;padding-inline-start:18px;font-size:14px;color:var(--nxo-t2)}
.nxo-guide__notes>li::before{content:"";position:absolute;inset-inline-start:0;top:.8em;width:8px;height:1px;background:var(--nxo-t2)}
.nxo-guide__refs{margin:0;padding:0;list-style:none;display:grid;gap:10px}
.nxo-guide__refs>li{display:grid;gap:2px}
.nxo-guide__refs a{font-size:14px;color:var(--nxo-t1);text-decoration:underline;text-decoration-color:var(--nxo-hair2);text-underline-offset:3px}
.nxo-guide__refs a:hover{text-decoration-color:var(--nxo-accent)}
.nxo-guide__src{font:400 12px/1.4 var(--nxo-mono);color:var(--nxo-t3);overflow-wrap:anywhere}
@media (min-width:900px){.nxo-guide__cols{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:0 40px}}

/* icons (masks take the current token colour) */
:root{
  --nxo-ico-error:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%23000' stroke-width='1.6' stroke-linecap='round'%3E%3Ccircle cx='8' cy='8' r='6.4'/%3E%3Cpath d='M8 4.6v4.1M8 11.2v.2'/%3E%3C/svg%3E");
  --nxo-ico-warning:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%23000' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M8 1.8 15 14H1z'/%3E%3Cpath d='M8 6.5v3.6M8 12.2v.1'/%3E%3C/svg%3E");
  --nxo-ico-done:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%23000' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='8' cy='8' r='6.4'/%3E%3Cpath d='m5 8.2 2 2 4-4.4'/%3E%3C/svg%3E");
  --nxo-paper-c:rgb(var(--nxo-paper));
}
@media (prefers-reduced-motion:reduce){:is(.nxo-ui, .nxo-c, .nxo-native, .nxo-um) *{transition:none!important;animation:none!important}}

/* ui/icons/nxo-icons.c655fe8677.css */
/* Nexus Observatory icons (system/icons). Ink by default; red only for hover, focus and the active state. */
.nxo-i{display:inline-block;flex:none;width:24px;height:24px;vertical-align:middle;overflow:visible;color:inherit}
.nxo-i[data-s="16"]{width:16px;height:16px}
.nxo-i[data-s="20"]{width:20px;height:20px}
.nxo-i[data-s="32"]{width:32px;height:32px}
.nxo-i--muted{color:var(--t3,#a3a3a3)}
/* inline with text: sits on the text baseline, 8 px gap */
.nxo-i--inline{width:16px;height:16px;vertical-align:-.2em;margin-inline-end:8px}
/* a tile for cards and feature grids: a 40 px (48 px large) hairline square holding the icon in muted ink */
.nxo-ico{display:inline-grid;place-items:center;flex:none;width:40px;height:40px;border:1px solid var(--hair2,rgba(255,255,255,.2));border-radius:5px;color:var(--t2,#d4d4d4);transition:color .15s,border-color .15s}
.nxo-ico--lg{width:48px;height:48px}
.nxo-ico--sm{width:32px;height:32px}
.nxo-ico--bare{border:0;width:auto;height:auto;border-radius:0}
/* red only on hover, focus and the active state: hover on the card or link that holds the tile, or the state itself */
:is(a,button,.cell,.box,.card,.nxo-hot):is(:hover,:focus-visible) .nxo-ico,
:is(a,button):is(:hover,:focus-visible) > .nxo-i,
.nxo-ico[data-active],[aria-current] > .nxo-i,[aria-current] .nxo-ico,[aria-pressed=true] > .nxo-i{color:var(--accent-graphic,currentColor)}
:is(a,button,.cell,.box,.card,.nxo-hot):is(:hover,:focus-visible) .nxo-ico{border-color:var(--hair2,rgba(255,255,255,.2))}
/* eyebrow, chip and link rows that lead with an icon: 16 px icon, 8 px gap, aligned to the first line */
.nxo-eb{display:flex;align-items:center;gap:8px}
.nxo-eb .nxo-i{margin-inline-end:0}
/* the icon on a card that has a picture: floats over the picture's corner, 12 px in */
.nxo-ico--float{position:absolute;inset-block-start:12px;inset-inline-start:12px;z-index:2;background:var(--bg,#000)}
/* check and arrow lists: the icon takes the place of the bullet, 16 px with an 8 px gap */
.nxo-ul{list-style:none;margin:0;padding:0}
.nxo-ul>li{display:flex;align-items:flex-start;gap:8px}
.nxo-ul>li>.nxo-i{margin-block-start:.18em;color:var(--t3,#a3a3a3)}
/* direction-bearing icons turn with the writing direction */
:is([dir=rtl],:dir(rtl)) .nxo-i[data-dir]{transform:scaleX(-1)}
@media (prefers-reduced-motion:reduce){.nxo-ico{transition:none}}
@media (forced-colors:active){.nxo-i,.nxo-ico{color:CanvasText;forced-color-adjust:auto}}
/* ---- bindings for components that already exist ---- */
.is-dom span{display:inline-flex;align-items:center;gap:6px}
.lines a>.nxo-i{color:var(--t3)}
.lines a.cur>.nxo-i{color:var(--accent-graphic,currentColor)}
.lines a:is(:hover,:focus-visible)>.nxo-i{color:var(--accent-graphic,currentColor)}
.inds a:is(:hover,:focus-visible) .nxo-i{color:var(--accent-graphic,currentColor)}
.cell:is(:hover,:focus-visible) .nxo-ico--float,.tc:is(:hover,:focus-visible) .nxo-ico--float{color:var(--accent-graphic,currentColor)}
.route>.nxo-ico{align-self:flex-start;margin-block-end:8px}
.route:is(:hover,:focus-within) .nxo-ico{color:var(--accent-graphic,currentColor)}

/* ui/reader/dist/reader.e014301155.css */
/*! Nexus Observatory reader tools (nexus-observatory-ui): the dock and the effects of each preference. Tokens only. */
.nxo-reader { position: fixed; inset-inline-end: 20px; bottom: calc(20px + var(--nxo-r-lift, 0px)); z-index: calc(var(--nxo-z-overlay, 1000) - 1); font: 400 14px/1.5 var(--nxo-sans, "IBM Plex Sans", system-ui, sans-serif); color: var(--nxo-t1); display: flex; flex-direction: column; align-items: flex-end; gap: 12px; }
.nxo-reader * { box-sizing: border-box; }
.nxo-reader [hidden] { display: none !important; }
/* steps aside while the phone drawer, a modal, a sheet or the search is open (reader.js away()) */
.nxo-reader.nxo-reader--away { display: none; }
.nxo-reader-trigger { inline-size: 44px; block-size: 44px; display: inline-grid; place-items: center; border-radius: 5px; border: 1px solid var(--nxo-hair2); background: var(--nxo-surface); color: var(--nxo-t1); cursor: pointer; }
.nxo-reader-trigger:hover, .nxo-reader-trigger[aria-expanded="true"] { color: var(--nxo-accent); border-color: var(--nxo-accent); }
.nxo-reader button:focus-visible { outline: 2px solid var(--nxo-accent); outline-offset: 2px; }
.nxo-reader-sr { position: absolute; inline-size: 1px; block-size: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.nxo-reader-dialog { inline-size: min(320px, calc(100vw - 40px)); max-block-size: calc(100vh - 120px); overflow: auto; padding: 16px; border: 1px solid var(--nxo-hair2); border-radius: 5px; background: var(--nxo-surface); color: var(--nxo-t1); }
.nxo-reader-head { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin: 0 0 8px; }
.nxo-reader-title { margin: 0; font: 600 15px/1.3 var(--nxo-sans, system-ui, sans-serif); color: var(--nxo-t1); }
.nxo-reader-close { min-inline-size: 32px; min-block-size: 32px; border: 1px solid var(--nxo-hair); border-radius: 5px; background: transparent; color: var(--nxo-t1); font-size: 18px; line-height: 1; cursor: pointer; }
.nxo-reader-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 4px; }
.nxo-reader-tool { inline-size: 100%; min-block-size: 40px; display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 8px 12px; border: 1px solid var(--nxo-hair); border-radius: 5px; background: transparent; color: var(--nxo-t1); font: inherit; text-align: start; cursor: pointer; }
.nxo-reader-tool:hover { border-color: var(--nxo-hair2); background: var(--nxo-hover, transparent); }
.nxo-reader-tool[aria-pressed="true"] { border-color: var(--nxo-accent); }
.nxo-reader-tool[aria-pressed="true"] .nxo-reader-state { color: var(--nxo-accent-text, var(--nxo-accent)); }
.nxo-reader-state { font: 500 12px/1 var(--nxo-mono, "IBM Plex Mono", ui-monospace, monospace); color: var(--nxo-t2); }
.nxo-reader-reset { margin-block-start: 12px; min-block-size: 36px; padding: 6px 12px; border: 1px solid var(--nxo-hair2); border-radius: 5px; background: transparent; color: var(--nxo-t1); font: inherit; cursor: pointer; }
.nxo-reader-note { margin: 8px 0 0; font-size: 12px; color: var(--nxo-t3); }
.nxo-reader-guide { position: fixed; inset-inline: 0; top: 0; block-size: 32px; pointer-events: none; z-index: calc(var(--nxo-z-overlay, 1000) - 2); border-block: 2px solid var(--nxo-accent); background: transparent; }
@media (prefers-reduced-motion: reduce) { .nxo-reader * { transition: none !important; } }
/* The preferences, on <html> (set before paint by the inline boot). */
html.nxo-r-size { font-size: calc(100% * var(--nxo-r-scale, 1)); }
html.nxo-r-size body { font-size: calc(1em * var(--nxo-r-scale, 1)); }
html.nxo-r-lines body, html.nxo-r-lines body * { line-height: 1.8 !important; }
html.nxo-r-spacing body, html.nxo-r-spacing body * { letter-spacing: .08em !important; word-spacing: .16em !important; }
html.nxo-r-contrast { --nxo-t2: var(--nxo-t1); --nxo-t3: var(--nxo-t1); --nxo-hair: var(--nxo-t2); --nxo-hair2: var(--nxo-t1); --nxo-muted: var(--nxo-t1); }
html.nxo-r-motion *, html.nxo-r-motion *::before, html.nxo-r-motion *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; scroll-behavior: auto !important; }
html.nxo-r-font body, html.nxo-r-font body *:not(code):not(pre):not(kbd):not(samp) { font-family: system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif !important; }
html.nxo-r-links a { text-decoration: underline !important; text-underline-offset: 3px; }
html.nxo-r-focus :focus-visible { outline: 3px solid var(--nxo-accent) !important; outline-offset: 3px !important; }
html.nxo-r-cursor, html.nxo-r-cursor * { cursor: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='36' height='36' viewBox='0 0 24 24'%3E%3Cpath d='M4 2l15 9-6.5 1.5L16 20l-3 1.5-3.5-7.5L4 18z' fill='%23000' stroke='%23fff' stroke-width='1.2'/%3E%3C/svg%3E") 4 2, auto !important; }

/* b/6e28ec410172/system/present/glance.css */
/* At a glance (glance.js): the page's most important content in boxes between its 3D hero and its story. Kit tokens only,
   both themes, 5px corners, hairlines, no fills of colour; red only on the focus and the current chapter mark. */
.nxo-glance .sub{max-width:72ch}
.nxo-glance .gl-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;border:1px solid var(--hair);border-radius:var(--r,5px);overflow:clip;margin-top:32px}
.nxo-glance .gl-box{background:var(--bg);padding:24px;box-shadow:0 0 0 1px var(--hair);min-width:0}
.nxo-glance .gl-wide{grid-column:span 2}
.nxo-glance .gl-k{margin:0 0 12px;font:500 11px/1.4 var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--t3)}
.nxo-glance h3{margin:0 0 8px;font:500 18px/1.3 var(--sans);color:var(--t1)}
.nxo-glance .gl-box p{margin:0;color:var(--t2);font-size:14px;line-height:1.55}
.nxo-glance ul,.nxo-glance ol{list-style:none;margin:0;padding:0}
.nxo-glance li{padding:7px 0;border-top:1px solid var(--hair);color:var(--t2);font-size:14px;line-height:1.4}
.nxo-glance li:first-child{border-top:0;padding-top:0}
.nxo-glance dl{margin:0;display:grid;gap:10px}
.nxo-glance dl div{display:grid;gap:2px}
.nxo-glance dt{font:500 11px/1.4 var(--mono);letter-spacing:.06em;color:var(--t3)}
.nxo-glance dd{margin:0;font:400 13px/1.45 var(--mono);color:var(--t1);overflow-wrap:anywhere}
.nxo-glance .gl-ch{counter-reset:ch}
.nxo-glance .gl-ch li{counter-increment:ch;display:flex;gap:10px}
.nxo-glance .gl-ch li:before{content:counter(ch,decimal-leading-zero);font:500 11px/1.9 var(--mono);color:var(--t3);min-width:2ch}
.nxo-glance .gl-ch li.off{color:var(--t3)}
.nxo-glance .gl-meta{margin-top:12px!important;font:500 11px/1.4 var(--mono)!important;letter-spacing:.06em;color:var(--t3)!important}
.nxo-glance .gl-meta .nxo-num{font-variant-numeric:tabular-nums slashed-zero;color:var(--t1)}
.nxo-glance .cta{display:flex;flex-wrap:wrap;gap:8px}
@media (max-width:1000px){.nxo-glance .gl-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:640px){.nxo-glance .gl-grid{grid-template-columns:1fr}.nxo-glance .gl-wide{grid-column:auto}.nxo-glance .gl-box{padding:20px 16px}}

/* b/6e28ec410172/kit.css */
.nxo-view{--bg:#000;--surface:#0a0a0a;--elev:#111;--muted:#141414;--hover:#1a1a1a;--hair:rgba(255,255,255,.08);--hair2:rgba(255,255,255,.20);--scrim:rgba(0,0,0,.88);--t1:#fff;--t2:#d4d4d4;--t3:#a3a3a3;--accent:#FF1F1F;--accent-bg:#3A0404;--btn-primary-hover:#FF4A3D;--code-string:#FF7A6E;--code-comment:#8c8c8c;--accent-graphic:#FF1F1F;--accent-hot:#FF4A3D;--accent-text:#FF1F1F;--accent-glint:#FFE1DD;--on-accent:#000;--accent-pressed:#D91414;--on-accent-pressed:#fff;--ref-ink:#d4d4d4;--ref-line:rgba(255,255,255,.44);--ink:255,255,255;--paper:0,0,0;--ramp-1:#1A0303;--ramp-2:#4D0606;--ramp-3:#8A0A0A;--ramp-4:#D91414;--ramp-5:#FF1F1F;--ramp-6:#FF7A6E;--ramp-7:#FFE1DD;color-scheme:dark;--r:5px;--rc:4px;--sans:"IBM Plex Sans","IBM Plex Sans Fallback",system-ui,sans-serif;--mono:"IBM Plex Mono","IBM Plex Mono Fallback",ui-monospace,monospace;--condensed:"IBM Plex Sans Condensed","IBM Plex Sans",sans-serif;--display:var(--mono);--cond:var(--sans);--numeric:tabular-nums slashed-zero;--scene-filter-light:invert(1) hue-rotate(178deg) saturate(3.4);--track-display-1:-0.045em;--track-display-2:-0.045em;--track-title:-0.012em;--track-lede:-0.008em;--track-sub:-0.008em;--track-body:0;--track-small:0;--track-eyebrow:0.16em;--track-nav:0.06em;--track-data:0;--track-button:-0.005em;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:24px;--space-6:32px;--space-7:48px;--space-8:64px;--space-gutter:48px;--space-gutter-md:20px;--space-gutter-sm:16px;--space-section:120px;--space-section-md:88px;--space-page-max:1440px;--space-nav-h:64px;--dur-fast:150ms;--dur-base:250ms;--dur-slow:600ms;--ease-standard:cubic-bezier(0.2,0,0,1);--ease-out:cubic-bezier(0,0,0.2,1);--z-content:2;--z-caption:3;--z-sticky:10;--z-nav:20;--z-site-bar:30;--z-overlay:40;--z-consent:50;--z-skip:60;--shadow-menu:0 40px 80px rgba(var(--paper),.6);--shadow-marker:inset 2px 0 #FF1F1F}
:root[data-theme=light] .nxo-view{--bg:#fff;--surface:#f6f6f5;--elev:#efefee;--muted:#ebebea;--hover:#e5e5e4;--hair:rgba(0,0,0,.09);--hair2:rgba(0,0,0,.22);--scrim:rgba(255,255,255,.9);--t1:#0a0a0a;--t2:#2b2b2b;--t3:#5c5c5c;--accent:#FF1F1F;--accent-bg:#FFF0EE;--btn-primary-hover:#FF4A3D;--code-string:#8A0A0A;--code-comment:#6b6b6b;--accent-graphic:#FF1F1F;--accent-hot:#FF4A3D;--accent-text:#0a0a0a;--accent-glint:#FFE1DD;--on-accent:#000;--accent-pressed:#D91414;--on-accent-pressed:#fff;--ref-ink:#2b2b2b;--ref-line:rgba(0,0,0,.46);--ink:0,0,0;--paper:255,255,255;--ramp-1:#FFF0EE;--ramp-2:#FFC6BF;--ramp-3:#FF7A6E;--ramp-4:#FF1F1F;--ramp-5:#D91414;--ramp-6:#8A0A0A;--ramp-7:#4D0606;color-scheme:light}
@media (prefers-color-scheme:light){:root:not([data-theme]) .nxo-view{--bg:#fff;--surface:#f6f6f5;--elev:#efefee;--muted:#ebebea;--hover:#e5e5e4;--hair:rgba(0,0,0,.09);--hair2:rgba(0,0,0,.22);--scrim:rgba(255,255,255,.9);--t1:#0a0a0a;--t2:#2b2b2b;--t3:#5c5c5c;--accent:#FF1F1F;--accent-bg:#FFF0EE;--btn-primary-hover:#FF4A3D;--code-string:#8A0A0A;--code-comment:#6b6b6b;--accent-graphic:#FF1F1F;--accent-hot:#FF4A3D;--accent-text:#0a0a0a;--accent-glint:#FFE1DD;--on-accent:#000;--accent-pressed:#D91414;--on-accent-pressed:#fff;--ref-ink:#2b2b2b;--ref-line:rgba(0,0,0,.46);--ink:0,0,0;--paper:255,255,255;--ramp-1:#FFF0EE;--ramp-2:#FFC6BF;--ramp-3:#FF7A6E;--ramp-4:#FF1F1F;--ramp-5:#D91414;--ramp-6:#8A0A0A;--ramp-7:#4D0606;color-scheme:light}
}
:root[data-brand=protocol] .nxo-view{--accent:#00E07A;--accent-bg:#00160C;--btn-primary-hover:#4DF0A0;--code-string:#3D9BFF;--accent-graphic:#00E07A;--accent-hot:#4DF0A0;--accent-text:#00E07A;--accent-glint:#E6FBF0;--on-accent:#000;--accent-pressed:#00B86B;--on-accent-pressed:#000;--accent-2:#3D9BFF;--accent-2-bg:#06142A;--accent-2-text:#3D9BFF;--ramp-1:#00160C;--ramp-2:#003D22;--ramp-3:#00663B;--ramp-4:#00A35F;--ramp-5:#00E07A;--ramp-6:#7DF0B5;--ramp-7:#D9FCEB;--display:var(--sans);--display-weight:500;--track-display-1:-0.035em;--track-display-2:-0.03em;--eyebrow-font:var(--condensed);--display-1-size:clamp(40px,5vw,76px);--still-filter:hue-rotate(150deg) saturate(1.15);--shadow-marker:inset 2px 0 #00E07A;--scene-filter-light:invert(1) hue-rotate(178deg) saturate(3.4) hue-rotate(150deg) saturate(1.15);--pd-bar-h:56px;--pd-side-w:264px;--pd-otp-w:220px;--pd-measure:74ch;--pd-ctl-h:34px;--pd-gap:40px}
:root[data-brand=protocol][data-theme=light] .nxo-view{--accent:#00A35F;--accent-bg:#E6FBF0;--btn-primary-hover:#00B86B;--code-string:#0B5CD6;--accent-graphic:#00A35F;--accent-hot:#00B86B;--accent-text:#007A47;--accent-glint:#E6FBF0;--on-accent:#000;--accent-pressed:#007A47;--on-accent-pressed:#fff;--accent-2:#0B5CD6;--accent-2-bg:#EAF2FE;--accent-2-text:#0B5CD6;--ramp-1:#E6FBF0;--ramp-2:#B5F2D2;--ramp-3:#5FD69A;--ramp-4:#00A35F;--ramp-5:#007A47;--ramp-6:#00522F;--ramp-7:#002E1A}
@media (prefers-color-scheme:light){:root[data-brand=protocol]:not([data-theme]) .nxo-view{--accent:#00A35F;--accent-bg:#E6FBF0;--btn-primary-hover:#00B86B;--code-string:#0B5CD6;--accent-graphic:#00A35F;--accent-hot:#00B86B;--accent-text:#007A47;--accent-glint:#E6FBF0;--on-accent:#000;--accent-pressed:#007A47;--on-accent-pressed:#fff;--accent-2:#0B5CD6;--accent-2-bg:#EAF2FE;--accent-2-text:#0B5CD6;--ramp-1:#E6FBF0;--ramp-2:#B5F2D2;--ramp-3:#5FD69A;--ramp-4:#00A35F;--ramp-5:#007A47;--ramp-6:#00522F;--ramp-7:#002E1A}
}
.nxo-view *{box-sizing:border-box}
.nxo-view{margin:0;background:var(--bg);color:var(--t1);font:400 14px/1.5 var(--sans);-webkit-font-smoothing:antialiased}
.nxo-view a{color:inherit;text-decoration:none}
.nxo-view .w{max-width:1440px;margin:0 auto;padding:0 48px}
.nxo-view .eyebrow{font:500 11px/1.4 var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--t3)}
.nxo-view .eyebrow b{color:var(--accent-text);font-weight:500}
.nxo-view .nav{position:fixed;inset:0 0 auto 0;z-index:20;background:var(--bg);border-bottom:1px solid var(--hair)}
.nxo-view .nav>.w{display:flex;align-items:center;height:64px;gap:40px}
.nxo-view .logo{display:flex;align-items:center;gap:10px;font:600 15px/1 var(--sans);letter-spacing:.04em;text-transform:uppercase}
.nxo-view .logo i{width:8px;height:8px;border-radius:50%;background:var(--accent)}
.nxo-view .links{display:flex;gap:28px;font-size:14px;color:var(--t3)}
.nxo-view .links a:hover{color:var(--t1)}
.nxo-view .sp{flex:1}
.nxo-view .navr{display:flex;gap:8px;align-items:center}
.nxo-view .btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:36px;padding:0 14px;border-radius:var(--r);font:500 14px/1 var(--sans);border:1px solid transparent;transition:background .15s,border-color .15s;white-space:nowrap}
.nxo-view .btn[data-size=lg]{height:44px;padding:0 18px;font-size:15px}
.nxo-view .btn[data-variant=primary]{background:var(--accent);color:var(--on-accent)}
.nxo-view .btn[data-variant=primary]:hover{background:var(--btn-primary-hover)}
.nxo-view .btn[data-variant=secondary]{border-color:var(--hair2);color:var(--t1)}
.nxo-view .btn[data-variant=secondary]:hover{background:var(--hover)}
.nxo-view .btn[data-variant=ghost]{color:var(--t2);background:transparent}
.nxo-view .btn[data-variant=ghost]:hover{color:var(--t1);background:var(--hover)}
.nxo-view .btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.nxo-view .badge{display:inline-flex;align-items:center;gap:7px;height:22px;padding:0 8px;border-radius:var(--rc);border:1px solid var(--hair2);font:500 10.5px/1 var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--t2)}
.nxo-view .badge:before{content:"";width:6px;height:6px;border-radius:50%;background:var(--accent)}
.nxo-view .ui-ref{display:inline-flex;align-items:center;gap:6px;height:22px;padding:0 8px;border-radius:var(--rc);border:1px dashed var(--ref-line);font:500 10.5px/1 var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--ref-ink);white-space:nowrap;vertical-align:middle}
.nxo-view .hero{position:relative;height:100vh;min-height:760px;overflow:hidden;border-bottom:1px solid var(--hair)}
.nxo-view #globe{position:absolute;inset:0;width:100%;height:100%}
.nxo-view .hero .w{position:relative;z-index:2;height:100%;display:flex;flex-direction:column;justify-content:center;pointer-events:none}
.nxo-view .hero .w *{pointer-events:auto}
.nxo-view .hrow{display:flex;gap:14px;align-items:center}
.nxo-view h1{margin:22px 0 20px;font:500 clamp(40px,4.4vw,64px)/1.04 var(--sans);letter-spacing:-.03em;max-width:18ch}
.nxo-view .lede{max-width:60ch;font-size:17px;line-height:1.55;color:var(--t2);margin:0 0 32px}
.nxo-view .cta{display:flex;gap:10px;flex-wrap:wrap}
.nxo-view .facts{display:flex;gap:0;margin:44px 0 0;padding:0;border-top:1px solid var(--hair);max-width:560px}
.nxo-view .facts div{padding:14px 28px 0 0}
.nxo-view .facts dt{font:500 11px var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--t3)}
.nxo-view .facts dd{margin:6px 0 0;font:500 15px var(--mono);font-variant-numeric:tabular-nums}
.nxo-view .band .w{display:grid;grid-template-columns:repeat(4,1fr)}
.nxo-view .m{padding:32px 24px 28px 0;border-inline-start:1px solid var(--hair);padding-inline-start:24px}
.nxo-view .m:first-child{border-inline-start:0;padding-inline-start:0}
.nxo-view .m b{display:block;font:500 32px/1.1 var(--mono);letter-spacing:-.01em;font-variant-numeric:tabular-nums;margin:10px 0 6px}
.nxo-view .m:first-child b{color:var(--accent)}
.nxo-view .m span{font-size:13px;color:var(--t3)}
.nxo-view .band{border-bottom:1px solid var(--hair)}
.nxo-view section.s{padding:120px 0;border-bottom:1px solid var(--hair)}
.nxo-view h2{margin:14px 0 14px;font:500 clamp(30px,2.8vw,40px)/1.12 var(--sans);letter-spacing:-.028em;max-width:24ch}
.nxo-view .sub{font-size:15px;line-height:1.55;color:var(--t2);max-width:62ch;margin:0 0 48px}
.nxo-view .cells{display:grid;gap:1px;background:transparent;border:1px solid var(--hair);overflow:clip}
.nxo-view .cells>*{box-shadow:0 0 0 1px var(--hair)}
.nxo-view .cell{position:relative;background:var(--bg);padding:24px;display:flex;flex-direction:column;min-height:260px;overflow:hidden;transition:background .15s}
.nxo-view .cell:hover{background:var(--surface)}
.nxo-view .cell h3{margin:auto 0 6px;font:500 15px/1.35 var(--sans);letter-spacing:-.01em}
.nxo-view .cell p{margin:0;font-size:13px;line-height:1.5;color:var(--t2);max-width:46ch}
.nxo-view .bento{grid-template-columns:repeat(6,1fr);grid-auto-rows:280px}
.nxo-view .c3{grid-column:span 3}
.nxo-view .c2{grid-column:span 2}
.nxo-view .c4{grid-column:span 4}
.nxo-view .tall{grid-row:span 2}
.nxo-view .viz{position:absolute;inset-inline-start:0;inset-inline-end:0;top:44px;height:calc(100% - 150px);width:100%;pointer-events:none}
.nxo-view .states{position:absolute;inset-inline-start:24px;inset-inline-end:24px;top:64px;display:flex;flex-direction:column;gap:10px;font:400 12px var(--mono)}
.nxo-view .st{display:flex;align-items:center;gap:12px;color:var(--t3)}
.nxo-view .st i{width:7px;height:7px;border-radius:50%;border:1px solid currentColor;flex:none}
.nxo-view .st.on{color:var(--t1)}
.nxo-view .st.on i{background:var(--t1);border-color:var(--t1)}
.nxo-view .st.cur{color:var(--t1)}
.nxo-view .st.cur i{background:var(--accent);border-color:var(--accent-text)}
.nxo-view .st em{font-style:normal;color:var(--t3);margin-inline-start:auto;font-size:11px}
.nxo-view .prod{grid-template-columns:repeat(4,1fr)}
.nxo-view .prod .cell{min-height:220px}
.nxo-view .prod svg{width:40px;height:40px;stroke:var(--t1);fill:none;stroke-width:1.2}
.nxo-view .prod .cell:hover svg{stroke:var(--accent)}
.nxo-view .prod .go{margin-top:14px;font:500 12px var(--mono);color:var(--t3)}
.nxo-view .prod .cell:hover .go{color:var(--t1)}
.nxo-view .open{display:grid;grid-template-columns:1fr 1.1fr;gap:64px;align-items:center}
.nxo-view .ol{list-style:none;padding:0;margin:0;border-top:1px solid var(--hair)}
.nxo-view .ol li{display:grid;grid-template-columns:170px 1fr;gap:18px;padding:16px 0;border-bottom:1px solid var(--hair)}
.nxo-view .ol b{font-weight:500;font-size:14px}
.nxo-view .ol span{color:var(--t2);font-size:13.5px}
.nxo-view .code{border-radius:var(--r);border:1px solid var(--hair2);background:var(--surface);overflow:hidden;font:400 13px/1.75 var(--mono)}
.nxo-view .code .bar{display:flex;justify-content:space-between;align-items:center;padding:10px 16px;border-bottom:1px solid var(--hair);color:var(--t3);font-size:12px}
.nxo-view .code pre{margin:0;padding:18px 20px;font:inherit;color:var(--t2);white-space:pre}
.nxo-view .k{color:var(--t1)}
.nxo-view .s1{color:var(--code-string)}
.nxo-view .n{color:var(--t2);text-decoration:underline;text-decoration-color:var(--hair2)}
.nxo-view .c{color:var(--code-comment)}
.nxo-view :is(footer.legal,footer:not([class])){padding:40px 0 56px;color:var(--t3);font-size:13px}
.nxo-view :is(footer.legal,footer:not([class])) .w{display:flex;justify-content:space-between}
@media (max-width:900px){.nxo-view .links{display:none}
.nxo-view .bento,.nxo-view .prod{grid-template-columns:1fr;grid-auto-rows:auto}
.nxo-view .cell{min-height:240px}
.nxo-view .c2,.nxo-view .c3,.nxo-view .c4{grid-column:auto}
.nxo-view .tall{grid-row:auto;min-height:340px}
.nxo-view .prod{grid-template-columns:1fr 1fr}
.nxo-view .open{grid-template-columns:1fr}
.nxo-view .band .w{grid-template-columns:1fr 1fr}
.nxo-view .m:nth-child(3){border-inline-start:0;padding-inline-start:0}
.nxo-view .w{padding:0 20px}
.nxo-view section.s{padding:88px 0}
.nxo-view .facts{display:none}
}
.nxo-view h1,.nxo-view h2{font-family:var(--display)!important;font-weight:400!important;letter-spacing:var(--track-display-1)!important;text-wrap:balance}
.nxo-view h1{font-size:var(--display-1-size,clamp(32px,3.4vw,52px))!important;line-height:1.04!important;max-width:22ch!important}
.nxo-view h2{font-size:clamp(24px,2.3vw,36px)!important;line-height:1.1!important;max-width:28ch!important}
.nxo-view .close h2{font-size:clamp(30px,3.1vw,48px)!important;max-width:22ch!important}
.nxo-view h3{font-family:var(--sans)!important;font-weight:600!important;letter-spacing:-.012em!important}
.nxo-view .lede,.nxo-view .sub{letter-spacing:-.008em}
.nxo-view .nav .links a{font:400 12px var(--mono)!important;letter-spacing:.06em!important;text-transform:uppercase}
.nxo-view .btn{font-family:var(--sans)!important;font-weight:600!important;letter-spacing:-.005em}
@media (max-width:700px){.nxo-view .nav>.w{gap:14px}
.nxo-view .navr .btn[data-variant=ghost]{display:none}
.nxo-view .navr .btn{height:34px;padding:0 12px}
.nxo-view .logo{font-size:13px;letter-spacing:.03em}
.nxo-view .w{padding:0 16px}
.nxo-view img,.nxo-view svg,.nxo-view canvas,.nxo-view iframe,.nxo-view video{max-width:100%}
.nxo-view .fb .w{flex-wrap:wrap;row-gap:10px}
.nxo-view .fb .jump{display:none}
}
@media (max-width:480px){.nxo-view .navr{gap:6px}
.nxo-view .navr .btn[data-variant=primary]{width:34px;min-width:34px;padding:0;font-size:0!important;justify-content:center;gap:0}
.nxo-view .navr .btn[data-variant=primary]::before{content:"";width:16px;height:16px;background:currentColor;-webkit-mask:var(--ico-user) center/16px no-repeat;mask:var(--ico-user) center/16px no-repeat}
}
.nxo-view{--ico-user:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%23000' stroke-width='1.4'%3E%3Ccircle cx='8' cy='5.5' r='3'/%3E%3Cpath d='M2.5 14.5c.6-3 2.8-4.6 5.5-4.6s4.9 1.6 5.5 4.6'/%3E%3C/svg%3E")}
@media (max-width:700px){.nxo-view .seg,.nxo-view #fk,.nxo-view .cta,.nxo-view .tog{flex-wrap:wrap!important;row-gap:8px}
.nxo-view .seg{max-width:100%}
.nxo-view table.tbl,.nxo-view table.gt{display:block;max-width:100%;overflow-x:auto}
.nxo-view .tb{max-width:100%;overflow:hidden}
.nxo-view #wheel{max-width:100%}
}
@media (max-width:700px){.nxo-view table{display:block;max-width:100%;overflow-x:auto}
.nxo-view .w>*,.nxo-view .split>*,.nxo-view .hero .w>*{min-width:0;max-width:100%}
.nxo-view .cta{max-width:100%}
.nxo-view .cta .btn{white-space:normal;height:auto;min-height:44px;text-align:center}
.nxo-view .filters,.nxo-view .fbar,.nxo-view .ctrl,.nxo-view .controls,.nxo-view .next{flex-wrap:wrap;max-width:100%}
.nxo-view .next{flex-direction:column;align-items:flex-start;gap:16px}
.nxo-view #wheel{width:100%!important;height:auto!important;overflow:hidden!important}
.nxo-view .top,.nxo-view .sw{grid-template-columns:minmax(0,1fr)!important}
.nxo-view .split{grid-template-columns:minmax(0,1fr)!important}
}
@media (max-width:700px){.nxo-view{overflow-x:clip}
}
@media (min-width:1001px){.nxo-view :is(.g3,.g4):has(>:nth-child(2):last-child){grid-template-columns:repeat(2,minmax(0,1fr))}
.nxo-view .g4:has(>:nth-child(3):last-child){grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media (max-width:700px){.nxo-view table.t-stack{display:block;overflow:visible}
.nxo-view table.t-stack :is(tbody,tr,td){display:block}
.nxo-view table.t-stack thead{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
.nxo-view table.t-stack tr{padding:16px 0;border-bottom:1px solid var(--hair)}
.nxo-view table.t-stack td{padding:0!important;border:0!important;min-width:0!important;white-space:normal!important}
.nxo-view table.t-stack td+td{margin-top:6px}
.nxo-view table.t-stack td:first-child{font:500 11px var(--mono);letter-spacing:.08em;color:var(--t3)}
.nxo-view table.t-stack td:nth-child(2){font-size:15px;color:var(--t1);font-weight:500}
.nxo-view table.t-stack td[data-label]::before{content:attr(data-label);display:block;font:500 10.5px var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--t3);margin-bottom:2px}
}
:root[data-theme=light] .nxo-view :is(canvas,iframe,.gimg,.limg,img[src*="thumbs/"],img[src*="data/stories/"],img[src*="data/environments/"]){filter:var(--scene-filter-light)}
@media (prefers-color-scheme:light){:root:not([data-theme]) .nxo-view :is(canvas,iframe,.gimg,.limg,img[src*="thumbs/"],img[src*="data/stories/"],img[src*="data/environments/"]){filter:var(--scene-filter-light)}
}
.nxo-view{background:var(--bg);color:var(--t1)}
.nxo-view .thm{display:inline-flex;gap:2px;margin-inline-end:6px;padding:2px;border:1px solid var(--hair2);border-radius:5px}
.nxo-view .thm button{width:26px;height:26px;display:inline-grid;place-items:center;padding:0;border:0;border-radius:4px;background:transparent;color:var(--t3);cursor:pointer}
.nxo-view .thm button svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:1.3;stroke-linecap:round}
.nxo-view .thm button:hover{color:var(--t1)}
.nxo-view .thm button[aria-pressed=true]{color:var(--t1);background:var(--hover)}
.nxo-view .thm button:focus-visible{outline:2px solid var(--accent);outline-offset:1px}
@media (max-width:700px){.nxo-view .thm{margin-inline-end:0}
.nxo-view .thm button{width:24px;height:24px}
}
.nxo-view{font-variant-numeric:var(--numeric)}
.nxo-view main:empty,.nxo-view main>#body:empty{min-height:100vh}
.nxo-view main :where(p,dd,td,figcaption,.prose li) a:not(.btn){text-decoration:underline;text-decoration-color:var(--accent-text);text-decoration-thickness:1px;text-underline-offset:.2em}
.nxo-view main :where(p,dd,td,figcaption,.prose li) a:not(.btn):hover{color:var(--accent-text)}
.nxo-view :where(a,button,input,select,textarea,summary,[tabindex]):focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.nxo-view .eyebrow.dot::before{content:"";display:inline-block;width:6px;height:6px;margin-inline-end:8px;border-radius:50%;background:var(--accent);vertical-align:.1em}
.nxo-view :where(.navr,.sx-g) .btn[data-variant=primary]{background:var(--t1);color:var(--bg)}
.nxo-view :where(.navr,.sx-g) .btn[data-variant=primary]:hover{background:var(--t2)}
.nxo-view .btn[data-variant=primary]:active{background:var(--accent-pressed);color:var(--on-accent-pressed)}
@media (min-width:701px){.nxo-view .nav>.w{flex-wrap:nowrap}
.nxo-view .nav .logo,.nxo-view .nav .links a,.nxo-view .navr .btn{white-space:nowrap}
.nxo-view .nav .logo,.nxo-view .navr{flex:none}
}
@media (max-width:1439px){.nxo-view .nav>.w{gap:24px}
.nxo-view .nav .links{gap:18px}
}
@media (max-width:1279px){.nxo-view .navr .btn[data-variant=ghost]{display:none}
}
.nxo-view .nav-mb{display:none;align-items:center;gap:8px;height:32px;padding:0 10px;margin-inline-start:auto;border:1px solid var(--hair2);border-radius:5px;background:transparent;color:var(--t1);font:500 11px var(--mono);letter-spacing:.06em;text-transform:uppercase;cursor:pointer;flex:none}
.nxo-view .nav-mb svg{width:10px;height:6px;fill:none;stroke:var(--t3);stroke-width:1.5}
.nxo-view .nav-mb[aria-expanded=true] svg{transform:rotate(180deg)}
.nxo-view .nav-mb:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
@media (max-width:1199px){.nxo-view .nav .links{display:none}
.nxo-view .nav-mb{display:inline-flex}
.nxo-view .nav-mb~.navr{margin-inline-start:0}
.nxo-view .nav.open .links{display:grid;grid-template-columns:1fr 1fr;column-gap:24px;position:absolute;top:100%;inset-inline:0;margin:0;padding:4px 24px 20px;background:var(--bg);border-bottom:1px solid var(--hair)}
.nxo-view .nav.open .links a{display:block;padding:12px 0;border-top:1px solid var(--hair)}
}
@media (max-width:700px){.nxo-view .nav.open .links{grid-template-columns:1fr;padding-inline:16px}
}
.nxo-view .nav .links .nav-cta{display:none}
@media (max-width:700px){.nxo-view .nav .logo{white-space:normal;min-width:0;flex:0 1 auto;line-height:1.15}
.nxo-view .nav-mb{flex:none}
}
.nxo-view .navr .acct{white-space:nowrap}
@media (max-width:480px){.nxo-view .nav>.w{gap:10px}
.nxo-view .nav .logo{font-size:0!important;gap:0;flex:none}
.nxo-view .nav .logo i{width:10px;height:10px}
.nxo-view .navr:has(.nxo-um) .btn{display:none}
.nxo-view .nav.open .links:has(~ .navr .nxo-um) .nav-cta,.nxo-view .nav.open .links:has(+ .nav-mb ~ .navr .nxo-um) .nav-cta{display:block}
}
.nxo-view .nxo-poster,.nxo-view .st-poster,.nxo-view .nxo-stage-still,.nxo-view .nxo-stage-poster,.nxo-view .nxo-hero-poster,.nxo-view .pr-still,.nxo-view .nx-still img,.nxo-view img.th16,.nxo-view img[data-nx-still]{filter:var(--still-filter,none)}
.nxo-view [data-nxo-stage-host]:empty,.nxo-view .nxo-stage-host:empty,.nxo-view .nxo-stage-after:empty{min-height:100vh;min-height:100svh}
.nxo-view .nxo-stage-ssr .nxo-stage-still{position:static;display:block;width:100%;height:100vh;height:100svh;object-fit:cover;filter:var(--still-filter,none)}
:root[data-theme="light"] .nxo-view .nxo-stage-ssr{visibility:hidden}
@media (prefers-color-scheme:light){:root:not([data-theme]) .nxo-view .nxo-stage-ssr{visibility:hidden}
}
.nxo-view [data-nxo-hero-band]{position:relative;min-height:620px}
.nxo-view [data-nxo-hero-band]>.w>*{max-width:min(46vw,640px)}
@media (max-width:900px){.nxo-view [data-nxo-hero-side]:not(.has-hero)::after{content:"";display:block;height:clamp(260px,52vh,420px);visibility:hidden}
}
@media (max-width:900px){.nxo-view [data-nxo-hero-band]{display:flex;flex-direction:column;min-height:0;padding-top:88px}
.nxo-view [data-nxo-hero-band]>.w>*{max-width:none}
.nxo-view [data-nxo-hero-band]:not(:has(>.nxo-hero))::after{content:"";display:block;flex:none;order:2;height:clamp(260px,52vh,420px);margin-top:24px;visibility:hidden}
}
.nxo-view [data-nxo-map-notice-slot]{padding:24px 0 32px}
.nxo-view .nxo-map-notice{margin:0;max-width:80ch;font:400 12px/1.55 var(--sans);color:var(--t3)}
.nxo-view .nxo-map-notice a{color:var(--t2);text-decoration:underline;text-underline-offset:2px}

.nxo-view header.nav{top:0!important;bottom:auto!important;height:64px!important;min-height:0!important;max-height:none!important;transform:none!important}
body.admin-bar .nxo-view header.nav,body.admin-bar .nxo-view .sx{top:32px!important}
@media screen and (max-width:782px){body.admin-bar .nxo-view header.nav,body.admin-bar .nxo-view .sx{top:46px!important}}
.nxo-view .sx{top:0!important;bottom:auto!important;height:auto!important;min-height:0!important;transform:none!important}
.nxo-view footer{position:relative!important;height:auto!important;min-height:0!important}
.nxo-view{cursor:auto}

/* b/6e28ec410172/nav.css */
.nxo-view [data-nxo-nav]{position:relative;z-index:30;background:var(--bg);border-bottom:1px solid var(--hair)}
.nxo-view .nav[data-nxo-nav]{position:fixed;inset:0 0 auto 0;z-index:30}
:root:has([data-nxo-nav]) .nxo-view{scroll-padding-top:calc(var(--nx-bar-end,var(--nx-bar,64px)) + 16px)}
.nxo-view [data-nxo-nav][data-nxo-nav] .logo,.nxo-view .nxf .logo{display:flex;align-items:center;gap:10px;color:var(--t1);font:600 15px/1 var(--sans);letter-spacing:.04em;text-transform:uppercase;text-decoration:none}
.nxo-view [data-nxo-nav][data-nxo-nav] .logo i,.nxo-view .nxf .logo i{display:block;width:8px;height:8px;border-radius:50%;background:var(--accent);flex:none}
.nxo-view :is(.nx-drawer__f,.nxf-brand,.nx-feat) .btn{display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;height:36px;padding:0 14px;border:1px solid transparent;border-radius:5px;font:500 14px/1 var(--sans);text-decoration:none;white-space:nowrap}
.nxo-view :is(.nx-drawer__f,.nxf-brand,.nx-feat) .btn[data-variant=primary]{background:var(--accent);color:var(--on-accent)}
.nxo-view :is(.nx-drawer__f,.nxf-brand,.nx-feat) .btn[data-variant=primary]:hover{background:var(--btn-primary-hover,var(--accent))}
.nxo-view :is(.nx-drawer__f,.nxf-brand,.nx-feat) .btn[data-variant=secondary]{border-color:var(--hair2);color:var(--t1)}
.nxo-view :is(.nx-drawer__f,.nxf-brand,.nx-feat) .btn[data-variant=secondary]:hover{border-color:var(--t3)}
.nxo-view :is(.nx-drawer__f,.nxf-brand,.nx-feat) .btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.nxo-view [data-nxo-nav] a,.nxo-view [data-nxo-nav] a:hover,.nxo-view .nxs a,.nxo-view .nxs a:hover{text-decoration:none}
.nxo-view [data-nxo-nav] .w{display:flex;align-items:center;gap:32px;height:64px;max-width:1440px;margin:0 auto;padding:0 48px;box-sizing:border-box}
.nxo-view [data-nxo-nav][data-nxo-nav] .logo{flex:none;white-space:nowrap}
.nxo-view [data-nxo-nav] .navr{display:flex;align-items:center;gap:8px;flex:none}
.nxo-view [data-nxo-nav] .sp{flex:1;min-width:0}
.nxo-view [hidden]{display:none!important}
.nxo-view .nx-main{min-width:0}
.nxo-view .nx-list{display:flex;align-items:stretch;gap:2px;margin:0;padding:0;list-style:none;height:64px}
.nxo-view .nx-i{display:flex;align-items:stretch}
.nxo-view .nx-t{position:relative;display:inline-flex;align-items:center;gap:6px;height:100%;padding:0 12px;border:0;background:transparent;color:var(--t2);font:500 14px/1 var(--sans);letter-spacing:0;text-transform:none;white-space:nowrap;cursor:pointer;text-decoration:none}
.nxo-view .nx-t::after{content:"";position:absolute;inset-inline:12px;bottom:-1px;height:2px;background:transparent}
.nxo-view .nx-t:hover,.nxo-view .nx-t[aria-expanded=true],.nxo-view .nx-t[data-current=true]{color:var(--t1)}
.nxo-view .nx-t:hover::after,.nxo-view .nx-t[aria-expanded=true]::after,.nxo-view .nx-t[data-current=true]::after{background:var(--accent)}
.nxo-view .nx-t:focus-visible,.nxo-view .nx-btn:focus-visible,.nxo-view .nx-card:focus-visible,.nxo-view .nx-mm__foot a:focus-visible,.nxo-view .nxf a:focus-visible,.nxo-view .nx-drawer a:focus-visible,.nxo-view .nx-drawer summary:focus-visible,.nxo-view .nxs-o:focus-visible,.nxo-view .nxs input:focus-visible,.nxo-view .nxs-x:focus-visible{outline:2px solid var(--accent);outline-offset:-2px;border-radius:5px}
.nxo-view .nx-btn:focus-visible,.nxo-view .nxf a:focus-visible{outline-offset:2px}
.nxo-view .nx-chev{width:9px;height:6px;fill:none;stroke:var(--t3);stroke-width:1.5;transition:transform .15s}
.nxo-view .nx-t[aria-expanded=true] .nx-chev{transform:rotate(180deg)}
.nxo-view .nx-btn{display:inline-grid;place-items:center;flex:none;box-sizing:border-box;width:32px;height:32px;padding:0;border:1px solid var(--hair2);border-radius:5px;background:transparent;color:var(--t2);cursor:pointer;text-decoration:none}
.nxo-view .nx-btn svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round}
.nxo-view .nx-btn:hover{color:var(--t1);border-color:var(--t3)}
.nxo-view .nx-burger{display:none}
.nxo-view .nx-burger .nx-i-x{display:none}
.nxo-view .nx-drawer-open .nx-burger .nx-i-menu{display:none}
.nxo-view .nx-drawer-open .nx-burger .nx-i-x{display:block}
.nxo-view [data-nxo-nav] .thm,.nxo-view [data-nxo-nav] .nxo-thm,.nxo-view .sx .thm{box-sizing:border-box;height:32px;margin:0;padding:2px}
.nxo-view [data-nxo-nav] .thm button,.nxo-view [data-nxo-nav] .nxo-thm button,.nxo-view .sx .thm button{width:26px;height:26px}
.nxo-view .nxtr-sw-slot{display:contents}
.nxo-view [data-nxo-nav] .nxtr-sw-head{display:none}
.nxo-view [data-nxo-nav] .nxtr-sw-btn,.nxo-view .sx .nxtr-sw-btn{height:32px}
.nxo-view [data-nxo-nav] .nxo-um,.nxo-view .sx .nxo-um{margin:0}
.nxo-view [data-nxo-nav] .nxo-um__btn,.nxo-view .sx .nxo-um__btn{width:32px;height:32px}
.nxo-view .nx-sub{position:fixed;inset-inline:0;top:var(--nx-bar-end,var(--nx-bar,65px));z-index:29;background:var(--bg);border-bottom:1px solid var(--hair);font-family:var(--sans)}
.nxo-view .nx-sub .w{display:flex;align-items:stretch;gap:4px;height:38px;max-width:1440px;margin:0 auto;padding:0 48px;box-sizing:border-box;overflow-x:auto;overflow-y:hidden;overscroll-behavior-x:contain;scrollbar-width:none}
.nxo-view .nx-sub .w::-webkit-scrollbar{display:none}
.nxo-view .nx-sub a,.nxo-view .nx-sub a:hover{text-decoration:none}
.nxo-view .nx-sub__home{display:inline-flex;align-items:center;gap:16px;flex:none;margin-inline-end:6px;color:var(--t1);font:500 13.5px/1 var(--sans);white-space:nowrap}
.nxo-view .nx-sub__home::after{content:"";width:1px;height:16px;background:var(--hair2)}
.nxo-view .nx-sub__home:hover{color:var(--accent-text)}
.nxo-view .nx-sub__l{display:flex;align-items:stretch;gap:2px;margin:0;padding:0;list-style:none;flex:none}
.nxo-view .nx-sub__l li{display:flex}
.nxo-view .nx-sub__a{position:relative;display:inline-flex;align-items:center;padding:0 10px;color:var(--t2);font:400 13.5px/1 var(--sans);white-space:nowrap}
.nxo-view .nx-sub__a::after{content:"";position:absolute;inset-inline:10px;bottom:0;height:2px;background:transparent}
.nxo-view .nx-sub__a:hover,.nxo-view .nx-sub__a[aria-current=page]{color:var(--t1)}
.nxo-view .nx-sub__a:hover::after,.nxo-view .nx-sub__a[aria-current=page]::after{background:var(--accent)}
.nxo-view .nx-sub__a[aria-current=page]{font-weight:500}
.nxo-view .nx-sub__cta{align-self:center;flex:none;display:inline-flex;align-items:center;height:26px;margin-inline-start:auto;padding:0 10px;border:1px solid var(--hair2);border-radius:5px;color:var(--t1);font:500 12.5px/1 var(--sans);white-space:nowrap}
.nxo-view .nx-sub__cta:hover,.nxo-view .nx-sub__cta[aria-current=page]{border-color:var(--accent)}
.nxo-view .nx-sub a:focus-visible{outline:2px solid var(--accent);outline-offset:-2px;border-radius:5px}
.nxo-view .nx-sub-pad{height:var(--nx-sub,39px)}
.nxo-view .nx-drawer-open~.nx-sub{visibility:hidden}
@media (max-width:1279px){.nxo-view .nx-sub .w{padding:0 24px}
}
@media (max-width:700px){.nxo-view .nx-sub{position:absolute}
}
@media (max-width:900px){.nxo-view .nx-sub__home{position:sticky;inset-inline-start:0;z-index:1;background:var(--bg);box-shadow:-16px 0 0 var(--bg)}
:root[dir=rtl] .nxo-view .nx-sub__home{box-shadow:16px 0 0 var(--bg)}
}
@media (max-width:900px){.nxo-view .nx-sub__cta{position:sticky;inset-inline-end:0;z-index:1;margin-inline-start:auto;background:var(--bg);box-shadow:-12px 0 0 var(--bg)}
:root[dir=rtl] .nxo-view .nx-sub__cta{box-shadow:12px 0 0 var(--bg)}
}
@media (max-width:700px){.nxo-view .nx-sub .w{gap:0;padding:0 16px}
.nxo-view .nx-sub__home{gap:12px;margin-inline-end:4px}
.nxo-view .nx-sub__a{padding:0 9px}
.nxo-view .nx-sub__a::after{inset-inline:9px}
.nxo-view .nx-sub__cta{margin-inline-start:12px;box-shadow:-12px 0 0 var(--bg),16px 0 0 var(--bg)}
:root[dir=rtl] .nxo-view .nx-sub__cta{box-shadow:12px 0 0 var(--bg),-16px 0 0 var(--bg)}
}
.nxo-view .nx-mm{position:absolute;inset-inline:0;top:100%;background:var(--bg);border-top:1px solid var(--hair);border-bottom:1px solid var(--hair2);max-height:calc(100vh - var(--nx-bar,64px) - var(--wp-admin--admin-bar--height,0px));overflow:auto;overscroll-behavior:contain}
.nxo-view .nx-mm .w,.nxo-view .nav .nx-mm .w,.nxo-view [data-nxo-nav] .nx-mm .w{display:block;height:auto;padding-top:32px;padding-bottom:0}
.nxo-view .nx-mm__body{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:48px;align-items:start;padding-bottom:28px}
.nxo-view .nx-mm__cols{display:grid;gap:36px 40px}
.nxo-view .nx-mm--platforms .nx-mm__cols{grid-template-columns:minmax(0,4fr) minmax(0,8fr);grid-template-rows:min-content min-content 1fr;align-items:start}
.nxo-view .nx-mm--platforms .nx-g{grid-column:1}
.nxo-view .nx-mm--platforms .nx-g[data-g=technology]{grid-column:2;grid-row:1/span 3}
.nxo-view .nx-mm--platforms .nx-g[data-g=technology] .nx-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:16px}
.nxo-view .nx-mm--industries .nx-mm__cols{grid-template-columns:repeat(4,minmax(0,1fr));gap:28px 12px}
.nxo-view .nx-mm--solutions .nx-mm__cols,.nxo-view .nx-mm--products .nx-mm__cols,.nxo-view .nx-mm--resources .nx-mm__cols,.nxo-view .nx-mm--company .nx-mm__cols{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}
.nxo-view .nx-mm--company .nx-mm__cols{grid-template-columns:repeat(2,minmax(0,1fr))}
.nxo-view .nx-mm--industries .nx-mm__body{grid-template-columns:minmax(0,1fr) 280px}
.nxo-view .nx-g .eyebrow{display:block;margin:0 0 12px;padding-inline:12px}
.nxo-view .nx-cards{list-style:none;margin:0;padding:0}
.nxo-view .nx-card{display:grid;grid-template-columns:36px minmax(0,1fr);gap:14px;align-items:start;padding:10px 12px;border-radius:5px;color:var(--t1);text-decoration:none}
.nxo-view .nx-card--plain{grid-template-columns:minmax(0,1fr)}
.nxo-view .nx-card:hover{background:var(--surface)}
.nxo-view .nx-ic{display:grid;place-items:center;width:36px;height:36px;border:1px solid var(--hair);border-radius:5px;color:var(--t2)}
.nxo-view .nx-ic svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round}
.nxo-view .nx-card:hover .nx-ic{color:var(--accent-text);border-color:var(--hair2)}
.nxo-view .nx-card__t{display:flex;flex-direction:column;gap:3px;min-width:0}
.nxo-view .nx-card strong{font:500 14px/1.3 var(--sans);color:var(--t1)}
.nxo-view .nx-card__t span{font:400 12.5px/1.45 var(--sans);color:var(--t3);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.nxo-view .nx-card:hover strong{color:var(--accent-text)}
.nxo-view .nx-mm__foot{display:flex;flex-wrap:wrap;gap:8px 28px;padding:16px 12px 20px;border-top:1px solid var(--hair);font-size:13px}
.nxo-view .nx-mm__foot a{color:var(--t2);text-decoration:none}
.nxo-view .nx-mm__foot a:hover{color:var(--t1);text-decoration:underline;text-decoration-color:var(--accent)}
.nxo-view .nx-mm{display:none}
.nxo-view [data-nxo-nav]:not(.nx-js) .nx-i--menu:hover>.nx-mm,.nxo-view [data-nxo-nav]:not(.nx-js) .nx-i--menu:focus-within>.nx-mm,.nxo-view .nx-js .nx-mm:not([hidden]){display:block}
.nxo-view .nx-drawer{display:none;position:fixed;inset-inline:0;top:var(--nx-bar-end,calc(var(--nx-bar,64px) + var(--wp-admin--admin-bar--height,0px)));bottom:0;z-index:31;background:var(--bg);border-top:1px solid var(--hair);overflow:auto;overscroll-behavior:contain}
.nxo-view .nx-drawer:target,.nxo-view .nx-drawer-open .nx-drawer{display:block}
.nxo-view [data-nxo-nav] .nx-drawer .w,.nxo-view .nx-drawer .w{display:block;height:auto;padding-top:8px;padding-bottom:0}
.nxo-view .nav[data-nxo-nav].nx-open::after{content:"";position:fixed;inset:var(--nx-bar-end,var(--nx-bar,64px)) 0 0 0;background:var(--scrim,rgba(0,0,0,.6));z-index:-1;pointer-events:none}
.nxo-view .nav[data-nxo-nav].nx-drawer-open,.nxo-view [data-nxo-nav].nx-drawer-open{z-index:60}
.nxo-view .nx-drawer ul{list-style:none;margin:0;padding:0}
.nxo-view .nx-dl>li{border-bottom:1px solid var(--hair)}
.nxo-view .nx-dl__t,.nxo-view .nx-acc summary{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:56px;padding:0;color:var(--t1);font:500 18px/1.2 var(--sans);text-decoration:none;cursor:pointer;list-style:none}
.nxo-view .nx-acc summary::-webkit-details-marker{display:none}
.nxo-view .nx-acc[open] .nx-chev{transform:rotate(180deg)}
.nxo-view .nx-acc__b{padding:0 0 16px}
.nxo-view .nx-acc__b .eyebrow{margin:16px 0 4px}
.nxo-view .nx-acc__b li a{display:block;padding:10px 0;color:var(--t2);font-size:15px;text-decoration:none}
.nxo-view .nx-acc__b li a:hover,.nxo-view .nx-dl__t:hover{color:var(--t1)}
.nxo-view .nx-acc__f{display:flex;flex-wrap:wrap;gap:6px 20px;margin:12px 0 0;padding-top:12px;border-top:1px solid var(--hair);font-size:13px}
.nxo-view .nx-acc__f a{color:var(--t3);text-decoration:none}
.nxo-view .nx-dl__own{padding:12px 0 8px}
.nxo-view .nx-dl__own .eyebrow{margin:0 0 4px}
.nxo-view .nx-dl__own li a{display:block;padding:9px 0;color:var(--t1);font-size:16px;text-decoration:none}
.nxo-view .nx-drawer{scroll-padding-bottom:160px}
.nxo-view .nx-drawer__f{position:sticky;bottom:0;display:flex;gap:10px;padding:16px 0 calc(16px + env(safe-area-inset-bottom,0px));background:var(--bg);border-top:1px solid var(--hair)}
.nxo-view .nx-drawer__f .btn{flex:1 1 0}
@media (max-width:1279px){.nxo-view [data-nxo-nav] .w{padding:0 24px;gap:24px}
.nxo-view .nx-t{padding:0 9px}
.nxo-view .nx-t::after{inset-inline:9px}
.nxo-view .nx-mm .w{padding-inline:24px}
}
@media (max-width:1179px){.nxo-view .nx-main{display:none}
.nxo-view .nx-burger{display:inline-grid}
.nxo-view [data-nxo-nav] .sp{flex:1}
}
@media (min-width:1180px){.nxo-view .nx-drawer,.nxo-view .nx-drawer:target{display:none}
}
@media (max-width:700px){.nxo-view [data-nxo-nav] .w{gap:12px;padding:0 16px}
.nxo-view [data-nxo-nav] .navr{gap:6px}
.nxo-view .nx-drawer .w{padding-inline:16px}
.nxo-view .nx-drawer__f{flex-direction:column}
.nxo-view .nx-drawer__f .btn{flex:none;width:100%}
}
.nxo-view .nx-drawer__f .btn{min-height:44px}
.nxo-view .nx-drawer__f{gap:10px}
@media (max-width:480px){.nxo-view [data-nxo-nav][data-nxo-nav] .logo{flex:0 1 auto;min-width:0;gap:7px!important;font-size:10.5px!important;line-height:1.15;letter-spacing:.03em;white-space:normal;max-width:96px}
.nxo-view [data-nxo-nav][data-nxo-nav] .logo i{width:8px!important;height:8px!important}
.nxo-view [data-nxo-nav] .navr{gap:4px}
.nxo-view [data-nxo-nav] .w{gap:8px}
}
.nxo-view .nx-drawer-open .nx-mm{display:none}
.nxo-view footer.nxf,.nxo-view div.nxf{padding:0;margin:0;font-size:13.5px;line-height:1.5}
.nxo-view footer.nxf .w,.nxo-view div.nxf .w{display:block;justify-content:normal}
.nxo-view .nxf a,.nxo-view .nxf a:hover{text-decoration:none}
.nxo-view .nxf .nxf-c .nxf-h{margin:0 0 12px;padding:0;font:500 11px/1.4 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--t3)}
.nxo-view .nxf .nxf-legal nav,.nxo-view .nxf .nxf-cols{display:flex}
.nxo-view .nxf .nxf-legal nav a{display:inline}
.nxo-view .nxf{border-top:1px solid var(--hair);background:var(--bg);color:var(--t3);padding:0;font-size:13.5px}
.nxo-view .nxf .w{display:block;max-width:1440px;margin:0 auto;padding:0 48px;box-sizing:border-box}
.nxo-view .nxf-top{display:grid;grid-template-columns:200px minmax(0,1fr);gap:40px;padding:56px 0 40px}
.nxo-view .nxf-brand p{max-width:34ch;margin:16px 0 20px;color:var(--t2);font-size:13.5px;line-height:1.55}
.nxo-view .nxf-brand p b{color:var(--t1);font-weight:500}
.nxo-view .nxf-cols{display:flex;flex-wrap:wrap;gap:32px 28px}
.nxo-view .nxf-c{flex:1 1 120px;min-width:0}
.nxo-view .nxf-c--wide{flex:2 1 250px}
.nxo-view .nxf-c ul{list-style:none;margin:0;padding:0}
.nxo-view .nxf-c--wide ul{columns:2;column-gap:20px}
.nxo-view .nxf-c li{break-inside:avoid}
.nxo-view .nxf-c a{display:block;padding:5px 0;color:var(--t3);text-decoration:none}
.nxo-view .nxf .nxf-c a:hover,.nxo-view .nxf .nxf-legal nav a:hover{color:var(--t1);text-decoration:underline;text-decoration-color:var(--accent)}
.nxo-view .nxf-legal{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:16px 32px;padding:20px 0 40px;border-top:1px solid var(--hair);font-size:12.5px}
.nxo-view .nxf-legal p{margin:0}
.nxo-view .nxf-legal nav{display:flex;flex-wrap:wrap;gap:6px 20px}
.nxo-view .nxf-legal nav a{color:var(--t3);text-decoration:none}
.nxo-view .nxf-legal nav a:hover{color:var(--t1);text-decoration:underline;text-decoration-color:var(--accent)}
.nxo-view .nxf-ctl{display:flex;align-items:center;gap:8px}
.nxo-view .nxf .nxtr-sw-list{top:auto;bottom:calc(100% + 6px)}
.nxo-view .nxf .thm,.nxo-view .nxf .nxo-thm{box-sizing:border-box;height:32px;margin:0;padding:2px}
.nxo-view .nxf .nxtr-sw-btn{height:32px}
@media (max-width:1100px){.nxo-view .nxf-top{grid-template-columns:1fr;gap:32px}
}
@media (max-width:700px){.nxo-view .nxf .w{padding:0 16px}
.nxo-view .nxf-top{padding:40px 0 28px}
.nxo-view .nxf-c{flex:1 1 calc(50% - 20px)}
.nxo-view .nxf-c--wide{flex:1 1 100%}
.nxo-view .nxf-legal{flex-direction:column;align-items:flex-start}
}
.nxo-view .nxs-bg{position:fixed;inset:0;z-index:1000;background:rgba(var(--paper),.6)}
.nxo-view .nxs{position:fixed;inset-inline:0;top:10vh;z-index:1001;box-sizing:border-box;width:min(680px,calc(100vw - 32px));max-height:min(620px,80vh);margin-inline:auto;display:flex;flex-direction:column;background:var(--bg);color:var(--t1);border:1px solid var(--hair2);border-radius:5px;overflow:hidden;font-family:var(--sans)}
.nxo-view .nxs-in{display:flex;align-items:center;gap:12px;padding:0 12px 0 16px;border-bottom:1px solid var(--hair)}
.nxo-view .nxs-ico{width:16px;height:16px;flex:none;fill:none;stroke:var(--t3);stroke-width:1.4;stroke-linecap:round}
.nxo-view .nxs input{flex:1;min-width:0;height:56px;padding:0;border:0;background:transparent;color:var(--t1);font:400 16px var(--sans)}
.nxo-view .nxs input::placeholder{color:var(--t3)}
.nxo-view .nxs input:focus-visible{outline:0}
.nxo-view .nxs-in:focus-within{box-shadow:inset 0 -2px 0 var(--accent)}
.nxo-view .nxs-x{display:grid;place-items:center;width:32px;height:32px;border:0;border-radius:5px;background:transparent;color:var(--t3);cursor:pointer}
.nxo-view .nxs-x:hover{color:var(--t1);background:var(--hover)}
.nxo-view .nxs-x svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round}
.nxo-view .nxs-list{flex:1;overflow:auto;padding:8px;overscroll-behavior:contain}
.nxo-view .nxs-gh{padding:12px 10px 6px;font:500 11px/1.4 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--t3)}
.nxo-view .nxs-o{display:flex;align-items:flex-start;gap:12px;padding:9px 10px;border-radius:5px;color:var(--t1);text-decoration:none}
.nxo-view .nxs-o b{font:500 14px/1.3 var(--sans)}
.nxo-view .nxs-o__t span{font-size:12.5px;line-height:1.4;color:var(--t3);display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden}
.nxo-view .nxs-o[aria-selected=true]{background:var(--surface);box-shadow:inset 2px 0 0 var(--accent)}
.nxo-view .nxs-o[aria-selected=true]:dir(rtl){box-shadow:inset -2px 0 0 var(--accent)}
.nxo-view .nxs-none{margin:0;padding:28px 12px;color:var(--t3);font-size:14px}
.nxo-view .nxs-ft{display:flex;gap:18px;padding:10px 16px;border-top:1px solid var(--hair);color:var(--t3);font-size:12px}
.nxo-view .nxs kbd{padding:1px 5px;border:1px solid var(--hair2);border-radius:4px;font:400 11px var(--mono);color:var(--t2)}
.nxo-view .nxs-live{position:absolute;width:1px;height:1px;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
@media (max-width:700px){.nxo-view .nxs{top:0;width:100vw;max-height:100dvh;height:100dvh;border-radius:0;border-inline:0}
.nxo-view .nxs-ft{display:none}
}
@media (prefers-reduced-motion:no-preference){.nxo-view .nx-mm:not([hidden]){animation:nx-in .12s ease-out}
@keyframes nx-in{from{opacity:0}}
}
.nxo-view .nx-feat{display:flex;flex-direction:column;gap:10px;padding-inline-start:40px;border-inline-start:1px solid var(--hair);min-width:0}
.nxo-view .nx-still{display:block;margin:0}
.nxo-view .nx-still img{display:block;width:100%;height:auto;aspect-ratio:4/3;object-fit:contain;object-position:center;border:0}
.nxo-view .nx-still .nx-still__l{display:none}
:root[data-theme=light] .nxo-view .nx-still .nx-still__d{display:none}
:root[data-theme=light] .nxo-view .nx-still .nx-still__l{display:block}
@media (prefers-color-scheme:light){:root:not([data-theme]) .nxo-view .nx-still .nx-still__d{display:none}
:root:not([data-theme]) .nxo-view .nx-still .nx-still__l{display:block}
}
.nxo-view .nx-feat__t{margin:0;font:500 17px/1.3 var(--sans);color:var(--t1)}
.nxo-view .nx-feat__x{margin:0;font-size:13px;line-height:1.5;color:var(--t3)}
.nxo-view .nx-feat .btn{align-self:flex-start;margin-top:4px}
.nxo-view .nx-chips{display:flex;flex-wrap:wrap;gap:6px;margin:4px 0 0;padding:0;list-style:none}
.nxo-view .nx-chips a{display:inline-flex;align-items:center;height:28px;padding:0 10px;border:1px solid var(--hair2);border-radius:4px;color:var(--t2);font-size:13px}
.nxo-view .nx-chips a:hover{color:var(--t1);border-color:var(--accent)}
.nxo-view .nx-proof{display:flex;flex-wrap:wrap;gap:6px 22px;margin:8px 0 0;padding-top:12px;border-top:1px solid var(--hair)}
.nxo-view .nx-proof div{display:flex;flex-direction:column;gap:2px}
.nxo-view .nx-proof dt{font:500 10px/1.4 var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--t3)}
.nxo-view .nx-proof dd{margin:0;font:500 15px/1.2 var(--mono);color:var(--t1);font-variant-numeric:tabular-nums slashed-zero}
.nxo-view .nx-ic--s{width:24px;height:24px;border:0;flex:none}
.nxo-view .nx-ic--s svg{width:18px;height:18px}
.nxo-view .nx-acc__b li a{display:flex;align-items:center;gap:10px}
@media (max-width:1279px){.nxo-view .nx-mm__body{grid-template-columns:minmax(0,1fr) 240px;gap:32px}
.nxo-view .nx-feat{padding-inline-start:28px}
}
.nxo-view .nxs-o__t{display:flex;flex-direction:column;gap:2px;min-width:0}
.nxo-view .nxs-ic{display:grid;place-items:center;flex:none;width:28px;height:28px;border:1px solid var(--hair);border-radius:5px;color:var(--t3)}
.nxo-view .nxs-ic svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round}
.nxo-view .nxs-o[aria-selected=true] .nxs-ic{color:var(--accent-text)}
@media (min-width:601px){.nxo-view.admin-bar :is(.nav,[data-nxo-nav]){top:var(--wp-admin--admin-bar--height,32px)}
}
.nxo-view [data-nxo-nav][data-nxo-nav] .logo--obp,.nxo-view .nxf .logo--obp{text-transform:none;letter-spacing:-.01em;font:600 16px/1 var(--sans);gap:10px}
.nxo-view .logo--obp .nx-mark{width:24px;height:24px;flex:none;fill:none;stroke-width:1.4}
.nxo-view .logo--obp .nx-mark__ring{stroke:var(--hair2)}
.nxo-view .logo--obp .nx-mark__links{stroke:var(--accent-2,var(--accent));stroke-linejoin:round}
.nxo-view .logo--obp .nx-mark__n{fill:var(--accent);stroke:var(--bg);stroke-width:1.2}
.nxo-view .nav--obp .nx-sub__home,.nxo-view .nxf--obp .nxf-h{font-family:var(--eyebrow-font,var(--mono))}
@media (max-width:480px){.nxo-view [data-nxo-nav][data-nxo-nav] .logo--obp{font-size:12.5px!important;line-height:1.1;max-width:118px;white-space:normal;gap:8px!important}
.nxo-view [data-nxo-nav] .logo--obp .nx-mark{width:22px;height:22px}
}
.nxo-view .nx-skip{position:fixed;top:8px;inset-inline-start:8px;z-index:var(--z-skip,60);box-sizing:border-box;padding:10px 14px;border-radius:5px;background:var(--t1);color:var(--bg);font:600 14px/1.2 var(--sans);text-decoration:none;transform:translateY(calc(-100% - 16px))}
.nxo-view .nx-skip:focus,.nxo-view .nx-skip:focus-visible{transform:none;outline:2px solid var(--accent);outline-offset:2px;transition:none}
@media (prefers-reduced-motion:no-preference){.nxo-view .nx-skip{transition:transform var(--dur-fast,150ms) var(--ease-standard,ease)}
}
.nxo-view header[data-nxo-layout=docs]>.w{gap:20px;height:var(--pd-bar-h,56px);padding:0 24px;max-width:none}
.nxo-view [data-nxo-layout=docs] .nx-list{height:var(--pd-bar-h,56px)}
.nxo-view [data-nxo-layout=docs][data-nxo-nav] .logo{font:600 15px/1 var(--sans);letter-spacing:-.01em}
.nxo-view .pd-id{display:flex;align-items:center;gap:8px;flex:none}
.nxo-view .pd-pill{display:inline-flex;align-items:center;gap:6px;height:22px;padding:0 8px;border:1px solid var(--hair2);border-radius:4px;font:500 11px/1 var(--eyebrow-font,var(--mono));letter-spacing:.08em;text-transform:uppercase;color:var(--t1);white-space:nowrap}
.nxo-view .pd-pill::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--accent);flex:none}
.nxo-view .pd-ver{position:relative}
.nxo-view .pd-ver>summary{display:inline-flex;align-items:center;gap:6px;height:24px;padding:0 8px;border:1px solid var(--hair2);border-radius:4px;font:500 12px/1 var(--mono);color:var(--t2);cursor:pointer;list-style:none;white-space:nowrap}
.nxo-view .pd-ver>summary::-webkit-details-marker,.nxo-view .pd-pref>summary::-webkit-details-marker{display:none}
.nxo-view .pd-ver>summary:hover,.nxo-view .pd-ver[open]>summary{color:var(--t1);border-color:var(--t3)}
.nxo-view .pd-ver[open] .nx-chev{transform:rotate(180deg)}
.nxo-view .pd-pop{position:absolute;top:calc(100% + 6px);z-index:40;min-width:220px;margin:0;padding:6px;list-style:none;background:var(--bg);border:1px solid var(--hair2);border-radius:5px;box-shadow:var(--shadow-2,none)}
.nxo-view .pd-ver .pd-pop{inset-inline-start:0}
.nxo-view .pd-pop a{display:flex;flex-direction:column;gap:2px;padding:8px 10px;border-radius:4px;color:var(--t1);font:400 13px/1.35 var(--sans);text-decoration:none}
.nxo-view .pd-pop a b{font:500 13px/1.3 var(--mono)}
.nxo-view .pd-pop a span{color:var(--t3);font-size:12px}
.nxo-view .pd-pop a:hover,.nxo-view .pd-pop a[aria-current]{background:var(--surface)}
.nxo-view .pd-pop a:focus-visible,.nxo-view .pd-ver>summary:focus-visible,.nxo-view .pd-pref>summary:focus-visible,.nxo-view .pd-search:focus-visible,.nxo-view .pd-acct:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.nxo-view [data-nxo-layout=docs] .nx-t{padding:0 10px;font:400 14px/1 var(--sans);color:var(--t2)}
.nxo-view [data-nxo-layout=docs] .nx-t::after{inset-inline:10px;height:2px}
.nxo-view [data-nxo-layout=docs] .nx-t:hover::after,.nxo-view [data-nxo-layout=docs] .nx-t[data-current=true]::after,.nxo-view [data-nxo-layout=docs] .nx-t[aria-current=page]::after{background:var(--accent-2,var(--accent))}
.nxo-view [data-nxo-layout=docs] .nx-t[aria-current=page],.nxo-view [data-nxo-layout=docs] .nx-t[data-current=true]{color:var(--t1)}
.nxo-view .pd-search{display:inline-flex;align-items:center;gap:10px;flex:0 1 280px;min-width:0;height:34px;padding:0 8px 0 12px;box-sizing:border-box;border:1px solid var(--hair2);border-radius:5px;background:var(--surface);color:var(--t3);font:400 13.5px/1 var(--sans);text-decoration:none;white-space:nowrap;overflow:hidden}
.nxo-view .pd-search svg{width:16px;height:16px;flex:none;fill:none;stroke:currentColor;stroke-width:1.4;stroke-linecap:round}
.nxo-view .pd-search__l{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis}
.nxo-view .pd-search kbd{flex:none;display:inline-grid;place-items:center;min-width:20px;height:20px;border:1px solid var(--hair2);border-radius:4px;font:500 11px/1 var(--mono);color:var(--t3)}
.nxo-view .pd-search:hover{color:var(--t1);border-color:var(--t3)}
.nxo-view .pd-tools{display:flex;align-items:center;gap:6px;flex:none}
.nxo-view .pd-pref{position:relative}
.nxo-view .pd-pref>summary{list-style:none}
.nxo-view .pd-pref[open]>summary{color:var(--t1);border-color:var(--t3)}
.nxo-view .pd-pref .pd-pref__p{inset-inline-end:0;display:flex;flex-direction:column;align-items:stretch;gap:10px;padding:12px;min-width:240px}
.nxo-view .pd-pref__p>*{width:100%}
.nxo-view .pd-pref__p .thm{display:flex}
.nxo-view .pd-pref__p .thm button{flex:1}
.nxo-view .pd-acct{display:block;padding:8px 10px;border:1px solid var(--hair2);border-radius:5px;color:var(--t1);font:500 13px/1 var(--sans);text-align:center;text-decoration:none;order:9}
.nxo-view .pd-acct:hover{border-color:var(--t3)}
.nxo-view .pd-drawer .nx-dl>li{border-bottom:1px solid var(--hair);padding:10px 0}
.nxo-view .pd-drawer a{display:flex;gap:12px;align-items:baseline;padding:8px 0;color:var(--t2);font:400 15px/1.35 var(--sans);text-decoration:none}
.nxo-view .pd-drawer .nx-dl__t{color:var(--t1);font-weight:500}
.nxo-view .pd-drawer ul ul{padding-inline-start:0}
.nxo-view .pd-drawer .pd-n{min-width:32px;font:500 12px/1 var(--mono);color:var(--accent-2-text,var(--t3))}
.nxo-view .pd-drawer a[aria-current=page]{color:var(--t1);box-shadow:inset 2px 0 var(--accent);padding-inline-start:8px}
@media (max-width:1179px){.nxo-view [data-nxo-layout=docs] .nx-burger{display:inline-grid}
}
@media (max-width:900px){.nxo-view .pd-search{flex:0 0 34px;width:34px;padding:0;justify-content:center}
.nxo-view .pd-search__l,.nxo-view .pd-search kbd{display:none}
.nxo-view header[data-nxo-layout=docs]>.w{padding:0 16px;gap:10px}
}
@media (max-width:480px){.nxo-view .pd-ver>summary{padding:0 6px;font-size:11px}
.nxo-view .pd-pill{display:none}
.nxo-view [data-nxo-layout=docs][data-nxo-nav] .logo span{font-size:13.5px}
}
.nxo-view .pd-foot__top{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr) minmax(0,1fr);gap:40px;padding:40px 0 32px}
.nxo-view .pd-foot__id p{margin:14px 0 0;max-width:46ch;color:var(--t2);line-height:1.55}
.nxo-view .pd-foot__rec{margin:0;display:grid;gap:0;border-top:1px solid var(--hair)}
.nxo-view .pd-foot__rec>div{display:grid;grid-template-columns:110px 1fr;gap:12px;padding:8px 0;border-bottom:1px solid var(--hair)}
.nxo-view .pd-foot__rec dt{font:500 11px/1.6 var(--eyebrow-font,var(--mono));letter-spacing:.1em;text-transform:uppercase;color:var(--t3)}
.nxo-view .pd-foot__rec dd{margin:0;font:400 13px/1.5 var(--mono);color:var(--t1)}
.nxo-view .pd-foot__nav ul{margin:0;padding:0;list-style:none;columns:2;column-gap:24px}
.nxo-view .pd-foot__nav li{break-inside:avoid;padding:4px 0}
.nxo-view .pd-foot__nav a{color:var(--accent-2-text,var(--t2));text-decoration:none}
.nxo-view .pd-foot__nav a:hover{text-decoration:underline}
@media (max-width:900px){.nxo-view .pd-foot__top{grid-template-columns:1fr;gap:28px}
}
.nxo-view [data-nxo-nav] .nx-hex{display:none;flex:none;place-items:center;width:28px;height:28px;border-radius:var(--r,5px);color:var(--t1);text-decoration:none}
.nxo-view [data-nxo-nav] .nx-hex svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.25;stroke-linejoin:round}
.nxo-view [data-nxo-nav] .nx-hex circle{fill:currentColor;stroke:none}
.nxo-view [data-nxo-nav] .nx-hex:hover,.nxo-view [data-nxo-nav] .nx-hex:focus-visible{color:var(--accent)}
.nxo-view [data-nxo-nav] .nx-hex:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.nxo-view [data-nxo-nav][data-stuck] .nx-hex{display:inline-grid}
@media (min-width:1280px){.nxo-view [data-nxo-nav] .nx-hex{position:absolute;margin-inline-start:-34px}
}
@media (max-width:1279px){.nxo-view [data-nxo-nav][data-nxo-nav][data-stuck]:has(.nx-hex) .logo{display:none}
}
@media (prefers-reduced-motion:no-preference){.nxo-view [data-nxo-nav][data-stuck] .nx-hex{animation:nx-in .12s ease-out}
}
@media (forced-colors:active){.nxo-view [data-nxo-nav] .nx-hex{color:LinkText}
.nxo-view [data-nxo-nav] .nx-hex circle{fill:LinkText}
}
:root:has(.nxd[data-nxd],.nxo-reader:not(.nxo-reader--away)) .nxo-view{--nx-dock-reserve:76px}
.nxo-view :is(footer,div).nxf{padding-block-end:var(--nx-dock-reserve,0px)}

/* b/6e28ec410172/i18n.css */
.nxo-view .nxtr-sw{position:relative;display:inline-flex;flex:none}
.nxo-view .nxtr-sw-btn{list-style:none;display:inline-flex;align-items:center;gap:6px;box-sizing:border-box;height:36px;padding:0 10px;border:1px solid var(--hair2);border-radius:5px;background:transparent;color:var(--t2);font:500 11.5px var(--mono);letter-spacing:.06em;cursor:pointer;white-space:nowrap}
.nxo-view .nxtr-sw-btn::-webkit-details-marker{display:none}
.nxo-view .nxtr-sw-btn::marker{content:""}
.nxo-view .nxtr-sw-btn::after{content:"";width:.4em;height:.4em;border-inline-end:1.5px solid currentColor;border-block-end:1.5px solid currentColor;transform:rotate(45deg) translateY(-2px)}
.nxo-view .nxtr-sw[open]>.nxtr-sw-btn::after{transform:rotate(-135deg)}
.nxo-view .nxtr-sw-btn svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:1.2}
.nxo-view .nxtr-sw-btn:hover,.nxo-view .nxtr-sw[open]>.nxtr-sw-btn{color:var(--t1);border-color:var(--t3)}
.nxo-view .nxtr-sw-btn:focus-visible,.nxo-view .nxtr-sw-link:focus-visible{outline:2px solid var(--accent);outline-offset:1px}
.nxo-view .nxtr-sw-cur{display:none}
.nxo-view .nxtr-sw-list{position:absolute;top:calc(100% + 6px);inset-inline-end:0;z-index:60;min-width:200px;max-height:70vh;overflow:auto;margin:0;padding:6px;list-style:none;background:var(--bg);border:1px solid var(--hair2);border-radius:5px}
.nxo-view .nxtr-sw-list li{margin:0;padding:0}
.nxo-view .nxtr-sw-link{display:block;padding:8px 10px;border-radius:4px;color:var(--t2);font:400 14px var(--sans);text-decoration:none}
.nxo-view .nxtr-sw-link:hover{background:var(--hover);color:var(--t1)}
.nxo-view .nxtr-sw-mt{margin-inline-start:6px;font:400 11px var(--mono);color:var(--t3)}
.nxo-view .nxo-untranslated{max-width:880px;margin:calc(var(--nx-bar-end,104px) + 16px) auto 0;padding:10px 14px;border:1px solid var(--hair2);border-radius:5px;color:var(--t2);font:400 14px/1.5 var(--sans)}
.nxo-view .nxtr-sw-link[aria-current=true]{color:var(--t1);box-shadow:inset 2px 0 0 var(--accent)}
.nxo-view .nxtr-sw--footer .nxtr-sw-list{top:auto;bottom:calc(100% + 6px);inset-inline-end:auto;inset-inline-start:0}
@media (max-width:700px){.nxo-view .nxtr-sw-btn{gap:4px;padding:0 7px;font-size:10.5px;letter-spacing:.02em}
.nxo-view .nxtr-sw-btn::after{display:none}
.nxo-view .nxtr-sw-btn svg{width:13px;height:13px}
.nxo-view .nxtr-sw--header .nxtr-sw-list{position:fixed;top:56px;inset-inline:12px auto;min-width:0;width:min(260px,calc(100vw - 24px))}
}
@media (pointer:coarse){.nxo-view .nxtr-sw-link{min-height:44px;box-sizing:border-box;padding-block:12px}
}
.nxo-view:lang(ru){--sans:"IBM Plex Sans","IBM Plex Sans Fallback",system-ui,sans-serif;--mono:"IBM Plex Mono","IBM Plex Mono Fallback",ui-monospace,monospace}
.nxo-view:lang(zh-Hans){--sans:"IBM Plex Sans","Noto Sans SC","PingFang SC","Microsoft YaHei",sans-serif;--mono:"IBM Plex Mono","Noto Sans SC",monospace}
.nxo-view:lang(ja){--sans:"IBM Plex Sans","IBM Plex Sans JP","Hiragino Sans","Yu Gothic",sans-serif;--mono:"IBM Plex Mono","IBM Plex Sans JP",monospace}
.nxo-view:lang(ko){--sans:"IBM Plex Sans","IBM Plex Sans KR","Apple SD Gothic Neo","Malgun Gothic",sans-serif;--mono:"IBM Plex Mono","IBM Plex Sans KR",monospace}
.nxo-view:lang(hi){--sans:"IBM Plex Sans","IBM Plex Sans Devanagari",sans-serif;--mono:"IBM Plex Sans Devanagari Space","IBM Plex Mono","IBM Plex Sans Devanagari",monospace}
.nxo-view:lang(ar){--sans:"IBM Plex Sans","Vazirmatn","IBM Plex Sans Fallback",sans-serif;--mono:"Vazirmatn Space","IBM Plex Mono","Vazirmatn",monospace;--nxo-sans:var(--sans);--nxo-mono:var(--mono);--nxo-font:var(--sans)}
.nxo-view:is(:lang(zh-Hans),:lang(ja),:lang(ko),:lang(hi),:lang(ar)) :is(h1,h2,h3,.eyebrow,.badge,.btn,.ch-n,.nav .links a,.sx-ln button,.sx-ln a){letter-spacing:0!important}
.nxo-view:is(:lang(ar),:lang(hi)) *{letter-spacing:0!important}
.nxo-view:lang(ar) :is(*,*::before,*::after){letter-spacing:0!important;text-transform:none!important}
.nxo-view:lang(ar) :is(h1,h2,h3,h4,.lede,.sub,.hero p,.phero p){font-family:var(--sans)!important}
.nxo-view:lang(ar) :is(h1,h2){font-weight:500!important;line-height:1.3!important;text-wrap:balance}
.nxo-view:lang(ar) :is(h3,h4){font-weight:600!important;line-height:1.4!important}
.nxo-view:lang(ar) :is(p,li,dd,.lede,.sub){line-height:1.75}
.nxo-view:lang(ar) :is(.btn,.nav .links a,.eyebrow,.badge,.crumbs,.crumb){font-family:var(--sans)!important;font-weight:500}
.nxo-view:is(:lang(zh-Hans),:lang(ja),:lang(ko)) :is(h1,h2){line-height:1.25!important;overflow-wrap:anywhere;text-wrap:balance}
.nxo-view:lang(ko) :is(h1,h2){word-break:keep-all}
.nxo-view:is(:lang(zh-Hans),:lang(ja)) :is(h1,h2){word-break:normal;line-break:strict}
.nxo-view:lang(ja) :is(h1,h2){word-break:auto-phrase}
.nxo-view:is(:lang(zh-Hans),:lang(ja)) :is(h1,h2)[style*="ch"]{max-width:min(100%,14em)!important}
.nxo-view:is(:lang(hi),:lang(ar)) :is(h1,h2){line-height:1.35!important}
.nxo-view:is(:lang(de),:lang(ru),:lang(tr),:lang(id)) :is(h1,h2,h3){hyphens:auto;overflow-wrap:anywhere}
.nxo-view :is(canvas,svg,.chain,.timeline,.span,.tl-plot,.st-cmp):dir(rtl){direction:ltr}
.nxo-view .sx-netb svg:dir(rtl),.nxo-view .sx-ln:dir(rtl){direction:rtl}
.nxo-view .th canvas.hg:dir(rtl){right:auto;left:0}
.nxo-view .srch svg:dir(rtl){left:auto;right:11px}
.nxo-view .th img.still:dir(rtl){mask-image:linear-gradient(270deg,transparent 0,var(--bg) 22%);-webkit-mask-image:linear-gradient(270deg,transparent 0,var(--bg) 22%)}
.nxo-view .uni .scrim:dir(rtl){background:linear-gradient(270deg,var(--bg) 0,color-mix(in srgb,var(--bg) 70%,transparent) 38%,transparent 62%)}
@media (max-width:900px){.nxo-view .uni .scrim:dir(rtl){background:linear-gradient(180deg,transparent 0,var(--bg) 70%)}
}
.nxo-view .track>li.on:dir(rtl):after{background:linear-gradient(270deg,var(--accent),var(--hair2))}
.nxo-view .dg-ribbon:dir(rtl):before{background:linear-gradient(270deg,var(--accent) 0 40px,var(--hair2) 40px)}
.nxo-view :is(dd,output):dir(rtl){unicode-bidi:plaintext;text-align:right}
.nxo-view :is(.ro dd,.grp3 dd,.nxo3d-card dd):dir(rtl){text-align:left}
.nxo-view :is(kbd,code,samp):dir(rtl){unicode-bidi:isolate;direction:ltr}
.nxo-view :is(input:not([type=email],[type=url],[type=tel],[type=number],[type=range],[type=checkbox],[type=radio]),textarea):dir(rtl){unicode-bidi:plaintext}
.nxo-view input:is([type=email],[type=url],[type=tel]):dir(rtl){direction:ltr;text-align:right}
.nxo-view :is(svg.go,[data-mirror]):dir(rtl){transform:scaleX(-1)}
@media (min-width:701px){.nxo-view .drw:dir(rtl){right:auto;left:0;transform:translateX(-100%)}
.nxo-view .drw.open:dir(rtl){transform:none}
}
.nxo-view .sx-rail button[aria-pressed=true]:dir(rtl),.nxo-view .nxtr-sw-link[aria-current=true]:dir(rtl){box-shadow:inset -2px 0 0 var(--accent)}

/* b/6e28ec410172/ins/ins.css */
/* Instrument UI: the page-level language that matches the chrome and the CAD scenes. Hairline frames with corner
   ticks, measured rails, monospaced readouts, one red signal for what is active. Tokens come from kit.css. */

/* native buttons styled as .btn start transparent (variants set their own fill) */
button.btn{background:transparent;color:var(--t1);cursor:pointer}
button.btn:disabled{opacity:.4;cursor:default}
.btn kbd{margin-inline-start:2px}

/* ---------- layout: section rail + content ---------- */
.ins-shell{display:grid;grid-template-columns:208px minmax(0,1fr);gap:56px;align-items:start}
.ins-rail{position:sticky;top:calc(var(--chrome-h,64px) + 32px);max-height:calc(100vh - var(--chrome-h,64px) - 56px);overflow:auto;padding:4px 0 24px;scrollbar-width:none}
.ins-rail::-webkit-scrollbar{display:none}
.ins-rail ol{list-style:none;margin:0;padding:0;position:relative}
.ins-rail ol:before{content:"";position:absolute;inset-inline-start:3px;top:6px;bottom:6px;width:1px;background:var(--hair2)}
.ins-rail .prog{position:absolute;inset-inline-start:3px;top:6px;width:1px;height:0;background:var(--accent);transition:height var(--dur-base) var(--ease-standard)}
.ins-rail li a{position:relative;display:grid;grid-template-columns:1fr auto;gap:8px;padding:7px 0 7px 22px;color:var(--t3);font:400 13px/1.35 var(--sans);border-radius:var(--rc)}
.ins-rail li a:before{content:"";position:absolute;inset-inline-start:0;top:12px;width:7px;height:7px;border:1px solid var(--hair2);background:var(--bg);transform:rotate(45deg)}
.ins-rail li a:hover{color:var(--t1)}
.ins-rail li a[aria-current=true]{color:var(--t1)}
.ins-rail li a[aria-current=true]:before{border-color:var(--accent-text);background:var(--accent)}
.ins-rail li a em{font:400 11px var(--mono);font-style:normal;font-variant-numeric:var(--numeric);color:var(--t3)}
.ins-rail .jump{margin-top:20px;width:100%}
.ins-rail .rt{display:block;font:500 11px var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--t3);margin:0 0 14px}
.ins-main{min-width:0}
.ins-sec{padding:72px 0;border-top:1px solid var(--hair);scroll-margin-top:calc(var(--chrome-h,64px) + 60px)}
.ins-sec:first-child{border-top:0;padding-top:24px}
.ins-sec>header{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:24px;align-items:end;margin-bottom:32px}
.ins-sec>header h2{margin:0 0 10px}
.ins-sec>header p{margin:0;color:var(--t2);max-width:64ch;font-size:15px;line-height:1.55}
.ins-sec>header .acts{display:flex;gap:8px;flex-wrap:wrap}

/* mobile: the rail becomes a horizontal sticky scroller with progress */
@media (max-width:1100px){
  .ins-shell{grid-template-columns:1fr;gap:0}
  .ins-rail{position:sticky;top:var(--chrome-h,64px);z-index:var(--z-sticky);max-height:none;overflow-x:auto;overflow-y:hidden;background:var(--bg);border-bottom:1px solid var(--hair);margin:0 -48px;padding:0 48px}
  .ins-rail .rt,.ins-rail .jump{display:none}
  .ins-rail ol{display:flex;gap:4px;white-space:nowrap}
  .ins-rail ol:before,.ins-rail .prog{display:none}
  .ins-rail li a{padding:14px 10px;display:flex;gap:6px}
  .ins-rail li a:before{display:none}
  .ins-rail li a[aria-current=true]{box-shadow:inset 0 -2px 0 var(--accent)}
  .ins-sec>header{grid-template-columns:1fr}
}
/* the rail bleeds to the page edge by the page gutter (kit.css .w: 48 px, 20 px at 900 and below, 16 px at 700) */
@media (max-width:900px){.ins-rail{margin:0 -20px;padding:0 20px}}
@media (max-width:700px){.ins-rail{margin:0 -16px;padding:0 16px}.ins-sec{padding:48px 0}}

/* ---------- frame: hairline box ---------- */
.frame{position:relative;border:1px solid var(--hair);background:var(--bg)}
.frame.on{border-color:var(--accent-text)}

/* ---------- HUD readouts ---------- */
.hud{display:grid;grid-template-columns:repeat(var(--n,4),minmax(0,1fr));border:1px solid var(--hair)}
.hud>div{padding:16px 18px 14px;border-inline-start:1px solid var(--hair);min-width:0}
.hud>div:first-child{border-inline-start:0}
.hud dt{font:400 11.5px var(--sans);color:var(--t3);margin:0}
.hud dd{margin:6px 0 0;font:400 28px/1.1 var(--mono);font-variant-numeric:var(--numeric);letter-spacing:-.02em;color:var(--t1)}
.hud dd small{font:400 12px var(--mono);color:var(--t3);margin-inline-start:4px;letter-spacing:0}
.hud>div.sig dd{color:var(--accent-text)}
@media (max-width:700px){.hud{grid-template-columns:1fr 1fr}.hud>div:nth-child(odd){border-inline-start:0}.hud>div:nth-child(n+3){border-top:1px solid var(--hair)}.hud dd{font-size:22px}}

/* ---------- toolbar: search, segmented control, toggles ---------- */
.tool{display:flex;flex-wrap:wrap;gap:10px;align-items:center;padding:12px;border:1px solid var(--hair);border-bottom:0;background:var(--surface)}
.tool .sp{flex:1}
.srch{position:relative;flex:1 1 260px;max-width:420px}
.srch input{width:100%;height:38px;border:1px solid var(--hair2);border-radius:var(--r);background:var(--bg);color:var(--t1);padding:0 64px 0 36px;font:400 14px var(--sans)}
.srch svg{position:absolute;inset-inline-start:11px;top:11px;width:16px;height:16px;stroke:var(--t3);fill:none;stroke-width:1.5}
.srch kbd{position:absolute;inset-inline-end:8px;top:8px}
.srch input:focus{outline:2px solid var(--accent);outline-offset:1px;border-color:transparent}
kbd{display:inline-flex;align-items:center;height:22px;padding:0 6px;border:1px solid var(--hair2);border-bottom-width:2px;border-radius:4px;font:500 11px var(--mono);color:var(--t3);background:var(--bg)}
.seg{display:inline-flex;border:1px solid var(--hair2);border-radius:var(--r);overflow:hidden;flex:none;max-width:100%;overflow-x:auto}
.seg button{height:36px;padding:0 12px;background:var(--bg);color:var(--t2);border:0;border-inline-start:1px solid var(--hair2);font:500 13px var(--sans);cursor:pointer;white-space:nowrap;display:inline-flex;gap:6px;align-items:center}
.seg button:first-child{border-inline-start:0}
.seg button em{font:400 11px var(--mono);font-style:normal;color:var(--t3);font-variant-numeric:var(--numeric)}
.seg button:hover{background:var(--hover);color:var(--t1)}
.seg button[aria-pressed=true]{background:var(--t1);color:var(--bg)}
.seg button[aria-pressed=true] em{color:var(--bg);opacity:.7}
.seg button:focus-visible,.chip:focus-visible,.list .row:focus-visible,.tabs [role=tab]:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}
.tgl{display:inline-flex;align-items:center;gap:8px;height:36px;padding:0 12px;border:1px solid var(--hair2);border-radius:var(--r);font:500 13px var(--sans);color:var(--t2);cursor:pointer;background:var(--bg)}
.tgl input{position:absolute;opacity:0;width:1px;height:1px}
.tgl i{width:28px;height:16px;border-radius:8px;border:1px solid var(--hair2);position:relative;transition:background var(--dur-fast)}
.tgl i:after{content:"";position:absolute;inset-inline-start:2px;top:2px;width:10px;height:10px;border-radius:50%;background:var(--t3);transition:transform var(--dur-fast),background var(--dur-fast)}
.tgl input:checked+i{background:var(--accent);border-color:var(--accent-text)}
.tgl input:checked+i:after{transform:translateX(12px);background:var(--on-accent,var(--bg))}.tgl input:checked+i:dir(rtl):after{transform:translateX(-12px)}
.tgl input:focus-visible+i{outline:2px solid var(--accent);outline-offset:2px}
.chip{display:inline-flex;align-items:center;gap:6px;height:28px;padding:0 10px;border:1px solid var(--hair2);border-radius:4px;background:var(--bg);color:var(--t2);font:500 12px var(--sans);cursor:pointer}
.chip[aria-pressed=true]{border-color:var(--accent-text);color:var(--t1);box-shadow:inset 0 0 0 1px var(--accent)}

/* ---------- tabs ---------- */
.tabs [role=tablist]{display:flex;gap:0;border-bottom:1px solid var(--hair);overflow-x:auto;scrollbar-width:thin}
.tabs [role=tab]{flex:none;height:48px;padding:0 16px;background:none;border:0;border-bottom:2px solid transparent;color:var(--t3);font:500 14px var(--sans);cursor:pointer;display:inline-flex;gap:8px;align-items:center;white-space:nowrap}
.tabs [role=tab] em{font:400 11px var(--mono);font-style:normal;color:var(--t3)}
.tabs [role=tab]:hover{color:var(--t1)}
.tabs [role=tab][aria-selected=true]{color:var(--t1);border-bottom-color:var(--accent-text)}
.tabs [role=tabpanel]{padding-top:28px}
.tabs [role=tabpanel][hidden]{display:none}

/* ---------- explorer: rows that open a detail drawer ---------- */
.list{border:1px solid var(--hair);background:var(--bg)}
.list .row{display:grid;grid-template-columns:var(--cols,minmax(0,2fr) minmax(0,3fr) auto) 16px;gap:20px;align-items:center;width:100%;padding:14px 18px;border:0;border-top:1px solid var(--hair);background:var(--bg);color:var(--t1);text-align:start;font:inherit;cursor:pointer;transition:background var(--dur-fast)}
.list .row:first-child{border-top:0}
.list .row:hover{background:var(--surface)}
.list .row[aria-expanded=true]{background:var(--surface);box-shadow:inset 2px 0 0 var(--accent)}
.list .row b{font:600 14px/1.35 var(--sans);display:flex;align-items:center;gap:8px;min-width:0}
.list .row span{color:var(--t2);font-size:13.5px;line-height:1.45;min-width:0;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.list .row span.meta{display:flex;-webkit-line-clamp:unset}
.list .row .meta{font:400 11.5px var(--mono);color:var(--t3);white-space:nowrap;display:flex;gap:10px;align-items:center}
.list .row .go{width:16px;height:16px;stroke:var(--t3);fill:none;stroke-width:1.5;flex:none}
.list .row:hover .go{stroke:var(--t1)}
.dot{width:6px;height:6px;border-radius:50%;background:var(--accent);flex:none;display:inline-block}
.ring{width:7px;height:7px;border-radius:50%;border:1px solid var(--t3);flex:none;display:inline-block}
.listfoot{display:flex;justify-content:space-between;align-items:center;padding:10px 18px;border:1px solid var(--hair);border-top:0;font:400 12px var(--mono);color:var(--t3)}
.empty{padding:48px 24px;text-align:center;color:var(--t2)}
.empty b{display:block;font:600 15px var(--sans);color:var(--t1);margin-bottom:6px}
.empty button{margin-top:16px}
@media (max-width:800px){.list .row{grid-template-columns:1fr;gap:6px}.list .row>.go{display:none}.list .row .meta{white-space:normal;flex-wrap:wrap}}

/* ---------- grid of panels (replaces flat card walls) ---------- */
.panels{display:grid;grid-template-columns:repeat(var(--n,3),minmax(0,1fr));gap:16px}
.panel{position:relative;padding:22px 22px 20px;border:1px solid var(--hair);background:var(--bg);display:flex;flex-direction:column;gap:10px;min-width:0;text-align:start;color:inherit;font:inherit;transition:border-color var(--dur-fast),background var(--dur-fast)}
button.panel,a.panel{cursor:pointer}
button.panel:hover,a.panel:hover{border-color:var(--hair2);background:var(--surface)}
.panel.on{border-color:var(--accent-text)}
.panel h3{margin:0;font:600 16px/1.3 var(--sans)!important}
.panel p{margin:0;color:var(--t2);font-size:13.5px;line-height:1.55}
.panel .k{font:400 11.5px var(--mono);color:var(--t3);font-variant-numeric:var(--numeric)}
.panel .foot{margin-top:auto;padding-top:8px;display:flex;gap:6px;flex-wrap:wrap}
:is(.panel,.md,.drw,.tags,.ins-main,.top,.dp) .tag{display:inline-flex;align-items:center;height:22px;padding:0 7px;border:1px solid var(--hair2);border-radius:4px;font:400 11px var(--mono);color:var(--t2);white-space:nowrap}
:is(.panel,.md,.drw,.tags,.ins-main,.top,.dp) .tag.sig{border-color:var(--accent-text);color:var(--t1)}
@media (max-width:1000px){.panels{grid-template-columns:1fr 1fr}}
@media (max-width:640px){.panels{grid-template-columns:1fr}}

/* ---------- drawer (side panel; bottom sheet on phones) ---------- */
.drw-bg{position:fixed;inset:0;z-index:var(--z-overlay);background:rgba(var(--paper),.55);opacity:0;transition:opacity var(--dur-base)}
.drw[hidden],.drw-bg[hidden]{display:none!important}
.drw{position:fixed;font-family:var(--sans);color:var(--t1);top:0;right:0;bottom:0;z-index:calc(var(--z-overlay) + 1);width:min(520px,100vw);background:var(--bg);border-inline-start:1px solid var(--hair2);display:flex;flex-direction:column;align-items:stretch;text-align:start;transform:translateX(100%);transition:transform var(--dur-base) var(--ease-standard);box-shadow:var(--shadow-menu)}
.drw.open{transform:none;display:flex;gap:0;align-items:stretch}.drw-bg.open{opacity:1}
.drw .dh{display:flex;gap:12px;align-items:flex-start;justify-content:space-between;padding:22px 24px 18px;border-bottom:1px solid var(--hair)}
.drw .dh .kick{font:400 12px var(--mono);color:var(--t3)}
.drw .dh h2{margin:6px 0 0!important;font:400 24px/1.15 var(--display)!important;letter-spacing:-.03em!important}
.drw .x{flex:none;width:36px;height:36px;border:1px solid var(--hair2);border-radius:var(--r);background:var(--bg);color:var(--t1);cursor:pointer;display:grid;place-items:center}
.drw .x:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.drw .body{overflow:auto;padding:22px 24px 32px;flex:1}
.drw .body p{color:var(--t2);font-size:14.5px;line-height:1.6;margin:0 0 18px}
.drw .body h3{margin:24px 0 10px;font:500 11.5px var(--mono)!important;letter-spacing:.08em!important;text-transform:uppercase;color:var(--t3)}
.drw .body ul{margin:0;padding:0;list-style:none;border-top:1px solid var(--hair)}
.drw .body li{padding:10px 0;border-bottom:1px solid var(--hair);font-size:13.5px;color:var(--t2);display:flex;justify-content:space-between;gap:12px}
.drw .body li b{color:var(--t1);font-weight:500}
.drw .body a{text-decoration:underline;text-decoration-color:var(--hair2);text-underline-offset:3px}
.drw .body a:hover{text-decoration-color:var(--accent-text)}
.drw .acts{display:flex;gap:8px;padding:16px 24px;border-top:1px solid var(--hair)}
.drw .nav2{display:flex;gap:8px;margin-inline-start:auto}
@media (max-width:700px){.drw{top:auto;inset-inline-start:0;width:100%;height:86vh;border-inline-start:0;border-top:1px solid var(--hair2);transform:translateY(100%);border-radius:5px 5px 0 0}}

/* ---------- command palette ---------- */
.pal-bg{position:fixed;inset:0;z-index:calc(var(--z-overlay) + 2);background:rgba(var(--paper),.6);display:none}
.pal-bg.open{display:block}
.pal{position:fixed;font-family:var(--sans);color:var(--t1);left:50%;top:12vh;z-index:calc(var(--z-overlay) + 3);width:min(640px,calc(100vw - 32px));transform:translateX(-50%);background:var(--bg);border:1px solid var(--hair2);border-radius:5px;box-shadow:var(--shadow-menu);display:none;overflow:hidden}
.pal.open{display:block}
.pal input{width:100%;height:56px;border:0;border-bottom:1px solid var(--hair);background:var(--bg);color:var(--t1);padding:0 20px 0 48px;font:400 16px var(--sans)}
.pal input:focus{outline:none}
.pal .ico{position:absolute;inset-inline-start:18px;top:19px;width:18px;height:18px;stroke:var(--t3);fill:none;stroke-width:1.5}
.pal [role=listbox]{max-height:min(420px,60vh);overflow:auto;padding:6px}
.pal [role=option]{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:12px;align-items:center;padding:10px 12px;border-radius:6px;cursor:pointer}
.pal [role=option] b{font:500 14px var(--sans);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pal [role=option] span{font:400 11.5px var(--mono);color:var(--t3);white-space:nowrap}
.pal [role=option] i{width:7px;height:7px;border:1px solid var(--t3);transform:rotate(45deg)}
.pal [role=option][aria-selected=true]{background:var(--surface)}
.pal [role=option][aria-selected=true] i{border-color:var(--accent-text);background:var(--accent)}
.pal .ft{display:flex;gap:16px;padding:10px 16px;border-top:1px solid var(--hair);font:400 12px var(--sans);color:var(--t3)}
.pal .none{padding:28px;text-align:center;color:var(--t3)}

/* ---------- step track (flows) ---------- */
.track{display:grid;grid-template-columns:repeat(var(--n,5),minmax(150px,1fr));overflow-x:auto;border:1px solid var(--hair)}
.track>li{list-style:none;position:relative;padding:44px 16px 18px;border-inline-start:1px solid var(--hair);min-width:0}
.track>li:first-child{border-inline-start:0}
.track>li:before{content:"";position:absolute;inset-inline-start:16px;top:20px;width:9px;height:9px;border:1px solid var(--t3);background:var(--bg);transform:rotate(45deg)}
.track>li:after{content:"";position:absolute;inset-inline-start:34px;inset-inline-end:0;top:24px;height:1px;background:var(--hair2)}
.track>li:last-child:after{display:none}
.track>li.on:before{border-color:var(--accent-text);background:var(--accent)}
.track>li.on:after{background:linear-gradient(90deg,var(--accent),var(--hair2))}
.track>li .n{position:absolute;inset-inline-end:14px;top:16px;font:400 11px var(--mono);color:var(--t3)}
.track b{display:block;font:600 13.5px/1.35 var(--sans);margin-bottom:6px}
.track span{display:block;font-size:12.5px;line-height:1.45;color:var(--t2)}
.track .ob{margin-top:8px;font:400 11px var(--mono);color:var(--t3)}

/* ---------- motion ---------- */
@media (prefers-reduced-motion:reduce){.drw,.drw-bg,.ins-rail .prog,.tgl i,.tgl i:after{transition:none}}
.sr{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* ---------- state diagrams ---------- */
.sd{display:block;width:100%;height:auto;min-width:640px}
.sdwrap{overflow-x:auto;border:1px solid var(--hair);background:var(--bg)}
.sd .e{fill:none;stroke:rgba(var(--ink),.28);stroke-width:1;transition:stroke var(--dur-fast)}
.sd .e.on{stroke:var(--accent);stroke-width:1.5}
.sd .e.dim{stroke:rgba(var(--ink),.08)}
.sd .n rect{fill:var(--bg);stroke:rgba(var(--ink),.45);transition:stroke var(--dur-fast),fill var(--dur-fast)}
.sd .n text{fill:var(--t2);font:500 11px var(--mono)}
.sd .n{cursor:pointer;outline:none}
.sd .n:hover rect,.sd .n:focus-visible rect{stroke:var(--t1)}
.sd .n.on rect{stroke:var(--accent);fill:var(--accent-bg)}.sd .n.on text{fill:var(--t1)}
.sd .n.nb rect{stroke:var(--t1)}.sd .n.nb text{fill:var(--t1)}
.sd .n.dim{opacity:.6}
.sd .n.term rect{stroke-dasharray:3 3}
.sdread{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border:1px solid var(--hair);border-top:0}
.sdread>div{padding:14px 18px;border-inline-start:1px solid var(--hair);min-width:0}.sdread>div:first-child{border-inline-start:0}
.sdread dt{font:400 11.5px var(--sans);color:var(--t3)}.sdread dd{margin:6px 0 0;font:500 13px/1.5 var(--mono);color:var(--t1);overflow-wrap:anywhere}
@media (max-width:700px){.sdread{grid-template-columns:1fr}.sdread>div{border-inline-start:0;border-top:1px solid var(--hair)}.sdread>div:first-child{border-top:0}}

/* ---------- master/detail (vertical tabs) ---------- */
.md{display:grid;grid-template-columns:260px minmax(0,1fr);border:1px solid var(--hair);min-height:420px}
.md [role=tablist]{display:flex;flex-direction:column;border-inline-end:1px solid var(--hair);background:var(--bg)}
.md [role=tab]{display:grid;grid-template-columns:22px 1fr auto;gap:10px;align-items:center;min-height:46px;padding:8px 16px;border:0;border-bottom:1px solid var(--hair);background:none;color:var(--t3);font:500 14px var(--sans);text-align:start;cursor:pointer}
.md [role=tab] .ix{font:400 11px var(--mono);color:var(--t3)}
.md [role=tab] em{font:400 11px var(--mono);font-style:normal;color:var(--t3)}
.md [role=tab]:hover{color:var(--t1);background:var(--surface)}
.md [role=tab][aria-selected=true]{color:var(--t1);background:var(--surface);box-shadow:inset 2px 0 0 var(--accent)}
.md [role=tab][aria-selected=true] .ix{color:var(--accent-text)}
.md [role=tab]:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}
.md [role=tabpanel]{padding:28px 32px;min-width:0}
.md [role=tabpanel] h3{margin:0 0 10px;font:400 28px/1.1 var(--display)!important;letter-spacing:-.03em!important}
.md [role=tabpanel] .lead{color:var(--t2);font-size:15px;line-height:1.6;max-width:68ch;margin:0 0 24px}
.md .facets{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}
.md .facets h4{margin:0 0 10px;font:400 11.5px var(--sans);color:var(--t3)}
.md .facets .tags{display:flex;flex-wrap:wrap;gap:6px}
.md .tags button.tag{height:24px;cursor:pointer;background:var(--bg)} /* a pressable tag meets the 24 px target (WCAG 2.5.8) */
.md .tags button.tag:hover{border-color:var(--t1);color:var(--t1)}
.md .tags button.tag:focus-visible{outline:2px solid var(--accent);outline-offset:1px}
@media (max-width:900px){.md{grid-template-columns:1fr}.md [role=tablist]{flex-direction:row;overflow-x:auto;border-inline-end:0;border-bottom:1px solid var(--hair)}.md [role=tab]{border-bottom:0;border-inline-end:1px solid var(--hair);white-space:nowrap;grid-template-columns:auto auto;flex:none}.md [role=tab] em{display:none}.md [role=tabpanel]{padding:22px 18px}.md .facets{grid-template-columns:1fr}}

/* ---------- matrix heatmap ---------- */
.mx{overflow-x:auto;border:1px solid var(--hair)}
.mx table{border-collapse:collapse;width:auto;min-width:100%}
.mx td,.mx thead th:not(:first-child){width:44px;min-width:44px}
.mx th,.mx td{border-bottom:1px solid var(--hair);padding:0;text-align:center}
.mx thead th{font:400 11px var(--mono);color:var(--t3);height:120px;vertical-align:bottom;padding:0 0 10px;white-space:nowrap}
.mx thead th span{display:inline-block;writing-mode:vertical-rl;transform:rotate(180deg)}
.mx thead th button{all:unset;cursor:pointer;color:inherit}.mx thead th button:hover,.mx thead th button:focus-visible{color:var(--t1);outline:2px solid var(--accent);outline-offset:2px}
.mx tbody th{font:500 13px var(--sans);text-align:start;padding:10px 16px;white-space:nowrap;color:var(--t1)}
.mx td i{display:block;width:16px;height:16px;margin:auto;border:1px solid var(--hair2);transform:rotate(45deg) scale(.6)}
.mx td.on i{background:var(--t1);border-color:var(--t1)}
.mx tr:hover td.on i,.mx td.col.on i{background:var(--accent);border-color:var(--accent-text)}
.mx tr:hover th{color:var(--accent-text)}
.mx td.col{background:var(--surface)}
.mx tfoot td{font:400 11px var(--mono);color:var(--t3);padding:8px 0}

/* ---------- sequence controls ---------- */
.ctl{display:flex;gap:8px;align-items:center;flex-wrap:wrap;padding:12px;border:1px solid var(--hair);border-top:0;background:var(--surface)}
.ctl .read{margin-inline-start:auto;font:400 12.5px var(--mono);color:var(--t2)}
.ctl .btn svg{width:14px;height:14px;fill:currentColor}

/* ---------- legal footer (standard on every page) ---------- */
footer.legal{border-top:1px solid var(--hair);padding:48px 0 64px;color:var(--t3);font-size:13px;line-height:1.7}
footer.legal .w{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr) minmax(0,1fr);gap:40px}
footer.legal b{color:var(--t1);font-weight:600}
footer.legal a{color:var(--t2);text-decoration:underline;text-decoration-color:var(--hair2);text-underline-offset:3px}
footer.legal a:hover{color:var(--t1);text-decoration-color:var(--accent-text)}
@media (max-width:800px){footer.legal .w{grid-template-columns:1fr;gap:24px}}

/* ---------- frequency ruler ---------- */
.ruler{position:relative;border:1px solid var(--hair);background:var(--bg);padding:20px 20px 12px;overflow-x:auto}
.ruler svg{display:block;width:100%;min-width:760px;height:auto}
.ruler .ax{stroke:rgba(var(--ink),.35)}.ruler .tk{stroke:rgba(var(--ink),.25)}.ruler .tl{fill:var(--t3);font:400 11px var(--mono)}
.ruler .bd rect{fill:rgba(var(--ink),.06);stroke:rgba(var(--ink),.55);cursor:pointer;transition:fill var(--dur-fast),stroke var(--dur-fast)}
.ruler .bd.LICENSED rect{fill:rgba(var(--ink),.22)}.ruler .bd.LIGHTLY_LICENSED rect{fill:rgba(var(--ink),.12);stroke-dasharray:4 2}.ruler .bd.CLOSING rect{fill:none;stroke-dasharray:2 3}
.ruler .bd text{fill:var(--t2);font:400 10.5px var(--mono);pointer-events:none}
.ruler .bd:hover rect,.ruler .bd:focus-visible rect,.ruler .bd.on rect{stroke:var(--accent);fill:var(--accent-bg)}
.ruler .bd:focus-visible{outline:none}
.ruler .jl{fill:var(--t1);font:500 12px var(--sans)}
.legend2{display:flex;gap:18px;flex-wrap:wrap;margin-top:12px;font:400 12px var(--sans);color:var(--t3)}
.legend2 i{display:inline-block;width:18px;height:10px;margin-inline-end:6px;vertical-align:-1px;border:1px solid rgba(var(--ink),.55)}
@media (max-width:700px){.btn[data-variant=ghost][data-pal-open]{display:none}}

/* ---------- sequence diagrams (flows) ---------- */
.seq{display:block;width:100%;height:auto;min-width:720px}
.seqwrap{overflow-x:auto;border:1px solid var(--hair);background:var(--bg)}
.seq .ln{stroke:rgba(var(--ink),.14);stroke-dasharray:3 5}.seq .hd rect{fill:var(--bg);stroke:rgba(var(--ink),.4)}.seq .hd text{fill:var(--t1);font:500 11px var(--mono)}
.seq .msg line{stroke:rgba(var(--ink),.35)}.seq .msg text{fill:var(--t3);font:400 11.5px var(--sans)}.seq .msg.done line{stroke:rgba(var(--ink),.6)}.seq .msg.done text{fill:var(--t2)}
.seq .msg.on line{stroke:var(--accent);stroke-width:1.5}.seq .msg.on text{fill:var(--t1)}.seq .obj{fill:var(--t3);font:400 10px var(--mono)}
.flowgrid{display:grid;grid-template-columns:240px minmax(0,1fr);gap:0}
.flowgrid .fl{border:1px solid var(--hair);border-inline-end:0;display:flex;flex-direction:column}
.flowgrid .fl button{display:flex;justify-content:space-between;gap:8px;text-align:start;min-height:44px;padding:10px 16px;background:var(--bg);border:0;border-bottom:1px solid var(--hair);color:var(--t3);font:500 13.5px var(--sans);cursor:pointer}
.flowgrid .fl button em{font:400 11px var(--mono);font-style:normal}
.flowgrid .fl button:hover{color:var(--t1);background:var(--surface)}
.flowgrid .fl button[aria-pressed=true]{color:var(--t1);background:var(--surface);box-shadow:inset 2px 0 0 var(--accent)}
.flowgrid .fl button:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}
@media (max-width:900px){.flowgrid{grid-template-columns:1fr}.flowgrid .fl{flex-direction:row;overflow-x:auto;border-inline-end:1px solid var(--hair);border-bottom:0}.flowgrid .fl button{flex:none;border-bottom:0;border-inline-end:1px solid var(--hair);white-space:nowrap}}

/* ---------- ledger: name / statement rows for principles and rules ---------- */
.ledger{border-top:1px solid var(--hair);columns:2;column-gap:56px}
.ledger>div{break-inside:avoid;display:grid;grid-template-columns:minmax(0,1fr);gap:6px;padding:18px 0;border-bottom:1px solid var(--hair)}
.ledger dt{font:600 15px/1.35 var(--sans);color:var(--t1);display:flex;gap:10px;align-items:baseline}
.ledger dt:before{content:"";flex:none;width:7px;height:7px;border:1px solid var(--t3);transform:rotate(45deg) translateY(-2px)}
.ledger dd{margin:0 0 0 17px;color:var(--t2);font-size:14px;line-height:1.6;max-width:62ch}
@media (max-width:900px){.ledger{columns:1}}
.drw .body ul.ms li{display:grid;grid-template-columns:88px minmax(0,1fr);justify-content:start}.drw .body ul.ms b{font:500 12.5px var(--mono)}
.flowgrid>*,.md>*,.ws>*{min-width:0}
.mx,.mx td,.mx th{position:relative}

/* ---------- layout stability (CLS ≤ 0.1): views fill their text after load. Hero copy stays hidden until its heading
   is written, so it appears once in its final layout; containers the scripts fill keep a reserved size, so static
   blocks after them start below the fold and never jump into view. ---------- */
.th .copy:has(> h1:empty),.hero .w:has(> h1:empty),.phero .w:has(> h1:empty),.ah .w:has(> h1:empty){visibility:hidden}
#body:empty,#eras:empty,#layers:empty{min-height:100vh}
#hero-hud:empty,#counts:empty,#dsum:empty{min-height:84px}
@media (max-width:700px){#hero-hud:empty,#counts:empty,#dsum:empty{min-height:150px}}
.vrow{min-height:38px}
#roles:empty{min-width:min(650px,100%);min-height:38px}
#explainer .xpl{min-height:min(80vh,720px)}
main:has(.th h1:empty)>:not(.th),main:has(.hero h1:empty)>:not(.hero){visibility:hidden}
@media (max-width:700px){.uni .w{justify-content:flex-start!important;padding-top:56px}header.nav .navr{min-width:206px;justify-content:flex-end}}
.th .w:has(h1:empty){visibility:hidden}
body:has(.th h1:empty) .th~*,body:has(.th h1:empty) #main~*,body:has(.th h1:empty) .prtab,body:has(.th h1:empty) .sp-body{visibility:hidden}
.uni .w:has(#hero-hud:empty){visibility:hidden}
#scn:empty,#rt:empty{min-height:100vh}
.ah #lede:empty{min-height:5.2em}
@media (max-width:700px){.ah #lede:empty{min-height:9.5em}}
body:has(article#body:empty) .doc,body:has(article#body:empty) .doc~*{visibility:hidden}
.doc:has(article#body:empty){min-height:100vh}
#cr:empty{min-height:100vh}

/* ---------- lineage and references ---------- */
.ledger.lineage{columns:1}.lineage>div{grid-template-columns:160px minmax(0,1fr);gap:24px}.lineage dt{flex-direction:column;align-items:flex-start;gap:4px}.lineage dt:before{display:none}.lineage dd{margin:0;max-width:72ch}
.lineage dt .k{font:500 12px/1.4 var(--mono);letter-spacing:.04em;color:var(--t3)}
.lineage sup a{text-decoration:none;font-size:11px;margin-inline-start:2px}
.refs:dir(rtl){padding-inline-end:28px}
.refs{margin:0;padding-inline-start:28px;max-width:84ch;display:grid;gap:10px;font-size:14px;line-height:1.55;color:var(--t2)}
.refs a{overflow-wrap:anywhere}
.refs li:target{color:var(--t1)}
@media (max-width:700px){.lineage>div{grid-template-columns:minmax(0,1fr);gap:6px}}
/* WCAG 2.2: the jump button keeps full contrast in both themes; rail links are at least 24px tall (2.5.8). */
.btn[data-pal-open]{background:transparent;color:var(--t1);border:1px solid var(--hair2)}
.btn[data-pal-open]:hover{background:var(--hover);color:var(--t1)}
.btn[data-pal-open] kbd{color:var(--t1);background:var(--bg)}
.ins-rail ol a{min-height:24px;display:inline-flex;align-items:center}

/* ---------- protocol explorer tabs (figures from system/diagram) ---------- */
.pxp-tabs{display:flex;gap:2px;border-bottom:1px solid var(--hair);margin:0 0 22px;overflow-x:auto;scrollbar-width:none}
.pxp-tabs::-webkit-scrollbar{display:none}
.pxp-tabs [role=tab]{appearance:none;background:transparent;border:0;color:var(--t3);font:500 14px var(--sans);padding:12px 16px 13px;display:inline-flex;align-items:baseline;gap:8px;cursor:pointer;white-space:nowrap;box-shadow:inset 0 -2px 0 transparent}
.pxp-tabs [role=tab] em{font:400 11px var(--mono);font-style:normal;color:var(--t3)}
.pxp-tabs [role=tab]:hover{color:var(--t1);box-shadow:inset 0 -2px 0 var(--accent)}
.pxp-tabs [role=tab][aria-selected=true]{color:var(--t1);box-shadow:inset 0 -2px 0 var(--t1)}
.pxp-tabs [role=tab]:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}

/* b/6e28ec410172/chrome.css */

/* b/6e28ec410172/tpl.css */
.nxo-view{padding-top:0}
.nxo-view .th{position:relative;min-height:760px;height:92vh;border-bottom:1px solid var(--hair);overflow:hidden;display:flex;align-items:center}
.nxo-view .th.tsub{padding-top:104px}
.nxo-view .th.tmain{padding-top:64px}
.nxo-view .th iframe.mdl,.nxo-view .th img.still{position:absolute;inset-inline-end:0;bottom:0;width:60%;height:calc(100% - 104px);border:0;background:transparent}
.nxo-view .th.tmain iframe.mdl,.nxo-view .th.tmain img.still,.nxo-view .th.tmain canvas.hg{height:calc(100% - 64px)}
.nxo-view .th img.still{object-fit:contain;object-position:right bottom;opacity:.9;mask-image:linear-gradient(90deg,transparent 0,var(--bg) 22%);-webkit-mask-image:linear-gradient(90deg,transparent 0,var(--bg) 22%)}
.nxo-view .th canvas.hg{position:absolute;inset-inline-end:0;bottom:0;width:62%;height:calc(100% - 64px);display:block}
.nxo-view .th .w{position:relative;z-index:2;width:100%;pointer-events:none}
.nxo-view .th .w *{pointer-events:auto}
.nxo-view .th .copy{max-width:600px}
.nxo-view .crumb{display:flex;flex-wrap:wrap;align-items:center;gap:10px;font:400 11px var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--t3)}
.nxo-view .crumb a:hover{color:var(--t1)}
.nxo-view .crumb b{color:var(--t1);font-weight:500}
.nxo-view .th .lede{font-size:17px;line-height:1.55;color:var(--t2);max-width:56ch;margin:0 0 28px}
.nxo-view .th .cta{display:flex;flex-wrap:wrap;gap:10px}
.nxo-view .th .facts{display:flex;flex-wrap:wrap;gap:0;margin:36px 0 0;padding-top:18px;border-top:1px solid var(--hair);max-width:600px}
.nxo-view .th .facts div{padding:0 28px 0 0}
.nxo-view .th .facts dt{font:400 10.5px var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--t3);white-space:nowrap}
.nxo-view .th .facts dd{margin:6px 0 0;font:500 15px var(--mono);font-variant-numeric:tabular-nums;white-space:nowrap}
.nxo-view .th .cap{position:absolute;inset-inline-end:48px;bottom:18px;z-index:3;font:400 10.5px var(--mono);letter-spacing:.06em;color:var(--t3)}
.nxo-view .s{padding:110px 0;border-bottom:1px solid var(--hair)}
.nxo-view .s .ch-n{font:400 13px var(--mono);color:var(--t3);letter-spacing:.06em;margin-bottom:20px;display:flex;gap:14px;align-items:center}
.nxo-view .s .ch-n b{color:var(--accent-text);font-weight:500}
.nxo-view .s .ch-n i{flex:0 0 48px;height:1px;background:var(--hair2)}
.nxo-view .s h2{margin:0 0 16px}
.nxo-view .s .sub{font-size:16px;line-height:1.6;color:var(--t2);max-width:68ch;margin:0 0 48px}
.nxo-view .g3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;background:transparent;border:1px solid var(--hair);overflow:clip}
.nxo-view .g3>*{box-shadow:0 0 0 1px var(--hair)}
.nxo-view .g4{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;background:transparent;border:1px solid var(--hair);overflow:clip}
.nxo-view .g4>*{box-shadow:0 0 0 1px var(--hair)}
.nxo-view .g2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;background:transparent;border:1px solid var(--hair);overflow:clip}
.nxo-view .g2>*{box-shadow:0 0 0 1px var(--hair)}
.nxo-view .tc{background:var(--bg);padding:22px 22px 24px;display:flex;flex-direction:column;min-width:0}
.nxo-view .tc .eyebrow b{color:var(--accent-text)}
.nxo-view .tc h3{margin:10px 0 8px;font-size:15.5px;line-height:1.3}
.nxo-view .tc p{margin:0;font-size:13.5px;line-height:1.55;color:var(--t2)}
.nxo-view .tc .refs{margin-top:auto;padding-top:14px;font:400 11px/1.5 var(--mono);color:var(--t3);overflow-wrap:anywhere}
.nxo-view .tc .we{margin-top:12px;font-size:12.5px;color:var(--t3);border-inline-start:2px solid var(--hair2);padding-inline-start:10px}
.nxo-view .tc.fr{box-shadow:inset 0 2px 0 var(--accent)}
.nxo-view .tc img.th16{display:block;width:calc(100% + 44px);margin:-22px -22px 16px;aspect-ratio:16/10;object-fit:contain;background:var(--bg);border-bottom:1px solid var(--hair)}
.nxo-view .lay{display:grid;grid-template-columns:320px minmax(0,1fr);gap:48px;align-items:start}
.nxo-view .stack{display:flex;flex-direction:column;border:1px solid var(--hair)}
.nxo-view .stack div{display:flex;justify-content:space-between;gap:12px;padding:12px 16px;border-bottom:1px solid var(--hair);font:400 12px var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--t3)}
.nxo-view .stack div:last-child{border-bottom:0}
.nxo-view .stack div.on{color:var(--t1);box-shadow:inset 2px 0 0 var(--accent)}
.nxo-view .fnrow{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;background:transparent;border:1px solid var(--hair);overflow:clip}
.nxo-view .fnrow>*{box-shadow:0 0 0 1px var(--hair)}
.nxo-view .fnrow div{background:var(--bg);padding:16px 18px;min-height:112px}
.nxo-view .fnrow div.off{opacity:.38}
.nxo-view .fnrow .k{font:400 11px var(--mono);color:var(--t3)}
.nxo-view .fnrow div:not(.off) .k{color:var(--accent-text)}
.nxo-view .fnrow b{display:block;margin:6px 0 4px;font:500 12px var(--mono);letter-spacing:.1em;text-transform:uppercase}
.nxo-view .fnrow p{margin:0;font-size:12.5px;line-height:1.45;color:var(--t2)}
.nxo-view .glw{position:relative;height:620px;width:100vw;margin-inline:calc(50% - 50vw);border:0;background:transparent;overflow:hidden}
.nxo-view #grid,.nxo-view .s:has(.glw){overflow-x:clip}
.nxo-view .glw canvas{position:absolute;inset:0;width:100%;height:100%;display:block}
.nxo-view .glw .glc{position:absolute;inset-inline-start:max(18px,calc(50vw - 696px));bottom:14px;inset-inline-end:18px;font:400 10.5px var(--mono);color:var(--t3);letter-spacing:.04em;pointer-events:none}
.nxo-view .glw .gls{position:absolute;inset-inline-start:max(18px,calc(50vw - 696px));top:16px;display:flex;gap:0;margin:0}
.nxo-view .glw .gls div{padding:10px 28px 10px 0}
.nxo-view .glw .gls dt{font:400 9.5px var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--t3)}
.nxo-view .glw .gls dd{margin:4px 0 0;font:500 14px var(--mono);font-variant-numeric:tabular-nums}
.nxo-view .geo2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;background:transparent;border:1px solid var(--hair);overflow:clip}
.nxo-view .geo2>*{box-shadow:0 0 0 1px var(--hair)}
.nxo-view .geo2 a{background:var(--bg);display:flex;flex-direction:column}
.nxo-view .geo2 img{display:block;width:100%;aspect-ratio:16/10;object-fit:contain;border-bottom:1px solid var(--hair)}
.nxo-view .geo2 h3{margin:16px 20px 6px}
.nxo-view .geo2 p{margin:0 20px 20px;color:var(--t2);font-size:13.5px}
.nxo-view .two{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:transparent;border:1px solid var(--hair);overflow:clip}
.nxo-view .two>*{box-shadow:0 0 0 1px var(--hair)}
.nxo-view .two>div{background:var(--bg);padding:26px}
.nxo-view .two ul{list-style:none;margin:14px 0 0;padding:0}
.nxo-view .two li{padding:10px 0;border-top:1px solid var(--hair);font-size:14px;color:var(--t2)}
.nxo-view .contact{display:flex;justify-content:space-between;align-items:center;gap:32px;border:1px solid var(--hair2);border-radius:5px;padding:32px}
.nxo-view .contact h2{margin:0 0 8px}
.nxo-view .contact p{margin:0;color:var(--t2);font-size:14px;max-width:70ch}
.nxo-view .contact .cta{display:flex;gap:10px;flex-wrap:wrap}
.nxo-view .chips{display:flex;flex-wrap:wrap;gap:8px}
.nxo-view .chips span{display:inline-flex;align-items:center;height:28px;padding:0 10px;border:1px solid var(--hair2);border-radius:4px;font:400 11.5px var(--mono);color:var(--t2)}
.nxo-view .prtab{position:sticky;top:104px;z-index:10;background:rgba(var(--paper),.94);border-bottom:1px solid var(--hair)}
.nxo-view .prtab .w{display:flex;gap:2px;overflow-x:auto;scrollbar-width:none}
.nxo-view .prtab a{flex:none;height:46px;display:inline-flex;align-items:center;padding:0 12px;font:400 11.5px var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--t3);border-bottom:2px solid transparent}
.nxo-view .prtab a:hover{color:var(--t1)}
.nxo-view .prtab a[aria-current=page]{color:var(--t1);border-bottom-color:var(--accent-text)}
.nxo-view .ph{display:inline-block;padding:1px 6px;border:1px dashed var(--accent);border-radius:4px;color:var(--accent-text);font:500 11.5px var(--mono);letter-spacing:.02em}
.nxo-view .empty{border:1px dashed var(--hair2);border-radius:5px;padding:28px;color:var(--t2);font-size:14px;line-height:1.6}
.nxo-view table.t{width:100%;border-collapse:collapse;font-size:13.5px}
.nxo-view table.t th,.nxo-view table.t td{text-align:start;padding:11px 12px;border-bottom:1px solid var(--hair);vertical-align:top}
.nxo-view table.t thead th{font:500 11px var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--t3);background:var(--muted)}
.nxo-view table.t td a{text-decoration:underline;text-decoration-color:var(--hair2)}
.nxo-view .tw{overflow-x:auto}
.nxo-view .src{font:400 11px var(--mono);color:var(--t3);overflow-wrap:anywhere}
.nxo-view .sm{border:1px solid var(--hair);margin-bottom:24px}
.nxo-view .sm-h{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:6px 12px;padding:14px 18px;border-bottom:1px solid var(--hair)}
.nxo-view .sm-h b{font:500 14px var(--sans)}
.nxo-view .sm svg{display:block;width:100%;height:auto}
.nxo-view .sm .st rect{fill:var(--bg);stroke:rgba(var(--ink),.45);rx:4}
.nxo-view .sm .st text{fill:var(--t2);font:500 10.5px var(--mono)}
.nxo-view .sm .st.cur rect{stroke:var(--accent);fill:#120403}
.nxo-view .sm .st.cur text{fill:var(--t1)}
.nxo-view .sm .tr{fill:none;stroke:rgba(var(--ink),.25);stroke-width:1}
.nxo-view .flows{display:grid;grid-template-columns:260px minmax(0,1fr);border:1px solid var(--hair)}
.nxo-view .flows nav{border-inline-end:1px solid var(--hair)}
.nxo-view .flows nav button{display:block;width:100%;text-align:start;min-height:44px;padding:8px 16px;background:var(--bg);border:0;border-bottom:1px solid var(--hair);color:var(--t3);font:500 13px var(--sans);cursor:pointer}
.nxo-view .flows nav button[aria-pressed=true]{color:var(--t1);background:var(--surface);box-shadow:inset 2px 0 0 var(--accent)}
.nxo-view #seq{display:block;width:100%;height:auto}
.nxo-view #seq .ln{stroke:rgba(var(--ink),.14);stroke-dasharray:3 5}
.nxo-view #seq .hd rect{fill:var(--bg);stroke:rgba(var(--ink),.4)}
.nxo-view #seq .hd text{fill:var(--t1);font:500 11px var(--mono)}
.nxo-view #seq .msg line{stroke:rgba(var(--ink),.5)}
.nxo-view #seq .msg text{fill:var(--t2);font:400 11.5px var(--sans)}
.nxo-view #seq .msg.on line{stroke:var(--accent)}
.nxo-view #seq .msg.on text{fill:var(--t1)}
.nxo-view #seq .obj{fill:var(--t3);font:400 10px var(--mono)}
.nxo-view .code{border-radius:5px;border:1px solid var(--hair2);background:var(--surface);overflow:hidden;font:400 13px/1.75 var(--mono)}
.nxo-view .code .bar{display:flex;justify-content:space-between;padding:10px 16px;border-bottom:1px solid var(--hair);font-size:11px;color:var(--t3);letter-spacing:.08em;text-transform:uppercase}
.nxo-view .code pre{margin:0;padding:18px 20px;font:inherit;overflow-x:auto;color:var(--t2)}
.nxo-view .code .k{color:var(--t1)}
.nxo-view .code .s1{color:var(--t2)}
.nxo-view .code .c{color:var(--t3)}
.nxo-view .code .n{color:var(--accent-text)}
.nxo-view .fitm{font:500 26px var(--mono)}
.nxo-view .legal{border-top:1px solid var(--hair);padding:32px 0 48px;color:var(--t3);font-size:12.5px;line-height:1.6}
.nxo-view .legal .w{display:grid;grid-template-columns:2fr 1fr 1fr;gap:40px}
.nxo-view .legal b{color:var(--t2);font-weight:500}
.nxo-view .legal a:hover{color:var(--t1)}
@media (max-width:1000px){.nxo-view .g3,.nxo-view .g4,.nxo-view .fnrow{grid-template-columns:1fr 1fr}
.nxo-view .lay{grid-template-columns:1fr}
.nxo-view .two,.nxo-view .geo2,.nxo-view .g2{grid-template-columns:1fr}
.nxo-view .flows{grid-template-columns:1fr}
.nxo-view .legal .w{grid-template-columns:1fr}
}
@media (max-width:760px){.nxo-view .th{height:auto;min-height:calc(100svh - var(--space-nav-h,64px));flex-direction:column;align-items:stretch;padding-bottom:0}
.nxo-view .th .w{padding-top:40px;padding-bottom:28px}
.nxo-view .th iframe.mdl,.nxo-view .th img.still,.nxo-view .th canvas.hg{position:relative;width:100%;height:340px!important;inset-inline-end:auto;bottom:auto;mask-image:none;-webkit-mask-image:none}
.nxo-view .th img.still{order:2;height:clamp(260px,52vh,420px)!important}
.nxo-view .th .cap{position:static;display:block;padding:0 16px 16px}
.nxo-view .g3,.nxo-view .g4,.nxo-view .fnrow{grid-template-columns:1fr}
.nxo-view .s{padding:72px 0}
.nxo-view .glw{height:420px}
.nxo-view .glw .gls{flex-wrap:wrap;inset-inline-end:18px}
.nxo-view .contact{flex-direction:column;align-items:flex-start;padding:22px}
.nxo-view .prtab{top:104px}
}
.nxo-view .th canvas.hgf{position:absolute;inset-inline-start:0;inset-inline-end:0;top:64px;bottom:0;width:100%;height:calc(100% - 64px);display:block}
.nxo-view .fitb{display:grid;grid-template-columns:260px minmax(0,1fr);gap:1px;background:transparent;border:1px solid var(--hair);overflow:clip}
.nxo-view .fitb>*{box-shadow:0 0 0 1px var(--hair)}
.nxo-view .fitb>div{background:var(--bg);padding:26px}
.nxo-view .plist{list-style:none;margin:0;padding:0;columns:2;column-gap:40px}
.nxo-view .plist li{break-inside:avoid;padding:11px 0;border-top:1px solid var(--hair);font-size:14px;color:var(--t2)}
@media (max-width:760px){.nxo-view .th canvas.hgf{position:relative;top:auto;height:360px}
.nxo-view .fitb{grid-template-columns:1fr}
.nxo-view .plist{columns:1}
}
.nxo-view .g3,.nxo-view .g4{gap:16px;background:none;border:0}
.nxo-view .g3>.tc,.nxo-view .g4>.tc{position:relative;border:1px solid var(--hair);transition:border-color var(--dur-fast),background var(--dur-fast)}
.nxo-view .g3>a.tc:hover,.nxo-view .g4>a.tc:hover{border-color:var(--hair2);background:var(--surface)}
.nxo-view .g3>a.tc:focus-visible,.nxo-view .g4>a.tc:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.nxo-view .tc img.th16{border:1px solid var(--hair);background:var(--bg)}
.nxo-view .fnrow div.off{opacity:1;outline:1px dashed var(--hair2);outline-offset:-1px}
.nxo-view .fnrow div.off,.nxo-view .fnrow div.off *{color:var(--t3)!important}
.nxo-view .nxo-card .gls{display:flex;flex-wrap:wrap;gap:6px 24px;margin:6px 0 0}
.nxo-view .nxo-card .gls div{padding:0}
.nxo-view .nxo-card .gls dt{font:400 10.5px var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--t3)}
.nxo-view .nxo-card .gls dd{margin:4px 0 0;font:500 15px var(--mono);font-variant-numeric:tabular-nums;color:var(--t1)}

/* b/6e28ec410172/system/3d/hero.css */
/* Hero stage (system/3d/hero.js). The stage sits at the inline end of the hero (right in LTR, left in RTL) and always
   draws left to right inside (dir="ltr"); the copy stays above it. Below 900 px the stage goes on top of the copy.
   Every colour has a fallback: the stylesheet is loaded beside the view's token scope. */
:is(.nxo-view,html) .has-hero{position:relative;overflow:hidden}
:is(.nxo-view,html) .has-hero>.w,:is(.nxo-view,html) .has-hero>.in,:is(.nxo-view,html) .has-hero>.copy{position:relative;z-index:2}
.nxo-hero{position:absolute;inset:0;direction:ltr;z-index:1;pointer-events:none}
/* The 3D is the page's ground: full width, edge to edge, no frame, border, shadow or box. The scene fades into the page
   with fog (hero.js), and the canvas edges dissolve with an alpha mask so no seam shows into the next section. */
/* The stage carries dir="ltr" (its scene draws left to right), and logical insets resolve against the element's own
   direction, so under an RTL page the end side is set physically: the stage sits on the left, clear of the copy. */
.nxo-hero canvas,.nxo-hero img{display:block;width:100%;height:100%;object-fit:cover}
.nxo-hero canvas{opacity:0;transition:opacity .6s;-webkit-mask-image:linear-gradient(to bottom,transparent 0,#000 7%,#000 84%,transparent 100%);mask-image:linear-gradient(to bottom,transparent 0,#000 7%,#000 84%,transparent 100%)}
.nxo-hero.is-live canvas{opacity:1}
/* the copy's plate (hero.js scrim): the scrim token under the text and buttons, above the scene */
.nxo-hero-scrim{position:absolute;background:var(--scrim,rgba(0,0,0,.88));pointer-events:none}
.nxo-hero-scrim[hidden]{display:none}
/* the phone band's poster until the scene is live (hero.js, audit L28); it gives way as the canvas fades in */
.nxo-hero .nxo-hero-wait{position:absolute;inset:0;display:none;width:100%;height:100%;object-fit:cover;object-position:50% 0;transition:opacity .6s,visibility 0s .6s}
.nxo-hero.is-live .nxo-hero-wait{opacity:0;visibility:hidden}
@media (max-width:900px){.nxo-hero .nxo-hero-wait{display:block}}
.nxo-hero-pause{pointer-events:auto;position:absolute;inset-inline-end:16px;bottom:14px;height:28px;padding:0 10px;border-radius:5px;border:1px solid var(--hair2,rgba(127,127,127,.35));background:var(--bg,transparent);color:var(--t3,#8c8c8c);font:500 10.5px/1 var(--mono,monospace);letter-spacing:.08em;text-transform:uppercase;cursor:pointer;opacity:.75}
.nxo-hero-pause:hover,.nxo-hero-pause:focus-visible{opacity:1;color:var(--t1,currentColor);border-color:var(--accent,currentColor);outline:none}
.nxo-hero-pause[hidden]{display:none}
/* text-only page bands (.phero) gain a stage beside the copy */
:is(.nxo-view,html) .has-hero--band{min-height:620px}
:is(.nxo-view,html) .has-hero--band>.w>*{max-width:min(46vw,640px)}
/* a stage that fills its own box (the about stage, the atlas frame, the learn and spectrum figures) */
:is(.nxo-view,html) .has-hero--box{position:relative;overflow:hidden}
:is(.nxo-view,html) .has-hero--box .nxo-hero{inset:0;top:0;width:100%;height:100%}
:is(.nxo-view,html) .has-hero--band>:not(.nxo-hero):not(.w){max-width:min(46vw,640px)}
/* line homes and the about, protocol and master heroes keep their own heights */
@media (max-width:900px){
  :is(.nxo-view,html) .has-hero{display:flex;flex-direction:column}
  /* phones: the heading and copy come first (the first screen reads), the stage follows them; it mounts below the
     copy, so nothing the visitor is reading moves when it arrives */
  .nxo-hero{position:relative;inset:auto;width:100%;height:clamp(260px,52vh,420px);margin-top:0;order:2;flex:none}
  :is(.nxo-view,html) .has-hero>.cap{order:3}
  :is(.nxo-view,html) .hero.has-hero>.w{height:auto;padding-top:112px} /* a full-height hero runs under the bars: its copy clears them */
  :is(.nxo-view,html) .has-hero--band .nxo-hero,:is(.nxo-view,html) .has-hero--fill .nxo-hero{margin-top:24px}
  :is(.nxo-view,html) .has-hero--band{min-height:0;padding-top:88px}
  :is(.nxo-view,html) .has-hero--band>.w>*,:is(.nxo-view,html) .has-hero--band>:not(.nxo-hero):not(.w){max-width:none}
  :is(.nxo-view,html) .has-hero--box{display:block}
  :is(.nxo-view,html) .has-hero--box .nxo-hero{position:absolute;inset:0;height:100%;margin:0}
}
/* CAD viewport (cadview.js): the canvas takes the pointer (drag to orbit, hover to pick); the copy above stays clickable
   because only its own text and controls catch events, its layout boxes let them through to the stage. */
.nxo-hero.nxo-cad-on canvas{pointer-events:auto;cursor:grab;touch-action:pan-y;outline:none}
.nxo-hero.nxo-cad-on canvas:focus-visible{outline:1px solid var(--accent,currentColor);outline-offset:-1px}
:is(.nxo-view,html) .has-hero:has(.nxo-cad-on)>:is(.w,.in,.copy){pointer-events:none}
:is(.nxo-view,html) .has-hero:has(.nxo-cad-on)>:is(.w,.in,.copy) :is(a,button,input,select,textarea,label,summary,p,h1,h2,h3,h4,li,dl,dd,dt,nav,form,[role=button],[tabindex],small,span,b,code,kbd,img,svg){pointer-events:auto}
.nxo-cad{position:absolute;inset:0;pointer-events:none;font:500 10px/1.3 var(--mono,'IBM Plex Mono',monospace);color:var(--t3,#8c8c8c);letter-spacing:.06em}
.nxo-cad-triad{position:absolute;left:16px;bottom:12px;overflow:visible}
.nxo-cad-triad line{stroke:var(--t2,#bdbdbd);stroke-width:1}
.nxo-cad-triad line.bk{stroke:var(--t3,#8c8c8c);stroke-dasharray:2 2}
.nxo-cad-triad text{fill:var(--t2,#bdbdbd);font:500 8px var(--mono,monospace);text-anchor:middle}
.nxo-cad-ro{position:absolute;left:84px;bottom:20px;text-transform:uppercase;white-space:pre;font-variant-numeric:tabular-nums}
.nxo-cad-hint{position:absolute;left:84px;bottom:36px;text-transform:uppercase;opacity:.8;transition:color .2s}
.nxo-cad-hint.nudge{color:var(--t1,currentColor)}
.nxo-cad-hint[hidden]{display:none}
.nxo-cad-call{position:absolute;left:var(--x,0);top:var(--y,0);transform:translate(14px,14px);max-width:260px;padding:8px 10px;border-radius:5px;border:1px solid var(--accent,currentColor);background:var(--bg,#000);color:var(--t1,#f2f2f2);text-transform:none;letter-spacing:0}
.nxo-cad-call.flip{transform:translate(calc(-100% - 14px),14px)}
.nxo-cad-call[hidden]{display:none}
.nxo-cad-call b{display:block;font:600 11px/1.3 var(--mono,monospace);letter-spacing:.06em;text-transform:uppercase;color:var(--accent,currentColor)}
.nxo-cad-call span{display:block;margin-top:3px;font:400 12px/1.4 var(--sans,'IBM Plex Sans',sans-serif);color:var(--t1,#f2f2f2)}
.nxo-cad-call span:empty,.nxo-cad-call i:empty{display:none}
.nxo-cad-call i{display:block;margin-top:4px;font:500 9.5px/1.3 var(--mono,monospace);font-style:normal;letter-spacing:.08em;text-transform:uppercase;color:var(--t3,#8c8c8c)}
.nxo-cad-reset{pointer-events:auto;position:absolute;inset-inline-end:16px;bottom:48px;height:28px;padding:0 10px;border-radius:5px;border:1px solid var(--hair2,rgba(127,127,127,.35));background:var(--bg,transparent);color:var(--t3,#8c8c8c);font:500 10.5px/1 var(--mono,monospace);letter-spacing:.08em;text-transform:uppercase;cursor:pointer}
.nxo-cad-reset:hover,.nxo-cad-reset:focus-visible{color:var(--t1,currentColor);border-color:var(--accent,currentColor);outline:none}
.nxo-cad-reset[hidden]{display:none}
[dir=rtl] .nxo-cad-reset,[dir=rtl] .nxo-hero-pause{inset-inline-end:auto;inset-inline-start:16px}
@media (max-width:900px){.nxo-cad-hint,.nxo-cad-ro{display:none}.nxo-cad-triad{transform:scale(.8);transform-origin:0 100%}}
@media (hover:none){.nxo-cad-hint{display:none}}
/* Right to left: the stage draws left to right, but its controls mirror with the page, so the triad, readout and
   hint sit at the right and Pause and Reset at the left, never on top of each other. */
[dir=rtl] .nxo-cad-triad{left:auto;right:16px}
[dir=rtl] .nxo-cad-ro,[dir=rtl] .nxo-cad-hint{left:auto;right:84px;text-align:right}
/* A view's own stage caption ("drag to turn") gives way to the viewport's controls once the CAD viewport is live. */
:is(.nxo-view,html) .has-hero:has(.nxo-cad-on) .cap{display:none}

/* Story HUD (system/3d/story-director.js); on a wide hero the caption starts where the subject's free area does
   (--nxo-free-x, measured from the copy by hero.js): the scenario's caption and a slim chapter indicator, quiet text over the scene
   (no box, no fill). Legibility comes from the page tokens and a paper-coloured outline behind the glyphs, not a glow. */
.nxo-story{position:absolute;inset:0;pointer-events:none;color:var(--t1,#f2f2f2)}
.nxo-story-cap{position:absolute;left:var(--nxo-free-x,46%);bottom:90px;max-width:min(50%,460px);display:flex;flex-direction:column;gap:4px;opacity:0;transform:translateY(6px);transition:opacity .7s ease,transform .7s ease}
.nxo-story.in .nxo-story-cap{opacity:1;transform:none}
.nxo-story.out .nxo-story-cap{opacity:0;transition-duration:.45s}
.nxo-story-n{font:500 10px/1 var(--mono,'IBM Plex Mono',monospace);letter-spacing:.12em;color:var(--t2,#bdbdbd);font-variant-numeric:tabular-nums}
.nxo-story-n:empty{display:none}
/* the caption always sits on the scrim token, flat, no blur: the scene's lines (ground, props, orbits) pass under every slot, not only the subject (render sweep 2026-11-04; keepClear still moves it off the subject) */
.nxo-story .nxo-story-cap{background:var(--scrim,rgba(0,0,0,.88));padding:8px 12px;margin:-8px -12px;border-radius:5px}
.nxo-story .nxo-story-t{-webkit-text-stroke:0}
.nxo-story-t{font:500 clamp(15px,1.5vw,19px)/1.3 var(--sans,'IBM Plex Sans',sans-serif);color:var(--t1,#f2f2f2);letter-spacing:.005em;paint-order:stroke fill;-webkit-text-stroke:3px var(--bg,#000)}
.nxo-story-prog{position:absolute;left:var(--nxo-free-x,46%);bottom:78px;display:flex;gap:3px;margin:0;padding:0;list-style:none;width:min(50%,460px)}
.nxo-story-prog li{flex:1;height:2px;background:var(--hair2,rgba(127,127,127,.35));overflow:hidden}
.nxo-story-prog li i{display:block;height:100%;background:var(--t1,#f2f2f2);transform:scaleX(0);transform-origin:0 50%}
.nxo-story-prog li.on{background:var(--t3,#8c8c8c)}
.nxo-story-tags{position:absolute;inset:0;overflow:hidden}
.nxo-story-tag{position:absolute;left:0;top:0;margin:-5px 0 0 12px;font:500 9.5px/1 var(--mono,'IBM Plex Mono',monospace);letter-spacing:.1em;text-transform:uppercase;color:var(--t1,#f2f2f2);white-space:normal;max-width:24ch;line-height:1.35;opacity:0;transition:opacity .4s;padding:3px 5px;border-radius:4px;background:var(--bg,#000)}
.nxo-story-tag::before{content:"";display:inline-block;width:5px;height:5px;margin-inline-end:6px;border-radius:50%;background:var(--accent,currentColor);vertical-align:middle}
.nxo-story-tag[hidden]{display:none}
.nxo-story-step{position:absolute;inset-inline-end:16px;bottom:84px;display:flex;gap:6px;pointer-events:auto}
.nxo-story-step button{width:32px;height:32px;border-radius:5px;border:1px solid var(--hair2,rgba(127,127,127,.35));background:var(--bg,#000);color:var(--t1,#f2f2f2);font:500 18px/1 var(--sans,sans-serif);cursor:pointer}
.nxo-story-step button:hover,.nxo-story-step button:focus-visible{border-color:var(--accent,currentColor);outline:none}
/* on environment and scene pages the tour keeps the bottom: the story's caption sits at the top, under the view's title */
.nxo-story.top .nxo-story-cap{top:92px;bottom:auto;left:16px}
.nxo-story.top .nxo-story-prog{top:84px;bottom:auto;left:16px}
@media (max-width:900px){
  .nxo-story.top .nxo-story-cap{top:84px;bottom:auto}
  .nxo-story.top .nxo-story-prog{top:76px;bottom:auto}
  /* phones: the bottom 80 px belong to the controls (triad at the start, Pause and Reset view at the end); the story's bar
     and caption sit above them instead of running through them */
  .nxo-story-cap{left:16px;bottom:100px;max-width:calc(100% - 32px)}
  .nxo-story-prog{left:16px;bottom:86px;width:calc(100% - 32px)}
  .nxo-story-t{font-size:14px}
  .nxo-story-step{bottom:44px}
}
/* the other slot, taken when the subject is under the caption (story-director keepClear): below the site's top bar and
   sub-header (nav.js sets --nx-bar and --nx-sub), never under them */
.nxo-story.alt .nxo-story-cap{top:calc(var(--nx-bar,64px) + var(--nx-sub,0px) + 32px);bottom:auto}.nxo-story.alt .nxo-story-prog{top:calc(var(--nx-bar,64px) + var(--nx-sub,0px) + 24px);bottom:auto}
.nxo-story.top.alt .nxo-story-cap{top:auto;bottom:90px}.nxo-story.top.alt .nxo-story-prog{top:auto;bottom:78px}
[dir=rtl] .nxo-story-cap,[dir=rtl] .nxo-story-prog{left:16px}
@media (max-width:900px){/* the other slot, taken when the subject is under the caption (story-director keepClear) */
.nxo-story.alt .nxo-story-cap{top:calc(var(--nx-bar,64px) + var(--nx-sub,0px) + 32px);bottom:auto}.nxo-story.alt .nxo-story-prog{top:calc(var(--nx-bar,64px) + var(--nx-sub,0px) + 24px);bottom:auto}
.nxo-story.top.alt .nxo-story-cap{top:auto;bottom:90px}.nxo-story.top.alt .nxo-story-prog{top:auto;bottom:78px}
[dir=rtl] .nxo-story-cap,[dir=rtl] .nxo-story-prog{left:16px}}
@media (prefers-reduced-motion:reduce){.nxo-story-cap{transition:none}}

/* b/6e28ec410172/system/diagram/diagram.css */
/* Engineering-drawing figures (core.js): frameless SVG on the page ground, hairline geometry, square blocks,
   orthogonal connectors, IBM Plex type at its real size. Ink for structure; red (accent tokens) only for the live,
   walked, hovered or focused path and for the marks of what carries the protocol. Every colour is a token; light and
   dark are both native. Every selector is under .dx so the sheet is safe on any host page. */
.dx{position:relative;margin:0;color:var(--t1);font:400 14px/1.5 var(--sans)}
.dx-head{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;min-height:32px;margin:0 0 14px}
.dx-k{font:500 11px/1.4 var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--t3)}
.dx-tools{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-inline-start:auto}
.dx-seg,.dx-walk{display:inline-flex;align-items:center;gap:0}
.dx-seg button,.dx-walk button,.dx-btn{appearance:none;border:1px solid var(--hair2);background:transparent;color:var(--t2);font:500 12px/1 var(--mono);min-height:30px;min-width:30px;padding:0 10px;border-radius:0;cursor:pointer;white-space:nowrap}
.dx-seg button+button,.dx-walk button+button,.dx-walk span+button{border-inline-start:0}
.dx-seg button:first-child,.dx-walk>:first-child{border-start-start-radius:5px;border-end-start-radius:5px}
.dx-seg button:last-child,.dx-walk>:last-child{border-start-end-radius:5px;border-end-end-radius:5px}
.dx-seg button[aria-pressed=true]{background:var(--t1);color:var(--bg);border-color:var(--t1)}
.dx-walk-n{display:inline-flex;align-items:center;min-height:30px;padding:0 10px;border:1px solid var(--hair2);border-inline-start:0;font:500 12px/1 var(--mono);color:var(--t2);font-variant-numeric:tabular-nums}
.dx-seg button:hover:not([aria-pressed=true]),.dx-walk button:hover:not(:disabled),.dx-btn:hover{color:var(--t1);background:var(--hover)}
.dx-walk button:disabled{opacity:.4;cursor:default}
.dx-walk button[aria-pressed=true],.dx-btn[aria-pressed=true]{color:var(--t1);border-color:var(--accent)}
.dx button:focus-visible,.dx [tabindex]:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.dx-stage{position:relative;background:transparent}
.dx-stage>svg{display:block;overflow:visible;max-width:100%;-webkit-tap-highlight-color:transparent}
.dx-cap{margin:14px 0 0;max-width:72ch;color:var(--t3);font:400 13px/1.5 var(--sans)}

/* type */
.dx-t{fill:var(--t1);font-family:var(--sans);font-variant-numeric:tabular-nums slashed-zero}
.dx-title{font-size:13px;font-weight:500}
.dx-body{font-size:12px;font-weight:400;fill:var(--t3)}
.dx-mono,.dx-tag,.dx-head-t{font-family:var(--mono)}
.dx-t.dx-mono{font-size:10.5px;fill:var(--t2)}
.dx-t.dx-head{font-family:var(--mono);font-size:10.5px;font-weight:500;letter-spacing:.08em;fill:var(--t3)}
.dx-t.dx-tag{font-family:var(--mono);font-size:10px;font-weight:500;fill:var(--t3)}
.dx-sub{fill:var(--t3)!important}

/* geometry */
.dx-box{fill:var(--bg);stroke:var(--t3);stroke-width:1;shape-rendering:crispEdges}
.dx-block{cursor:default;outline:none}
.dx-block:focus-visible .dx-box{stroke:var(--accent);stroke-width:2}
.dx-phantom .dx-box{stroke-dasharray:4 3;stroke:var(--t3)}
.dx-phantom .dx-t.dx-title{fill:var(--t2)}
.dx-product .dx-box{stroke:var(--t1)}
.dx-tagbox rect{fill:none;stroke:var(--hair2);stroke-width:1;shape-rendering:crispEdges}
.dx-mark{fill:var(--accent-graphic)}
.dx-wire{fill:none;stroke:var(--t3);stroke-width:1;stroke-linejoin:round}
.dx-ah{fill:var(--t3)}
.dx-edge.dx-phantom .dx-wire{stroke-dasharray:4 3}
.dx-rule{stroke:var(--hair2);stroke-width:1;fill:none;shape-rendering:crispEdges}
.dx-plate rect{fill:var(--bg)}
.dx-plate .dx-t{font-family:var(--mono);font-size:10.5px;fill:var(--t2)}
.dx-bandn{fill:var(--t3)!important}
.dx-quiet .dx-bandt{fill:var(--t3)}

/* tracing (hover, focus) and the walk-through: the lit path goes red, everything else steps back */
.dx-svg .dx-block,.dx-svg .dx-edge,.dx-svg .dx-lab,.dx-svg .dx-band{transition:opacity var(--dur-base) var(--ease-standard)}
.dx-tracing .dx-block:not(.on),.dx-tracing .dx-edge:not(.on),.dx-tracing .dx-lab:not(.on){opacity:.28}
.dx-tracing .dx-block.on .dx-box{stroke:var(--t1)}
.dx-tracing .dx-edge.on .dx-wire,.dx-walking .dx-edge.cur .dx-wire{stroke:var(--accent-graphic);stroke-width:1.5}
.dx-tracing .dx-edge.on .dx-ah,.dx-walking .dx-edge.cur .dx-ah{fill:var(--accent-graphic)}
.dx-tracing .dx-lab.on .dx-t{fill:var(--t1)}
.dx-walking .dx-block:not(.cur):not(.done),.dx-walking .dx-edge:not(.cur):not(.done){opacity:.5}
.dx-walking .dx-band:not(.cur) .dx-note{opacity:.7}
.dx-walking .dx-block.cur .dx-box{stroke:var(--accent-graphic);stroke-width:1.5}
.dx-walking .dx-band.cur .dx-bandn{fill:var(--accent-text)!important}
.dx-walking .dx-band.cur .dx-rule{stroke:var(--accent-graphic)}
@media (prefers-reduced-motion:reduce){.dx-svg *{transition:none!important}}

/* tables: the table twin and the bill of materials */
.dx-table{overflow-x:auto}
.dx-tab,.dx-bomt{width:100%;border-collapse:collapse;font:400 13px/1.45 var(--sans);color:var(--t2)}
.dx-tab caption,.dx-bomt caption{caption-side:top;text-align:start;font:500 11px/1.4 var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--t3);padding:0 0 10px}
.dx-tab th,.dx-tab td,.dx-bomt th,.dx-bomt td{text-align:start;vertical-align:top;padding:9px 12px 9px 0;border-bottom:1px solid var(--hair)}
.dx-tab thead th,.dx-bomt thead th{font:500 11px/1.3 var(--mono);color:var(--t3);border-bottom:1px solid var(--hair2)}
.dx-tab tbody th{font-weight:500;color:var(--t1)}
.dx-bom{margin-top:32px;overflow-x:auto}
.dx-bomt tbody th b{display:block;font-weight:500;color:var(--t1)}
.dx-bomt tbody th span{display:block;color:var(--t3);font-weight:400;max-width:52ch}
.dx-bomt td.dx-mono{font:500 11px/1.6 var(--mono);color:var(--t3);width:3.5em}
.dx-bomt tr[data-on] td.dx-mono{color:var(--accent-text);box-shadow:inset 2px 0 var(--accent)}
.dx-chip{display:inline-block;font:400 11px/1.4 var(--mono);color:var(--t2);border:1px solid var(--hair2);border-radius:4px;padding:1px 6px;margin:0 4px 4px 0}
@media (max-width:719px){
  .dx-bomt thead{display:none}
  .dx-bomt tr{display:grid;grid-template-columns:3em 1fr;column-gap:8px;padding:10px 0;border-bottom:1px solid var(--hair)}
  .dx-bomt td,.dx-bomt th{border:0;padding:2px 0}
  .dx-bomt td:nth-child(n+3){grid-column:2}
  .dx-bomt td.dx-mono{grid-row:span 4}
}
/* station console (console.js): an operator panel drawn on the page ground; hairline rules between panes, no box */
.cx{border-top:1px solid var(--t3);border-bottom:1px solid var(--hair2)}
.cx-bar{display:flex;align-items:center;gap:16px 24px;flex-wrap:wrap;padding:10px 0;border-bottom:1px solid var(--hair2)}
.cx-sample{font:500 10.5px/1 var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--t1);border:1px solid var(--t3);border-radius:4px;padding:5px 7px}
.cx-rd{display:flex;flex-wrap:wrap;gap:6px 22px;margin:0}
.cx-rd div{display:flex;gap:8px;align-items:baseline}
.cx-rd dt{font:400 10.5px/1.4 var(--mono);color:var(--t3);letter-spacing:.04em}
.cx-rd dd{margin:0;font:500 12px/1.4 var(--mono);color:var(--t1);font-variant-numeric:tabular-nums slashed-zero}
.cx-rd dd[data-warn]{color:var(--accent-text)}
.cx-body{display:grid;grid-template-columns:minmax(180px,1fr) minmax(260px,1.6fr) minmax(300px,2fr)}
.cx-pane{padding:14px 20px 16px;min-width:0}
.cx-pane+.cx-pane{border-inline-start:1px solid var(--hair2)}
.cx-pane:first-child{padding-inline-start:0}.cx-pane:last-child{padding-inline-end:0}
.cx-h{margin:0 0 10px;font:500 10.5px/1.4 var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--t3)}
.cx-h2{margin-top:16px}
.cx-seq ol{list-style:none;margin:0;padding:0}
.cx-seq li{display:grid;grid-template-columns:2.2em 1fr auto;gap:8px;align-items:baseline;padding:5px 0 5px 8px;border-inline-start:2px solid var(--hair);font:400 13px/1.35 var(--sans);color:var(--t3)}
.cx-seq li.done{color:var(--t2);border-inline-start-color:var(--t3)}
.cx-seq li.cur{color:var(--t1);border-inline-start-color:var(--accent)}
.cx-seq li.cur .cx-n{color:var(--accent-text)}
.cx-n,.cx-seq time{font:400 10.5px/1.35 var(--mono);color:var(--t3);font-variant-numeric:tabular-nums}
.cx-ch{margin:0 0 12px}
.cx-ch-h{display:flex;justify-content:space-between;align-items:baseline;gap:8px;font:400 12px/1.4 var(--sans);color:var(--t2)}
.cx-ch-h i{font-style:normal;color:var(--t3);font:400 10.5px var(--mono)}
.cx-ch-h b{font:500 15px/1.2 var(--mono);color:var(--t1);font-variant-numeric:tabular-nums slashed-zero}
.cx-ch canvas{display:block;width:100%;height:52px;margin-top:4px}
.cx-axis{display:flex;justify-content:space-between;margin:0;font:400 10px/1 var(--mono);color:var(--t3)}
.cx-lines{list-style:none;margin:0;padding:0;height:286px;overflow:auto;font:400 11.5px/1.45 var(--mono);color:var(--t2)}
.cx-lines li{display:grid;grid-template-columns:4.6em 1fr;column-gap:10px;padding:5px 0;border-bottom:1px solid var(--hair)}
.cx-lines time{color:var(--t3);grid-row:span 2;font-variant-numeric:tabular-nums}
.cx-who{color:var(--t3)}
.cx-what{color:var(--t1);font-family:var(--sans);font-size:12.5px}
.cx-what i{font-style:normal;font-family:var(--mono);font-size:10.5px;color:var(--t3);margin-inline-start:6px}
.cx-lines li.cx-fault .cx-what,.cx-lines li.cx-fault .cx-who{color:var(--accent-text)}
.cx-lines li.cx-state .cx-what{font-weight:500}
.cx-foot{display:flex;align-items:center;justify-content:space-between;gap:12px 24px;flex-wrap:wrap;padding:12px 0;border-top:1px solid var(--hair2)}
.cx-ctl{display:flex;gap:8px;flex-wrap:wrap}
.cx-ctl .dx-btn{border-radius:5px}
.cx-ctl .dx-btn:disabled{opacity:.4;cursor:default}
.cx-note{margin:0;max-width:62ch;font:400 12px/1.45 var(--sans);color:var(--t3)}
.cx-sr{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
@media (max-width:1000px){.cx-body{grid-template-columns:1fr 1fr}.cx-log{grid-column:1/-1;border-inline-start:0!important;border-top:1px solid var(--hair2);padding-inline-start:0!important}.cx-tel{padding-inline-end:0}}
@media (max-width:640px){.cx-body{grid-template-columns:1fr}.cx-pane{padding-inline:0!important;border-inline-start:0!important}.cx-pane+.cx-pane{border-top:1px solid var(--hair2)}.cx-lines{height:240px}}

/* tabs over a figure (a flow, a machine, a use case): underlined, never pills */
.dx-tabs{display:flex;flex-wrap:wrap;gap:0;border-bottom:1px solid var(--hair2);margin:0 0 24px}
.dx-tabs button{appearance:none;border:0;background:transparent;color:var(--t3);font:500 13px/1.3 var(--sans);padding:9px 14px 11px;cursor:pointer;box-shadow:inset 0 -2px 0 transparent;text-align:start;display:inline-flex;gap:8px;align-items:baseline}
.dx-tabs button span{font:400 10.5px var(--mono);color:var(--t3)}
.dx-tabs button:hover{color:var(--t1)}
.dx-tabs button[aria-selected=true]{color:var(--t1);box-shadow:inset 0 -2px 0 var(--accent)}
.dx-tabs button:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}

/* sequence chart */
.dx-lifeline{stroke:var(--hair2);stroke-width:1;fill:none;shape-rendering:crispEdges}
.dx-lane{stroke:var(--hair);stroke-width:1;fill:none}
.dx-dot{fill:var(--t2)}
.dx-num{fill:var(--t3)!important}
.dx-t.dx-mt{fill:var(--t1)}
.dx-t.dx-obj{fill:var(--t3)}
.dx-t.dx-who{fill:var(--t3)}
.dx-t.dx-markt{fill:var(--t2);letter-spacing:.06em}
.dx-inv rect{fill:var(--bg);stroke:var(--t3);stroke-width:1}
.dx-inv .dx-t{fill:var(--t1)}
.dx-msg .dx-wire{stroke:var(--t2)}
.dx-msg .dx-ah{fill:var(--t2)}
.dx-walking .dx-msg:not(.cur):not(.done){opacity:.3}
.dx-walking .dx-msg.done{opacity:.7}
.dx-walking .dx-msg.cur .dx-wire{stroke:var(--accent-graphic);stroke-width:1.5}
.dx-walking .dx-msg.cur .dx-ah,.dx-walking .dx-msg.cur .dx-dot{fill:var(--accent-graphic)}
.dx-walking .dx-msg.cur .dx-num{fill:var(--accent-text)!important}

/* state diagram */
.dx-init{fill:var(--t1)}
.dx-jn{fill:var(--t2)}
.dx-st2{fill:none;stroke:var(--t3);stroke-width:1}
.dx-state{outline:none;cursor:pointer}
.dx-state .dx-box{stroke:var(--t2)}
.dx-offst .dx-box{stroke:var(--t3)}
.dx-state:focus-visible .dx-box{stroke:var(--accent);stroke-width:2}
.dx-tr .dx-wire{stroke:var(--t3)}
.dx-tr.dx-exc .dx-wire{stroke:var(--hair2)}
.dx-tr .dx-ah{fill:var(--t3)}
.dx-t.dx-rowh{fill:var(--t3)}
.dx-t.dx-exits{fill:var(--t3)}
.dx-tracing .dx-state:not(.on){opacity:.35}
.dx-tracing .dx-tr:not(.on){opacity:.2}
.dx-tracing .dx-tr.on .dx-wire{stroke:var(--accent-graphic);stroke-width:1.5}
.dx-tracing .dx-tr.on .dx-ah,.dx-tracing .dx-tr.on .dx-jn{fill:var(--accent-graphic)}
.dx-tracing .dx-state.on .dx-box{stroke:var(--t1)}
.dx-detail{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.3fr) minmax(0,1.3fr);gap:24px;margin-top:22px;padding-top:16px;border-top:1px solid var(--hair2)}
.dx-detail h3{margin:2px 0 6px;font:500 20px/1.25 var(--sans)}
.dx-detail p{margin:0;color:var(--t3);font-size:13px}
.dx-detail ul{list-style:none;margin:0;padding:0}
.dx-detail li{padding:6px 0;border-bottom:1px solid var(--hair);font-size:13.5px;color:var(--t2)}
.dx-detail li b{font-weight:500;color:var(--t1)}
.dx-detail li span{color:var(--t3)}
.dx-detail code{font:400 11.5px var(--mono);color:var(--t2)}
.dx-detail .dx-k{display:block;margin:0 0 4px}
@media (max-width:719px){.dx-detail{grid-template-columns:1fr;gap:14px}}

/* matrix */
.dx-hit{fill:transparent}
.dx-mx .dx-ch{fill:var(--t2);font-size:12px}
.dx-mk{fill:var(--t1)}
.dx-mk2{fill:var(--bg);stroke:var(--t1);stroke-width:1.2}
.dx-span{stroke:var(--t3);stroke-width:1;fill:none}
.dx-rule2{stroke:var(--t3)}
.dx-mrow,.dx-mcol{outline:none;cursor:default}
.dx-mcol[role=button],.dx-mrow[role=button]{cursor:pointer}
.dx-mrow:focus-visible .dx-hit,.dx-mcol:focus-visible .dx-hit{stroke:var(--accent);stroke-width:2}
.dx-cross .dx-mrow:not(.on) .dx-t,.dx-cross .dx-mcol:not(.on) .dx-t{opacity:.45}
.dx-cross .dx-mcol.on .dx-hit,.dx-cross .dx-mrow.on .dx-hit{fill:var(--hover)}
.dx-mk.on{fill:var(--accent-graphic)}
.dx-mk2.on{fill:var(--bg);stroke:var(--accent-graphic)}
.dx-t.dx-ml{fill:var(--t2)}

/* scale */
.dx-bound{fill:none;stroke:var(--t3);stroke-width:1}
.dx-cell{fill:var(--bg);stroke:var(--t3);stroke-width:1}
.dx-t.dx-xn{fill:var(--t2)}
.dx-peer{stroke:var(--t2);stroke-width:1;fill:none}
.dx-hitl{stroke:transparent;stroke-width:14;fill:none}
.dx-plane{outline:none;cursor:default}
.dx-plane .dx-wire{stroke:var(--t2)}
.dx-plane .dx-ah{fill:var(--t2)}
.dx-t.dx-pl{fill:var(--t2)}
.dx-plane:focus-visible .dx-t{fill:var(--accent-text)}
.dx-tracing .dx-plane:not(.on){opacity:.25}
.dx-tracing .dx-plane.on .dx-wire{stroke:var(--accent-graphic);stroke-width:1.5}
.dx-tracing .dx-plane.on .dx-ah{fill:var(--accent-graphic)}
.dx-tracing .dx-plane.on .dx-t{fill:var(--t1)}
.dx-binds{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:0 32px;margin:24px 0 0}
.dx-binds div{display:grid;grid-template-columns:9em 1fr;gap:12px;padding:9px 0;border-top:1px solid var(--hair)}
.dx-binds dt{font:500 11px/1.5 var(--mono);color:var(--t3)}
.dx-binds dd{margin:0;font-size:13.5px;line-height:1.5;color:var(--t2)}
.dx-binds div.on dt{color:var(--accent-text)}.dx-binds div.on dd{color:var(--t1)}

/* levels */
.dx-stair{fill:none;stroke:var(--t1);stroke-width:1.25}
.dx-exitw{stroke:var(--t3)}
.dx-exit .dx-box{stroke:var(--t3)}
.dx-lvl{outline:none}
.dx-lvl:focus-visible .dx-t{fill:var(--accent-text)}

/* lineage */
.dx-lin ol{list-style:none;margin:0;padding:0;position:relative}
.dx-lin li{position:relative;padding:0 0 24px 40px;max-width:76ch}
.dx-lin li:before{content:"";position:absolute;inset-inline-start:7px;top:0;bottom:0;border-inline-start:1px solid var(--t3)}
.dx-lin li:after{content:"";position:absolute;inset-inline-start:0;top:9px;width:15px;height:15px;box-sizing:border-box;border:1px solid var(--t3);background:var(--bg)}
.dx-lin-era{display:block;font:500 11px/1.4 var(--mono);color:var(--t3);letter-spacing:.04em}
.dx-lin h3{margin:2px 0 6px;font:500 17px/1.35 var(--sans);color:var(--t1)}
.dx-lin p{margin:0;color:var(--t2);font-size:14.5px;line-height:1.6}
.dx-lin sup a{color:var(--t3);text-decoration:none;font:400 11px var(--mono)}
.dx-lin sup a:hover{color:var(--accent-text)}
.dx-lin li.dx-lin-end{padding-bottom:0}
.dx-lin li.dx-lin-end:before{bottom:auto;height:9px}
.dx-lin li.dx-lin-end:after{background:var(--t1);border-color:var(--t1)}

/* Shared with the CAD assembly (cad.js), the mini-scene cells (minis.js) and the protocol explorer cards (ins/proto-viz.js). */
.dg{position:relative;margin:0;color:var(--t1);font:400 14px/1.5 var(--sans);--dg-plate:var(--surface);--dg-plate-2:var(--elev);--dg-lift:color-mix(in srgb,var(--t1) 24%,transparent);--dg-light:color-mix(in srgb,var(--t1) 5%,transparent);--dg-glow:color-mix(in srgb,var(--accent) 38%,transparent);--dg-ember:color-mix(in srgb,var(--accent) 14%,var(--bg))}
.dg .sr{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.dg button:focus-visible,.dg [tabindex]:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.dg .trk{fill:none;stroke:var(--hair2);stroke-width:1;vector-effect:non-scaling-stroke}
.dg .lead{stroke:var(--hair2);stroke-width:1}
.dg .arrow{fill:none;stroke:currentColor;stroke-width:1.3;stroke-linecap:round;stroke-linejoin:round}
.dg .pl{fill:var(--dg-plate);stroke:var(--hair2);stroke-width:1}
.dg .halo{display:none}
.dg .nd{cursor:pointer;outline:none}
.dg .nd .dot{fill:var(--bg);stroke:var(--t2);stroke-width:1.4;transition:stroke var(--dur-fast),fill var(--dur-fast)}
.dg .nd .hit{fill:transparent;stroke:none}
.dg .nd .fr{fill:none;stroke:var(--accent);stroke-width:2;opacity:0}
.dg .nd:focus-visible .fr{opacity:1}
.dg .nd:hover .dot,.dg .nd:focus-visible .dot{stroke:var(--accent-graphic)}
.dg .nd.ping .dot{stroke:var(--t1);fill:var(--dg-plate-2)}
.dg .nd[aria-pressed=true] .dot{stroke:var(--accent-graphic);fill:var(--dg-plate)}
.dg .nd.dim .dot{stroke:var(--hair2)}
.dg-detail{margin-top:18px}
.dg-detail:empty{display:none}
.dg-card{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:28px;padding:22px 0 4px;border-top:1px solid var(--hair)}
.dg-card.one{grid-template-columns:minmax(0,1fr)}
.dg-card .k{display:flex;align-items:center;gap:8px;font:500 11.5px var(--mono);color:var(--t3);margin:0 0 8px}
.dg-card .k:before{content:"";width:6px;height:6px;border-radius:50%;background:var(--accent)}
.dg-card h3{margin:0 0 8px;font:400 22px/1.2 var(--mono);letter-spacing:-.03em;color:var(--t1)}
.dg-card p{margin:0 0 10px;color:var(--t2);font-size:14.5px;line-height:1.6;max-width:68ch}
.dg-card dl{margin:0;display:grid;gap:0}
.dg-card dl>div{display:grid;grid-template-columns:132px minmax(0,1fr);gap:12px;padding:9px 0;border-bottom:1px solid var(--hair)}
.dg-card dt{font:400 12px var(--mono);color:var(--t3);margin:0}
.dg-card dd{margin:0;font-size:13.5px;color:var(--t1);line-height:1.5}
.dg-card dd .ev{color:var(--t3);font:400 12px var(--mono)}
.dg-card .chips{display:flex;flex-wrap:wrap;gap:6px}
.dg-card .chip{display:inline-flex;align-items:center;min-height:24px;padding:0 9px;border:1px solid var(--hair2);border-radius:5px;font:400 11.5px var(--mono);color:var(--t2);background:transparent}
button.chip{cursor:pointer}
button.chip:hover{color:var(--t1);border-color:var(--t3)}
.dg-card a{color:var(--t1);text-decoration:underline;text-decoration-color:var(--accent);text-underline-offset:3px}
.dg-card sup a{text-decoration:none;color:var(--t3);font:400 11px var(--mono)}
.dg-card sup a:hover{color:var(--t1)}
@media (max-width:760px){.dg-card{grid-template-columns:1fr;gap:16px}.dg-card dl>div{grid-template-columns:1fr;gap:2px}}
.dg-cap{margin:14px 0 0;font-size:13px;color:var(--t3);line-height:1.5;max-width:72ch}
@media (prefers-reduced-motion:reduce){.dg *{transition:none!important}}
@media (forced-colors:active){.dg .nd[aria-pressed=true] .dot{stroke:Highlight}}
.dg-card .chip,.dx-asm-dim{border-radius:4px}
.dg-cells{display:grid;grid-template-columns:repeat(var(--n,3),minmax(0,1fr));border-top:1px solid var(--hair);border-left:1px solid var(--hair)}
.dg-cells>*{background:var(--bg);min-width:0;border-right:1px solid var(--hair);border-bottom:1px solid var(--hair)}
.dg-cell{display:flex;flex-direction:column;color:inherit;text-decoration:none;padding:0 0 18px;outline:none;position:relative}
.dg-cell .mini-w{position:relative;aspect-ratio:16/9;overflow:hidden;border-bottom:1px solid var(--hair)}
.dg-cell .mini-w img,.dg-cell canvas.mini{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;display:block}
.dg-cell canvas.mini{opacity:0;transition:opacity var(--dur-base)}
.dg-cell.live canvas.mini{opacity:1}
.dg-cell .k{display:flex;align-items:center;gap:8px;margin:16px 20px 6px;font:500 11.5px var(--mono);color:var(--t3)}
.dg-cell h3{margin:0 20px 8px;font:500 16px/1.3 var(--sans);color:var(--t1)}
.dg-cell p{margin:0 20px;color:var(--t2);font-size:13.5px;line-height:1.55}
.dg-cell:hover,.dg-cell:focus-visible{box-shadow:inset 0 0 0 1px var(--accent-graphic)}
.dg-cell:hover h3,.dg-cell:focus-visible h3{color:var(--t1)}
.dg-cell.live .k:before{content:"";width:6px;height:6px;border-radius:50%;background:var(--accent)}
@media (max-width:900px){.dg-cells{--n:2!important}}
@media (max-width:560px){.dg-cells{--n:1!important}}
.dx-ko{fill:var(--bg)}
/* CAD assembly (cad.js): the model on the page ground, parts called out with leaders to labels that say what they do */
.dx-asm{position:relative}
.dx-asm-view{position:relative;width:100%;overflow:hidden}
.dx-asm-view canvas{position:absolute;inset:0;display:block;width:100%;height:100%;touch-action:pan-y;cursor:grab;outline:none}
.dx-asm-view canvas:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}
.dx-asm-lead{position:absolute;inset:0;pointer-events:none;overflow:visible}
.dx-asm-lead path{fill:none;stroke:var(--t3);stroke-width:1}
.dx-asm-lead circle{fill:var(--t2)}
.dx-asm-lead text{font:500 10.5px var(--mono);fill:var(--t2)}
.dx-asm-lead g.on path{stroke:var(--accent-graphic)}
.dx-asm-lead g.on circle{fill:var(--accent-graphic)}
.dx-asm-lead g.on text{fill:var(--accent-text)}
.dx-asm-dims{position:absolute;inset:0;pointer-events:none}
.dx-asm-dim{position:absolute;left:0;top:0;margin:-9px 0 0 -30px;min-width:60px;text-align:center;font:500 11px var(--mono);color:var(--t1);background:color-mix(in srgb,var(--bg) 84%,transparent);padding:1px 4px}
.dx-asm-parts{list-style:none;margin:0;padding:0}
.dx-asm:not(.narrow) .dx-asm-parts{position:absolute;inset:0;pointer-events:none}
.dx-asm:not(.narrow) .dx-asm-parts li{position:absolute;left:0;top:0;pointer-events:auto;background:color-mix(in srgb,var(--bg) 82%,transparent)}
.dx-asm-parts button{appearance:none;display:grid;grid-template-columns:auto 1fr;column-gap:8px;row-gap:2px;width:100%;padding:3px 0;border:0;background:transparent;color:var(--t1);text-align:start;cursor:pointer;font:inherit}
.dx-asm-parts .ix{grid-row:1/3;font:500 10.5px/1.6 var(--mono);color:var(--t3);font-variant-numeric:tabular-nums}
.dx-asm-parts .nm{font:500 13px/1.3 var(--sans,inherit);color:var(--t1)}
.dx-asm-parts .fn{font-size:12px;line-height:1.4;color:var(--t2)}
.dx-asm:not(.narrow) .dx-asm-parts li[data-side=r] button{padding-inline-start:4px}
.dx-asm-parts li.on .ix,.dx-asm-parts button[aria-pressed=true] .ix{color:var(--accent-text)}
.dx-asm-parts li.on .nm{box-shadow:0 1px 0 var(--accent-graphic)}
.dx-asm-parts button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.dx-asm.narrow .dx-asm-parts{display:grid;grid-template-columns:1fr;gap:6px;margin-top:12px}
.dx-asm.narrow .dx-asm-parts button{padding:6px 0;border-top:1px solid var(--hair)}
.dx-asm-note{min-height:3.2em;margin-top:12px;max-width:72ch}
.dx-asm-h{margin:0 0 6px;font:500 15px/1.3 var(--mono);color:var(--t1);display:flex;gap:10px}
.dx-asm-h .ix{color:var(--accent-text)}
.dx-asm-p{margin:0 0 8px;color:var(--t2);font-size:13.5px;line-height:1.55}
.dx-asm-story{color:var(--t1);border-inline-start:2px solid var(--accent-graphic);padding-inline-start:10px}
.dx-asm-m{margin:0;font:400 11.5px var(--mono);color:var(--t3)}

/* b/6e28ec410172/system/modes/modes.css */
/* Mode sections (system/modes/): the product spec sheet. Kit tokens only; 5px corners, 4px chips; red only for the
   selected part's plate, its row number and focus. */
.nxo-mode-spec.s{padding:80px 0}
.nxo-mode-spec .eyebrow{margin:0 0 14px}
.nxo-mode-spec .sub{margin-bottom:32px}
.ms{display:grid;grid-template-columns:minmax(0,3fr) minmax(0,2fr);gap:32px;align-items:start}
.ms-view{min-width:0}
.ms-view .dx{margin:0}
.ms-sheet{max-height:min(640px,74vh);overflow:auto;overscroll-behavior:auto;border-top:1px solid var(--hair2)}
.ms-rows{list-style:none;margin:0;padding:0}
.ms-rows li{border-bottom:1px solid var(--hair)}
.ms-rows button{appearance:none;display:grid;grid-template-columns:28px minmax(0,1fr) auto;gap:10px;align-items:baseline;width:100%;padding:12px 2px;border:0;background:transparent;color:var(--t1);text-align:start;cursor:pointer;font:inherit}
.ms-rows .ix{font:500 11px/1.6 var(--mono);color:var(--t3);font-variant-numeric:tabular-nums}
.ms-rows .nm{font:500 14px/1.35 var(--sans);color:var(--t1)}
.ms-rows .cl{font:400 10.5px/1.6 var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--t3);white-space:nowrap}
.ms-rows button:hover .nm{color:var(--accent-text)}
.ms-rows button:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}
.ms-rows li.on .ix{color:var(--accent-text)}
.ms-rows li.on button{box-shadow:inset 2px 0 var(--accent-graphic);padding-inline-start:10px}
.ms-detail{padding:0 2px 16px 40px}
.ms-detail p{margin:0 0 10px;color:var(--t2);font-size:13.5px;line-height:1.55;max-width:60ch}
.ms-detail dl{margin:0;display:grid;gap:6px}
.ms-detail dl div{display:grid;grid-template-columns:104px minmax(0,1fr);gap:10px}
.ms-detail dt{font:400 10.5px/1.7 var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--t3)}
.ms-detail dd{margin:0;font-size:13px;line-height:1.5;color:var(--t2)}
.ms-sheet:not([data-dims]) .ms-size{display:none}
.nxo-mode-spec .cta{margin-top:28px;display:flex;flex-wrap:wrap;gap:10px}
@media (max-width:900px){.ms{grid-template-columns:1fr;gap:20px}.ms-sheet{max-height:52vh}.ms-detail{padding-inline-start:12px}.ms-detail dl div{grid-template-columns:92px minmax(0,1fr)}}
/* Site and coverage: the plan from above. Ink structure; red only for the traced path and focus. */
.nxo-mode-site.s,.nxo-mode-bom.s{padding:80px 0}
.nxo-mode-site .eyebrow,.nxo-mode-bom .eyebrow{margin:0 0 14px}
.nxo-mode-site .sub,.nxo-mode-bom .sub{margin-bottom:32px}
.mst .dx{margin:0}
.mst svg{display:block;max-width:100%;height:auto;overflow:visible}
.mst text{font-family:var(--mono);fill:var(--t3)}
.mst-f path{stroke:var(--t3);stroke-width:1;fill:none}
.mst-l path{stroke:var(--t2);stroke-width:1.25;fill:none}
.mst-l[data-k=access] path{stroke-dasharray:4 4;stroke:var(--t3)}
.mst-l text{fill:var(--t3)}
.mst-r{fill:none;stroke:var(--t1);stroke-width:1.25}
.mst-h rect{fill:var(--bg);stroke:var(--t1);stroke-width:1.5}
.mst-h text{fill:var(--t2)}
.mst-s{cursor:pointer;outline:none}
.mst-s circle{fill:var(--bg);stroke:var(--t1);stroke-width:1.5}
.mst-s text{fill:var(--t1);font-weight:500}
.mst-s:hover circle,.mst-s:focus-visible circle,.mst-s.on circle{stroke:var(--accent-graphic);fill:var(--accent-graphic)}
.mst-s:focus-visible text,.mst-s.on text{fill:var(--accent-text)}
.mst-l.on path{stroke:var(--accent-graphic);stroke-dasharray:none;stroke-width:1.75}
.mst-l.on text{fill:var(--accent-text)}
.mst-r.on{stroke:var(--accent-graphic)}
.mst-bar path,.mst-n path{stroke:var(--t2);stroke-width:1.25;fill:none}
.nxo-mode-site .cta,.nxo-mode-bom .cta{margin-top:28px;display:flex;flex-wrap:wrap;gap:10px}
/* Parts and bill of materials: the exploded station beside its grouped list. */
.mb{display:grid;grid-template-columns:minmax(0,3fr) minmax(0,2fr);gap:32px;align-items:start}
.mb-view{min-width:0}
.mb-view .dx{margin:0}
.mb-sheet{max-height:min(640px,74vh);overflow:auto;overscroll-behavior:auto;border-top:1px solid var(--hair2)}
.mb-meta{margin:10px 0 6px;font:400 11px/1.6 var(--mono);letter-spacing:.06em;color:var(--t3)}
.mb-cap{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.mb-tab{width:100%;border-collapse:collapse;font-size:13px}
.mb-tab thead th{font:400 10.5px/1.6 var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--t3);text-align:start;padding:8px 6px;border-bottom:1px solid var(--hair2)}
.mb-tab .mb-g th{font:500 11px/1.6 var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--t2);text-align:start;padding:16px 6px 6px}
.mb-tab tr[data-id]{cursor:pointer}
.mb-tab tr[data-id] td,.mb-tab tr[data-id] th{padding:9px 6px;border-bottom:1px solid var(--hair);vertical-align:baseline;text-align:start;color:var(--t2);font-weight:400}
.mb-tab tr[data-id] th{color:var(--t1);font-weight:500}
.mb-tab .cl{display:block;font:400 10px/1.6 var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--t3)}
.mb-tab .ix,.mb-tab .q{font-family:var(--mono);font-variant-numeric:tabular-nums;color:var(--t3)}
.mb-tab tr[data-id]:hover th,.mb-tab tr.on th,.mb-tab tr.on .ix{color:var(--accent-text)}
.mb-tab tr.on th{box-shadow:inset 2px 0 var(--accent-graphic)}
.mb-tab tr[data-id]:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}
@media (max-width:900px){.mb{grid-template-columns:1fr;gap:20px}.mb-sheet{max-height:52vh}.mb-tab td:nth-child(4){display:none}.mb-tab thead th:nth-child(4){display:none}}

/* b/6e28ec410172/view-area.css */
