/* Shared PRAGMATA-style art direction for the three BASTION cabins. */
body.pragmata-cabin {
  --pg-void: #06111d;
  --pg-ink: #172635;
  --pg-text: #263949;
  --pg-muted: #657788;
  --pg-faint: #9aaab6;
  --pg-shell: #edf4f8;
  --pg-shell-2: #dfeaf1;
  --pg-shell-3: #cbd9e3;
  --pg-panel: rgba(248, 252, 255, .9);
  --pg-panel-strong: rgba(255, 255, 255, .96);
  --pg-line: rgba(89, 113, 133, .34);
  --pg-line-strong: rgba(64, 94, 118, .5);
  --pg-cyan: #16b9df;
  --pg-blue: #4a78ff;
  --pg-orange: #ff9f1f;
  --pg-red: #ff4158;
  --pg-green: #0fcf86;
  --pg-radius: 8px;
  background:
    linear-gradient(90deg, rgba(22, 185, 223, .07) 1px, transparent 1px),
    linear-gradient(0deg, rgba(23, 38, 53, .055) 1px, transparent 1px),
    linear-gradient(180deg, #f7fbfd 0%, var(--pg-shell) 34%, #d7e3eb 100%);
  background-size: 52px 52px, 52px 52px, auto;
  color: var(--pg-text);
  font-family: var(--sans, var(--cn, "Noto Sans SC", system-ui, sans-serif));
}

body.pragmata-cabin,
body.pragmata-cabin * {
  letter-spacing: 0 !important;
}

body.pragmata-cabin::before {
  background-image:
    repeating-linear-gradient(0deg, rgba(255,255,255,0) 0 3px, rgba(23,38,53,.035) 4px, rgba(255,255,255,0) 5px);
  mix-blend-mode: multiply;
  opacity: .72;
  z-index: 95;
}

body.pragmata-cabin::after {
  background:
    linear-gradient(90deg, rgba(255,255,255,.35), transparent 18%, transparent 82%, rgba(255,255,255,.28)),
    linear-gradient(180deg, rgba(22,185,223,.11), transparent 18%, transparent 76%, rgba(255,159,31,.12));
  opacity: .76;
  z-index: -1;
  animation: none;
}

body.pragmata-cabin .console-bar,
body.pragmata-cabin .masthead,
body.pragmata-cabin .codex-bar {
  min-height: 48px;
  background: rgba(245, 250, 253, .88);
  border-bottom: 1px solid var(--pg-line);
  box-shadow: 0 12px 30px rgba(60, 86, 106, .08);
  color: var(--pg-muted);
  backdrop-filter: blur(18px);
  -webkit-backdrop-filter: blur(18px);
}

body.pragmata-cabin .cb-mark,
body.pragmata-cabin .m-mark,
body.pragmata-cabin .cb-mark b,
body.pragmata-cabin .m-mark span,
body.pragmata-cabin .cb-meta b,
body.pragmata-cabin .m-meta b {
  color: var(--pg-ink);
  font-family: var(--mono, "JetBrains Mono", monospace);
  font-weight: 800;
}

body.pragmata-cabin .cb-mark .cn,
body.pragmata-cabin .cb-meta,
body.pragmata-cabin .m-meta,
body.pragmata-cabin .m-coord,
body.pragmata-cabin .cb-clock,
body.pragmata-cabin .m-clock {
  color: var(--pg-muted);
}

body.pragmata-cabin .cb-clock,
body.pragmata-cabin .m-clock {
  color: #0b87a8;
}

body.pragmata-cabin .cb-mark .glyph,
body.pragmata-cabin .m-glyph {
  border: 1px solid rgba(22, 185, 223, .7);
  border-radius: 4px;
  background: var(--pg-panel-strong);
  color: #0b87a8;
  box-shadow: inset 0 1px 0 #fff, 0 10px 20px rgba(48, 83, 108, .12);
}

body.pragmata-cabin .mode-switch {
  top: 7px;
  border: 1px solid rgba(22, 185, 223, .72);
  border-radius: 6px;
  background: rgba(247, 252, 255, .88);
  box-shadow: 0 16px 34px rgba(41, 74, 98, .14), 0 0 0 1px rgba(255,255,255,.7) inset;
  color: var(--pg-muted);
  font-family: var(--mono, "JetBrains Mono", monospace);
  font-weight: 800;
  overflow: hidden;
}

body.pragmata-cabin .mode-switch::before,
body.pragmata-cabin .mode-switch::after {
  display: none;
}

body.pragmata-cabin .ms-chip {
  min-height: 32px;
  padding: 7px 18px;
  color: var(--pg-muted);
  border-right: 1px solid rgba(89, 113, 133, .22);
  transition: background .2s ease, color .2s ease, transform .2s ease;
}

body.pragmata-cabin .ms-chip:last-child {
  border-right: 0;
}

body.pragmata-cabin .ms-chip:hover {
  color: var(--pg-ink);
  background: rgba(22, 185, 223, .08);
}

body.pragmata-cabin .ms-chip.ms-active {
  color: var(--pg-ink);
  background: linear-gradient(180deg, #ffc65a 0%, var(--pg-orange) 100%);
  text-shadow: none;
}

body.pragmata-cabin .ms-chip.ms-active::before {
  content: "";
  width: 6px;
  height: 6px;
  border-radius: 999px;
  background: var(--pg-red);
  box-shadow: 0 0 8px rgba(255,65,88,.45);
}

body.pragmata-cabin .hud-corner {
  border-color: rgba(22, 185, 223, .72);
}

/* Cabin 01: inventory bay */
body.pragmata-cabin.cabin-inventory {
  background:
    linear-gradient(90deg, rgba(22, 185, 223, .07) 1px, transparent 1px),
    linear-gradient(0deg, rgba(23, 38, 53, .055) 1px, transparent 1px),
    linear-gradient(180deg, #f7fbfd 0%, #e7f0f6 46%, #c8d6e0 100%);
  background-size: 52px 52px, 52px 52px, auto;
}

body.pragmata-cabin .boot {
  background:
    linear-gradient(90deg, rgba(22,185,223,.1) 1px, transparent 1px),
    linear-gradient(0deg, rgba(23,38,53,.08) 1px, transparent 1px),
    linear-gradient(180deg, #fbfdff 0%, #e4eef5 100%);
  background-size: 38px 38px, 38px 38px, auto;
  color: var(--pg-ink);
}

body.pragmata-cabin .boot::before {
  border-color: rgba(22,185,223,.46);
}

body.pragmata-cabin .boot-line {
  color: var(--pg-muted);
  text-shadow: 0 1px 0 #fff;
}

body.pragmata-cabin .boot-line .ok,
body.pragmata-cabin .boot-line .bright {
  color: #0b87a8;
}

body.pragmata-cabin .boot-line .warn {
  color: #b76b00;
}

body.pragmata-cabin .cosmic-hero {
  min-height: calc(100vh - 48px);
  background:
    linear-gradient(90deg, rgba(22,185,223,.07) 1px, transparent 1px),
    linear-gradient(0deg, rgba(23,38,53,.06) 1px, transparent 1px),
    linear-gradient(180deg, #f4f9fc 0%, #dfeaf1 58%, #b7c7d3 100%);
  background-size: 56px 56px, 56px 56px, auto;
  cursor: crosshair;
}

body.pragmata-cabin .cosmic-bg {
  opacity: .32;
  filter: grayscale(.38) saturate(.62) contrast(.92) brightness(1.28);
  mix-blend-mode: multiply;
}

body.pragmata-cabin .cosmic-stars,
body.pragmata-cabin .cosmic-hero::after {
  opacity: .24;
  mix-blend-mode: multiply;
}

body.pragmata-cabin .cosmic-hero::before {
  background:
    linear-gradient(90deg, rgba(248,252,255,.82) 0%, rgba(248,252,255,.38) 36%, transparent 68%),
    linear-gradient(180deg, rgba(255,255,255,.45), transparent 48%, rgba(23,38,53,.18) 100%);
}

body.pragmata-cabin .cosmic-ship {
  filter:
    drop-shadow(0 24px 38px rgba(42, 68, 88, .28))
    drop-shadow(0 0 18px rgba(22, 185, 223, .1));
}

body.pragmata-cabin .cosmic-ship-img {
  filter: saturate(.78) contrast(1.02) brightness(1.08);
}

body.pragmata-cabin .ship-engine-glow {
  opacity: .2;
  filter: blur(4px);
}

body.pragmata-cabin .bastion-caption {
  max-width: min(520px, 42vw);
  padding: 22px 24px;
  border: 1px solid var(--pg-line);
  border-radius: var(--pg-radius);
  background:
    linear-gradient(135deg, rgba(255,255,255,.95), rgba(232,242,248,.82)),
    linear-gradient(90deg, rgba(22,185,223,.12), transparent);
  box-shadow: inset 0 1px 0 #fff, 0 24px 58px rgba(38, 64, 82, .18);
  color: var(--pg-ink);
  text-shadow: none;
}

body.pragmata-cabin .bastion-caption::before {
  display: none;
}

body.pragmata-cabin .cap-tag {
  border-color: rgba(22,185,223,.58);
  background: rgba(255,255,255,.66);
  color: #0b87a8;
  box-shadow: none;
}

body.pragmata-cabin .cap-name,
body.pragmata-cabin .cap-name b {
  color: var(--pg-ink);
  text-shadow: 1px 0 0 rgba(22,185,223,.28);
}

body.pragmata-cabin .cap-cn,
body.pragmata-cabin .cap-status {
  color: #0b87a8;
  text-shadow: none;
}

body.pragmata-cabin .cap-mission,
body.pragmata-cabin .scroll-hint {
  color: var(--pg-muted);
  text-shadow: none;
}

body.pragmata-cabin .matrix,
body.pragmata-cabin .briefing,
body.pragmata-cabin .archive,
body.pragmata-cabin .deck {
  background:
    linear-gradient(90deg, rgba(22,185,223,.075) 1px, transparent 1px),
    linear-gradient(0deg, rgba(23,38,53,.05) 1px, transparent 1px),
    linear-gradient(180deg, #eef5f8 0%, #dce8ef 100%);
  background-size: 48px 48px, 48px 48px, auto;
  color: var(--pg-text);
}

body.pragmata-cabin .matrix-visual,
body.pragmata-cabin .matrix-item-rail,
body.pragmata-cabin .matrix-readout,
body.pragmata-cabin .category-tab,
body.pragmata-cabin .item-node,
body.pragmata-cabin .briefing-inner,
body.pragmata-cabin .archive-row,
body.pragmata-cabin .deck-card {
  border-radius: var(--pg-radius);
  border-color: var(--pg-line);
  background: var(--pg-panel);
  box-shadow: inset 0 1px 0 #fff, 0 18px 42px rgba(43, 68, 88, .14);
  color: var(--pg-text);
}

body.pragmata-cabin .matrix-core {
  border-radius: 50%;
  background: var(--pg-panel-strong);
  border-color: rgba(22,185,223,.68);
}

body.pragmata-cabin .matrix-core b,
body.pragmata-cabin .matrix-core small,
body.pragmata-cabin .readout-kicker,
body.pragmata-cabin .sect-tag {
  color: #0b87a8;
}

body.pragmata-cabin .category-tab.is-active,
body.pragmata-cabin .item-node.is-active {
  background: linear-gradient(180deg, #fff 0%, #dff3fa 100%);
  box-shadow: inset 0 0 0 2px rgba(22,185,223,.45), 0 20px 44px rgba(39, 74, 100, .14);
}

body.pragmata-cabin .category-tab.is-locked {
  background: rgba(216, 226, 234, .62);
}

/* Cabin 02: workshop bay */
body.pragmata-cabin.cabin-workshop .hero,
body.pragmata-cabin.cabin-workshop .workshop-hero {
  min-height: calc(100vh - 48px);
  background:
    linear-gradient(90deg, rgba(22,185,223,.075) 1px, transparent 1px),
    linear-gradient(0deg, rgba(23,38,53,.052) 1px, transparent 1px),
    linear-gradient(180deg, #f7fbfd 0%, #e8f0f5 56%, #d6e3ec 100%);
  background-size: 56px 56px, 56px 56px, auto;
  border-bottom: 1px solid var(--pg-line);
}

body.pragmata-cabin.cabin-workshop .workshop-hero::before {
  opacity: .38;
  background-image:
    linear-gradient(90deg, rgba(22,185,223,.16) 1px, transparent 1px),
    linear-gradient(0deg, rgba(23,38,53,.08) 1px, transparent 1px);
  background-size: 112px 112px, 112px 112px;
}

body.pragmata-cabin.cabin-workshop .hero-tags .tag,
body.pragmata-cabin.cabin-workshop .workshop-rail,
body.pragmata-cabin.cabin-workshop .bench-stat,
body.pragmata-cabin.cabin-workshop .project-card,
body.pragmata-cabin.cabin-workshop .desk-card,
body.pragmata-cabin.cabin-workshop .colophon-grid > div {
  border-radius: var(--pg-radius);
  border: 1px solid var(--pg-line);
  background: var(--pg-panel);
  box-shadow: inset 0 1px 0 #fff, 0 20px 48px rgba(43, 68, 88, .13);
  color: var(--pg-text);
}

body.pragmata-cabin.cabin-workshop .hero-line-mark {
  color: rgba(255,255,255,.86);
  -webkit-text-stroke: 1px rgba(23,38,53,.38);
  text-shadow: 1px 0 0 rgba(22,185,223,.42), 0 18px 42px rgba(34, 59, 78, .16);
}

body.pragmata-cabin.cabin-workshop .hero-line-cn,
body.pragmata-cabin.cabin-workshop .hero-sub,
body.pragmata-cabin.cabin-workshop .section-meta,
body.pragmata-cabin.cabin-workshop .sect-no,
body.pragmata-cabin.cabin-workshop .project-no,
body.pragmata-cabin.cabin-workshop .desk-label {
  color: #0b87a8;
}

body.pragmata-cabin.cabin-workshop .manifest,
body.pragmata-cabin.cabin-workshop .projects,
body.pragmata-cabin.cabin-workshop .materials,
body.pragmata-cabin.cabin-workshop .colophon {
  background:
    linear-gradient(90deg, rgba(22,185,223,.06) 1px, transparent 1px),
    linear-gradient(0deg, rgba(23,38,53,.045) 1px, transparent 1px),
    linear-gradient(180deg, #eef5f8 0%, #dce8ef 100%);
  background-size: 48px 48px, 48px 48px, auto;
}

body.pragmata-cabin.cabin-workshop .hero-quote,
body.pragmata-cabin.cabin-workshop .hero-spec b,
body.pragmata-cabin.cabin-workshop .manifest-body,
body.pragmata-cabin.cabin-workshop .project-card h3,
body.pragmata-cabin.cabin-workshop .project-card p,
body.pragmata-cabin.cabin-workshop .desk-card h4,
body.pragmata-cabin.cabin-workshop .desk-card p {
  color: var(--pg-text);
}

body.pragmata-cabin.cabin-workshop .project-status,
body.pragmata-cabin.cabin-workshop .project-card::after,
body.pragmata-cabin.cabin-workshop .bench-stat::before {
  background: var(--pg-orange);
  color: var(--pg-ink);
}

body.pragmata-cabin.cabin-workshop .project-tags span,
body.pragmata-cabin.cabin-workshop .project-open {
  border-color: var(--pg-line);
  background: rgba(22,185,223,.08);
  color: #0b87a8;
}

body.pragmata-cabin.cabin-workshop .project-open:hover {
  background: var(--pg-orange);
  color: var(--pg-ink);
}

/* Cabin 03: archive bay */
body.pragmata-cabin.cabin-archive.book-library {
  background:
    linear-gradient(90deg, rgba(22,185,223,.075) 1px, transparent 1px),
    linear-gradient(0deg, rgba(23,38,53,.052) 1px, transparent 1px),
    linear-gradient(180deg, #f8fbfd 0%, #e8f1f6 54%, #d9e5ed 100%);
  background-size: 56px 56px, 56px 56px, auto;
  color: var(--pg-text);
}

body.pragmata-cabin.cabin-archive.book-library::before,
body.pragmata-cabin.cabin-archive.book-library::after {
  background:
    linear-gradient(90deg, rgba(255,255,255,.42), transparent 18%, transparent 82%, rgba(255,255,255,.3)),
    linear-gradient(180deg, rgba(22,185,223,.09), transparent 22%, rgba(255,159,31,.08));
  opacity: .85;
}

body.pragmata-cabin.cabin-archive .vignette {
  background: linear-gradient(180deg, rgba(255,255,255,.34), transparent 42%, rgba(23,38,53,.11));
}

body.pragmata-cabin.cabin-archive .codex-bar {
  min-height: 48px;
  background: rgba(245, 250, 253, .9);
  border-bottom: 1px solid var(--pg-line);
  box-shadow: 0 12px 30px rgba(60, 86, 106, .08);
  color: var(--pg-muted);
}

body.pragmata-cabin.cabin-archive .cb-mark,
body.pragmata-cabin.cabin-archive .cb-mark b {
  color: var(--pg-ink);
  font-family: var(--mono, "JetBrains Mono", monospace);
}

body.pragmata-cabin.cabin-archive .cb-mark .glyph {
  border-color: rgba(22, 185, 223, .7);
  border-radius: 4px;
  background: var(--pg-panel-strong);
  color: #0b87a8;
}

body.pragmata-cabin.cabin-archive .cb-mark .cn,
body.pragmata-cabin.cabin-archive .cb-meta,
body.pragmata-cabin.cabin-archive .cb-clock {
  color: var(--pg-muted);
}

body.pragmata-cabin.cabin-archive .cb-meta b,
body.pragmata-cabin.cabin-archive .cb-clock {
  color: #0b87a8;
}

body.pragmata-cabin.cabin-archive .mode-switch {
  border-color: rgba(22, 185, 223, .72);
  border-radius: 6px;
  background: rgba(247, 252, 255, .9);
  box-shadow: 0 16px 34px rgba(41, 74, 98, .14), 0 0 0 1px rgba(255,255,255,.7) inset;
  color: var(--pg-muted);
}

body.pragmata-cabin.cabin-archive .mode-switch::before,
body.pragmata-cabin.cabin-archive .mode-switch::after {
  display: none;
}

body.pragmata-cabin.cabin-archive .ms-chip {
  color: var(--pg-muted);
  border-right: 1px solid rgba(89, 113, 133, .22);
}

body.pragmata-cabin.cabin-archive .ms-chip:hover {
  color: var(--pg-ink);
  background: rgba(22, 185, 223, .08);
}

body.pragmata-cabin.cabin-archive .ms-chip.ms-active {
  color: var(--pg-ink);
  background: linear-gradient(180deg, #ffc65a 0%, var(--pg-orange) 100%);
  text-shadow: none;
}

body.pragmata-cabin.cabin-archive .library-stage {
  background:
    linear-gradient(90deg, rgba(22,185,223,.075) 1px, transparent 1px),
    linear-gradient(0deg, rgba(23,38,53,.052) 1px, transparent 1px),
    linear-gradient(180deg, #f8fbfd 0%, #e8f1f6 60%, #d7e4ed 100%);
  background-size: 56px 56px, 56px 56px, auto;
}

body.pragmata-cabin.cabin-archive .library-stage::before {
  opacity: .4;
  background:
    linear-gradient(90deg, rgba(22,185,223,.12) 1px, transparent 1px),
    linear-gradient(0deg, rgba(23,38,53,.06) 1px, transparent 1px);
  background-size: 112px 112px, 112px 112px;
}

body.pragmata-cabin.cabin-archive .library-kicker span,
body.pragmata-cabin.cabin-archive .library-stats div,
body.pragmata-cabin.cabin-archive .spread-frame,
body.pragmata-cabin.cabin-archive .page,
body.pragmata-cabin.cabin-archive .article-card,
body.pragmata-cabin.cabin-archive .route-card {
  border-radius: var(--pg-radius);
  border: 1px solid var(--pg-line);
  background: var(--pg-panel);
  box-shadow: inset 0 1px 0 #fff, 0 20px 48px rgba(43, 68, 88, .13);
  color: var(--pg-text);
}

body.pragmata-cabin.cabin-archive .library-hero h1,
body.pragmata-cabin.cabin-archive .library-section-head h2,
body.pragmata-cabin.cabin-archive .article-card h3,
body.pragmata-cabin.cabin-archive .route-card h3,
body.pragmata-cabin.cabin-archive .colophon h3 {
  color: var(--pg-ink);
  text-shadow: none;
}

body.pragmata-cabin.cabin-archive .library-hero h1 {
  color: rgba(255,255,255,.9);
  -webkit-text-stroke: 1px rgba(23,38,53,.42);
  text-shadow: 1px 0 0 rgba(22,185,223,.42), 0 18px 42px rgba(34, 59, 78, .16);
}

body.pragmata-cabin.cabin-archive .library-hero h1 small,
body.pragmata-cabin.cabin-archive .section-overline,
body.pragmata-cabin.cabin-archive .library-stats dd,
body.pragmata-cabin.cabin-archive .article-no,
body.pragmata-cabin.cabin-archive .route-card span,
body.pragmata-cabin.cabin-archive .shelf-count b {
  color: #0b87a8;
}

body.pragmata-cabin.cabin-archive .library-lead,
body.pragmata-cabin.cabin-archive .library-section-head p,
body.pragmata-cabin.cabin-archive .article-en,
body.pragmata-cabin.cabin-archive .article-desc,
body.pragmata-cabin.cabin-archive .article-meta-line,
body.pragmata-cabin.cabin-archive .route-card p,
body.pragmata-cabin.cabin-archive .colophon-body,
body.pragmata-cabin.cabin-archive .colophon-grid p {
  color: var(--pg-text);
}

body.pragmata-cabin.cabin-archive .library-lead {
  border-left: 3px solid var(--pg-orange);
  background: rgba(255,255,255,.52);
  padding: 14px 18px;
  border-radius: 0 var(--pg-radius) var(--pg-radius) 0;
}

body.pragmata-cabin.cabin-archive .library-primary,
body.pragmata-cabin.cabin-archive .filter-chip.is-active {
  border-color: var(--pg-orange);
  background: var(--pg-orange);
  color: var(--pg-ink);
}

body.pragmata-cabin.cabin-archive .library-secondary,
body.pragmata-cabin.cabin-archive .filter-chip,
body.pragmata-cabin.cabin-archive .article-status {
  border-color: var(--pg-line);
  background: rgba(22,185,223,.08);
  color: #0b87a8;
}

body.pragmata-cabin.cabin-archive .spread-image {
  background-image:
    linear-gradient(90deg, rgba(248,252,255,.76), transparent 26%, transparent 74%, rgba(248,252,255,.82)),
    linear-gradient(rgba(22,185,223,.08) 1px, transparent 1px),
    linear-gradient(90deg, rgba(22,185,223,.08) 1px, transparent 1px),
    url("./assets/book_spread.jpg?v=1777506000");
  background-size: auto, 32px 32px, 32px 32px, cover;
  filter: saturate(.58) contrast(.98) brightness(1.08);
}

body.pragmata-cabin.cabin-archive .data-matrix-console,
body.pragmata-cabin.cabin-archive .data-matrix-readout,
body.pragmata-cabin.cabin-archive .data-matrix-readout dl div,
body.pragmata-cabin.cabin-archive .data-node {
  border-radius: var(--pg-radius);
  border-color: var(--pg-line);
  background:
    linear-gradient(180deg, rgba(255,255,255,.9), rgba(223,236,245,.72)),
    radial-gradient(ellipse at 50% 0%, rgba(22,185,223,.14), transparent 58%);
  color: var(--pg-text);
  box-shadow: inset 0 1px 0 #fff;
}

body.pragmata-cabin.cabin-archive .data-matrix-console {
  min-height: clamp(460px, 39vw, 630px);
  box-shadow:
    inset 0 1px 0 #fff,
    inset 0 -20px 54px rgba(78, 104, 124, .11),
    0 26px 62px rgba(43, 68, 88, .16);
}

body.pragmata-cabin.cabin-archive .data-matrix-console::before {
  border-color: rgba(22,185,223,.18);
  background:
    linear-gradient(90deg, rgba(22,185,223,.08) 1px, transparent 1px),
    linear-gradient(0deg, rgba(23,38,53,.055) 1px, transparent 1px);
  background-size: 28px 28px;
}

body.pragmata-cabin.cabin-archive .data-matrix-console::after {
  background: linear-gradient(90deg, transparent, rgba(22,185,223,.58), rgba(255,159,31,.52), transparent);
  box-shadow:
    0 -62px 0 rgba(22,185,223,.11),
    0 62px 0 rgba(255,159,31,.1);
}

body.pragmata-cabin.cabin-archive .data-matrix-head {
  color: var(--pg-muted);
}

body.pragmata-cabin.cabin-archive .data-matrix-head b,
body.pragmata-cabin.cabin-archive .data-matrix-readout dd,
body.pragmata-cabin.cabin-archive .data-node b {
  color: var(--pg-ink);
}

body.pragmata-cabin.cabin-archive .data-matrix-visual {
  border-color: rgba(89,113,133,.28);
  border-radius: var(--pg-radius);
  background:
    radial-gradient(circle at 50% 48%, rgba(22,185,223,.22), transparent 48%),
    linear-gradient(90deg, transparent 49%, rgba(22,185,223,.34) 50%, transparent 51%),
    rgba(248,252,255,.58);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.95),
    inset 0 0 56px rgba(77,124,255,.08);
}

body.pragmata-cabin.cabin-archive .data-plane {
  border-color: rgba(22,185,223,.32);
  background:
    linear-gradient(90deg, rgba(23,38,53,.075) 1px, transparent 1px),
    linear-gradient(0deg, rgba(23,38,53,.06) 1px, transparent 1px),
    rgba(255,255,255,.36);
  background-size: 34px 34px;
}

body.pragmata-cabin.cabin-archive .data-spine {
  background: linear-gradient(90deg, transparent, rgba(22,185,223,.76), rgba(255,159,31,.74), transparent);
}

body.pragmata-cabin.cabin-archive .data-core {
  border-color: rgba(22,185,223,.68);
  background: rgba(248,252,255,.86);
  color: #0b87a8;
  box-shadow:
    inset 0 1px 0 #fff,
    0 0 0 14px rgba(22,185,223,.055),
    0 0 34px rgba(22,185,223,.2);
}

body.pragmata-cabin.cabin-archive .data-node {
  border-radius: 6px;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.9),
    0 10px 22px rgba(47, 76, 98, .1);
}

body.pragmata-cabin.cabin-archive .data-node:hover,
body.pragmata-cabin.cabin-archive .data-node:focus-visible,
body.pragmata-cabin.cabin-archive .data-node.is-active {
  border-color: rgba(22,185,223,.72);
  background:
    linear-gradient(180deg, rgba(255,255,255,.98), rgba(215,240,249,.82));
  box-shadow:
    inset 0 0 0 2px rgba(22,185,223,.18),
    0 15px 32px rgba(22,185,223,.13);
}

body.pragmata-cabin.cabin-archive .data-node i {
  background: var(--pg-cyan);
  box-shadow: 0 0 14px rgba(22,185,223,.32);
}

body.pragmata-cabin.cabin-archive .data-node.cyan b,
body.pragmata-cabin.cabin-archive .data-node.blue b {
  color: #0b87a8;
}

body.pragmata-cabin.cabin-archive .data-node.amber b,
body.pragmata-cabin.cabin-archive .data-node.green b,
body.pragmata-cabin.cabin-archive .data-node.violet b {
  color: var(--pg-ink);
}

body.pragmata-cabin.cabin-archive .data-node small,
body.pragmata-cabin.cabin-archive .data-matrix-readout dt,
body.pragmata-cabin.cabin-archive .data-matrix-readout p {
  color: var(--pg-muted);
}

body.pragmata-cabin.cabin-archive .data-matrix-readout h3 {
  color: var(--pg-ink);
}

body.pragmata-cabin.cabin-archive .data-matrix-readout dl div {
  background: rgba(255,255,255,.58);
  box-shadow: inset 0 1px 0 #fff;
}

body.pragmata-cabin.cabin-archive .read-ribbon {
  background: linear-gradient(180deg, rgba(255,159,31,.92), rgba(22,185,223,.38));
  border-color: var(--pg-line);
}

body.pragmata-cabin.cabin-archive .read-ribbon-fill {
  background: linear-gradient(180deg, var(--pg-orange), var(--pg-cyan));
}

@media (max-width: 900px) {
  body.pragmata-cabin .mode-switch {
    top: 8px;
    width: calc(100vw - 24px);
    justify-content: center;
    font-size: 9px;
  }

  body.pragmata-cabin .ms-chip {
    flex: 1;
    justify-content: center;
    padding: 7px 8px;
  }

  body.pragmata-cabin .console-bar,
  body.pragmata-cabin .masthead,
  body.pragmata-cabin .codex-bar {
    padding-top: 48px;
  }

  body.pragmata-cabin .bastion-caption {
    max-width: none;
    left: 16px;
    right: 16px;
  }
}
