:root {
  color-scheme: dark;
  --bg: #0b0e13;
  --surface: #10141a;
  --surface-2: #161b24;
  --surface-3: #1d2430;
  --line: #29313c;
  --line-strong: #3b4654;
  --text: #e2ddd5;
  --muted: #a8a39b;
  --dim: #746f68;
  --accent: #e9c176;
  --ok: #79ad90;
  --warn: #d8a864;
  --ease: cubic-bezier(.22, 1, .36, 1);
  font-family: Inter, ui-sans-serif, system-ui, sans-serif;
  background: var(--bg);
  color: var(--text);
}

* { box-sizing: border-box; }

html { scroll-behavior: smooth; }

body {
  margin: 0;
  min-width: 320px;
  min-height: 100vh;
  background:
    radial-gradient(circle at 50% 20%, rgba(233, 193, 118, .055), transparent 35rem),
    var(--bg);
}

button, input { font: inherit; }

button { color: inherit; }

button:focus-visible, input:focus-visible, [tabindex]:focus-visible {
  outline: 2px solid color-mix(in srgb, var(--accent), white 14%);
  outline-offset: 3px;
}

button { cursor: pointer; }

.shell { width: min(1560px, 100%); margin-inline: auto; }

.site-header {
  position: relative;
  z-index: 5;
  min-height: 74px;
  padding: 0 clamp(18px, 4vw, 64px);
  display: flex;
  align-items: center;
  justify-content: space-between;
  border-bottom: 1px solid var(--line);
}

.brand {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  color: var(--text);
  text-decoration: none;
}

.brand > span:last-child { display: grid; line-height: 1; gap: 5px; }
.brand strong { font-size: 13px; letter-spacing: .24em; }
.brand small, .header-meta { font: 400 8.5px/1.2 "DM Mono", monospace; letter-spacing: .18em; color: var(--dim); }

.brand-mark {
  position: relative;
  width: 30px;
  height: 30px;
  display: grid;
  place-items: center;
  border: 1px solid var(--line-strong);
  border-radius: 50%;
}

.brand-mark::before, .brand-mark::after, .brand-mark i {
  content: "";
  position: absolute;
  width: 3px;
  height: 3px;
  border-radius: 50%;
  background: var(--text);
}

.brand-mark::before { transform: translateY(-7px); }
.brand-mark::after { transform: translate(-7px, 5px); }
.brand-mark i:nth-child(1) { transform: translate(7px, 5px); }
.brand-mark i:nth-child(2), .brand-mark i:nth-child(3) { width: 1px; height: 16px; background: var(--line-strong); transform-origin: bottom; }
.brand-mark i:nth-child(2) { transform: translate(-3px, -3px) rotate(32deg); }
.brand-mark i:nth-child(3) { transform: translate(3px, -3px) rotate(-32deg); }

.header-meta { display: flex; align-items: center; gap: 10px; }
.header-version { padding-left: 10px; border-left: 1px solid var(--line); }

main { padding: 0 clamp(12px, 3vw, 46px) 72px; }

.intro {
  display: grid;
  grid-template-columns: minmax(0, 1.25fr) minmax(280px, .75fr);
  align-items: end;
  gap: clamp(28px, 7vw, 100px);
  padding: clamp(58px, 9vw, 120px) clamp(6px, 3vw, 44px) clamp(46px, 7vw, 86px);
}

.eyebrow {
  margin: 0 0 15px;
  font: 500 9px/1.3 "DM Mono", monospace;
  letter-spacing: .22em;
  color: var(--dim);
}

.intro h1 {
  margin: 0;
  max-width: 820px;
  font-size: clamp(42px, 6.9vw, 104px);
  line-height: .91;
  letter-spacing: 0;
  font-weight: 600;
}

.intro h1 em { color: var(--accent); font-style: normal; font-weight: 500; }

.intro-copy { padding-bottom: clamp(0px, .7vw, 12px); }
.intro-copy > p { max-width: 550px; margin: 0 0 28px; font-size: clamp(14px, 1.4vw, 18px); line-height: 1.68; color: var(--muted); }
.intro-stats { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1px; border: 1px solid var(--line); background: var(--line); }
.intro-stats span { display: flex; align-items: baseline; gap: 8px; min-height: 48px; padding: 13px 15px; background: var(--surface); font: 400 9px/1 "DM Mono", monospace; color: var(--dim); text-transform: uppercase; letter-spacing: .1em; }
.intro-stats strong { font-size: 16px; color: var(--text); letter-spacing: 0; }

