/* MAIOS presentation map: the native palette becomes a stable working stage.
   The complete document remains in normal flow without the enhancement. */
body[data-surface="system-map"] { min-width: 0; --map-accent: var(--green-dark); --map-tint: var(--green-light); --map-header-height: 0px; background: color-mix(in srgb,var(--paper) 64%,var(--choice)); }
body[data-surface="system-map"]::before { opacity: .32; background: radial-gradient(ellipse at 90% 80%,var(--substrate),transparent 55%),radial-gradient(ellipse at 8% 4%,var(--choice),transparent 42%); }
.system-map { padding-block: 2rem 3rem; }
.system-map > .site-shell { width: min(calc(100% - var(--gutter) * 2), 1480px); }
.system-map [hidden], .map-search-dialog [hidden] { display: none !important; }
.system-map [data-map-theme="cccc"], .system-map[data-theme="cccc"] { --map-accent: #285d49; --map-tint: #dfecdc; --map-mist: #eef2e7; }
.system-map [data-map-theme="principi"], .system-map[data-theme="principi"] { --map-accent: #79541c; --map-tint: #f0e4be; --map-mist: #f8f0d9; }
.system-map [data-map-theme="scenari"], .system-map[data-theme="scenari"] { --map-accent: #285e70; --map-tint: #d4e7e8; --map-mist: #e9f1ee; }
.system-map [data-map-theme="ricerca"], .system-map[data-theme="ricerca"] { --map-accent: #674a7c; --map-tint: #e6ddef; --map-mist: #f0e9f1; }
.system-map :is(h1,h2,h3,h4,p) { margin-top: 0; }
.system-map .eyebrow { color: var(--map-accent); font-size: var(--type-label); letter-spacing: .11em; line-height: 1.35; }
.map-intro { display: grid; grid-template-columns: minmax(0,1.15fr) minmax(0,.85fr); column-gap: clamp(2rem,5vw,5rem); align-items: end; margin-bottom: 1rem; }
.map-intro .eyebrow { grid-column: 1; display: inline-flex; align-items: center; gap: .6rem; margin-bottom: .55rem; }
body:not(.map-presenting) .map-intro > .eyebrow { display: none; }
.map-home-link { display: inline-flex; align-items: center; gap: .6rem; color: inherit; text-decoration: none; }
.map-home-link:hover { text-decoration: underline; text-underline-offset: .2em; }
.map-logo { display: block; flex: 0 0 auto; width: 28px; height: 28px; object-fit: contain; }
body[data-surface="system-map"] .map-intro h1 { grid-column: 1; grid-row: 2 / 4; max-width: 24ch; margin-bottom: 0; font-size: clamp(2.1rem,3.25vw,3.2rem); line-height: 1.04; letter-spacing: -.045em; text-wrap: balance; }
.map-lead { grid-column: 2; grid-row: 2; margin-bottom: .6rem; font-size: clamp(1rem,1.15vw,1.2rem); line-height: 1.5; max-width: 58ch; }
.map-note { grid-column: 2; grid-row: 3; margin-bottom: 0; font-size: .9375rem; color: var(--ink-soft); line-height: 1.4; }
.map-toolbar { display: flex; align-items: center; flex-wrap: wrap; gap: .5rem; padding-block: .2rem 1rem; }
.system-map .button, .map-search-dialog .button { min-height: 2.65rem; padding: .55rem .85rem; font-family: var(--font-control); font-size: var(--type-control); line-height: 1.25; text-decoration: none; transition: background 450ms var(--ease-focus),box-shadow 450ms var(--ease-focus),border-color 450ms var(--ease-focus); }
.system-map .button:hover, .map-search-dialog .button:hover { transform: none; }
.map-toolbar .button { background: rgba(255,248,228,.65); }
.map-toolbar .button[aria-pressed="true"] { color: var(--choice); background: var(--ink); border-color: var(--ink); }
.map-text-link, .map-language { color: var(--ink-soft); font-size: var(--type-control); text-underline-offset: .22em; }
.map-toolbar .map-text-link { margin-left: auto; padding: .55rem; }
.map-language { display: inline-flex; align-items: center; justify-content: center; min-height: 2.65rem; min-width: 3rem; padding: .55rem .6rem; border-left: 1px solid var(--line); font-weight: 600; }
.map-branches { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 1rem; }
.map-branch { position: relative; isolation: isolate; min-width: 0; padding: clamp(1.15rem,1.7vw,1.7rem); border: 1px solid var(--line-strong); border-radius: var(--radius-panel); background: color-mix(in srgb,var(--choice) 82%,var(--map-tint)); box-shadow: 4px 5px 0 color-mix(in srgb,var(--map-accent) 12%,transparent); transition: background-color 900ms var(--ease-focus),border-color 900ms var(--ease-focus),box-shadow 900ms var(--ease-focus); }
.map-branch::before { position: absolute; top: -1px; left: 1.5rem; right: 1.5rem; height: 3px; background: var(--map-accent); content: ""; }
.map-branch:focus-within, .map-branch:hover { border-color: var(--map-accent); box-shadow: 4px 5px 0 color-mix(in srgb,var(--map-accent) 22%,transparent); }
.map-card-heading .eyebrow { margin-bottom: .55rem; }
.map-card-heading h2 { max-width: none; font-size: clamp(1.25rem,1.65vw,1.7rem); line-height: 1.14; letter-spacing: -.025em; margin-bottom: .6rem; text-wrap: balance; }
.map-card-heading > p:last-child { color: var(--ink-soft); font-size: var(--type-reading-small); line-height: 1.4; margin-bottom: 0; }
.map-art { display: flex; align-items: center; justify-content: center; margin-block: .6rem; min-height: 0; }
/* Labels are real text: the drawing explains a selected relation and reflows
   with its reading plane. Its geometry does not replace the topic controls. */
.map-diagram { position: relative; isolation: isolate; width: 100%; min-width: 0; min-height: 126px; margin: 0; padding: 18px 0 3px; display: grid; grid-template-rows: minmax(54px,1fr) auto; gap: 10px; color: var(--map-accent); }
.map-diagram-lines { position: absolute; inset: 0; z-index: -1; width: 100%; height: 100%; overflow: visible; fill: none; stroke: currentColor; stroke-width: 1.5; stroke-linecap: round; stroke-linejoin: round; pointer-events: none; }
.map-diagram-lines [data-diagram-line] { vector-effect: non-scaling-stroke; opacity: .65; transition: opacity 900ms var(--ease-focus),stroke 900ms var(--ease-focus); }
.map-branch:is(:hover,:focus-within) .map-diagram-lines [data-diagram-line] { opacity: 1; }
.map-branch .button { transition-duration: 900ms; }
.map-diagram-nodes { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 16px; align-items: center; min-width: 0; }
.map-diagram[data-diagram-count="2"] .map-diagram-nodes { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 28px; }
.map-diagram-node { display: flex; align-items: center; justify-content: center; min-width: 0; min-height: 54px; padding: .45rem .35rem; border: 1px solid color-mix(in srgb,var(--map-accent) 65%,var(--ink)); border-radius: var(--radius-control); background: var(--choice); box-shadow: 3px 3px 0 color-mix(in srgb,var(--map-accent) 13%,transparent); color: var(--ink); font: 600 .9375rem/1.3 var(--font-reading); text-align: center; text-wrap: balance; overflow-wrap: anywhere; }
.map-diagram-relation { margin: 0; min-width: 0; padding: .15rem .25rem; color: var(--map-accent); font: 600 .9375rem/1.35 var(--font-reading); text-align: center; text-wrap: balance; }
.map-diagram[data-diagram-kind="context"] .map-diagram-node:nth-child(2) { min-height: 64px; border: 2px solid var(--map-accent); background: var(--map-tint); border-radius: 10px; }
.map-diagram[data-diagram-key="principi/architetture"] .map-diagram-node { min-height: 54px; border-width: 1px; border-radius: var(--radius-control); background: var(--choice); }
.map-diagram[data-diagram-kind="change"] .map-diagram-node:first-child { border-style: dashed; box-shadow: none; }
.map-diagram[data-diagram-kind="change"] .map-diagram-node:last-child { background: var(--map-tint); box-shadow: 4px 4px 0 color-mix(in srgb,var(--map-accent) 20%,transparent); }
.map-diagram[data-diagram-kind="containment"] .map-diagram-node:first-child { border-style: dashed; box-shadow: none; }
.map-diagram[data-diagram-kind="containment"] .map-diagram-node:last-child { background: var(--map-tint); border-width: 2px; }
.map-diagram[data-diagram-kind="horizon"]::before { position: absolute; content: ""; inset: 7px 2px 38px; z-index: -1; border: 1px dashed color-mix(in srgb,var(--map-accent) 60%,transparent); border-bottom: 0; border-radius: 50% 50% 0 0; }
.map-diagram[data-diagram-kind="horizon"] .map-diagram-node { border-color: color-mix(in srgb,var(--map-accent) 52%,transparent); background: color-mix(in srgb,var(--choice) 76%,var(--map-tint)); box-shadow: none; }
.map-diagram-stage { display: flex; flex-direction: column; align-items: stretch; min-width: 0; margin-bottom: .55rem; }
.map-diagram-stage > * { flex-shrink: 0; }
.map-diagram-stage > [data-topic-diagram] { width: 100%; min-width: 0; }
.map-diagram-toolbar { display: flex; align-items: center; justify-content: space-between; gap: .5rem; padding-bottom: .35rem; margin-bottom: .25rem; border-bottom: 1px solid color-mix(in srgb,var(--map-accent) 25%,transparent); }
.map-diagram-toolbar > :first-child { margin: 0; color: var(--map-accent); font: 600 var(--type-label)/1.3 var(--font-control); letter-spacing: .06em; }
.map-diagram-toolbar [data-map-replay] { flex-shrink: 0; padding: .3rem .4rem; min-height: 2rem; border: 0; color: var(--ink); background: transparent; font: 500 var(--type-control)/1.2 var(--font-control); text-decoration: underline; text-underline-offset: .2em; cursor: pointer; }
.map-diagram-toolbar [data-map-replay]:hover { color: var(--map-accent); background: var(--choice); }
.map-branch .button { justify-content: space-between; width: 100%; border-color: color-mix(in srgb,var(--map-accent) 50%,transparent); background: rgba(255,253,241,.56); color: var(--map-accent); margin-block: .3rem .65rem; }
.map-branch .button:hover { background: var(--map-tint); box-shadow: 3px 3px 0 color-mix(in srgb,var(--map-accent) 18%,transparent); }
.map-branch-topics { list-style: none; display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: .2rem .8rem; padding: 0; margin: 0; }
.map-branch-topics a { display: block; padding: .3rem 0 .3rem .7rem; position: relative; color: var(--ink-soft); font-size: var(--type-reading-small); line-height: 1.35; text-decoration: none; }
.map-branch-topics a::before { content: ""; position: absolute; top: .7rem; left: 0; width: 3px; height: 3px; border-radius: 50%; background: var(--map-accent); }
.map-branch-topics a:hover, .map-branch-topics a:focus-visible { color: var(--ink); text-decoration: underline; text-underline-offset: .2em; }
.map-research { --map-accent: #674a7c; --map-tint: #e6ddef; display: grid; grid-template-columns: minmax(0,1.15fr) minmax(0,1.4fr); column-gap: 1.5rem; align-items: center; margin-top: 1rem; padding: 1rem 1.5rem; background: color-mix(in srgb,var(--choice) 65%,var(--map-tint)); }
.map-research::before { right: auto; width: 3rem; }
.map-research .map-card-heading { grid-column: 1; grid-row: 1 / 3; }
.map-research .map-card-heading h2 { font-size: 1.1rem; margin-bottom: .2rem; line-height: 1.2; }
.map-research .map-card-heading .eyebrow { margin-bottom: .25rem; font-size: var(--type-label); }
.map-research .map-card-heading > p:last-child { font-size: var(--type-reading-small); }
.map-research .map-art { grid-column: 1 / -1; grid-row: 3; max-width: 500px; width: 100%; justify-self: center; margin: .35rem 0 0; }
.map-research .button { grid-column: 2; grid-row: 1; width: max-content; min-height: 2rem; padding: .25rem .6rem; margin: 0 0 .2rem; font-size: var(--type-control); }
.map-research .map-branch-topics { grid-column: 2; grid-row: 2; grid-template-columns: repeat(3,minmax(0,1fr)); column-gap: .65rem; }
.map-research .map-branch-topics a { font-size: var(--type-control); }
.map-back { display: none; }
.map-enhanced .map-back { display: inline-flex; }
.map-enhanced.is-overview .map-back { display: none; }
.map-enhanced.is-reading .map-intro { display: flex; align-items: center; gap: 1rem; margin-bottom: .6rem; }
.map-enhanced.is-reading .map-logo { width: 24px; height: 24px; }
.map-enhanced.is-reading .map-intro .eyebrow { margin: 0; }
body[data-surface="system-map"] .map-enhanced.is-reading .map-intro h1 { font-size: 1.25rem; max-width: none; letter-spacing: -.025em; line-height: 1.25; }
.map-enhanced.is-reading .map-intro :is(.map-lead,.map-note) { display: none; }
.map-area-switcher { display: flex; flex-wrap: wrap; gap: .35rem .7rem; margin-bottom: 1rem; border-bottom: 1px solid var(--line); padding-bottom: .65rem; }
.map-area-switcher a { color: var(--ink-soft); font-size: var(--type-control); text-decoration: none; padding: .5rem .7rem; border-radius: 3px; border: 1px solid transparent; line-height: 1.3; transition: background 260ms var(--ease-focus),border-color 260ms var(--ease-focus); }
.map-area-switcher a:hover { background: rgba(255,248,228,.6); text-decoration: underline; }
.map-area-switcher a[aria-current] { background: var(--choice); border-color: var(--line-strong); color: var(--ink); font-weight: 600; }
.map-area { padding-block: 1.5rem 2rem; border-top: 1px solid var(--line-strong); scroll-margin-top: 5rem; }
.map-area-heading h2 { max-width: none; font-size: clamp(1.45rem,2.1vw,2.1rem); line-height: 1.15; letter-spacing: -.03em; margin-bottom: .5rem; }
.map-area-heading .eyebrow { margin-bottom: .4rem; }
.map-area-heading > p { max-width: 85ch; }
.map-area-context { max-width: 90ch; margin-block: .4rem .9rem; font-size: var(--type-reading-small); }
.map-area-context summary { width: max-content; max-width: 100%; cursor: pointer; color: var(--map-accent); padding-block: .25rem; font-weight: 600; line-height: 1.4; text-underline-offset: .2em; }
.map-area-context summary:hover { text-decoration: underline; }
.map-area-context p { margin-block: .6rem 0; }
.map-research-label { color: var(--map-accent); display: inline-block; border: 1px solid color-mix(in srgb,var(--map-accent) 40%,transparent); padding: .3rem .6rem; margin: .3rem 0 .4rem; font-size: var(--type-label); line-height: 1.35; background: var(--map-tint); }
.map-reading-layout { display: grid; grid-template-columns: clamp(230px,19vw,270px) minmax(0,1fr); gap: clamp(1.25rem,2.5vw,2.5rem); align-items: start; margin-top: 1rem; }
.map-topic-nav { position: relative; isolation: isolate; min-width: 0; border: 1px solid var(--line-strong); border-radius: var(--radius-panel); padding: 1.1rem; background: color-mix(in srgb,var(--choice) 72%,var(--map-tint)); box-shadow: 3px 4px 0 color-mix(in srgb,var(--map-accent) 12%,transparent); }
.map-nav-label { margin-bottom: .65rem; color: var(--map-accent); font: 600 var(--type-label)/1.35 var(--font-control); letter-spacing: .06em; }
.map-topic-nav ol { display: grid; grid-template-columns: minmax(0,1fr); gap: .55rem; list-style: none; padding: 0; margin: 0; position: relative; }
.map-topic-nav li { min-width: 0; position: relative; }
.map-topic-nav a { display: grid; grid-template-columns: 1.25rem minmax(0,1fr); align-items: center; gap: .3rem; min-height: 3.2rem; height: 100%; padding: .6rem .65rem; border: 1px solid color-mix(in srgb,var(--map-accent) 28%,transparent); border-radius: var(--radius-control); color: var(--ink-soft); background: color-mix(in srgb,var(--choice) 92%,transparent); font-size: var(--type-reading-small); line-height: 1.35; text-decoration: none; transition: background 450ms var(--ease-focus),border-color 450ms var(--ease-focus),box-shadow 450ms var(--ease-focus); }
.map-nav-number { font: 600 .75rem/1 var(--font-control); letter-spacing: .06em; }
.map-topic-nav a > span:last-child { min-width: 0; max-width: 100%; overflow-wrap: anywhere; }
.map-topic-nav a:hover { border-color: var(--map-accent); background: #fffbed; box-shadow: inset 3px 0 0 color-mix(in srgb,var(--map-accent) 40%,transparent); }
.map-topic-nav a[aria-current="location"] { border-color: var(--map-accent); box-shadow: inset 3px 0 0 var(--map-accent); background: var(--map-tint); color: var(--map-accent); font-weight: 600; }
.map-topic-content { min-width: 0; min-height: 0; }
.map-topic { min-width: 0; max-width: 86ch; padding-bottom: 2rem; scroll-margin-top: 5rem; overflow-wrap: anywhere; }
.map-topic-heading { position: relative; min-height: 94px; }
.map-topic-number { display: block; color: var(--map-accent); font-size: var(--type-label); font-family: var(--font-control); font-weight: 600; letter-spacing: .12em; margin-bottom: .55rem; }
.map-topic h3 { max-width: none; margin-block: 0 .65rem; font-size: clamp(1.65rem,2.5vw,2.6rem); line-height: 1.12; letter-spacing: -.035em; text-wrap: balance; }
.map-summary { color: var(--ink-soft); font-size: clamp(1.05rem,1.25vw,1.25rem); line-height: 1.5; margin-bottom: 1.1rem; max-width: 65ch; }
.map-enhanced .map-topic-heading { padding-right: 0; }
.map-topic-visual { --map-visual-paper: color-mix(in srgb,var(--choice) 80%,var(--map-tint)); container: map-reading-figure / inline-size; flex: 0 0 auto; position: relative; min-width: 0; margin: .45rem 0 .8rem; padding: .45rem .8rem .1rem; border: 1px solid color-mix(in srgb,var(--map-accent) 35%,transparent); border-radius: var(--radius-panel); background: var(--map-visual-paper); }
.map-visual-toolbar { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: .35rem .75rem; min-height: 26px; }
.map-visual-toolbar > :first-child { margin: 0; color: var(--map-accent); font: 600 var(--type-label)/1.35 var(--font-control); letter-spacing: .07em; }
.map-visual-toolbar .map-figure-legend { color: var(--ink-soft); font: 400 .8125rem/1.35 var(--font-control); letter-spacing: 0; white-space: nowrap; }
.map-visual-toolbar [data-map-replay] { min-height: 26px; padding: .2rem .4rem; border: 0; background: transparent; color: var(--ink); font: 500 var(--type-control)/1.2 var(--font-control); text-decoration: underline; text-underline-offset: .2em; cursor: pointer; transition: background 450ms var(--ease-focus),color 450ms var(--ease-focus); }
.map-visual-toolbar [data-map-replay]:hover { color: var(--map-accent); background: var(--choice); }
.map-dynamics { --dynamic-height: 150px; position: relative; isolation: isolate; min-width: 0; width: 100%; height: var(--dynamic-height); margin: 0; color: var(--map-accent); }
.map-dynamics > svg { position: absolute; inset: 0; z-index: -1; width: 100%; height: 100%; fill: none; stroke: currentColor; stroke-width: 1.5; stroke-linecap: round; stroke-linejoin: round; overflow: visible; pointer-events: none; }
/* Lines stay behind caption paper; connection keys remain fully visible. */
.map-dynamics > .map-dynamic-keys { z-index: 1; }
.map-dynamics svg path { vector-effect: non-scaling-stroke; }
.map-dynamics svg [data-dynamic-edge] { opacity: 0; stroke-width: 2.3; stroke-dasharray: 100; }
.map-dynamic-base { opacity: .65; }
.map-dynamic-field { opacity: .45; stroke-dasharray: 3 5; }
.map-dynamic-edge-key circle { fill: var(--choice); stroke: var(--map-accent); stroke-width: 1; vector-effect: non-scaling-stroke; }
.map-dynamic-edge-key text { fill: var(--map-accent); stroke: none; font: 600 13px var(--font-control); text-anchor: middle; dominant-baseline: central; }
.map-dynamic-nodes { position: absolute; top: calc(var(--dynamic-height) * .346667 - 29px); left: 0; right: 0; display: grid; grid-template-columns: repeat(12,minmax(0,1fr)); align-items: center; min-height: 58px; }
.map-dynamic-node { grid-column: span 4; justify-self: center; width: 70%; min-width: 0; min-height: 52px; display: flex; align-items: center; justify-content: center; padding: .45rem .65rem; border: 1px solid var(--map-accent); border-radius: var(--radius-control); color: var(--ink); background: var(--choice); box-shadow: 3px 3px 0 color-mix(in srgb,var(--map-accent) 15%,transparent); text-align: center; }
.map-dynamics[data-dynamic-count="4"] .map-dynamic-node { grid-column: span 3; width: 80%; }
.map-dynamic-label { font: 600 1rem/1.3 var(--font-reading); text-wrap: balance; overflow-wrap: anywhere; }
.map-dynamic-relations { position: absolute; top: calc(var(--dynamic-height) * .57); left: 16.666%; right: 16.666%; display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: .65rem; align-items: start; }
.map-dynamics[data-dynamic-count="4"] .map-dynamic-relations { left: 12.5%; right: 12.5%; grid-template-columns: repeat(3,minmax(0,1fr)); }
.map-dynamic-relation { min-width: 0; margin: 0; padding: .1rem .2rem; border-radius: 2px; color: var(--map-accent); background: var(--map-visual-paper); font: 500 .9375rem/1.35 var(--font-reading); text-align: center; text-wrap: balance; }
.map-dynamic-key { display: inline-flex; align-items: center; justify-content: center; min-width: 1.15rem; height: 1.15rem; margin-right: .3rem; border: 1px solid currentColor; border-radius: 50%; background: var(--choice); font: 600 .75rem/1 var(--font-control); vertical-align: .05em; }
.map-dynamic-relation[data-edge-kind="return"] { position: absolute; top: calc(var(--dynamic-height) * .245); left: 0; right: 0; padding: 0; }
.map-dynamics[data-dynamic-kind="causal-feedback"] .map-dynamic-relation[data-from="1"][data-to="0"] { grid-column: 1; }
.map-dynamics[data-dynamic-kind="causal-feedback"] .map-dynamic-relation[data-from="2"][data-to="3"] { grid-column: 3; }
.map-dynamics[data-dynamic-kind="causal-feedback"] .map-dynamic-relation[data-edge-kind="return"] { right: 33.333%; }
/* These two compositions have a full return predicate. Keep it in its own
   intrinsic row so a translated label can wrap without meeting another. */
.map-dynamics:is([data-dynamic-kind="coherence-correction"],[data-dynamic-kind="competence-formation"]) { height: auto; min-height: var(--dynamic-height); padding-top: calc(var(--dynamic-height) * .515); }
.map-dynamics:is([data-dynamic-kind="coherence-correction"],[data-dynamic-kind="competence-formation"]) > svg { height: var(--dynamic-height); }
.map-dynamics:is([data-dynamic-kind="coherence-correction"],[data-dynamic-kind="competence-formation"]) .map-dynamic-nodes { top: calc(var(--dynamic-height) * .346667 - 35px); }
.map-dynamics:is([data-dynamic-kind="coherence-correction"],[data-dynamic-kind="competence-formation"]) .map-dynamic-relations { position: relative; top: auto; left: auto; right: auto; margin-inline: 12.5%; grid-template-columns: repeat(2,minmax(0,1fr)); gap: calc(var(--dynamic-height) * .145) 1rem; }
.map-dynamics:is([data-dynamic-kind="coherence-correction"],[data-dynamic-kind="competence-formation"]) .map-dynamic-relation { background: transparent; }
.map-dynamics:is([data-dynamic-kind="coherence-correction"],[data-dynamic-kind="competence-formation"]) .map-dynamic-relation[data-edge-kind="return"] { position: static; grid-column: 1 / -1; grid-row: 2; padding: .1rem .2rem; }
/* Source and destination remain perceptible during a change of reading plane.
   JavaScript names only the currently changing plane. */
:root:has(body[data-surface="system-map"]) { view-transition-name: none; }
:root:has(body[data-surface="system-map"])::view-transition { pointer-events: none; }
:root:has(body[data-surface="system-map"])::view-transition-group(map-plane) { animation-duration: 900ms; animation-timing-function: ease-in-out; }
:root:has(body[data-surface="system-map"])::view-transition-image-pair(map-plane) { isolation: isolate; }
:root:has(body[data-surface="system-map"])::view-transition-old(map-plane) { animation: map-plane-leave 900ms ease-in-out both; mix-blend-mode: plus-lighter; }
:root:has(body[data-surface="system-map"])::view-transition-new(map-plane) { animation: map-plane-enter 900ms ease-in-out both; mix-blend-mode: plus-lighter; }
@keyframes map-plane-leave { from { opacity: 1; } to { opacity: 0; } }
@keyframes map-plane-enter { from { opacity: 0; } to { opacity: 1; } }
.map-depth-tabs { display: flex; flex-wrap: wrap; gap: .3rem; padding-bottom: .7rem; border-bottom: 1px solid color-mix(in srgb,var(--map-accent) 30%,transparent); }
.map-depth-tabs button { border: 1px solid transparent; border-radius: 3px; padding: .65rem .9rem; min-height: 2.65rem; color: var(--ink-soft); background: transparent; font: 500 var(--type-control)/1.2 var(--font-control); cursor: pointer; transition: background 260ms var(--ease-focus),border-color 260ms var(--ease-focus); }
.map-depth-tabs button:hover { background: rgba(255,248,228,.65); }
.map-depth-tabs button[aria-selected="true"] { color: var(--map-accent); background: var(--choice); border-color: color-mix(in srgb,var(--map-accent) 50%,transparent); box-shadow: inset 0 -2px 0 var(--map-accent); }
.map-depth-content { --map-copy-size: 1rem; min-height: 0; }
.map-depth-panel { padding: 1rem 0 .3rem; }
.map-depth-panel h4 { margin: 0 0 .5rem; font-size: var(--type-label); letter-spacing: .07em; text-transform: uppercase; color: var(--map-accent); line-height: 1.4; }
.map-depth-panel p { margin-bottom: .75rem; font-size: max(1rem,calc(var(--map-copy-size) * var(--map-copy-scale,1))); line-height: 1.65; max-width: 72ch; }
.map-depth-panel[data-depth-panel="example"] { padding: 1.15rem 1.3rem; margin-top: .85rem; border-left: 3px solid var(--map-accent); background: rgba(255,248,228,.7); border-radius: 0 4px 4px 0; }
.map-depth-panel[data-depth-panel="example"] p:last-child { margin: 0; }
.map-sources { list-style: none; padding: 0; display: grid; gap: .5rem; margin: 0; }
.map-sources a { display: inline-block; color: var(--ink); font-size: var(--type-reading); line-height: 1.5; padding: .3rem 0; text-underline-offset: .2em; }
.map-pager { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .5rem; padding-block: .65rem 0; margin-top: 1rem; border-top: 1px solid var(--line-strong); }
.map-pager p { font-size: var(--type-reading-small); margin: 0; color: var(--ink-soft); }
.map-pager .button { background: rgba(255,248,228,.6); }
.map-pager .button:not(:disabled) { cursor: pointer; }
.map-presentation-help { margin: .6rem 0 0; font-size: var(--type-label); line-height: 1.4; color: var(--ink-soft); }
.map-related { margin-top: 2rem; padding-top: 1rem; border-top: 1px solid var(--line); font-size: var(--type-reading-small); }
.map-related p { max-width: 85ch; }
.map-related ul { display: flex; flex-wrap: wrap; gap: .7rem 2rem; list-style: none; padding: 0; }
.map-search-dialog { width: min(780px,calc(100% - 2rem)); max-height: 88dvh; padding: clamp(1rem,3vw,2rem); border: 1px solid var(--line-strong); border-radius: 7px; color: var(--ink); background: #f5f4e8; box-shadow: 0 24px 100px rgba(20,49,58,.3); }
.map-search-dialog::backdrop { background: rgb(20 49 58 / 58%); backdrop-filter: blur(4px); }
.map-search-heading { display: flex; flex-wrap: wrap; gap: .8rem; align-items: center; justify-content: space-between; }
.map-search-heading h2 { margin: 0; font-size: 1.6rem; }
.map-search-dialog label { display: block; font-weight: 600; margin-bottom: .4rem; }
.map-search-dialog input { width: 100%; font: inherit; padding: .85rem; border: 1px solid var(--line-strong); border-radius: var(--radius-control); background: #fffbed; color: var(--ink); }
.map-search-results { list-style: none; padding: 0; margin-bottom: 0; }
.map-search-results li + li { border-top: 1px solid var(--line); }
.map-search-results a { display: grid; gap: .3rem; color: var(--ink); padding: 1rem .4rem; text-decoration: none; }
.map-search-results a:hover { background: var(--choice); }
.map-search-results span { font-size: var(--type-reading-small); }
.system-map :is(h1,h2,h3)[tabindex="-1"]:focus { outline: none; }
.system-map :is(a,button,summary):focus-visible, .map-search-dialog :is(a,button,input):focus-visible { outline: 3px solid var(--focus); outline-offset: 3px; }
.map-presenting > .site-header, .map-presenting > .site-footer { display: none; }
/* Keep floating site assistance clear of the presentation's viewport controls. */
/* The contextual assistant remains available in the presentation and fitted scene. */
.map-fitted .map-pager { padding-right: 8rem; }
.map-presenting > .maios-chat__contact-tab { display: none; }
.map-presenting .map-related { display: none; }
.map-presenting .system-map { padding-top: 1.2rem; }
.map-presenting .map-topic h3 { font-size: clamp(1.8rem,2.7vw,2.8rem); }
/* A fixed stage is enabled only after the script checks width, height and zoom.
   All selected reading depths stay reachable; a long depth owns its scroll. */
@media (min-width: 1050px) and (min-height: 650px) {
  .map-fitted { overflow: hidden; }
  .map-fitted > .site-footer { display: none; }
  .map-fitted .system-map { height: calc(100dvh - var(--map-header-height)); padding-block: clamp(.8rem,1.8dvh,1.3rem); }
  .map-fitted .system-map > .site-shell { display: flex; flex-direction: column; height: 100%; min-height: 0; }
  .map-fitted .map-intro, .map-fitted .map-toolbar, .map-fitted .map-pager, .map-fitted .map-presentation-help { flex-shrink: 0; }
  .map-fitted .map-intro { margin-bottom: .6rem; }
  body[data-surface="system-map"].map-fitted .map-intro h1 { font-size: clamp(2rem,min(3vw,4.7dvh),3rem); }
  .map-fitted .map-toolbar { padding-bottom: .65rem; }
  .map-fitted :is(.map-related,.map-note) { display: none; }
  .map-fitted [data-map-root]:not(.is-reading) .map-note { display: block; }
  .map-fitted .map-branch-topics a { font-size: .9375rem; padding-block: .22rem; }
  .map-fitted [data-map-reading] { display: flex; flex-direction: column; flex: 1; min-height: 0; }
  .map-fitted .map-area-switcher { margin-bottom: .4rem; padding-bottom: .35rem; flex-shrink: 0; }
  .map-fitted .map-area-switcher a { padding-block: .3rem; }
  .map-fitted .map-area { display: grid; flex: 1; grid-template-columns: minmax(0,1fr) auto; grid-template-rows: auto minmax(0,1fr); column-gap: 1rem; min-height: 0; padding: 0; border: 0; }
  .map-fitted .map-area-heading { grid-column: 1; grid-row: 1; position: relative; min-width: 0; align-self: center; }
  .map-fitted .map-area-heading h2 { font-size: clamp(1.2rem,1.55vw,1.55rem); margin-bottom: 0; }
  .map-fitted .map-area-heading .eyebrow { display: none; }
  .map-fitted .map-area-context { position: relative; grid-column: 2; grid-row: 1; align-self: center; margin: 0; font-size: var(--type-control); }
  .map-fitted .map-area-context[open] > div { position: absolute; z-index: 5; top: calc(100% + .35rem); right: 0; width: min(80ch,calc(100vw - var(--gutter) * 2)); max-height: min(360px,45dvh); overflow-y: auto; overscroll-behavior: contain; padding: 1rem 1.3rem; background: #fff8e4; border: 1px solid var(--map-accent); border-radius: 4px; box-shadow: 0 12px 32px rgba(20,49,58,.2); }
  .map-fitted .map-area-context[open] > div p:first-child { margin-top: 0; }
  .map-fitted .map-reading-layout { grid-column: 1 / -1; grid-row: 2; min-height: 0; margin-top: .75rem; grid-template-columns: clamp(230px,19vw,270px) minmax(0,1fr); align-items: stretch; }
  .map-fitted .map-topic-nav { display: block; padding: .7rem; min-height: 0; align-self: start; }
  .map-fitted .map-topic-nav ol { grid-template-columns: minmax(0,1fr); margin: 0; gap: .35rem; }
  .map-fitted .map-topic-nav a { min-height: 3.1rem; padding: .35rem .45rem; line-height: 1.25; display: grid; grid-template-columns: 1.1rem minmax(0,1fr); align-content: center; align-items: center; column-gap: .2rem; }
  .map-fitted .map-nav-number { margin-top: .2rem; }
  .map-fitted .map-topic-content, .map-fitted .map-topic { display: flex; flex-direction: column; min-height: 0; }
  .map-fitted .map-topic { flex: 1; max-width: none; padding: .2rem .15rem 0; }
  .map-fitted .map-topic-heading { flex-shrink: 0; min-height: 0; display: grid; grid-template-columns: auto minmax(0,1fr); column-gap: .65rem; align-items: baseline; }
  .map-fitted .map-topic-number { grid-column: 1; grid-row: 1; margin: 0; }
  .map-fitted .map-topic h3 { grid-column: 2; grid-row: 1; font-size: clamp(1.6rem,min(2.3vw,4.1dvh),2.25rem); margin-bottom: .3rem; }
  .map-fitted .map-summary { grid-column: 1 / -1; margin-bottom: .15rem; line-height: 1.4; max-width: none; }
  .map-fitted .map-topic-visual { margin-block: .45rem .55rem; padding: .3rem .7rem 0; }
  .map-fitted .map-depth-tabs { flex-shrink: 0; padding-bottom: .3rem; }
  .map-fitted .map-depth-tabs button { min-height: 2rem; padding: .35rem .7rem; }
  .map-fitted .map-depth-content { flex: 1; overflow-y: auto; scrollbar-gutter: stable; overscroll-behavior: contain; padding-right: .65rem; }
  .map-fitted .map-depth-panel { padding-top: .5rem; }
  .map-fitted .map-depth-panel h4 { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0; }
  .map-fitted .map-depth-panel p { line-height: 1.5; margin-bottom: .4rem; }
  .map-fitted .map-depth-panel[data-depth-panel="example"] { margin-top: .5rem; padding-top: .6rem; }
  .map-fitted .map-sources { grid-template-columns: repeat(2,minmax(0,1fr)); gap: .35rem 1.25rem; }
  .map-fitted .map-pager { margin-top: .65rem; padding-top: .55rem; }
  .map-fitted .map-pager .button { min-height: 2.3rem; padding-block: .4rem; }
  .map-fitted .map-presentation-help { margin-top: .4rem; }
  .map-fitted.map-presenting .system-map { height: 100dvh; }
  .map-fitted:not(.map-presenting) .map-enhanced.is-reading { padding-block: .65rem; }
  .map-fitted:not(.map-presenting) .is-reading .map-intro { margin-bottom: .35rem; }
  .map-fitted:not(.map-presenting) .is-reading .map-toolbar { padding-bottom: .35rem; }
  .map-fitted:not(.map-presenting) .map-reading-layout { margin-top: .5rem; }
  .map-fitted:not(.map-presenting) .map-topic-visual { margin-block: .35rem .4rem; }
}
@media (min-width: 1050px) and (min-height: 650px) and (max-height: 740px) {
  body[data-surface="system-map"].map-fitted .map-intro h1 { font-size: 2rem; }
  .map-fitted .map-intro .eyebrow { margin-bottom: .3rem; }
  .map-fitted .map-lead { font-size: 1rem; line-height: 1.4; margin: 0; }
  .map-fitted .map-toolbar .button { min-height: 2.25rem; padding-block: .35rem; }
  .map-fitted .map-topic h3 { font-size: 1.7rem; }
  .map-fitted .map-summary { font-size: 1rem; margin-bottom: .15rem; }
  .map-fitted .map-area-heading h2 { font-size: 1.2rem; }
  .map-fitted .map-topic-nav a { min-height: 3rem; font-size: .9375rem; }
  .map-fitted .map-dynamics { --dynamic-height: 140px; }
  .map-fitted .map-visual-toolbar { min-height: 24px; }
  /* Use the available reading column in the short site scene. This keeps
     the full explanation visible without reducing text size or its meaning. */
  .map-fitted:not(.map-presenting) .map-depth-panel p { max-width: 88ch; }
}
@media (prefers-reduced-motion: no-preference) {
  .map-search-dialog[open] { animation: map-dialog-reveal 560ms var(--ease-focus) both; }
}
@keyframes map-dialog-reveal { from { opacity: .4; transform: translateY(8px) scale(.99); } to { opacity: 1; transform: translateY(0) scale(1); } }
@media (max-width: 1049px) {
  .system-map { padding-top: 1.5rem; }
  .map-intro { gap: .6rem 2rem; }
  body[data-surface="system-map"] .map-intro h1 { font-size: clamp(1.85rem,4vw,2.7rem); }
  .map-branches { gap: .7rem; }
  .map-branch { padding: 1rem; }
  .map-card-heading h2 { font-size: 1.3rem; }
  .map-branch-topics { grid-template-columns: 1fr; }
  .map-research { grid-template-columns: minmax(0,1fr) minmax(0,1.3fr); }
  .map-research .map-art { display: none; }
  .map-reading-layout { grid-template-columns: 1fr; gap: 1.5rem; }
  .map-topic-nav ol { grid-template-columns: repeat(3,minmax(0,1fr)); }
  .map-topic-nav ol::before, .map-topic-nav li::before { display: none; }
  .map-topic-nav a { min-height: 2.8rem; }
  .map-topic-heading { padding-right: 0; }
  .map-diagram-nodes { gap: 10px; }
  .map-diagram-node { font-size: .9rem; }
}
@media (max-width: 900px) {
  .map-visual-toolbar .map-figure-legend { order: 3; flex-basis: 100%; white-space: normal; }
  .map-topic-visual { padding: .75rem; }
  .map-dynamics { height: auto; padding-block: .75rem .25rem; }
  .map-dynamics:is([data-dynamic-kind="coherence-correction"],[data-dynamic-kind="competence-formation"]) { min-height: 0; padding-block: .75rem .25rem; }
  .map-dynamics > svg { display: none; }
  .map-dynamic-nodes { position: static; display: flex; flex-wrap: wrap; gap: .5rem; }
  .map-dynamic-node, .map-dynamics[data-dynamic-count="4"] .map-dynamic-node { flex: 1 1 42%; width: auto; max-width: none; min-height: 3.2rem; }
  .map-dynamic-relations, .map-dynamics[data-dynamic-count="4"] .map-dynamic-relations { position: static; display: grid; grid-template-columns: 1fr; gap: .5rem; margin-top: .85rem; }
  .map-dynamics:is([data-dynamic-kind="coherence-correction"],[data-dynamic-kind="competence-formation"]) .map-dynamic-relations { position: static; grid-template-columns: 1fr; margin-inline: 0; gap: .5rem; }
  .map-dynamics:is([data-dynamic-kind="coherence-correction"],[data-dynamic-kind="competence-formation"]) .map-dynamic-relation[data-edge-kind="return"] { grid-row: auto; }
  .map-dynamic-relation, .map-dynamic-relation[data-edge-kind="return"] { position: static; display: block; padding: .6rem .5rem; border-top: 1px solid color-mix(in srgb,var(--map-accent) 30%,transparent); text-align: left; }
  .map-dynamics .map-dynamic-relation { grid-column: auto !important; }
  .map-dynamic-relation::before { content: attr(data-from-label); display: block; margin-bottom: .15rem; color: var(--ink); font-weight: 600; }
  .map-dynamic-relation::after { content: attr(data-to-label); display: block; margin-top: .15rem; color: var(--ink); font-weight: 600; }
}
/* The same readable relations also apply when text is enlarged without a
   narrower viewport. Rem units keep the threshold coupled to the text size. */
@container map-reading-figure (max-width: 45rem) {
  .map-visual-toolbar .map-figure-legend { order: 3; flex-basis: 100%; white-space: normal; }
  .map-dynamics { height: auto; padding-block: .75rem .25rem; }
  .map-dynamics:is([data-dynamic-kind="coherence-correction"],[data-dynamic-kind="competence-formation"]) { min-height: 0; padding-block: .75rem .25rem; }
  .map-dynamics > svg { display: none; }
  .map-dynamic-nodes { position: static; display: flex; flex-wrap: wrap; gap: .5rem; }
  .map-dynamic-node, .map-dynamics[data-dynamic-count="4"] .map-dynamic-node { flex: 1 1 42%; width: auto; max-width: none; min-height: 3.2rem; }
  .map-dynamic-relations, .map-dynamics[data-dynamic-count="4"] .map-dynamic-relations { position: static; display: grid; grid-template-columns: 1fr; gap: .5rem; margin-top: .85rem; }
  .map-dynamics:is([data-dynamic-kind="coherence-correction"],[data-dynamic-kind="competence-formation"]) .map-dynamic-relations { position: static; grid-template-columns: 1fr; margin-inline: 0; gap: .5rem; }
  .map-dynamics:is([data-dynamic-kind="coherence-correction"],[data-dynamic-kind="competence-formation"]) .map-dynamic-relation[data-edge-kind="return"] { grid-row: auto; }
  .map-dynamic-relation, .map-dynamic-relation[data-edge-kind="return"] { position: static; display: block; padding: .6rem .5rem; border-top: 1px solid color-mix(in srgb,var(--map-accent) 30%,transparent); text-align: left; }
  .map-dynamics .map-dynamic-relation { grid-column: auto !important; }
  .map-dynamic-relation::before { content: attr(data-from-label); display: block; margin-bottom: .15rem; color: var(--ink); font-weight: 600; }
  .map-dynamic-relation::after { content: attr(data-to-label); display: block; margin-top: .15rem; color: var(--ink); font-weight: 600; }
}
@media (max-width: 760px) {
  .system-map .map-principle-copy { display: block; }
  .system-map .map-purpose { margin-top: 1rem; padding: .8rem 0 0; border-left: 0; border-top: 1px solid var(--line); }
  .map-intro { display: block; }
  body[data-surface="system-map"] .map-intro h1 { max-width: 25ch; margin-bottom: 1rem; font-size: clamp(1.8rem,5.7vw,2.6rem); }
  .map-lead { max-width: 62ch; margin-bottom: .65rem; }
  .map-toolbar { padding-bottom: 1.25rem; }
  .map-toolbar .map-text-link { margin-left: 0; }
  .map-branches { grid-template-columns: 1fr; gap: 1rem; }
  .map-branch { padding: 1.35rem; }
  .map-card-heading h2 { max-width: 30ch; font-size: 1.6rem; }
  .map-art { max-width: 340px; margin: .4rem auto; }
  .map-branch-topics { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .map-branch-topics a { padding-block: .4rem; }
  .map-research { display: block; }
  .map-research .map-card-heading h2 { font-size: 1.35rem; margin-bottom: .5rem; }
  .map-research .button { margin-block: 1rem .6rem; }
  .map-research .map-branch-topics { grid-template-columns: 1fr; }
  .map-enhanced.is-reading .map-intro { display: block; }
  body[data-surface="system-map"] .map-enhanced.is-reading .map-intro h1 { margin: .45rem 0 .6rem; }
  .map-area-switcher { gap: .25rem; }
  .map-area-switcher a { padding: .45rem .5rem; }
  .map-reading-layout { grid-template-columns: 1fr; gap: 1.5rem; }
  .map-topic-nav { padding: .8rem; }
  .map-diagram-stage { width: 100%; max-width: 500px; margin-inline: auto; }
  .map-topic-nav ol { grid-template-columns: repeat(2,minmax(0,1fr)); gap: .5rem; }
  .map-topic-nav a { min-height: 3.3rem; }
  .map-topic-heading { padding-right: 0; }
  .map-depth-tabs { gap: .25rem; }
  .map-depth-tabs button { flex: 1 1 auto; padding-inline: .6rem; }
}
@media (max-width: 420px) {
  .system-map > .site-shell { width: calc(100% - 2rem); }
  .map-toolbar .button { flex: 1 1 45%; }
  .map-toolbar .map-text-link { flex: 1 1 65%; font-size: .9rem; padding-left: 0; }
  .map-branch { padding: 1.1rem; }
  .map-card-heading h2 { font-size: 1.4rem; }
  .map-branch-topics { gap: .2rem .7rem; }
  .map-topic-nav a { font-size: .9375rem; padding-inline: .55rem; }
  .map-topic-heading { padding-right: 0; }
  .map-pager { align-items: stretch; }
  .map-pager p { flex-basis: 100%; order: -1; }
  .map-pager .button { flex: 1 1 45%; }
}
@media (prefers-reduced-motion: reduce) {
  .system-map *, .map-search-dialog { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
  :root:has(body[data-surface="system-map"])::view-transition-group(map-plane), :root:has(body[data-surface="system-map"])::view-transition-old(map-plane), :root:has(body[data-surface="system-map"])::view-transition-new(map-plane) { animation: none !important; }
}
@media (forced-colors: active) {
  .map-branch, .map-topic-nav, .map-topic-nav a, .map-depth-tabs button, .map-area-switcher a[aria-current] { border-color: CanvasText; }
  .map-topic-nav a[aria-current="location"], .map-depth-tabs button[aria-selected="true"] { outline: 2px solid Highlight; outline-offset: -3px; font-weight: 700; }
  .map-diagram-lines { color: CanvasText; }
  .map-diagram-node { color: CanvasText; border-color: CanvasText; background: Canvas; box-shadow: none; }
  .map-dynamics { color: CanvasText; }
  .map-dynamic-node { color: CanvasText; border-color: CanvasText; background: Canvas; box-shadow: none; }
  .map-dynamic-relation { color: CanvasText; }
}
/* Return connections and caption rows have distinct drawing space. */
.map-dynamics[data-separate-captions="true"] { --return-offset: max(0px,(var(--dynamic-height) - 160px) / 2); height: auto; min-height: var(--dynamic-height); padding-top: calc(110px + var(--return-offset)); }
.map-dynamics[data-separate-captions="true"] > svg { top: var(--return-offset); height: 110px; }
.map-dynamics[data-separate-captions="true"] .map-dynamic-nodes { top: calc(11px + var(--return-offset)); }
.map-dynamics[data-separate-captions="true"] .map-dynamic-relations { position: relative; top: auto; left: auto; right: auto; margin-inline: 0; grid-template-columns: repeat(2,minmax(0,1fr)); gap: .2rem 1rem; }
.map-dynamics[data-separate-captions="true"] .map-dynamic-relation[data-edge-kind="return"] { position: static; grid-column: 1 / -1; grid-row: 2; padding: .1rem .2rem; }
@media (min-width: 901px) {
  @container map-reading-figure (width > 45rem) {
    .map-dynamics[data-separate-captions="true"][data-dynamic-edges="2"] .map-dynamic-relation[data-edge-kind="return"] { grid-column: auto; grid-row: auto; }
  }
}
.map-dynamics.map-principle-example { display: grid; grid-template-columns: minmax(0,1fr) 2rem minmax(0,1.15fr); grid-template-rows: auto auto; gap: .65rem .25rem; align-items: stretch; height: auto; min-height: 0; padding: .65rem 0 .75rem; }
.map-dynamics.map-principle-example[data-dynamic-count="4"] { grid-template-columns: minmax(0,.95fr) 1.6rem minmax(0,1fr) 1.6rem minmax(0,1.05fr); }
.map-dynamics.map-principle-example .map-dynamic-node { display: flex; flex-direction: column; align-items: flex-start; justify-content: center; gap: .35rem; grid-column: auto; justify-self: stretch; width: auto; min-height: 0; padding: .65rem .75rem; box-shadow: none; text-align: left; }
.map-dynamics.map-principle-example [data-dynamic-node="node-0"] { grid-column: 1; grid-row: 1; }
.map-dynamics.map-principle-example [data-dynamic-node="node-1"] { grid-column: 1; grid-row: 2; }
.map-dynamics.map-principle-example [data-dynamic-node="node-2"] { grid-column: 3; grid-row: 1 / 3; }
.map-dynamics.map-principle-example [data-dynamic-node="node-3"] { grid-column: 5; grid-row: 1 / 3; }
.map-dynamics[data-dynamic-kind="ka-open-choice"] [data-dynamic-node="node-1"] { border-style: dashed; border-color: color-mix(in srgb,var(--map-accent) 50%,transparent); }
.map-dynamics.map-principle-example > .map-principle-link { position: static; inset: auto; z-index: 0; display: block; align-self: center; width: 100%; height: 20px; }
.map-principle-link[data-principle-link="0"] { grid-column: 2; grid-row: 1; }
.map-principle-link[data-principle-link="1"] { grid-column: 2; grid-row: 2; }
.map-principle-link[data-principle-link="2"] { grid-column: 4; grid-row: 1 / 3; }
.map-principle-link[data-edge-kind="available-possibility"] .map-dynamic-base { stroke-dasharray: 3 4; }
.map-principle-heading { color: var(--map-accent); font: 600 .8125rem/1.3 var(--font-control); }
.map-principle-example .map-dynamic-label { font-size: 1rem; line-height: 1.35; text-wrap: pretty; }
.map-principle-detail { color: var(--ink-soft); font: 400 .9375rem/1.35 var(--font-reading); text-wrap: pretty; }
.map-dynamics.map-competence-flow { grid-template-columns: minmax(0,1fr) minmax(5.25rem,.27fr) minmax(0,1.05fr); }
.map-competence-link { display: flex; flex-direction: column; justify-content: center; gap: .25rem; min-width: 0; color: var(--map-accent); font: 500 .75rem/1.25 var(--font-control); text-align: center; }
.map-competence-link svg { width: 100%; height: 20px; overflow: visible; fill: none; stroke: currentColor; stroke-width: 1.5; stroke-linecap: round; stroke-linejoin: round; }
.map-competence-link marker path { vector-effect: none; }
.map-competence-link[data-competence-link="0"] { grid-column: 2; grid-row: 1; }
.map-competence-link[data-competence-link="1"] { grid-column: 2; grid-row: 2; }
.map-competence-link[data-competence-link="2"] { grid-column: 1 / -1; grid-row: 3; flex-direction: row; align-items: center; justify-content: flex-start; gap: .65rem; padding-top: .3rem; border-top: 1px solid var(--line); text-align: left; font-size: .8125rem; }
.map-competence-link[data-competence-link="2"] svg { flex: 0 0 5rem; }
.map-topic-visual:has(.map-competence-flow) .map-figure-legend { display: none; }
.map-topic:has(.map-principle-example) .map-depth-content { container: map-principle-reading / inline-size; }
.map-principle-copy { display: grid; grid-template-columns: minmax(0,1.6fr) minmax(0,1fr); gap: 1.25rem; align-items: start; }
.map-purpose { padding-left: 1rem; border-left: 1px solid color-mix(in srgb,var(--map-accent) 35%,transparent); }
.map-fitted .map-topic:has(.map-principle-example) .map-depth-panel p { max-width: none; }
.map-topic .map-principle-copy .map-copy-label { margin: 0 0 .4rem; color: var(--map-accent); font: 600 1rem/1.3 var(--font-control); }
.map-topic .map-purpose p:not(.map-copy-label) { line-height: 1.5; }
.map-fitted .map-topic:has(.map-principle-example) .map-depth-panel[data-depth-panel="example"] { margin-top: 0; padding: .5rem .75rem .3rem; }
@media (min-width: 1180px) and (max-height: 819px) {
  .map-fitted .map-principle-example { row-gap: .5rem; padding-block: .35rem .45rem; }
  .map-fitted .map-competence-flow { row-gap: .35rem; padding-block: .2rem; }
  .map-fitted .map-principle-example .map-dynamic-node { padding-block: .4rem; }
  .map-fitted .map-topic-nav:has(li:nth-child(8)) { padding: .55rem; }
  .map-fitted .map-topic-nav:has(li:nth-child(8)) ol { gap: .25rem; }
  .map-fitted .map-topic-nav:has(li:nth-child(8)) a { min-height: 2.55rem; padding-block: .25rem; }
  .map-fitted:not(.map-presenting) .map-principle-example .map-dynamic-node { padding-block: .25rem; }
  .map-fitted:not(.map-presenting) .map-competence-flow { gap: .2rem; padding-block: .1rem; }
  .map-fitted:not(.map-presenting) .map-competence-flow .map-dynamic-node { gap: .15rem; padding-block: .15rem; }
  .map-fitted:not(.map-presenting) .map-competence-flow .map-principle-detail { font-size: .8125rem; line-height: 1.3; }
  .map-fitted:not(.map-presenting) .map-competence-link[data-competence-link="2"] { padding-top: .1rem; }
  .map-fitted:not(.map-presenting) .map-topic:has(.map-principle-example) .map-topic-visual { margin-block: .1rem; }
  .map-fitted .map-topic:has(.map-principle-example) h3 { margin-bottom: .15rem; }
  .map-fitted .map-topic .map-principle-copy p:not(.map-copy-label) { line-height: 1.4; margin-bottom: 0; }
  .map-fitted .map-topic:has(.map-principle-example) [data-depth-panel="explanation"] { padding-block: .15rem 0; }
  .map-fitted .map-topic .map-principle-copy .map-copy-label { margin-bottom: .3rem; }
  html[lang="en"] .map-fitted [data-map-topic="principi/ka"] .map-principle-example { padding-block: .25rem; }
}
/* Larger presentation screens give the explanation a stage, with enough
   distance between its heading, graphic and reading controls. */
@media (min-width: 1180px) and (min-height: 820px) {
  .map-fitted .map-topic { padding-top: clamp(.85rem,2.4dvh,1.6rem); }
  .map-fitted .map-reading-layout { margin-top: 1rem; }
  .map-fitted .map-topic-visual { margin-block: 1.15rem 1.25rem; padding: .6rem 1rem .25rem; }
  .map-fitted .map-dynamics { --dynamic-height: clamp(185px,23dvh,240px); }
  .map-fitted .map-principle-example { row-gap: 1rem; padding-block: .9rem 1rem; }
  .map-fitted .map-principle-example .map-dynamic-node { padding: .85rem 1rem; gap: .5rem; }
  .map-fitted .map-principle-example[data-dynamic-kind="fdla-recompose-and-learn"] { row-gap: .8rem; padding-block: .7rem .8rem; }
  .map-fitted .map-principle-example[data-dynamic-kind="fdla-recompose-and-learn"] .map-dynamic-node { padding-block: .65rem; }
  html[lang="en"] .map-fitted [data-map-topic="principi/ka"] .map-principle-example { padding-block: .5rem; }
  .map-fitted .map-depth-content { padding-top: .65rem; }
  .map-fitted .map-depth-panel p { max-width: 80ch; line-height: 1.6; }
}
@container map-reading-figure (max-width: 45rem) {
  .map-dynamics[data-separate-captions="true"] { min-height: 0; padding-block: .75rem .25rem; }
  .map-dynamics[data-separate-captions="true"] .map-dynamic-nodes { position: static; }
  .map-dynamics[data-separate-captions="true"] .map-dynamic-relations { grid-template-columns: 1fr; }
  .map-dynamics[data-separate-captions="true"] .map-dynamic-relation[data-edge-kind="return"] { grid-column: auto; grid-row: auto; }
  .map-dynamics.map-principle-example, .map-dynamics.map-principle-example[data-dynamic-count="4"] { display: flex; flex-direction: column; gap: .7rem; }
  .map-dynamics.map-principle-example > .map-principle-link { display: none; }
  .map-dynamics.map-principle-example .map-dynamic-node { width: 100%; }
  .map-dynamics.map-competence-flow { display: grid; grid-template-columns: minmax(0,1fr) minmax(5.5rem,.27fr) minmax(0,1.05fr); }

}
@container map-reading-figure (max-width: 30rem) {
  .map-dynamics.map-competence-flow { grid-template-columns: repeat(2,minmax(0,1fr)); gap: .7rem; }
  /* Match the desktop placement specificity: otherwise its third column
     becomes an implicit track and squeezes both phone input columns. */
  .map-dynamics.map-competence-flow .map-dynamic-node { padding-inline: .6rem; }
  .map-dynamics.map-competence-flow [data-dynamic-node="node-0"] { grid-column: 1; grid-row: 1; }
  .map-dynamics.map-competence-flow [data-dynamic-node="node-1"] { grid-column: 2; grid-row: 1; }
  .map-dynamics.map-competence-flow [data-dynamic-node="node-2"] { grid-column: 1 / -1; grid-row: 3; }
  .map-competence-link[data-competence-link="0"] { grid-column: 1; grid-row: 2; }
  .map-competence-link[data-competence-link="1"] { grid-column: 2; grid-row: 2; }
  .map-competence-link:not([data-competence-link="2"]) svg { width: 2rem; align-self: center; transform: rotate(90deg); }
  .map-competence-link[data-competence-link="2"] { grid-row: 4; }
}
@media (max-width: 900px) {
  .map-dynamics[data-separate-captions="true"] { min-height: 0; padding-block: .75rem .25rem; }
  .map-dynamics[data-separate-captions="true"] .map-dynamic-nodes { position: static; }
  .map-dynamics[data-separate-captions="true"] .map-dynamic-relations { grid-template-columns: 1fr; }
  .map-dynamics[data-separate-captions="true"] .map-dynamic-relation[data-edge-kind="return"] { grid-column: auto; grid-row: auto; }
}
@container map-principle-reading (max-width: 43rem) {
  .map-principle-copy { grid-template-columns: 1fr; gap: .85rem; }
  .map-purpose { padding-left: .85rem; }
}
/* The meeting scene gives the subject room; secondary controls remain reachable. */
.map-options { display: block; }
.map-size-probe { position: fixed; width: 1rem; height: 1rem; top: 0; left: 0; visibility: hidden; pointer-events: none; }
.map-toolbar { position: relative; }
.map-quick-actions { display: flex; align-items: center; justify-content: flex-end; gap: 1rem; margin-left: auto; max-width: 100%; }
.map-quick-actions .map-back { align-items: center; justify-content: center; gap: .4rem; min-height: 2.65rem; padding: .55rem .15rem; color: var(--ink-soft); font: 600 var(--type-control)/1.25 var(--font-control); text-underline-offset: .22em; }
.map-quick-actions .map-back:hover { color: var(--ink); }
.map-tools-toggle { flex: 0 0 auto; gap: .65rem; }
.map-options-caret { transition: transform 420ms var(--ease-focus); }
.map-tools-toggle[aria-expanded="true"] .map-options-caret { transform: rotate(180deg); }
.map-enhanced.is-reading .map-case-entry { display: none; }
.map-about { margin: 0; font: 500 .9375rem/1.4 var(--font-control); }
.map-about summary { cursor: pointer; }
.map-about[open] p { margin: .35rem .7rem .6rem; font: 400 1rem/1.5 var(--font-reading); }
.map-enhanced.is-overview .map-about { display: none; }
.map-enhanced .map-options { position: absolute; z-index: 12; top: calc(100% + .25rem); right: 0; width: min(22rem,100%); max-height: 75dvh; overflow: auto; overscroll-behavior: contain; padding: .55rem; background: var(--choice); border: 1px solid var(--line-strong); border-radius: var(--radius-control); box-shadow: 0 12px 32px #14313a26; transform-origin: top right; }
.map-options[inert] { pointer-events: none; }
.map-option-group { display: grid; gap: .1rem; }
.map-option-group + .map-option-group { margin-top: .45rem; padding-top: .45rem; border-top: 1px solid var(--line); }
.map-options .map-option-label { margin: .3rem .7rem .2rem; color: var(--ink-soft); font: 600 .75rem/1.4 var(--font-control); letter-spacing: .07em; text-transform: uppercase; }
.map-options :is(.button,.map-text-link,.map-language,.map-about summary) { display: block; width: 100%; min-height: 2.65rem; margin: 0; padding: .6rem .7rem; border: 0; border-radius: var(--radius-control); background: transparent; box-shadow: none; color: var(--ink); font: 500 1rem/1.4 var(--font-control); text-align: left; text-decoration: none; transition: background 420ms var(--ease-focus),color 420ms var(--ease-focus); }
.map-options :is(.button,.map-text-link,.map-language,.map-about summary):hover { background: var(--map-tint); }
.map-options .button[aria-pressed="true"] { background: var(--map-tint); color: var(--ink); }
body:not(.map-presenting) .map-options .map-language { display: none; }
.map-presenting .is-reading .map-area-switcher, .map-presenting .is-reading .map-topic-nav { display: none; }
.map-presenting .is-reading .map-area { padding-top: 0; border-top: 0; }
.map-presenting .is-reading .map-area-heading:not(:has(.map-research-label)),
.map-presenting .is-reading .map-area-heading:has(.map-research-label) :is(h2,.eyebrow) { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.map-presenting .map-reading-layout, .map-presenting.map-fitted .map-reading-layout { grid-template-columns: minmax(0,1fr); width: 100%; max-width: 72rem; margin-inline: auto; }
.map-presenting .map-area-heading h2, .map-presenting.map-fitted .map-area-heading h2 { font: 500 .9375rem/1.4 var(--font-control); color: var(--ink-soft); }
.map-presenting .map-area-context { display: none; }
.map-presenting .map-topic h3, .map-presenting.map-fitted .map-topic h3 { font-size: clamp(1.9rem,2.5vw,2.75rem); }
.map-presenting .map-depth-content { --map-copy-size: clamp(1.0625rem,1.15vw,1.2rem); }
.map-presenting .map-depth-panel p, .map-presenting.map-fitted .map-depth-panel p { line-height: 1.5; }
.map-presenting .map-topic .map-principle-copy .map-copy-label { font-size: 1.0625rem; line-height: 1.3; }
.map-presenting .map-topic-visual { flex-shrink: 0; }
.map-presenting.map-fitted .map-reading-layout { margin-top: .45rem; }
.map-presenting.map-fitted .map-topic { padding-top: .4rem; }
.map-presenting.map-fitted .map-topic-visual { margin-block: .65rem .7rem; }
.map-presenting .is-reading .map-toolbar { padding-bottom: .35rem; }
.map-presenting .map-figure-legend { display: none; }
.map-case-invitation { display: flex; gap: 1.5rem; align-items: center; justify-content: space-between; padding: 1rem 1.25rem; margin-bottom: 1rem; border-block: 1px solid var(--line-strong); background: #fff8e466; }
.map-case-invitation h2 { margin: 0 0 .2rem; font-size: 1.3rem; letter-spacing: -.025em; }
.map-case-invitation .eyebrow { margin: 0 0 .25rem; font-size: .75rem; }
.map-case-invitation p:last-child { margin: 0; max-width: 80ch; font-size: 1rem; line-height: 1.4; }
.map-case-invitation .button { flex-shrink: 0; gap: 1rem; }
.map-case-context { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .3rem 1rem; padding-block: 0 .3rem; border-bottom: 1px solid var(--line); }
.map-case-context p { margin: 0; font-size: .9rem; }
.map-case-context p > span { color: var(--ink-soft); }
.map-case-context button { border: 0; background: transparent; color: var(--ink-soft); font: 500 .875rem var(--font-control); padding: .25rem; text-decoration: underline; text-underline-offset: .2em; cursor: pointer; }
.map-toolbar .map-case-context { margin-inline: .4rem; border: 0; padding: 0; gap: .3rem .8rem; }
.map-toolbar .map-case-context p { max-width: 17rem; line-height: 1.4; }
.map-toolbar .map-case-context p > span { display: block; font-size: .75rem; }
.map-enhanced .map-case-visual, .map-enhanced .map-case-reading { display: none; }
.map-enhanced .map-example-visual { display: none; }
.map-enhanced[data-reading-depth="example"] .map-topic:has(.map-example-visual) > .map-standard-visual { display: none; }
.map-enhanced[data-reading-depth="example"]:not([data-case-active]) .map-example-visual { display: block; }

.map-enhanced[data-case-active][data-reading-depth="example"] .map-standard-visual, .map-enhanced[data-case-active] .map-general-example { display: none; }
.map-enhanced[data-case-active][data-reading-depth="example"] .map-case-visual, .map-enhanced[data-case-active] .map-case-reading { display: block; }
.map-case-visual { --map-visual-paper: #fff8e4; background: #fff8e4; }
.map-case-visual .map-visual-toolbar > :first-child { font: 600 1.0625rem/1.35 var(--font-reading); letter-spacing: 0; text-wrap: pretty; }
.map-case-controls { display: flex; flex-wrap: wrap; gap: .25rem .6rem; min-width: 0; max-width: 100%; flex-shrink: 1; }
.map-visual-toolbar [data-map-case-step] { padding: .25rem .4rem; border: 0; border-bottom: 1px solid currentColor; color: var(--map-accent); background: transparent; font: 500 .875rem/1.3 var(--font-control); cursor: pointer; }
.map-dynamics.map-case-figure { height: auto; min-height: 0; padding: .7rem .2rem .6rem; }
.map-case-drawing { display: grid; grid-template-columns: minmax(0,1fr) 3rem minmax(0,1.2fr); align-items: stretch; gap: .4rem 0; }
.map-case-inputs { display: grid; gap: .65rem; }
.map-case-node { display: flex; gap: .7rem; align-items: flex-start; padding: .65rem .8rem; border: 1px solid color-mix(in srgb,var(--map-accent) 35%,transparent); border-radius: 5px; color: var(--ink); background: #fffdf4; box-shadow: 0 2px 0 #14313a0a; transition: background 850ms var(--ease-focus),border-color 850ms var(--ease-focus),box-shadow 850ms var(--ease-focus); }
.map-case-node > div { min-width: 0; }
.map-case-node p { margin: 0; }
.map-case-node strong { display: block; margin-bottom: .25rem; font: 600 1.125rem/1.3 var(--font-reading); text-wrap: pretty; }
.map-case-node p > span { display: block; color: var(--ink-soft); font: 400 1rem/1.4 var(--font-reading); text-wrap: pretty; }
.map-case-icon { display: flex; align-items: center; justify-content: center; flex-shrink: 0; width: 2rem; height: 2rem; color: var(--map-accent); background: color-mix(in srgb,var(--map-accent) 7%,transparent); border-radius: 50%; }
.map-case-icon svg { width: 22px; height: 22px; stroke: currentColor; stroke-width: 1.4; fill: none; stroke-linecap: round; stroke-linejoin: round; }
.map-case-target { display: flex; align-items: stretch; }
.map-case-target .map-case-node { align-items: center; border-width: 2px; background: color-mix(in srgb,var(--map-tint) 45%,#fffdf4); }
.map-case-connector { display: block; width: 100%; height: 100%; min-height: 80px; stroke: var(--map-accent); fill: none; stroke-width: 1.5; }
.map-case-connector path { vector-effect: non-scaling-stroke; }
.map-case-connector [data-dynamic-edge] { opacity: 0; stroke-width: 3; stroke-dasharray: 100; }
.map-case-relation { grid-column: 1 / -1; margin: .2rem 0 0; color: var(--map-accent); font: 500 .9375rem/1.35 var(--font-control); text-align: center; }
.map-case-result { display: grid; grid-template-columns: auto minmax(0,1fr); align-items: baseline; gap: 1rem; margin-top: .9rem; padding: .7rem .85rem; background: color-mix(in srgb,var(--map-accent) 8%,#fffdf4); border-left: 3px solid var(--map-accent); color: var(--ink); transition: background 850ms var(--ease-focus),box-shadow 850ms var(--ease-focus); }
.map-case-result > span { color: var(--map-accent); font: 600 .75rem/1.4 var(--font-control); text-transform: uppercase; letter-spacing: .06em; }
.map-case-result p { margin: 0; }
.map-case-result strong { font: 500 1.0625rem/1.4 var(--font-reading); text-wrap: pretty; }
.map-case-figure[data-case-pattern="field"] .map-case-drawing, .map-case-figure[data-case-pattern="shared"] .map-case-drawing { display: block; }
.map-case-field { margin-top: .6rem; padding: 1rem; border: 1px dashed var(--map-accent); border-radius: 8px; background: color-mix(in srgb,var(--map-tint) 30%,transparent); display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 1rem; }
.map-case-field .map-case-node { border: 0; box-shadow: none; padding: .5rem; background: transparent; }
.map-case-figure[data-case-pattern="workspace"] .map-case-drawing { grid-template-columns: minmax(0,1fr) 2.5rem minmax(0,1.3fr) 2.5rem minmax(0,1fr); }
.map-case-figure[data-case-pattern="workspace"] .map-case-node:nth-of-type(2) { border-width: 2px; background: color-mix(in srgb,var(--map-tint) 40%,#fffdf4); }
.map-case-shared { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: .8rem; margin-top: 1.4rem; padding-top: .85rem; border-top: 2px solid color-mix(in srgb,var(--map-accent) 45%,transparent); }
.map-case-shared .map-case-node { position: relative; flex-direction: column; }
.map-case-shared .map-case-node::before { content: ''; position: absolute; height: .85rem; border-left: 2px solid color-mix(in srgb,var(--map-accent) 45%,transparent); top: calc(-.85rem - 2px); left: 1.8rem; }
.map-case-figure .is-case-highlighted { border-color: var(--map-accent); background: color-mix(in srgb,var(--map-tint) 65%,#fffdf4); box-shadow: 0 0 0 3px color-mix(in srgb,var(--map-accent) 20%,transparent); }
.map-case-reading .map-copy-label { margin: 0 0 .3rem; font: 600 .8125rem/1.3 var(--font-control); color: var(--map-accent); }
.map-case-thread { padding: .6rem 0 .6rem 1rem; border-left: 3px solid #285d49; }
.map-case-thread .map-case-thread-object { margin: 0 0 .6rem; color: #285d49; font: 600 .8125rem/1.4 var(--font-control); }
.map-case-thread dl { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: .75rem 2rem; margin: 0; }
.map-case-thread dt { margin-bottom: .25rem; color: var(--ink-soft); font: 600 .8125rem/1.4 var(--font-control); }
.map-case-thread dd { margin: 0; font: 400 var(--type-reading-small)/1.5 var(--font-reading); }
.map-case-continuation { margin-top: 1rem; padding-top: .8rem; border-top: 1px solid var(--line); }
.map-case-continuation h4 { margin-bottom: .4rem; }
.map-case-continuation p { margin-bottom: .6rem; }
.map-case-continuation ul { display: flex; flex-wrap: wrap; gap: .5rem 1.5rem; list-style: none; margin: 0; padding: 0; }
.map-case-continuation a { text-underline-offset: .2em; }
.map-presenting [data-case-active] .map-depth-example { border: 0; background: transparent; margin-top: 0; padding: .5rem 0 0; }
.map-presenting [data-case-active] .map-depth-example .map-case-reading .map-copy-label { display: none; }
.map-presenting [data-case-active] .map-depth-example p { max-width: none; }
.map-presenting [data-case-active] .map-depth-deep p { max-width: 95ch; }
@media (min-width: 1180px) and (max-height: 799px) {
  .map-fitted.map-presenting [data-case-active] .map-depth-deep p { max-width: none; }
}
@media (min-width: 1180px) and (min-height: 680px) {
  .map-fitted .map-case-visual { padding: .4rem .85rem 0; }
}
@media (min-width: 1180px) and (min-height: 820px) {
  .map-presenting.map-fitted .map-reading-layout { margin-top: 1rem; }
  .map-presenting.map-fitted .map-topic { padding-top: .8rem; }
  .map-presenting.map-fitted .map-topic-visual { margin-block: 1.2rem; }
  .map-case-node { padding: 1.15rem; }
  .map-case-inputs { gap: 1rem; }
  .map-case-node strong { font-size: 1.25rem; }
  .map-case-node p > span { font-size: 1.125rem; }
  .map-case-result { margin-top: 1.25rem; padding-block: 1rem; }
}
@media (max-width: 760px) {
  .map-case-invitation { align-items: stretch; flex-direction: column; gap: .75rem; }
  .map-about { margin-left: 0; }
  .map-case-visual .map-visual-toolbar { align-items: start; }
  .map-visual-toolbar [data-map-case-step] { white-space: normal; text-align: left; }
  .map-case-node, .map-case-shared .map-case-node { flex-direction: column; }
  .map-case-icon { width: 32px; height: 32px; }
  .map-case-drawing, .map-case-figure[data-case-pattern="workspace"] .map-case-drawing { display: flex; flex-direction: column; gap: .8rem; }
  .map-case-connector { display: none; }
  .map-case-field, .map-case-shared { grid-template-columns: minmax(0,1fr); }
  .map-case-shared { border-top: 0; margin-top: .5rem; padding-top: 0; }
  .map-case-shared .map-case-node { flex-direction: column; }
  .map-case-shared .map-case-node::before { display: none; }
  .map-case-result { grid-template-columns: minmax(0,1fr); gap: .3rem; }
  .map-case-thread dl { grid-template-columns: minmax(0,1fr); }
  .map-case-figure .map-case-relation { text-align: left; }
}
@media (prefers-reduced-motion: reduce) {
  .map-case-node, .map-case-result { transition: none; }
}

/* R20: a flowing entry and reading space; the fitted stage belongs to
   presentation. Source content and diagram relationships stay unchanged. */
@media screen {
  body[data-surface="system-map"] { background: color-mix(in srgb,var(--choice) 68%,var(--air)); }
  body[data-surface="system-map"]::before { opacity: .12; }
  .system-map { padding-block: clamp(2rem,5vw,4.5rem) 4rem; }
  .system-map > .site-shell { width: min(calc(100% - var(--gutter) * 2),1280px); }
  .map-frame-header { flex-shrink: 0; }
  .map-intro { grid-template-columns: minmax(0,.95fr) minmax(0,1.05fr); align-items: start; column-gap: clamp(2rem,6vw,6rem); margin-bottom: 1.5rem; }
  body[data-surface="system-map"] .map-intro h1 { grid-row: 2 / 4; max-width: 20ch; font-size: clamp(2rem,3.8vw,3.5rem); line-height: 1.08; }
  .map-lead { margin-bottom: 1rem; font-size: 1.125rem; line-height: 1.65; max-width: 65ch; }
  .map-note { line-height: 1.6; }
  .map-toolbar { padding-bottom: 2.25rem; }
  .map-overview-heading p { margin: 0 0 1.1rem; font: 600 1rem/1.4 var(--font-control); color: var(--ink-soft); }
  .map-branches { gap: 1.5rem; align-items: start; }
  .map-branch { padding: 1.7rem; background: var(--choice); box-shadow: none; border-color: color-mix(in srgb,var(--map-accent) 22%,var(--choice)); }
  .map-branch:hover, .map-branch:focus-within { box-shadow: none; }
  .map-branch::before { left: 1.7rem; right: auto; width: 3rem; height: 3px; }
  .map-card-heading { min-height: 11rem; }
  .map-card-heading .eyebrow { margin-bottom: 1rem; }
  .map-card-heading h2 { margin-bottom: 1rem; font-size: clamp(1.3rem,1.8vw,1.65rem); line-height: 1.25; }
  .map-card-heading > p:last-child { margin-bottom: 1.5rem; line-height: 1.55; font-size: 1rem; }
  .map-branch .button { min-height: 2.8rem; margin: .8rem 0 0; padding: .65rem .8rem; background: transparent; }
  .map-branch-index { margin-top: 1rem; padding-top: .9rem; border-top: 1px solid var(--line); }
  .map-branch-index summary { color: var(--map-accent); cursor: pointer; font: 600 .9375rem/1.5 var(--font-control); padding-block: .3rem; }
  .map-branch-topics { grid-template-columns: minmax(0,1fr); gap: .45rem; padding-top: .7rem; }
  .map-branch-topics a { font-size: 1rem; line-height: 1.5; padding-block: .35rem; }
  .map-research { margin-top: 2rem; padding: 1.4rem 1.7rem; column-gap: 2rem; background: color-mix(in srgb,var(--choice) 94%,var(--map-tint)); }
  .map-research .map-card-heading { min-height: 0; }
  .map-research .map-card-heading .eyebrow { margin-bottom: .6rem; }
  .map-research .map-card-heading h2 { font-size: 1.25rem; line-height: 1.3; }
  .map-research .map-card-heading > p:last-child { margin: .5rem 0 0; }
  .map-research .button { justify-self: end; margin: 0; }
  .map-research .map-branch-index { grid-column: 2; grid-row: 2; }
  .map-research .map-branch-topics { grid-template-columns: 1fr; }
  .map-area-overview-art { max-width: 44rem; margin-top: 1.5rem; }
  .map-area-overview-art .map-diagram { min-height: 11rem; }
  .map-enhanced.is-reading .map-frame-header { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 1rem 2rem; align-items: center; margin-bottom: 1.8rem; }
  body:not(.map-presenting) .system-map.is-reading { padding-top: 1.5rem; }
  .map-enhanced.is-reading .map-intro { margin: 0; }
  .map-enhanced.is-reading .map-toolbar { padding: 0; }
  .map-enhanced.is-reading .map-quick-actions { position: static; }
  .map-area-switcher { gap: .5rem 1.25rem; padding-bottom: 1rem; margin-bottom: 0; }
  .map-area-switcher a { padding: .5rem .2rem; border: 0; border-radius: 0; border-bottom: 2px solid transparent; }
  .map-area-switcher a[aria-current] { background: transparent; border-color: var(--map-accent); }
  .map-area { padding-top: 1.4rem; border-top: 0; }
  .map-area-heading h2 { font: 500 1rem/1.5 var(--font-control); color: var(--ink-soft); letter-spacing: 0; margin-bottom: .5rem; }
  body:not(.map-presenting) .map-area { position: relative; }
  body:not(.map-presenting) .map-area-heading { padding-right: 14rem; margin-bottom: 1.25rem; }
  body:not(.map-presenting) .map-area-heading .eyebrow { display: none; }
  body:not(.map-presenting) .map-area-context:not([open]) { margin: 0; }
  body:not(.map-presenting) .map-area-context > summary { position: absolute; top: 1.4rem; right: 0; }
  .map-area-context { margin-bottom: 1.75rem; }
  .map-reading-layout { grid-template-columns: 220px minmax(0,1fr); column-gap: clamp(2rem,4vw,4rem); margin-top: 1.7rem; }
  .map-topic-directory { min-width: 0; }
  .map-topic-directory > summary { color: var(--ink-soft); cursor: pointer; padding: .55rem 0 1rem; font: 600 .875rem/1.5 var(--font-control); }
  .map-topic-nav { border: 0; border-radius: 0; padding: 0; background: transparent; box-shadow: none; }
  .map-topic-nav ol { gap: .35rem; }
  .map-topic-nav a { min-height: 3rem; padding: .65rem .5rem; border: 0; border-radius: 0; background: transparent; font-size: 1rem; line-height: 1.5; }
  .map-topic-nav a:hover { background: color-mix(in srgb,var(--map-tint) 35%,transparent); box-shadow: none; }
  .map-topic-nav a[aria-current="location"] { background: color-mix(in srgb,var(--map-tint) 45%,var(--choice)); box-shadow: inset 3px 0 0 var(--map-accent); }
  .map-topic { max-width: none; padding-bottom: 1rem; }
  .map-topic-heading { min-height: 0; padding-bottom: .25rem; }
  body:not(.map-presenting) .map-topic-number { display: none; }
  .map-topic h3 { margin-bottom: .85rem; }
  .map-summary { max-width: 70ch; line-height: 1.55; }
  body:not(.map-presenting) .map-topic-visual { margin: 1.75rem 0 1.5rem; padding: 1.2rem 1.4rem .8rem; }
  body:not(.map-presenting) .map-visual-toolbar { gap: 1rem; padding-bottom: .4rem; }
  body:not(.map-presenting) .map-figure-legend { display: none; }
  body:not(.map-presenting) .map-depth-tabs { gap: .5rem; margin-top: .6rem; padding-bottom: .6rem; }
  body:not(.map-presenting) .map-depth-tabs button { min-height: 2.75rem; padding: .65rem .85rem; }
  body:not(.map-presenting) .map-depth-content { margin-top: 1.15rem; }
  body:not(.map-presenting) .map-depth-panel p { max-width: 74ch; line-height: 1.7; }
  body:not(.map-presenting) .map-pager { margin-top: 2.5rem; padding-top: 1.25rem; }
  .map-presenting .map-topic-directory { display: none; }
  .map-presenting .is-overview .map-frame-header { display: block; margin-bottom: 0; }
  .map-presenting .map-area-context { margin-bottom: .9rem; }
  .map-presenting .map-area-heading h2 { font-size: .9375rem; }
  .map-presenting .map-topic { padding-bottom: 0; }
  .map-presenting .map-area-switcher { display: none; }
}
@media screen and (max-width: 1100px) {
  .map-card-heading { min-height: 13rem; }
  .map-branch { padding: 1.3rem; }
}
@media screen and (max-width: 980px) {
  .map-reading-layout { grid-template-columns: minmax(0,1fr); gap: 1.5rem; }
  .map-topic-directory { padding-bottom: .8rem; border-bottom: 1px solid var(--line); }
  .map-topic-directory > summary { padding-block: .55rem; }
  .map-topic-nav { padding-top: .65rem; }
  .map-topic-nav ol { grid-template-columns: repeat(2,minmax(0,1fr)); gap: .5rem 1rem; }
  .map-topic-nav a { min-height: 2.75rem; }
}
@media screen and (max-width: 760px) {
  .system-map { padding-top: 2rem; }
  .map-intro { display: block; }
  body[data-surface="system-map"] .map-intro h1 { margin-bottom: 1.4rem; max-width: 22ch; font-size: clamp(1.8rem,6vw,2.6rem); }
  .map-lead { font-size: 1.0625rem; }
  .map-toolbar { padding-bottom: 2rem; }
  .map-branches { gap: 1.25rem; }
  .map-card-heading { min-height: 0; }
  .map-branch { padding: 1.5rem; }
  .map-card-heading h2 { font-size: 1.5rem; }
  .map-research { display: block; margin-top: 1.5rem; }
  .map-research .button { margin-top: 1rem; width: 100%; }
  .map-enhanced.is-reading .map-frame-header { display: block; margin-bottom: 1.5rem; }
  .map-enhanced.is-reading .map-intro h1 { margin: 0 0 .85rem; }
  .map-area-switcher { gap: .3rem 1rem; }
  .map-area-context { margin-bottom: 1.3rem; }
  body:not(.map-presenting) .map-area-heading { padding-right: 0; margin-bottom: .65rem; }
  body:not(.map-presenting) .map-area-context > summary { position: static; }
  body:not(.map-presenting) .map-area-context:not([open]) { margin-bottom: .8rem; }
  .map-topic h3 { font-size: clamp(1.7rem,6vw,2.2rem); }
  body:not(.map-presenting) .map-topic-visual { padding: 1rem; margin-top: 1.4rem; }
  .map-topic .map-principle-copy { display: block; }
}
@media screen and (max-width: 420px) {
  .system-map > .site-shell { width: calc(100% - 2rem); }
  .map-topic-nav ol { grid-template-columns: minmax(0,1fr); }
  .map-branch { padding: 1.25rem; }
  body:not(.map-presenting) .map-depth-tabs button { flex: 1 1 42%; }
}

/* R27: a direct entry supplies its own context. The subject, preview, figure,
   depth and continuation share one axis; secondary navigation lives in Options. */
.map-enhanced .map-case-entry-fallback { display: none; }
.map-case-picker { display: grid; grid-template-columns: minmax(0,1fr); gap: .4rem; margin-bottom: 1.6rem; padding-bottom: 1rem; border-bottom: 1px solid var(--line); }
.map-case-picker label { color: var(--ink-soft); font: 600 .875rem/1.4 var(--font-control); }
.map-case-picker select { width: 100%; min-width: 0; max-width: 40rem; padding: .65rem .75rem; border: 1px solid var(--line-strong); border-radius: var(--radius-control); color: var(--ink); background: var(--choice); font: 500 1rem/1.4 var(--font-control); cursor: pointer; }
.map-case-picker p { max-width: 85ch; margin: .2rem 0 0; color: var(--ink-soft); font: 400 .9375rem/1.5 var(--font-reading); }
@media screen {
  .map-enhanced.is-reading > .site-shell { width: min(calc(100% - var(--gutter) * 2),72rem); }
  .map-enhanced.is-reading .map-frame-header { display: grid; grid-template-columns: minmax(0,1fr) auto; align-items: center; gap: 1rem; margin-bottom: 2rem; }
  .map-enhanced.is-reading .map-intro { display: block; min-height: 0; padding: 0; margin: 0; }
  .map-enhanced.is-reading .map-intro > .eyebrow { display: block; margin: 0; }
  body[data-surface="system-map"] .map-enhanced.is-reading .map-intro h1,
  .map-enhanced.is-reading .map-area-heading { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
  .map-enhanced.is-reading .map-quick-actions { position: static; }
  .map-enhanced.is-reading .map-toolbar { padding: 0; }
  .map-enhanced.is-reading :is(.map-area-switcher,.map-topic-directory,.map-topic-number) { display: none; }
  .map-enhanced.is-reading .map-area { padding: 0; border: 0; }
  .map-enhanced.is-reading .map-reading-layout { display: block; width: 100%; max-width: none; margin: 0; }
  .map-enhanced.is-reading .map-topic-heading { display: block; min-height: 0; padding: 0; }
  .map-topic-context { margin: 0 0 .75rem; color: var(--map-accent); font: 600 .9375rem/1.5 var(--font-control); }
  .map-enhanced.is-reading .map-summary { max-width: 80ch; }
  .map-enhanced.is-reading .map-principle-copy { display: block; }
  .map-enhanced.is-reading .map-purpose { margin-top: 1.25rem; padding-left: 0; border-left: 0; }
  .map-enhanced.is-reading .map-case-thread dl { grid-template-columns: minmax(0,1fr); }
  .map-options .map-case-context { display: grid; padding: .45rem 0 0; margin: .45rem 0 0; border: 0; border-top: 1px solid var(--line); }
  .map-options .map-area-context { display: block; position: static; margin: 0; }
  .map-options .map-area-context > summary { position: static; padding: .6rem .7rem; font: 500 1rem/1.4 var(--font-control); cursor: pointer; }
  .map-options .map-area-context > div { padding: .4rem .7rem; }
  .map-options .map-area-context p { margin-bottom: .75rem; font: 400 1rem/1.5 var(--font-reading); }
  .map-options .map-area-overview-art { margin-top: .75rem; }
  .map-options .map-area-overview-art .map-diagram { min-height: 0; }
}

/* R29: encounter, topic directory and case catalogue are distinct destinations.
   The overview field expresses participation and learning, never a fixed flow. */
@media screen {
  body[data-surface="system-map"] { background: #f5f6ed; }
  body[data-surface="system-map"]::before { opacity: .07; }
  .system-map { padding-top: 1.4rem; }
  .system-map > .site-shell, .map-enhanced.is-reading > .site-shell { width: min(calc(100% - var(--gutter) * 2), 74rem); }
  .system-map .map-frame-header, .map-enhanced.is-reading .map-frame-header,
  .map-presenting .is-overview .map-frame-header { position: sticky; top: var(--map-header-height); z-index: 20; display: flex; justify-content: space-between; align-items: center; gap: 1rem 2rem; padding-block: .6rem 1rem; margin-bottom: 2.8rem; border-bottom: 1px solid var(--line); background: #f5f6ed; }
  .map-frame-identity { display: flex; align-items: center; flex-wrap: wrap; gap: 1.1rem; }
  .system-map.map-enhanced .map-frame-header .map-back { display: inline-flex; align-items: center; gap: .5rem; min-height: 2.75rem; padding: .65rem .9rem; border: 1px solid #285d49; color: #285d49; background: #fffbed; font-weight: 650; white-space: nowrap; }
  .system-map.map-enhanced .map-frame-header .map-back:hover { color: #fffbed; background: #285d49; }
  .system-map .map-intro, .map-enhanced.is-reading .map-intro { display: block; margin: 0; padding: 0; }
  body[data-surface="system-map"] .map-intro > .eyebrow { display: block; margin: 0; font-size: .75rem; }
  .system-map .map-logo { width: 24px; height: 24px; }
  .system-map .map-toolbar { position: relative; padding: 0; margin: 0; flex: 0 0 auto; }
  .system-map .map-quick-actions { position: static; display: flex; align-items: center; flex-wrap: wrap; gap: 1.4rem; }
  .map-quick-actions > a { color: var(--ink-soft); font: 500 .9375rem/1.4 var(--font-control); text-decoration: none; padding-block: .65rem; }
  .map-quick-actions > a:hover, .map-quick-actions > a[aria-current] { color: #285d49; text-decoration: underline; text-underline-offset: .4em; }
  .system-map .map-tools-toggle { min-height: 2.5rem; background: transparent; padding: .5rem .7rem; flex: 0 0 auto; width: auto; }
  .system-map .map-options { right: 0; left: auto; }
  .map-options .map-case-picker { padding: .8rem .7rem; margin: 0; border-top: 1px solid var(--line); border-bottom: 0; }
  .map-options .map-case-picker p { font-size: .875rem; }
  .system-map .map-entry-hero { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1.05fr); align-items: center; gap: clamp(2rem,5vw,5rem); padding-block: .5rem 4.8rem; }
  .map-entry-opening .eyebrow { margin-bottom: 1.1rem; font-size: .75rem; }
  .system-map .map-entry-hero h1 { font: 720 clamp(2.5rem,4.4vw,4.3rem)/1.06 var(--font-display); letter-spacing: -.045em; margin: 0 0 1.5rem; max-width: 14ch; text-wrap: balance; }
  .map-entry-lead { font-size: clamp(1.2rem,1.7vw,1.45rem); line-height: 1.45; font-weight: 500; color: var(--ink); margin-bottom: 1.1rem; max-width: 38ch; }
  .map-entry-introduction { font-size: 1.0625rem; line-height: 1.65; color: var(--ink-soft); max-width: 55ch; margin-bottom: 0; }
  .map-entry-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 1rem 1.5rem; margin-top: 1.8rem; }
  .system-map .map-entry-primary { background: #285d49; color: #fffbed; border-color: #285d49; padding: .8rem 1rem; min-height: 3rem; box-shadow: none; }
  .system-map .map-entry-primary:hover { background: #1d4938; }
  .map-entry-actions > a:not(.button) { color: #285d49; font-weight: 600; font-size: .9375rem; text-underline-offset: .3em; padding-block: .6rem; }
  .map-entry-field { margin: 0; min-width: 0; }
  .map-entry-field-context { padding: 1.6rem; border: 1px solid #afc4b6; border-radius: .5rem; background: #e7eee1; }
  .map-entry-field .eyebrow { font-size: .6875rem; margin-bottom: 1.3rem; color: #285d49; }
  .map-entry-participants { display: grid; grid-template-columns: .9fr 1.1fr; gap: 1.4rem; margin-bottom: 1.5rem; }
  .map-entry-participants > div { padding-left: .8rem; border-left: 2px solid #8da998; }
  .map-entry-participants strong { font-size: .9375rem; font-weight: 650; }
  .map-entry-participants p { font-size: .875rem; line-height: 1.5; color: var(--ink-soft); margin: .4rem 0 0; }
  .map-entry-system { display: flex; align-items: center; gap: 1.2rem; padding: 1.4rem 1.2rem; background: #fffbed; border: 1px solid #678d77; border-left: 4px solid #285d49; border-radius: .25rem; }
  .map-entry-symbol { width: 40px; height: 40px; flex: 0 0 auto; object-fit: contain; }
  .map-entry-system strong { font-size: 1.8rem; line-height: 1; letter-spacing: -.025em; }
  .map-entry-system p { font-size: 1.0625rem; line-height: 1.45; margin: .5rem 0 0; }
  .map-entry-return { margin-top: 1.4rem; }
  .map-entry-return > strong { display: block; font-size: .9375rem; }
  .map-entry-return p { display: flex; align-items: start; gap: .65rem; font-size: .9375rem; line-height: 1.55; margin: .7rem 0 0; color: #285d49; }
  .map-entry-return p span { font-size: 1.7rem; line-height: 1; flex-shrink: 0; }
  .map-entry-field figcaption { margin: .8rem .1rem 0; font-size: .875rem; line-height: 1.6; color: var(--ink-soft); }
  .map-entry-section { display: grid; grid-template-columns: minmax(0,.8fr) minmax(0,1.2fr); gap: 4rem; padding-block: 3rem 4rem; border-top: 1px solid var(--line-strong); }
  .map-entry-section-heading h2, .map-entry-depth > h2, .map-entry-example h2 { font-size: clamp(1.7rem,2.3vw,2.3rem); line-height: 1.2; letter-spacing: -.03em; max-width: 22ch; margin-bottom: 1.2rem; text-wrap: balance; }
  .map-entry-section-heading > p:not(.eyebrow), .map-entry-depth > p { font-size: 1.0625rem; line-height: 1.65; color: var(--ink-soft); max-width: 66ch; }
  .map-entry-reading { font-size: 1.125rem; line-height: 1.7; max-width: 64ch; margin-bottom: 1.5rem; }
  .map-entry-principle { border-top: 1px solid var(--line); }
  .map-entry-principle:last-child { border-bottom: 1px solid var(--line); }
  .map-entry-principle > summary { cursor: pointer; font-size: 1.0625rem; font-weight: 600; line-height: 1.5; padding-block: 1rem; }
  .map-entry-principle > div { padding: 0 .2rem 1.3rem; }
  .map-entry-principle p { font-size: 1rem; line-height: 1.7; }
  .map-entry-principle a, .map-entry-possibilities a, .map-entry-depth a, .map-entry-availability a { color: #285d49; text-underline-offset: .25em; font-weight: 600; }
  .map-entry-possibilities { display: grid; gap: 1.8rem; list-style: none; margin: 0; padding: 0; counter-reset: possibility; }
  .map-entry-possibilities > li { padding-bottom: 1.5rem; border-bottom: 1px solid var(--line); }
  .map-entry-possibilities > li:last-child { border-bottom: 0; padding: 0; }
  .map-entry-possibilities h3 { font-size: 1.25rem; line-height: 1.3; margin-bottom: .7rem; }
  .map-entry-possibilities p { font-size: 1.0625rem; line-height: 1.65; margin-bottom: .7rem; color: var(--ink-soft); }
  .map-entry-example { padding: 2.5rem 3rem; margin-bottom: 4rem; border-radius: .4rem; border: 1px solid #afc4b6; background: #e7eee1; }
  .map-entry-example h2 { max-width: 30ch; }
  .map-entry-example > p:not(.eyebrow) { max-width: 70ch; font-size: 1.125rem; line-height: 1.65; }
  .map-entry-example .button { background: #fffbed; margin-top: .6rem; }
  .map-entry-depth { padding-block: 0 3rem; }
  .map-entry-depth > h2 { max-width: none; }
  .map-entry-depth ul { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 2.5rem; list-style: none; padding: 0; margin-top: 2rem; }
  .map-entry-depth li { border-top: 2px solid #8da998; padding-top: 1.3rem; }
  .map-entry-depth h3 { font-size: 1.25rem; line-height: 1.3; margin-bottom: .8rem; }
  .map-entry-depth li p { font-size: 1rem; line-height: 1.65; color: var(--ink-soft); }
  .map-entry-availability { padding-block: 1.8rem 0; border-top: 1px solid var(--line); }
  .map-entry-availability h2 { font-size: 1.25rem; margin-bottom: .7rem; }
  .map-entry-availability p { font-size: 1rem; line-height: 1.65; max-width: 80ch; }
  .map-destination-heading { margin-bottom: 3.5rem; }
  .map-destination-heading > a { display: inline-block; margin-bottom: 2rem; font-size: .9375rem; text-underline-offset: .25em; }
  .map-destination-heading h1 { font-size: clamp(2rem,3.8vw,3.4rem); line-height: 1.12; letter-spacing: -.035em; max-width: 23ch; margin-bottom: 1rem; }
  .map-destination-heading p { font-size: 1.125rem; line-height: 1.65; max-width: 70ch; color: var(--ink-soft); }
  .map-directory-group { display: grid; grid-template-columns: minmax(0,.8fr) minmax(0,1.2fr); column-gap: 4rem; padding-block: 2.5rem 3rem; border-top: 1px solid var(--line-strong); }
  .map-directory-group > h2 { font-size: 1.65rem; line-height: 1.25; margin-bottom: 1rem; color: var(--map-accent); }
  .map-directory-group > p { grid-column: 1; font-size: 1rem; line-height: 1.65; color: var(--ink-soft); }
  .map-directory-group > ul { grid-column: 2; grid-row: 1 / 3; list-style: none; padding: 0; margin: 0; }
  .map-directory-group li { border-bottom: 1px solid var(--line); }
  .map-directory-group a { display: grid; grid-template-columns: minmax(0,1fr) 1rem; column-gap: 1rem; padding: 1rem 0; text-decoration: none; }
  .map-directory-group strong { font-size: 1.125rem; line-height: 1.4; }
  .map-directory-group a > span:first-of-type { grid-column: 1; font-size: .9375rem; line-height: 1.6; color: var(--ink-soft); margin-top: .5rem; }
  .map-directory-group a > span[aria-hidden] { grid-column: 2; grid-row: 1; }
  .map-directory-group a:hover strong { text-decoration: underline; text-underline-offset: .2em; }
  .map-case-catalog-group { padding-top: 2.5rem; margin-bottom: 3.5rem; border-top: 1px solid var(--line-strong); }
  .map-case-catalog-group h2 { font-size: 1.8rem; line-height: 1.25; margin-bottom: .8rem; }
  .map-case-catalog-group > p { max-width: 75ch; font-size: 1rem; line-height: 1.65; color: var(--ink-soft); }
  .map-case-catalog-group > ul { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 1.2rem; list-style: none; padding: 0; margin-top: 1.8rem; }
  .map-case-catalog-group li a { display: flex; flex-direction: column; height: 100%; padding: 1.6rem; background: #fffbed; border: 1px solid var(--line); border-radius: .25rem; text-decoration: none; }
  .map-case-catalog-group li a:hover { border-color: #285d49; }
  .map-case-catalog-label { color: #285d49; font: 600 .8125rem/1.5 var(--font-control); margin-bottom: .9rem; }
  .map-case-catalog-group strong { font-size: 1.35rem; line-height: 1.3; margin-bottom: .9rem; }
  .map-case-catalog-group strong + span { font-size: 1rem; line-height: 1.65; color: var(--ink-soft); margin-bottom: 1rem; }
  .map-catalog-command { margin-top: auto; padding-top: .4rem; font-weight: 600; font-size: .9375rem; color: #285d49; text-decoration: underline; text-underline-offset: .25em; }
  .map-case-catalog-group[data-case-category="research"] .map-case-catalog-label { color: #674a7c; }
  .map-case-catalog-group[data-case-category="research"] li a { background: #f2edf4; }
  .system-map :is(.map-entry-hero h1,.map-destination-heading h1,.map-entry-section h2):focus { outline: none; }
  .system-map a:focus-visible, .system-map summary:focus-visible { outline: 2px solid var(--ink); outline-offset: 4px; }
  .map-enhanced .map-related { margin-top: 3.5rem; }
}
@media screen and (max-width: 800px) {
  .system-map .map-entry-hero { grid-template-columns: minmax(0,1fr); gap: 2.5rem; padding-bottom: 3rem; }
  .map-entry-opening { max-width: 40rem; }
  .system-map .map-entry-hero h1 { font-size: clamp(2.2rem,6vw,3.5rem); max-width: none; }
  .map-entry-field { max-width: 40rem; width: 100%; }
  .map-entry-section, .map-directory-group { grid-template-columns: minmax(0,1fr); gap: 1rem; padding-block: 2rem 2.5rem; }
  .map-directory-group > ul { grid-column: 1; grid-row: auto; }
  .map-entry-section-heading h2 { max-width: 28ch; }
  .map-entry-depth ul { grid-template-columns: minmax(0,1fr); gap: 2rem; }
  .map-entry-example { padding: 1.8rem; margin-bottom: 2.8rem; }
  .map-entry-example h2 { max-width: 28ch; }
}
@media screen and (max-width: 540px) {
  /* The lateral contact tab overlaps the narrow reading axis. Contact stays
     reachable inside the shared Chat, whose runtime is outside this candidate. */
  body[data-surface="system-map"] > .maios-chat__contact-tab { display: none; }
  .system-map .map-frame-header, .map-enhanced.is-reading .map-frame-header { flex-wrap: wrap; gap: .6rem; margin-bottom: 2rem; }
  body:not(.map-presenting) .system-map .map-intro { display: none; }
  body:not(.map-presenting) .map-frame-identity:has(.map-back[hidden]) { display: none; }
  .system-map .map-toolbar { width: 100%; }
  .system-map .map-quick-actions { justify-content: space-between; gap: .8rem; margin-left: 0; width: 100%; }
  .map-entry-opening .eyebrow { margin-bottom: .9rem; }
  .system-map .map-entry-hero h1 { font-size: 2.25rem; margin-bottom: 1.2rem; }
  .map-entry-lead { font-size: 1.25rem; }
  .map-entry-introduction { font-size: 1rem; line-height: 1.65; }
  .map-entry-actions { gap: .6rem 1.25rem; margin-top: 1.5rem; }
  .system-map .map-entry-primary { font-size: .9375rem; }
  .map-entry-field-context { padding: 1.2rem; }
  .map-entry-participants { grid-template-columns: minmax(0,1fr); gap: 1rem; }
  .map-entry-system { padding: 1.15rem .9rem; gap: .8rem; }
  .map-entry-symbol { width: 30px; height: 30px; }
  .map-entry-system strong { font-size: 1.6rem; }
  .map-entry-system p { font-size: 1rem; }
  .map-entry-section-heading h2, .map-entry-depth > h2, .map-entry-example h2 { font-size: 1.7rem; }
  .map-entry-reading { font-size: 1.0625rem; }
  .map-entry-example { padding: 1.4rem; }
  .map-case-catalog-group > ul { grid-template-columns: minmax(0,1fr); }
  .map-case-catalog-group li a { padding: 1.35rem; }
  .map-destination-heading h1 { font-size: 2rem; }
  .map-destination-heading { margin-bottom: 2.5rem; }
  .map-directory-group > h2 { font-size: 1.5rem; }
}

/* The operator-selected pace applies to reading actions and disclosures.
   Native OS select lists and direct pointer manipulation retain native input. */
@media screen and (prefers-reduced-motion: no-preference) {
  .system-map :is(a,button,summary), .map-search-dialog .button { transition-duration: 1200ms; }
  .map-case-node, .map-case-result { transition-duration: 1400ms; }
  .map-search-dialog[open] { animation-duration: 1200ms; }
  :root:has(body[data-surface="system-map"])::view-transition-group(map-plane),
  :root:has(body[data-surface="system-map"])::view-transition-old(map-plane),
  :root:has(body[data-surface="system-map"])::view-transition-new(map-plane) { animation-duration: 1200ms; }
}

@media print {
  .map-enhanced .map-example-visual { display: block; }
  .map-case-invitation, .map-case-context, .map-about { display: none !important; }
  .map-enhanced .map-case-visual, .map-enhanced .map-case-reading, .map-enhanced[data-case-active] .map-general-example, .map-enhanced[data-case-active] .map-standard-visual { display: block; }
  body.map-fitted { overflow: visible; }
  .system-map, .map-fitted .system-map, .map-fitted.map-presenting .system-map { height: auto; padding: 0; }
  .system-map [hidden] { display: block !important; }
  .site-header, .site-footer, .map-toolbar, [data-map-back], .map-topic-nav, .map-pager, .map-search-dialog, [data-map-overview], .map-presentation-help, .map-depth-tabs, .map-area-switcher { display: none !important; }
  .system-map > .site-shell, .map-fitted .system-map > .site-shell, .map-fitted [data-map-reading], .map-fitted .map-area, .map-reading-layout, .map-fitted .map-reading-layout, .map-fitted .map-topic-content, .map-fitted .map-topic { display: block; width: 100%; height: auto; }
  .map-fitted .map-depth-content, .map-fitted .map-area-context[open] { overflow: visible; max-height: none; }
  .map-area-context > div, .map-fitted .map-area-context[open] > div { position: static; width: auto; max-height: none; overflow: visible; padding: 0; border: 0; background: transparent; box-shadow: none; content-visibility: visible; }
  .map-area-context::details-content { content-visibility: visible; }
  .map-area { break-before: page; padding-top: 1rem; }
  .map-topic-heading { padding: 0; }
  .map-topic { break-inside: avoid; }
  .map-depth-panel { break-inside: avoid; }
  .map-fitted .map-depth-panel h4 { position: static; width: auto; height: auto; margin: 0 0 .5rem; overflow: visible; clip-path: none; white-space: normal; }
  .map-visual-toolbar [data-map-replay] { display: none !important; }
  .map-area-context > * { display: block; }
}