.map-terminal {
  border: 1px solid var(--line-strong);
  background: rgba(9, 13, 15, .94);
  box-shadow: 0 35px 90px rgba(0, 0, 0, .32), inset 0 1px rgba(255, 255, 255, .015);
}

.terminal-bar, .map-tools, .map-footer {
  display: flex;
  align-items: center;
  min-height: 47px;
  border-bottom: 1px solid var(--line);
  font: 400 9px/1.3 "DM Mono", monospace;
  letter-spacing: .13em;
  text-transform: uppercase;
  color: var(--dim);
}

.terminal-bar { padding-left: 16px; }
.terminal-state { display: flex; align-items: center; gap: 9px; min-width: 205px; color: var(--muted); }
.terminal-bar > p { margin: 0 auto; padding-inline: 18px; text-align: center; }
.terminal-actions { align-self: stretch; display: flex; align-items: center; border-left: 1px solid var(--line); }

.status-dot {
  display: inline-block;
  width: 6px;
  height: 6px;
  flex: 0 0 auto;
  border-radius: 50%;
  background: var(--ok);
  box-shadow: 0 0 10px color-mix(in srgb, var(--ok), transparent 15%);
}
.status-dot.pulse { animation: pulse 2.4s ease-in-out infinite; }
.status-review { background: var(--warn); box-shadow: 0 0 10px rgba(241, 208, 110, .45); }
.status-idle { background: var(--dim); box-shadow: none; }

.icon-button, .text-button, .motion-button {
  border: 0;
  border-left: 1px solid var(--line);
  background: transparent;
  color: var(--muted);
  transition: color .2s, background .2s;
}
.icon-button:hover, .text-button:hover, .motion-button:hover { color: var(--text); background: var(--surface-2); }
.icon-button { width: 40px; height: 100%; min-height: 38px; display: grid; place-items: center; font: 400 18px/1 "DM Mono", monospace; }
.text-button { align-self: stretch; padding: 0 15px; font: 500 9px/1 "DM Mono", monospace; text-transform: uppercase; letter-spacing: .12em; }

.map-tools {
  min-height: 56px;
  padding: 8px 10px;
  gap: 10px;
  background: var(--surface);
}

.map-guidance {
  margin: 0;
  color: var(--dim);
  font: 400 8.5px/1.4 "DM Mono", monospace;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.search-box {
  width: min(340px, 31vw);
  height: 36px;
  padding: 0 10px;
  display: flex;
  align-items: center;
  gap: 9px;
  border: 1px solid var(--line);
  background: var(--bg);
}
.search-box > span { font-size: 17px; color: var(--dim); }
.search-box input { min-width: 0; flex: 1; border: 0; outline: 0; background: transparent; color: var(--text); font: 400 10px/1 "DM Mono", monospace; }
.search-box input::placeholder { color: var(--dim); }
kbd { min-width: 18px; padding: 3px; border: 1px solid var(--line-strong); border-radius: 2px; color: var(--dim); font: inherit; text-align: center; }

.filter-row { display: flex; align-items: center; gap: 4px; }
.filter-chip {
  min-height: 30px;
  padding: 0 10px;
  border: 1px solid transparent;
  background: transparent;
  color: var(--dim);
  font: 500 8.5px/1 "DM Mono", monospace;
  text-transform: uppercase;
  letter-spacing: .1em;
  transition: all .2s;
}
.filter-chip:hover { color: var(--muted); border-color: var(--line); }
.filter-chip.is-active { color: var(--text); border-color: var(--line-strong); background: var(--surface-2); }
.motion-button { margin-left: auto; min-height: 32px; padding: 0 12px; border: 1px solid var(--line); font: 400 8.5px/1 "DM Mono", monospace; letter-spacing: .08em; text-transform: uppercase; }
.motion-button span { margin-right: 5px; color: var(--accent); }

.map-layout { display: grid; grid-template-columns: minmax(0, 1fr) 320px; min-height: 690px; }

.graph-stage {
  position: relative;
  min-width: 0;
  overflow: hidden;
  border-right: 1px solid var(--line);
  background:
    linear-gradient(rgba(47, 58, 64, .18) 1px, transparent 1px),
    linear-gradient(90deg, rgba(47, 58, 64, .18) 1px, transparent 1px),
    radial-gradient(circle at center, rgba(255, 255, 255, .028), transparent 48%);
  background-size: 38px 38px, 38px 38px, auto;
  animation: grid-drift 32s linear infinite;
}

#liveGraph {
  display: block;
  width: 100%;
  height: 690px;
  cursor: grab;
  touch-action: none;
  user-select: none;
}
#liveGraph.is-panning { cursor: grabbing; }

.graph-corner, .mobile-tip {
  position: absolute;
  z-index: 3;
  pointer-events: none;
  padding: 7px 9px;
  border: 1px solid var(--line);
  background: rgba(8, 11, 13, .78);
  backdrop-filter: blur(8px);
  color: var(--dim);
  font: 400 8px/1 "DM Mono", monospace;
  letter-spacing: .12em;
}
.graph-corner--left { left: 12px; top: 12px; display: flex; align-items: center; gap: 8px; }
.graph-corner--right { right: 12px; bottom: 12px; }
.mobile-tip { display: none; left: 50%; bottom: 10px; transform: translateX(-50%); white-space: nowrap; }

.orbit { stroke: var(--line-strong); stroke-width: .8; transform-origin: 600px 380px; }
.orbit-a { animation: spin 120s linear infinite; }
.orbit-b { animation: spin-back 170s linear infinite; }
.core-aura { animation: aura 6.5s ease-in-out infinite alternate; transform-origin: 600px 380px; }

.graph-edge {
  stroke: #6c7880;
  stroke-width: .72;
  stroke-linecap: round;
  opacity: .16;
  transition: opacity .24s, stroke-width .24s, stroke .24s;
}
.edge-commands { stroke-width: 1.1; opacity: .31; }
.edge-runs { stroke: var(--accent); stroke-dasharray: 3 7; opacity: .22; }
.edge-informs { stroke: var(--ok); stroke-dasharray: 1 8; opacity: .16; }
.edge-guards { stroke: #9d94b7; stroke-dasharray: 5 8; }
.edge-memory, .edge-signal, .edge-wikilink { stroke: var(--accent); opacity: .35; }
.edge-wikilink { stroke-width: .55; opacity: .22; }
.graph-edge.is-highlighted { opacity: .82; stroke-width: 1.6; }
.graph-edge.is-dimmed { opacity: .025; }
.graph-edge.is-hidden { display: none; }

.signal-particle { fill: var(--particle-color, var(--accent)); filter: url(#tiny-glow); }

.graph-node { --node-color: var(--text); cursor: grab; transition: opacity .25s; }
/*
 * SVG groups are keyboard-focusable. Chromium otherwise paints its native
 * rectangular focus outline around the moving <g>, which looks like a white
 * box following the selected agent. The node halo below is our accessible,
 * geometry-aware focus indicator instead.
 */
.graph-node:focus { outline: none; }
.graph-node:focus-visible .node-halo {
  opacity: .82;
  stroke-width: 1.8;
  stroke-dasharray: 3 3;
  animation: none;
}
.graph-node.is-grabbing { cursor: grabbing; }
.node-hit { fill: transparent; }
.node-shape { fill: var(--surface); stroke: var(--node-color); stroke-width: 1.35; transition: stroke-width .2s, fill .2s, filter .2s; }
.node-halo { fill: none; stroke: var(--node-color); stroke-width: 1; opacity: 0; transform-origin: center; transition: opacity .2s; }
.node-glyph { fill: var(--node-color); font: 500 calc(9px * var(--camera-scale, 1))/1 "DM Mono", monospace; pointer-events: none; }
.node-label { fill: var(--text); font: 500 calc(10px * var(--camera-scale, 1))/1 "DM Mono", monospace; letter-spacing: calc(.02em * var(--camera-scale, 1)); pointer-events: none; paint-order: stroke; stroke: var(--bg); stroke-width: 3px; }
.node-subtitle { fill: var(--dim); font: 400 calc(6.8px * var(--camera-scale, 1))/1 "DM Mono", monospace; letter-spacing: .08em; pointer-events: none; paint-order: stroke; stroke: var(--bg); stroke-width: 2px; }
.core-corona,
.core-rays,
.core-ring,
.core-facet { pointer-events: none; transform-box: fill-box; transform-origin: center; }
.core-corona { fill: url(#core-sun-corona); opacity: .88; }
.core-rays { fill: #e9c176; opacity: .2; }
.core-ring { fill: none; stroke: url(#core-sun-ring); }
.core-ring--outer { stroke-width: 1.15; stroke-dasharray: 2 5; opacity: .62; }
.core-ring--inner { stroke-width: .75; stroke-dasharray: 1 3; opacity: .78; }
.core-facet { fill: none; stroke: rgba(255, 244, 205, .46); stroke-width: .8; stroke-dasharray: 1.5 3.5; }
.node-core .node-shape { fill: url(#core-sun-surface); stroke: #f2d488; stroke-width: 1.6; filter: url(#core-sun-glow); }
.node-core .node-glyph { fill: #3b2c13; font-size: calc(17px * var(--camera-scale, 1)); font-weight: 700; }
.node-core .node-label { font-size: calc(13px * var(--camera-scale, 1)); font-weight: 600; letter-spacing: .12em; }
.node-group .node-label { fill: var(--node-color); font-size: calc(11px * var(--camera-scale, 1)); font-weight: 600; }
.node-group .node-shape { fill: color-mix(in srgb, var(--node-color), var(--surface) 91%); stroke-width: 1.8; }
.node-skill .node-shape { fill: color-mix(in srgb, var(--node-color), var(--surface) 88%); }
.node-skill .node-glyph { display: none; }
.node-note .node-shape { fill: var(--node-color); stroke: color-mix(in srgb, var(--node-color), white 22%); stroke-width: .65; filter: url(#tiny-glow); }
.node-note .node-label { font-size: calc(8px * var(--camera-scale, 1)); }
.node-note .node-subtitle { display: none; }
.graph-node:hover .node-shape, .graph-node.is-hovered .node-shape, .graph-node.is-selected .node-shape { stroke-width: 2.6; filter: url(#soft-glow); }
.node-core:hover .node-shape, .node-core.is-hovered .node-shape, .node-core.is-selected .node-shape { stroke: #fff0bd; filter: url(#core-sun-glow); }
.graph-node:hover .node-halo, .graph-node.is-hovered .node-halo, .graph-node.is-selected .node-halo { opacity: .36; animation: halo 2.1s ease-out infinite; }
.graph-node.is-match .node-halo { opacity: .92; stroke-width: 2.2; }
.graph-node.is-dimmed { opacity: .075; }
.graph-node.is-hidden { display: none; }
.vault-open .node-note { animation: note-in .55s var(--ease) both; }
.vault-open .node-core .node-label, .vault-open .node-core .node-subtitle { opacity: 0; }
.motion-paused .signal-particle { display: none; }
.motion-paused .orbit, .motion-paused .core-aura { animation-play-state: paused; }

.inspector {
  min-width: 0;
  display: flex;
  flex-direction: column;
  background: var(--surface);
}

.inspector-empty {
  margin: auto;
  width: 100%;
  padding: 34px;
  text-align: center;
}
.inspector-empty h2 { margin: 0 0 12px; font-size: 24px; letter-spacing: 0; }
.inspector-empty > p:not(.eyebrow) { margin: 0 auto 28px; max-width: 230px; color: var(--muted); font-size: 12px; line-height: 1.65; }

.empty-orbit { position: relative; width: 92px; height: 92px; display: block; margin: 0 auto 28px; border: 1px solid var(--line-strong); border-radius: 50%; }
.empty-orbit::before, .empty-orbit::after { content: ""; position: absolute; inset: 18px; border: 1px dashed var(--line-strong); border-radius: 50%; animation: spin 18s linear infinite; }
.empty-orbit::after { inset: 39px; border: 0; background: var(--accent); box-shadow: 0 0 16px rgba(233, 193, 118, .42); }
.empty-orbit i { position: absolute; width: 5px; height: 5px; border-radius: 50%; background: var(--muted); }
.empty-orbit i:first-child { left: 11px; top: 39px; }
.empty-orbit i:last-child { right: 12px; top: 25px; }

.core-cta {
  width: 100%;
  min-height: 42px;
  border: 1px solid var(--line-strong);
  background: var(--surface-2);
  color: var(--text);
  font: 500 9px/1 "DM Mono", monospace;
  letter-spacing: .08em;
  text-transform: uppercase;
  transition: border-color .2s, background .2s;
}
.core-cta span { margin-right: 7px; color: var(--accent); }
.core-cta:hover { border-color: var(--accent); background: color-mix(in srgb, var(--accent), var(--surface-2) 92%); }

.detail-card { --detail-color: var(--accent); height: 100%; animation: panel-in .38s var(--ease); }
.detail-card[hidden] { display: none; }
.detail-header { min-height: 112px; padding: 19px 18px 16px; display: flex; align-items: flex-start; justify-content: space-between; gap: 14px; border-bottom: 1px solid var(--line); box-shadow: inset 3px 0 var(--detail-color); }
.detail-header .eyebrow { color: var(--detail-color); margin-bottom: 10px; }
.detail-header h2 { margin: 0 0 5px; font-size: 22px; line-height: 1.08; letter-spacing: 0; }
.detail-header p:last-child { margin: 0; color: var(--dim); font: 400 9px/1.3 "DM Mono", monospace; text-transform: uppercase; letter-spacing: .09em; }
.detail-header .icon-button { border: 1px solid var(--line); height: 30px; min-height: 30px; width: 30px; }
.detail-status { min-height: 37px; padding: 0 18px; display: flex; align-items: center; gap: 8px; border-bottom: 1px solid var(--line); color: var(--dim); font: 400 8px/1 "DM Mono", monospace; letter-spacing: .12em; }
.detail-summary { margin: 0; padding: 19px 18px; color: var(--muted); font-size: 12px; line-height: 1.7; border-bottom: 1px solid var(--line); }
.detail-card section { padding: 17px 18px; border-bottom: 1px solid var(--line); }
.detail-card h3 { margin: 0 0 12px; color: var(--dim); font: 500 8px/1 "DM Mono", monospace; text-transform: uppercase; letter-spacing: .18em; }
.detail-card ol { margin: 0; padding: 0; display: grid; gap: 8px; list-style: none; }
.detail-card li { display: grid; grid-template-columns: 22px 1fr; gap: 9px; align-items: baseline; }
.detail-card li span { color: var(--detail-color); font: 400 8px/1 "DM Mono", monospace; }
.detail-card li p { margin: 0; color: var(--muted); font-size: 11px; line-height: 1.45; }
.tool-list { display: flex; flex-wrap: wrap; gap: 6px; }
.tool-list span { padding: 6px 7px; border: 1px solid var(--line); background: var(--bg); color: var(--muted); font: 400 8px/1 "DM Mono", monospace; }
.detail-card footer { padding: 14px 18px; color: var(--dim); font: 400 7.5px/1.5 "DM Mono", monospace; letter-spacing: .08em; overflow-wrap: anywhere; }

.map-footer {
  border-top: 1px solid var(--line);
  border-bottom: 0;
  justify-content: space-between;
  padding: 0 15px;
}
.map-footer p { margin: 0; }
.legend { display: flex; align-items: center; gap: 16px; }
.legend span { display: flex; align-items: center; gap: 6px; }
.legend i { width: 6px; height: 6px; border-radius: 50%; background: var(--legend-color); box-shadow: 0 0 8px color-mix(in srgb, var(--legend-color), transparent 30%); }

.architecture-strip {
  margin-top: 24px;
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  border: 1px solid var(--line);
  background: var(--line);
  gap: 1px;
}
.architecture-strip > div { min-height: 148px; padding: 20px; background: var(--surface); }
.architecture-strip span { display: block; margin-bottom: 24px; color: var(--accent); font: 400 8px/1 "DM Mono", monospace; }
.architecture-strip strong { display: block; margin-bottom: 8px; font-size: 14px; }
.architecture-strip p { margin: 0; color: var(--dim); font-size: 10px; line-height: 1.55; }

/* No modo embutido, o mapa usa a mesma tipografia do site principal. */
.terminal-bar,
.map-tools,
.map-footer,
.map-guidance,
.search-box input,
.filter-chip,
.motion-button,
.text-button,
.detail-card,
.detail-status,
.tool-list span,
.graph-corner,
.mobile-tip,
.eyebrow,
.header-meta,
.brand small,
.intro-stats span,
.architecture-strip span,
.core-cta {
  font-family: Inter, ui-sans-serif, system-ui, sans-serif;
}

.intro h1,
.inspector-empty h2,
.detail-header h2 {
  font-family: "Noto Serif", Georgia, serif;
}

#liveGraph text { font-family: Inter, ui-sans-serif, system-ui, sans-serif; }

.is-embed body { min-height: 0; background: var(--bg); }
.is-embed .shell { width: 100%; }
.is-embed .site-header,
.is-embed .intro,
.is-embed .architecture-strip { display: none; }
.is-embed main { padding: 0; }
.is-embed .map-terminal { width: 100%; margin-inline: 0; border: 0; box-shadow: none; }

@keyframes pulse { 50% { opacity: .35; transform: scale(.74); } }
@keyframes grid-drift { to { background-position: 38px 38px, 38px 38px, 0 0; } }
@keyframes spin { to { transform: rotate(360deg); } }
@keyframes spin-back { to { transform: rotate(-360deg); } }
@keyframes aura { to { opacity: .45; transform: scale(1.08); } }
@keyframes halo { from { transform: scale(.75); } to { opacity: 0; transform: scale(1.45); } }
@keyframes note-in { from { opacity: 0; transform: scale(.2); } }
@keyframes panel-in { from { opacity: 0; transform: translateX(12px); } }

@media (max-width: 1100px) {
  .map-layout { grid-template-columns: minmax(0, 1fr) 285px; }
  .filter-chip { padding-inline: 7px; }
  .map-tools { flex-wrap: wrap; }
  .search-box { width: 330px; max-width: calc(100% - 160px); }
  .motion-button { order: 2; }
}

@media (max-width: 820px) {
  .site-header { min-height: 62px; }
  .header-version { display: none; }
  main { padding-inline: 10px; }
  .intro { grid-template-columns: 1fr; gap: 28px; padding: 56px 8px 44px; }
  .intro h1 { font-size: clamp(46px, 13.5vw, 78px); }
  .intro-copy > p { max-width: 640px; }
  .terminal-bar > p { display: none; }
  .terminal-state { min-width: 0; margin-right: auto; }
  .map-tools { display: grid; grid-template-columns: 1fr auto; gap: 8px; }
  .map-guidance { grid-column: 1 / -1; order: 3; }
  .search-box { width: 100%; max-width: none; }
  .filter-row { grid-column: 1 / -1; overflow-x: auto; padding-bottom: 2px; }
  .motion-button { margin: 0; white-space: nowrap; }
  .map-layout { grid-template-columns: 1fr; min-height: 0; }
  .graph-stage { aspect-ratio: 1 / .86; border-right: 0; border-bottom: 1px solid var(--line); }
  #liveGraph { height: 100%; min-height: 410px; }
  .inspector { min-height: 410px; }
  .detail-card { min-height: 520px; }
  .map-footer { min-height: 68px; align-items: flex-start; gap: 14px; flex-direction: column; justify-content: center; }
  .legend { flex-wrap: wrap; row-gap: 8px; }
  .architecture-strip { grid-template-columns: repeat(2, 1fr); }
  .architecture-strip > div:last-child { grid-column: 1 / -1; }
}

@media (max-width: 520px) {
  .brand small { display: none; }
  .header-meta > span:nth-child(2) { font-size: 0; }
  .header-meta > span:nth-child(2)::after { content: "ONLINE"; font-size: 8.5px; }
  .intro h1 { font-size: clamp(42px, 14vw, 63px); }
  .intro-stats { grid-template-columns: 1fr 1fr; }
  .map-terminal { margin-inline: -4px; }
  .terminal-actions .text-button { display: none; }
  .map-tools { grid-template-columns: 1fr; }
  .motion-button { display: none; }
  .map-guidance { display: none; }
  .filter-row { grid-column: 1; }
  .graph-stage { aspect-ratio: 1; }
  #liveGraph { min-height: 350px; }
  .graph-corner--right { display: none; }
  .mobile-tip { display: block; }
  .node-agent .node-subtitle, .node-skill .node-subtitle { display: none; }
  .node-agent .node-label, .node-skill .node-label { font-size: calc(12px * var(--camera-scale, 1)); }
  .map-footer p { display: none; }
  .architecture-strip { grid-template-columns: 1fr; }
  .architecture-strip > div, .architecture-strip > div:last-child { grid-column: auto; min-height: 114px; }
  .architecture-strip span { margin-bottom: 15px; }
}

@media (pointer: coarse) {
  .core-aura { animation: none; opacity: .52; }
  .graph-node { cursor: pointer; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; scroll-behavior: auto !important; transition-duration: .01ms !important; }
  .signal-particle { display: none; }
}
