.formations-page .page-hero {
  background: #e8eadf;
}

html[data-theme="dark"] .formations-page .page-hero {
  background: var(--bgc-grey);
}

/* Les diapositives restent des objets graphiques sur papier clair, même lorsque
   l’interface du site est sombre. Le contraste de leur composition est ainsi
   conservé sans rompre le thème du cadre de lecture. */
html[data-theme="dark"] .slide-pattern,
html[data-theme="dark"] .slide-viewer-nav {
  --color-base: #20231f;
  --color-muted: #66706b;
  --color-brand-strong: #17211d;
  --color-heading: #17211d;
  --color-line: #d2c7b7;
  --bgc-card: #fffdf8;
  --bgc-chip: #eef2ec;
  --bgc-visual: #f7f1e7;
  --border: 1px solid var(--color-line);
  color: var(--color-base);
}

html[data-theme="dark"] .slide-pattern {
  background: var(--bgc-card);
}

.course-home-link {
  color: var(--color-brand-strong);
  display: inline-flex;
  font-size: .82rem;
  font-weight: 850;
  letter-spacing: .08em;
  margin-bottom: .45rem;
  text-decoration: none;
}

.course-home-link:hover,
.course-home-link:focus-visible {
  color: var(--color-accent);
  text-decoration: underline;
  text-underline-offset: .18em;
}

.sequence-header .course-home-link {
  justify-self: start;
  margin-bottom: .15rem;
}

.formations-page .formation-list {
  display: grid;
  gap: var(--spacing-md);
  list-style: none;
  max-width: 58rem;
}

.formation-entry {
  background: var(--bgc-card);
  border: var(--border);
  border-radius: var(--radius);
  display: grid;
  gap: var(--spacing-md);
  padding: clamp(1rem, 3vw, 1.5rem);
}

.formation-entry-main {
  display: grid;
  gap: .45rem;
}

.formation-entry h3 {
  font-size: clamp(1.35rem, 3vw, 2rem);
}

.formation-meta {
  display: grid;
  gap: .75rem;
  margin: 0;
}

.formation-meta div {
  border-top: var(--border);
  display: grid;
  gap: .2rem;
  padding-top: .75rem;
}

.formation-meta dt {
  color: var(--color-accent);
  font-size: .76rem;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.formation-meta dd {
  color: var(--color-brand-strong);
  font-weight: 600;
  margin: 0;
}

.formation-meta.wide {
  max-width: 58rem;
}

.formation-meta.course-meta {
  max-width: 42rem;
}

.programme-day {
  display: grid;
  gap: var(--spacing-md);
  margin-top: var(--spacing-md);
}

.programme-slot {
  background: var(--bgc-card);
  border: var(--border);
  border-left: 5px solid var(--color-brand);
  border-radius: var(--radius);
  display: grid;
  gap: .55rem;
  padding: clamp(1rem, 2.5vw, 1.35rem);
}

.programme-slot h3 {
  font-size: clamp(1.15rem, 2vw, 1.45rem);
}

.programme-slot p {
  max-width: 58rem;
}

.programme-time {
  color: var(--color-brand-strong);
  font-size: .9rem;
  font-weight: 800;
  letter-spacing: .04em;
  margin: 0;
}

.programme-slot.featured {
  border-left-color: #557a95;
}

.programme-slot.workshop {
  border-left-color: #587b4d;
}

.programme-slot.break {
  background: var(--bgc-break);
  border-left-color: #8a6f3d;
  gap: .25rem;
}

.programme-slot.break h3 {
  color: var(--color-muted);
}

.deck-spine {
  display: grid;
  gap: var(--spacing-md);
  margin-top: var(--spacing-md);
}

.deck-spine > div {
  background: var(--bgc-card);
  border: var(--border);
  border-radius: var(--radius);
  display: grid;
  gap: .4rem;
  padding: clamp(1rem, 2vw, 1.2rem);
}

.deck-step {
  align-items: center;
  background: var(--color-brand);
  border-radius: 999px;
  color: #fff;
  display: inline-flex;
  font-size: .8rem;
  font-weight: 800;
  height: 1.8rem;
  justify-content: center;
  width: 1.8rem;
}

.deck-outline {
  display: grid;
  gap: var(--spacing-md);
  margin-top: var(--spacing-md);
}

.deck-sequence {
  background: var(--bgc-card);
  border: var(--border);
  border-left: 5px solid var(--color-brand);
  border-radius: var(--radius);
  display: grid;
  gap: .65rem;
  padding: clamp(1rem, 2.5vw, 1.35rem);
}

.deck-sequence.featured {
  border-left-color: #557a95;
}

.deck-sequence.workshop {
  border-left-color: #587b4d;
}

.deck-sequence h3 {
  font-size: clamp(1.2rem, 2.1vw, 1.55rem);
}

.chapter-sequence-grid {
  display: grid;
  gap: var(--spacing-md);
  margin-top: var(--spacing-md);
}

.chapter-sequence-card {
  background: var(--bgc-card);
  border: var(--border);
  border-left: 5px solid var(--color-brand);
  border-radius: var(--radius);
  display: grid;
  gap: .55rem;
  padding: clamp(1rem, 2.5vw, 1.35rem);
}

.chapter-sequence-card h3 {
  font-size: clamp(1.25rem, 2.2vw, 1.65rem);
}

.chapter-sequence-card .title-link,
.programme-slot h3 .title-link {
  color: inherit;
  text-decoration-thickness: .08em;
  text-underline-offset: .18em;
}

.interstitial-deck {
  margin-bottom: var(--spacing-lg);
}

.chapter-summary-slide .slide-list a {
  color: var(--color-brand-strong);
  font-weight: 800;
}

.objective {
  color: var(--color-brand-strong);
  font-weight: 600;
}

.slide-list {
  display: grid;
  gap: .45rem;
  list-style: none;
  padding: 0;
}

.slide-list li {
  border-top: var(--border);
  padding-top: .45rem;
}

.slide-pattern,
.callout,
.note-orateur {
  background: var(--bgc-card);
  border: var(--border);
  border-radius: var(--radius);
  display: grid;
  gap: var(--spacing-md);
  padding: var(--spacing-md);
}

.pilot-deck {
  display: grid;
  gap: var(--spacing-lg);
}

.pilot-page .slide-pattern {
  border-left: 5px solid var(--color-brand);
  min-height: 24rem;
}

.pilot-page .slide-pattern > .columns {
  align-content: start;
  display: grid;
  gap: .7rem;
}

.pilot-page .slide-pattern > .columns > div {
  background: #fff;
  border: var(--border);
  border-left: 4px solid #557a95;
  border-radius: calc(var(--radius) - .2rem);
  display: grid;
  gap: .25rem;
  padding: .7rem;
}

.pilot-page .slide-pattern > .columns > div:nth-child(2n) {
  border-left-color: #587b4d;
}

.pilot-page .slide-pattern > .columns > div:nth-child(3n) {
  border-left-color: #8a6f3d;
}

.pilot-page .slide-pattern > .callout {
  border-left: 4px solid #222817;
  gap: .2rem;
  margin-top: auto;
}

.pilot-page .slide-pattern > .callout::before {
  color: var(--color-brand-strong);
  content: "À retenir";
  font-size: 1rem;
  font-weight: 900;
  letter-spacing: 0;
  text-transform: none;
}

.pilot-page .slide-pattern > .callout p {
  color: #3b4233;
  font-size: .96rem;
  line-height: 1.32;
  margin: 0;
}

.slide-pattern[data-kind="definition"] {
  border-left-color: #557a95;
}

.slide-pattern[data-kind="comparison"] {
  border-left-color: #8a6f3d;
}

.slide-pattern[data-kind="process"] {
  border-left-color: #587b4d;
}

.slide-pattern[data-kind="synthesis"] {
  border-left-color: #763f5c;
}

.slide-pattern h2 {
  font-size: clamp(1.8rem, 4vw, 3rem);
  max-width: 52rem;
}

.slide-pattern h3 {
  font-size: 1rem;
  text-transform: none;
}

.notion-sequence {
  display: grid;
  gap: var(--spacing-md);
  margin-top: var(--spacing-lg);
}

.notion-sequence + .notion-sequence {
  border-top: var(--border);
  padding-top: var(--spacing-lg);
}

.sequence-header,
.sequence-placeholder {
  background: var(--bgc-card);
  border: var(--border);
  border-left: 5px solid var(--color-brand);
  border-radius: var(--radius);
  display: grid;
  gap: .65rem;
  padding: clamp(1rem, 2.5vw, 1.35rem);
}

.sequence-header h2 {
  font-size: clamp(1.6rem, 3vw, 2.35rem);
}

.sequence-header p {
  max-width: 62rem;
}

.sequence-outline {
  display: grid;
  gap: .4rem;
  list-style: none;
  padding: 0;
}

.sequence-outline li {
  background: #f6f7f2;
  border: var(--border);
  border-radius: var(--radius);
  color: var(--color-brand-strong);
  font-weight: 700;
  padding: .55rem .7rem;
}

.axis-grid div {
  min-height: 5.5rem;
}





.semantic-visual {
  background: #f6f7f2;
  border: var(--border);
  border-radius: var(--radius);
  display: grid;
  gap: .85rem;
  padding: clamp(.9rem, 2vw, 1.2rem);
}

.visual-label,
.visual-caption {
  color: var(--color-muted);
  font-size: .82rem;
  margin: 0;
}

.visual-label {
  color: var(--color-accent);
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.term-ladder,
.surface-stack,
.tradeoff-grid,
.five-a-grid {
  display: grid;
  gap: .6rem;
}

.term-card,
.surface-card,
.tradeoff-card,
.entity-token,
.geometry-token,
.attribute-token,
.pixel-readout,
.synthesis-node,
.synthesis-core {
  background: #fff;
  border: var(--border);
  border-radius: var(--radius);
  display: grid;
  gap: .25rem;
  padding: .75rem;
}

.term-card {
  grid-template-columns: auto minmax(0, 1fr);
}

.term-card p {
  grid-column: 2;
  margin: 0;
}

.term-step {
  align-items: center;
  background: var(--color-brand);
  border-radius: 999px;
  color: #fff;
  display: inline-flex;
  font-size: .75rem;
  font-weight: 700;
  height: 1.55rem;
  justify-content: center;
  width: 1.55rem;
}

.surface-card {
  border-left: 5px solid #557a95;
}

.surface-real {
  border-left-color: #8a6f3d;
}

.surface-project {
  border-left-color: #587b4d;
}

.tradeoff-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.tradeoff-card.keep {
  border-top: 4px solid #557a95;
}

.tradeoff-card.loss {
  border-top: 4px solid #763f5c;
}

.tradeoff-line,
.layer-strip,
.synthesis-legend {
  display: flex;
  flex-wrap: wrap;
  gap: .45rem;
}

.criterion,
.layer-strip span,
.synthesis-legend span {
  background: #e8eadf;
  border-radius: 999px;
  color: var(--color-brand-strong);
  font-size: .82rem;
  font-weight: 700;
  padding: .35rem .55rem;
}

.vector-equation {
  align-items: stretch;
  display: grid;
  gap: .5rem;
}

.operator {
  align-self: center;
  color: var(--color-accent);
  font-size: 1.6rem;
  font-weight: 700;
  justify-self: center;
}

.shape-row {
  align-items: center;
  display: flex;
  gap: .6rem;
  min-height: 2rem;
}

.shape {
  background: #557a95;
  display: inline-block;
}

.shape.point {
  border-radius: 999px;
  height: 1rem;
  width: 1rem;
}

.shape.line {
  height: .35rem;
  transform: rotate(-12deg);
  width: 3rem;
}

.shape.polygon {
  clip-path: polygon(10% 20%, 80% 5%, 100% 65%, 35% 100%, 0 60%);
  height: 1.6rem;
  width: 2.1rem;
}

.attribute-table {
  display: grid;
  font-size: .82rem;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.attribute-table span {
  border-top: var(--border);
  padding: .25rem 0;
}

.raster-board {
  display: grid;
  gap: .8rem;
}

.pixel-grid {
  display: grid;
  grid-template-columns: repeat(5, minmax(1.8rem, 1fr));
}

.px {
  aspect-ratio: 1;
  border: 1px solid rgba(26, 43, 47, .22);
}

.px.low {
  background: #d7e0d1;
}

.px.mid {
  background: #9fb9b2;
}

.px.high {
  background: #557a95;
}

.focus-pixel {
  outline: 4px solid #763f5c;
  outline-offset: -4px;
}

.pixel-readout span {
  color: var(--color-muted);
  font-size: .84rem;
}

.lifecycle-flow,
.five-a-grid {
  display: grid;
  gap: .5rem;
}

.lifecycle-flow span,
.five-a-grid div {
  background: #fff;
  border: var(--border);
  border-radius: var(--radius);
  font-weight: 700;
  padding: .6rem;
}

.lifecycle-flow span {
  border-left: 5px solid #587b4d;
}

.five-a-grid div {
  border-left: 5px solid #8a6f3d;
}

.synthesis-map {
  display: grid;
  gap: .5rem;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.synthesis-core {
  background: var(--color-brand);
  color: #fff;
  font-size: 1.4rem;
  font-weight: 800;
  place-items: center;
}

.source-ref {
  border-top: var(--border);
  color: var(--color-muted);
  font-size: .84rem;
  padding-top: .75rem;
}

.slide-source-list {
  display: flex;
  flex-wrap: wrap;
  gap: .45rem;
  margin: 0 0 var(--spacing-md);
}

.slide-source-list a {
  background: #e8eadf;
  border: var(--border);
  border-radius: 999px;
  color: var(--color-brand-strong);
  font-size: .82rem;
  font-weight: 800;
  padding: .35rem .55rem;
  text-decoration: none;
}

.slide-source-list a[data-slide-import-state="loading"] {
  opacity: .64;
}

.slide-source-list a[data-slide-import-state="loaded"] {
  background: #dce8d8;
  border-color: rgba(88, 123, 77, .45);
}

.slide-source-list a[data-slide-import-state="error"] {
  background: #f0dedb;
  border-color: rgba(118, 63, 92, .45);
}

.focus {
  background: #fff3bf;
  color: var(--color-brand-strong);
  padding: .05em .25em;
}

.steps {
  counter-reset: step;
  display: grid;
  gap: .75rem;
  list-style: none;
}

.steps > li {
  counter-increment: step;
  padding-left: 2.4rem;
  position: relative;
}

.steps > li::before {
  align-items: center;
  background: var(--color-brand);
  border-radius: 999px;
  color: #fff;
  content: counter(step);
  display: inline-flex;
  font-size: .8rem;
  font-weight: 700;
  height: 1.65rem;
  justify-content: center;
  left: 0;
  position: absolute;
  top: .05rem;
  width: 1.65rem;
}

.notions-summary h3 {
  font-size: 1.05rem;
  margin: 0;
}

.notions-summary p {
  margin: .2rem 0 0;
  max-width: 54rem;
}

.symbology-grid div {
  align-content: start;
  display: grid;
  gap: .45rem;
  min-height: 7rem;
}

.symbology-grid .shape {
  background: #763f5c;
}

.symbology-grid .shape.line {
  transform: none;
}

.swatch-row {
  display: flex;
  gap: .3rem;
}

.swatch {
  border: 1px solid rgba(26, 43, 47, .22);
  border-radius: 999px;
  display: inline-block;
  height: 1rem;
  width: 1rem;
}

.swatch-blue {
  background: #557a95;
}

.swatch-green {
  background: #587b4d;
}

.swatch-red {
  background: #b35b5b;
}

.opacity-bar {
  background: linear-gradient(90deg, rgba(85, 122, 149, .18), rgba(85, 122, 149, .9));
  border-radius: 999px;
  display: block;
  height: 1rem;
  width: min(100%, 7rem);
}

.figure-capture {
  background: #fff;
  border: var(--border);
  border-radius: var(--radius);
  display: grid;
  gap: .45rem;
  overflow: hidden;
  padding: .45rem;
}

.figure-capture img {
  border-radius: calc(var(--radius) - .35rem);
  height: auto;
  width: 100%;
}

.figure-caption,
.visual-caption {
  color: var(--color-muted);
  font-size: .82rem;
}

.climae-case-visual {
  align-content: stretch;
  gap: .6rem;
  padding: .45rem;
}

.climae-case-figure {
  align-content: center;
  min-height: clamp(18rem, 42vw, 32rem);
}

.climae-case-figure img {
  display: block;
  max-height: none;
  object-fit: contain;
}

.climae-live-map-link {
  display: block;
}

.climae-live-map-link:focus-visible {
  outline: 3px solid #557a95;
  outline-offset: .25rem;
}

.reference-svg-visual {
  align-content: stretch;
  gap: .6rem;
  padding: .45rem;
}

.reference-svg-figure {
  align-content: center;
  min-height: clamp(18rem, 42vw, 32rem);
}

.reference-svg-figure img {
  aspect-ratio: 4 / 3;
  max-height: none;
  object-fit: contain;
}

.history-visual {
  gap: .7rem;
}

.history-slide-body {
  display: grid;
  gap: var(--spacing-md);
}

.history-side-panel {
  align-content: start;
  background: rgba(255, 253, 247, .82);
  border: var(--border);
  border-left: 4px solid #557a95;
  border-radius: var(--radius);
  display: grid;
  gap: .8rem;
  padding: clamp(.85rem, 1.5vw, 1.05rem);
}

.history-side-panel h3 {
  color: var(--color-brand-strong);
  font-size: clamp(1.05rem, 1.35vw, 1.28rem);
  line-height: 1.15;
  margin: 0;
}

.history-side-panel p {
  margin: 0;
}

.history-keywords {
  display: grid;
  gap: .65rem;
  list-style: none;
  margin: 0;
  padding: 0;
}

.history-keywords li {
  border-top: var(--border);
  display: grid;
  gap: .12rem;
  padding-top: .55rem;
}

.history-keywords strong {
  color: var(--color-brand-strong);
  font-size: .96rem;
}

.history-keywords span {
  color: var(--color-muted);
  font-size: .87rem;
}

.history-side-panel-rich {
  gap: .9rem;
}

.history-format-prototype .history-side-panel-rich {
  background: transparent;
  border: 0;
  border-radius: 0;
  display: flex;
  flex-direction: column;
  padding: 0;
}

.history-panel-points {
  display: grid;
  gap: .7rem;
  list-style: none;
  margin: 0;
  padding: 0;
}

.history-panel-points li {
  border-top: var(--border);
  display: grid;
  gap: .18rem;
  padding-top: .6rem;
}

.history-panel-points strong {
  color: var(--color-brand-strong);
  font-size: .98rem;
}

.history-panel-points span {
  color: var(--color-muted);
  font-size: .9rem;
  line-height: 1.35;
}

.history-panel-intro,
.history-panel-takeaway,
.history-panel-note,
.history-panel-questions,
.history-panel-retain {
  background: #fff;
  border: var(--border);
  border-radius: calc(var(--radius) - .2rem);
  display: grid;
  gap: .25rem;
  padding: .7rem;
}

.history-panel-intro {
  border-left: 4px solid #557a95;
}

.history-panel-takeaway {
  border-left: 4px solid #763f5c;
}

.history-panel-note {
  border-left: 4px solid #587b4d;
}

.history-panel-questions {
  border-left: 4px solid #8a6f3d;
}

.history-panel-retain {
  border-left: 4px solid #222817;
  margin-top: auto;
}

.history-panel-retain strong {
  color: var(--color-brand-strong);
  font-size: 1rem;
}

.history-panel-retain p {
  color: #3b4233;
  font-size: .96rem;
  line-height: 1.32;
}

.history-panel-intro h3,
.history-panel-takeaway strong,
.history-panel-note strong,
.history-panel-questions strong {
  color: var(--color-brand-strong);
  font-size: .95rem;
}

.history-panel-intro p,
.history-panel-takeaway p,
.history-panel-note p,
.history-panel-questions p {
  color: var(--color-muted);
  font-size: .9rem;
  line-height: 1.35;
}

.history-main-visual {
  align-content: center;
  padding: clamp(.5rem, 1.1vw, .85rem);
}

.history-figure {
  align-content: center;
  background: #fff;
  min-height: 12rem;
}

.history-figure img {
  aspect-ratio: 16 / 10;
  max-height: 20rem;
  object-fit: contain;
}

.history-strip img {
  aspect-ratio: 16 / 7;
}

.history-main-visual .history-figure {
  min-height: clamp(18rem, 42vw, 32rem);
}

.history-main-visual .history-figure img {
  max-height: none;
  object-fit: contain;
}

.history-main-visual .history-figure-pair {
  height: 100%;
}

.history-principle-grid,
.history-system-grid,
.history-figure-pair,
.history-axis,
.day-plan-grid {
  display: grid;
  gap: .5rem;
}

.history-principle-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.history-system-grid,
.history-figure-pair,
.day-plan-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.history-figure-pair.canada-gis-stack {
  grid-template-columns: minmax(0, 1fr);
  grid-template-rows: repeat(2, minmax(0, 1fr));
}

.history-figure-small {
  min-height: 9rem;
}

.history-figure-small img {
  max-height: 13rem;
}

.history-principle-grid div,
.history-system-grid div,
.day-plan-grid div {
  background: #fff;
  border: var(--border);
  border-left: 4px solid #557a95;
  border-radius: var(--radius);
  display: grid;
  gap: .2rem;
  padding: .6rem;
}

.history-principle-grid div:nth-child(2),
.history-system-grid div:nth-child(2),
.day-plan-grid div:nth-child(2n) {
  border-left-color: #587b4d;
}

.history-principle-grid div:nth-child(3),
.history-system-grid div:nth-child(3) {
  border-left-color: #8a6f3d;
}

.history-system-grid div:nth-child(4) {
  border-left-color: #763f5c;
}

.history-axis {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.history-axis span {
  background: #fff;
  border: var(--border);
  border-left: 4px solid #587b4d;
  border-radius: var(--radius);
  color: var(--color-brand-strong);
  font-size: .82rem;
  font-weight: 800;
  padding: .45rem;
  text-align: center;
}

.day-plan-visual {
  align-content: stretch;
}

.day-plan-columns {
  display: grid;
  gap: .65rem;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  height: 100%;
  min-height: 0;
}

.day-plan-column {
  display: grid;
  gap: .48rem;
  grid-template-rows: auto minmax(0, 1fr);
  min-height: 0;
}

.day-plan-column h3 {
  color: var(--color-brand-strong);
  font-size: .95rem;
  font-weight: 850;
  letter-spacing: .04em;
  margin: 0;
  text-transform: uppercase;
}

.day-plan-list {
  display: grid;
  gap: .42rem;
  grid-auto-rows: minmax(0, 1fr);
  min-height: 0;
}

.day-plan-grid strong,
.day-plan-slot strong {
  color: var(--color-brand-strong);
}

.day-plan-grid .day-plan-slot,
.day-plan-slot {
  align-content: center;
  background: #fff;
  border: var(--border);
  border-left: 4px solid #557a95;
  border-radius: var(--radius);
  display: grid;
  gap: .2rem;
  padding: .58rem .62rem;
}

.day-plan-grid .day-plan-slot span,
.day-plan-slot span {
  color: var(--color-muted);
  font-size: .86rem;
  line-height: 1.22;
}

.day-plan-grid .current,
.day-plan-slot.current {
  background: #fcfaf5;
  border-left-color: #763f5c;
}

.day-plan-grid .featured,
.day-plan-slot.featured {
  border-left-color: #8a6f3d;
}

.day-plan-grid .workshop,
.day-plan-slot.workshop {
  border-left-color: #587b4d;
}

.day-plan-grid .day-plan-break,
.day-plan-slot.day-plan-break {
  background: #f7f3ea;
  border-left-color: #b8a779;
}

.day-plan-grid .day-plan-break strong,
.day-plan-grid .day-plan-break span,
.day-plan-slot.day-plan-break strong,
.day-plan-slot.day-plan-break span {
  color: #6a6149;
}

.day-plan-grid .closing,
.day-plan-slot.closing {
  grid-column: 1 / -1;
}

.project-site-visual,
.capture-visual,
.vector-workbench,
.geometry-choice-visual,
.raster-workbench,
.dem-workbench {
  gap: .75rem;
}

.project-site-map,
.vector-map,
.geometry-mini-map {
  background:
    linear-gradient(30deg, transparent 0 47%, rgba(255, 255, 255, .55) 48% 52%, transparent 53%),
    linear-gradient(140deg, #c8d4b7 0 38%, #b6c8a4 39% 53%, #d7d2b9 54% 100%);
  border: var(--border);
  border-radius: var(--radius);
  min-height: 14rem;
  overflow: hidden;
  position: relative;
}

.site-feature,
.site-marker,
.vector-map span,
.geometry-mini-map span {
  position: absolute;
}

.site-parcel,
.vector-parcel,
.mini-parcel {
  border: 2px solid rgba(34, 40, 23, .62);
  inset: 1.6rem 2.1rem 2rem 2.6rem;
  transform: rotate(-5deg);
}

.site-building,
.vector-building-selected,
.mini-building {
  background: rgba(179, 91, 91, .9);
  border: 2px solid rgba(34, 40, 23, .75);
  color: #fff;
  font-size: .72rem;
  font-weight: 800;
  left: 41%;
  padding: .2rem;
  text-align: center;
  top: 35%;
  transform: rotate(-5deg);
}

.site-building,
.vector-building-selected {
  height: 4.1rem;
  width: 5.4rem;
}

.site-road,
.vector-road,
.mini-road {
  background: #f1efe7;
  border: 2px solid rgba(34, 40, 23, .28);
  bottom: 1rem;
  height: 2.1rem;
  left: -1rem;
  right: -1rem;
  transform: rotate(-13deg);
}

.site-road,
.vector-road,
.mini-road {
  color: transparent;
  font-size: 0;
}

.site-pipe,
.vector-network,
.mini-line {
  border-top: 4px dashed #557a95;
  left: 10%;
  right: 10%;
  top: 68%;
  transform: rotate(12deg);
}

.site-risk,
.vector-risk-zone,
.mini-risk {
  background: rgba(85, 122, 149, .28);
  border: 1px solid rgba(85, 122, 149, .7);
  border-radius: 999px;
  height: 8rem;
  right: -1.2rem;
  top: 1.2rem;
  width: 10rem;
}

.site-point,
.mini-point {
  background: #222817;
  border: 3px solid #fff;
  border-radius: 999px;
  box-shadow: 0 0 0 2px rgba(34, 40, 23, .42);
  height: 1rem;
  left: 22%;
  top: 68%;
  width: 1rem;
}

.site-bim {
  background: #763f5c;
  border-radius: 999px;
  bottom: 38%;
  color: #fff;
  font-size: .72rem;
  font-weight: 800;
  left: 52%;
  padding: .25rem .42rem;
}

.abstraction-choice-grid,
.geometry-choice-grid,
.dem-image-grid,
.raster-zoom-layout {
  display: grid;
  gap: .55rem;
}

.abstraction-choice-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.abstraction-choice-grid div,
.geometry-choice-card {
  background: #fff;
  border: var(--border);
  border-radius: var(--radius);
  display: grid;
  gap: .25rem;
  padding: .65rem;
}

.annotated-capture {
  position: relative;
}

.capture-label {
  background: rgba(255, 253, 247, .92);
  border: 1px solid rgba(34, 40, 23, .24);
  border-radius: 999px;
  box-shadow: 0 8px 18px rgba(34, 40, 23, .16);
  color: var(--color-brand-strong);
  font-size: .74rem;
  font-weight: 800;
  padding: .3rem .5rem;
  position: absolute;
}

.capture-label-layers {
  left: .9rem;
  top: 3.9rem;
}

.capture-label-map {
  right: 1rem;
  top: 1rem;
}

.capture-label-style {
  bottom: 1rem;
  left: 45%;
}

.visual-checklist {
  display: grid;
  gap: .4rem;
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.visual-checklist span {
  background: #fff;
  border: var(--border);
  border-left: 4px solid #587b4d;
  border-radius: var(--radius);
  color: var(--color-brand-strong);
  font-size: .82rem;
  font-weight: 800;
  padding: .45rem;
}

.vector-workbench {
  grid-template-columns: minmax(0, 1fr) minmax(12rem, .78fr);
}

.vector-map {
  min-height: 12.5rem;
}

.vector-building-near {
  background: rgba(245, 204, 92, .86);
  border: 2px solid rgba(34, 40, 23, .58);
  height: 3rem;
  right: 17%;
  top: 22%;
  transform: rotate(8deg);
  width: 4.5rem;
}

.vector-attribute-panel {
  background: #fff;
  border: var(--border);
  border-radius: var(--radius);
  display: grid;
  gap: .45rem;
  padding: .65rem;
}

.rich-table {
  grid-template-columns: minmax(4.5rem, .7fr) minmax(0, 1fr);
}

.rich-table span:nth-child(odd) {
  color: var(--color-muted);
  font-weight: 700;
}

.vector-workbench .layer-strip {
  grid-column: 1 / -1;
}

.geometry-choice-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.geometry-mini-map {
  min-height: 7rem;
}

.geometry-mini-map .mini-building {
  height: 2.2rem;
  width: 3rem;
}

.geometry-choice-card > span {
  color: var(--color-muted);
  font-size: .82rem;
}

.raster-zoom-layout {
  align-items: stretch;
  grid-template-columns: minmax(9rem, .78fr) minmax(8rem, .62fr) minmax(10rem, .8fr);
}

.pixel-axis {
  align-content: center;
}

.pixel-axis img {
  object-fit: contain;
}

.rich-pixel-grid {
  background: #fff;
  border: var(--border);
  border-radius: var(--radius);
  padding: .45rem;
}

.dem-image-grid {
  grid-template-columns: minmax(0, 1fr) minmax(0, .72fr);
}

.terrain-profile {
  background: #fff;
  border: var(--border);
  border-radius: var(--radius);
  height: 4rem;
  overflow: hidden;
  position: relative;
}

.profile-line {
  background: linear-gradient(135deg, transparent 0 12%, #587b4d 13% 16%, transparent 17% 36%, #587b4d 37% 40%, transparent 41% 100%);
  inset: .4rem .8rem .7rem;
  position: absolute;
}

.profile-point {
  background: var(--color-brand);
  border-radius: 999px;
  color: #fff;
  font-size: .7rem;
  font-weight: 800;
  padding: .2rem .35rem;
  position: absolute;
}

.profile-low {
  bottom: .55rem;
  left: 8%;
}

.profile-mid {
  left: 44%;
  top: 1.65rem;
}

.profile-high {
  right: 8%;
  top: .5rem;
}

.bim-site-grid,
.srs-control-grid,
.coordinate-case-grid,
.projection-fit-grid,
.projection-distortion-grid,
.vertical-check-grid,
.leveling-chain,
.treatment-pipeline,
.audit-board {
  display: grid;
  gap: .65rem;
}

.bim-site-grid,
.srs-control-grid,
.coordinate-case-grid,
.vertical-check-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.bim-local-model,
.srs-control-map,
.coordinate-case-map,
.vertical-section,
.leveling-map,
.treatment-map {
  background: #fff;
  border: var(--border);
  border-radius: var(--radius);
  min-height: 13rem;
  overflow: hidden;
  position: relative;
}

.bim-local-model {
  background:
    linear-gradient(90deg, rgba(85, 122, 149, .12) 1px, transparent 1px),
    linear-gradient(0deg, rgba(85, 122, 149, .12) 1px, transparent 1px),
    #fff;
  background-size: 1.4rem 1.4rem;
}

.local-building,
.expected-building,
.shifted-building {
  background: rgba(179, 91, 91, .82);
  border: 2px solid rgba(34, 40, 23, .72);
  position: absolute;
  transform: rotate(-7deg);
}

.local-building {
  height: 4.4rem;
  left: 42%;
  top: 34%;
  width: 5.2rem;
}

.expected-building {
  height: 3.5rem;
  left: 45%;
  top: 38%;
  width: 4.8rem;
}

.shifted-building {
  background: rgba(179, 91, 91, .18);
  border-style: dashed;
  height: 3.5rem;
  left: 56%;
  top: 24%;
  width: 4.8rem;
}

.local-axis,
.case-label,
.projection-label,
.height-label {
  background: rgba(255, 253, 247, .94);
  border: 1px solid rgba(34, 40, 23, .22);
  border-radius: 999px;
  color: var(--color-brand-strong);
  font-size: .72rem;
  font-weight: 800;
  padding: .24rem .42rem;
  position: absolute;
}

.local-axis-x {
  bottom: 1.8rem;
  left: 34%;
}

.local-axis-y {
  left: .9rem;
  top: 34%;
}

.local-origin {
  background: #222817;
  border-radius: 999px;
  bottom: 1.1rem;
  height: .8rem;
  left: 1.1rem;
  position: absolute;
  width: .8rem;
}

.case-label-local {
  bottom: .7rem;
  left: 2rem;
}

.bim-site-context,
.srs-control-map,
.coordinate-case-map,
.leveling-map,
.treatment-map {
  background:
    linear-gradient(30deg, transparent 0 47%, rgba(255, 255, 255, .58) 48% 52%, transparent 53%),
    linear-gradient(140deg, #c8d4b7 0 38%, #b6c8a4 39% 53%, #d7d2b9 54% 100%);
}

.bim-site-context {
  border: var(--border);
  border-radius: var(--radius);
  min-height: 13rem;
  overflow: hidden;
  position: relative;
}

.case-label-srs {
  bottom: .7rem;
  right: .8rem;
}

.case-label-alt {
  left: 1rem;
  top: 1rem;
}

.offset-arrow {
  border-top: 3px solid #763f5c;
  left: 55%;
  position: absolute;
  top: 43%;
  transform: rotate(-30deg);
  width: 5.5rem;
}

.offset-arrow::after {
  border-bottom: .38rem solid transparent;
  border-left: .62rem solid #763f5c;
  border-top: .38rem solid transparent;
  content: "";
  position: absolute;
  right: -.1rem;
  top: -.42rem;
}

.srs-control-cards,
.coordinate-readouts,
.projection-fit-card,
.projection-distortion-card,
.vertical-check-card,
.treatment-card,
.audit-card {
  background: #fff;
  border: var(--border);
  border-radius: var(--radius);
  display: grid;
  gap: .25rem;
  padding: .65rem;
}

.srs-control-cards,
.coordinate-readouts {
  align-content: stretch;
}

.srs-control-cards {
  grid-template-columns: minmax(0, 1fr);
}

.srs-control-cards div {
  background: #fff;
  border: var(--border);
  border-left: 4px solid #557a95;
  border-radius: var(--radius);
  display: grid;
  gap: .2rem;
  padding: .55rem;
}

.coordinate-readouts {
  grid-template-columns: minmax(0, 1fr);
}

.coordinate-readouts div {
  background: #fff;
  border: var(--border);
  border-left: 4px solid #557a95;
  border-radius: var(--radius);
  display: grid;
  gap: .2rem;
  padding: .55rem;
}

.coordinate-readouts span {
  color: var(--color-muted);
  font-size: .86rem;
}

.coordinate-case-map {
  min-height: 14rem;
}

.case-study-visual {
  align-content: stretch;
  gap: .75rem;
  grid-template-rows: max-content minmax(0, 1fr);
}

.case-study-layout,
.case-synthesis-grid {
  display: grid;
  gap: .65rem;
}

.case-study-layout {
  align-items: stretch;
  grid-template-columns: minmax(0, 1fr) minmax(12rem, .72fr);
  min-height: 0;
}

.case-scene {
  background:
    linear-gradient(30deg, transparent 0 47%, rgba(255, 255, 255, .58) 48% 52%, transparent 53%),
    linear-gradient(140deg, #c8d4b7 0 38%, #b6c8a4 39% 53%, #d7d2b9 54% 100%);
  border: var(--border);
  border-radius: var(--radius);
  min-height: 15rem;
  overflow: hidden;
  position: relative;
}

.case-project-figure {
  border-radius: var(--radius);
  min-height: 15rem;
  overflow: hidden;
}

.case-project-figure img {
  height: 100%;
  object-fit: cover;
  width: 100%;
}

.case-synthesis-figure {
  min-height: clamp(19rem, 34vw, 30rem);
}

.slide-viewer .case-study-layout,
.slide-viewer .case-scene,
.slide-viewer .case-project-figure,
.slide-viewer .case-readout-grid {
  height: 100%;
  min-height: 0;
}

.slide-viewer .case-readout-grid {
  align-content: stretch;
}

.case-scene span {
  position: absolute;
}

.case-river {
  background: rgba(85, 122, 149, .36);
  border-inline: 2px solid rgba(85, 122, 149, .7);
  bottom: -1rem;
  left: 35%;
  top: -1rem;
  transform: rotate(14deg);
  width: 5.4rem;
}

.case-bridge-deck {
  background: rgba(34, 40, 23, .86);
  border: 2px solid rgba(255, 253, 247, .9);
  height: .85rem;
  left: 13%;
  top: 48%;
  transform: rotate(-8deg);
  width: 72%;
}

.case-bridge-pier {
  background: rgba(138, 111, 61, .9);
  height: 3.1rem;
  top: 40%;
  width: .7rem;
}

.case-bridge-pier-a {
  left: 41%;
}

.case-bridge-pier-b {
  left: 58%;
}

.case-flood-zone,
.case-setback {
  background: rgba(118, 63, 92, .18);
  border: 2px dashed rgba(118, 63, 92, .72);
  border-radius: var(--radius);
}

.case-flood-zone {
  bottom: 1.2rem;
  left: 22%;
  right: 18%;
  top: 1.4rem;
}

.case-rail {
  background: repeating-linear-gradient(90deg, #222817 0 .55rem, #f5f0e4 .55rem .85rem);
  height: .55rem;
  left: 5%;
  right: 5%;
  top: 50%;
  transform: rotate(-3deg);
}

.case-platform {
  background: rgba(245, 240, 228, .9);
  border: 2px solid rgba(34, 40, 23, .34);
  height: 2.2rem;
  left: 24%;
  top: 40%;
  transform: rotate(-3deg);
  width: 48%;
}

.case-station-hall {
  background: rgba(179, 91, 91, .86);
  border: 2px solid rgba(34, 40, 23, .72);
  height: 4rem;
  left: 39%;
  top: 22%;
  transform: rotate(6deg);
  width: 5.5rem;
}

.case-flow {
  border-top: 4px solid rgba(85, 122, 149, .86);
  left: 11%;
  top: 72%;
  transform: rotate(-16deg);
  width: 74%;
}

.case-parcel-boundary {
  border: 2px solid rgba(34, 40, 23, .62);
  inset: 1.25rem 1.9rem 1.45rem 2.25rem;
  transform: rotate(-4deg);
}

.case-street {
  background: rgba(34, 40, 23, .18);
  bottom: 0;
  height: 3.3rem;
  left: 0;
  right: 0;
}

.case-building-block {
  background: rgba(179, 91, 91, .88);
  border: 2px solid rgba(34, 40, 23, .72);
  height: 5.6rem;
  left: 42%;
  top: 29%;
  transform: rotate(-4deg);
  width: 5rem;
}

.case-setback {
  inset: 2.4rem 3.2rem 4rem 3.4rem;
}

.case-basement {
  background: rgba(85, 122, 149, .22);
  border: 2px dashed rgba(85, 122, 149, .78);
  height: 4.4rem;
  left: 34%;
  top: 39%;
  transform: rotate(-4deg);
  width: 7rem;
}

.case-network {
  border-top: 4px dashed rgba(88, 123, 77, .9);
  bottom: 2.2rem;
  left: 8%;
  right: 7%;
}

.case-problem-badge {
  background: rgba(255, 253, 247, .94);
  border: 1px solid rgba(118, 63, 92, .35);
  border-left: 4px solid #763f5c;
  border-radius: var(--radius);
  bottom: .75rem;
  color: var(--color-brand-strong);
  font-size: .78rem;
  font-weight: 800;
  left: .75rem;
  max-width: 70%;
  padding: .38rem .48rem;
}

.case-readout-grid {
  display: grid;
  gap: .55rem;
}

.case-readout-card,
.case-synthesis-card {
  background: #fff;
  border: var(--border);
  border-left: 4px solid #557a95;
  border-radius: var(--radius);
  display: grid;
  gap: .22rem;
  padding: .62rem;
}

.case-readout-card.warning,
.case-synthesis-card.warning {
  border-left-color: #763f5c;
}

.case-readout-card strong,
.case-synthesis-card strong {
  color: var(--color-brand-strong);
}

.case-readout-card span,
.case-synthesis-card span {
  color: var(--color-muted);
  font-size: .86rem;
}

.case-synthesis-grid {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.coordinate-pin {
  background: #763f5c;
  border: 3px solid #fff;
  border-radius: 999px;
  box-shadow: 0 0 0 2px rgba(34, 40, 23, .28);
  height: 1rem;
  left: 52%;
  position: absolute;
  top: 43%;
  width: 1rem;
}

.projection-fit-grid {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.projection-fit-card {
  min-height: 7rem;
}

.projection-mini {
  border: 1px solid rgba(34, 40, 23, .18);
  border-radius: calc(var(--radius) - .25rem);
  min-height: 4rem;
  overflow: hidden;
  position: relative;
}

.projection-mini.world {
  background: radial-gradient(circle at 30% 45%, #557a95 0 18%, transparent 19%), radial-gradient(circle at 70% 45%, #587b4d 0 14%, transparent 15%), #dce8ea;
}

.projection-mini.europe {
  background: linear-gradient(145deg, #dce8ea 0 42%, #587b4d 43% 70%, #dce8ea 71%);
}

.projection-mini.france {
  background: #dce8ea;
}

.projection-mini.france::before {
  background: #587b4d;
  clip-path: polygon(42% 4%, 72% 18%, 76% 56%, 53% 92%, 23% 72%, 18% 30%);
  content: "";
  inset: .5rem;
  position: absolute;
}

.projection-mini.site {
  background: linear-gradient(135deg, #c8d4b7, #d7d2b9);
}

.projection-mini.site::before {
  border: 2px solid #763f5c;
  content: "";
  height: 2.1rem;
  left: 36%;
  position: absolute;
  top: 28%;
  transform: rotate(-8deg);
  width: 2.8rem;
}

.projection-distortion-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.distortion-shape {
  background: rgba(85, 122, 149, .28);
  border: 2px solid #557a95;
  height: 4.8rem;
  margin: .3rem auto .2rem;
  width: 5.5rem;
}

.distortion-conformal {
  border-radius: .2rem;
  transform: skew(-8deg);
}

.distortion-equivalent {
  height: 3.7rem;
  transform: skew(16deg);
  width: 6.8rem;
}

.distortion-distance {
  border-radius: 999px 999px .2rem .2rem;
  transform: scaleX(.8);
}

.vertical-section {
  background: linear-gradient(180deg, #e6eef3 0 45%, #d7d2b9 46% 100%);
}

.section-terrain {
  background: #587b4d;
  clip-path: polygon(0 70%, 20% 58%, 38% 68%, 58% 44%, 77% 55%, 100% 35%, 100% 100%, 0 100%);
  inset: 0;
  position: absolute;
}

.section-building {
  background: #b35b5b;
  border: 2px solid rgba(34, 40, 23, .6);
  bottom: 34%;
  height: 3.5rem;
  left: 53%;
  position: absolute;
  width: 4rem;
}

.geoid-line,
.ellipsoid-line,
.project-zero-line,
.leveling-line {
  left: 0;
  position: absolute;
  right: 0;
}

.geoid-line {
  border-top: 3px solid #557a95;
  bottom: 31%;
}

.ellipsoid-line {
  border-top: 2px dashed #763f5c;
  bottom: 18%;
}

.project-zero-line {
  border-top: 2px solid #222817;
  bottom: 49%;
}

.height-label-ngf {
  left: 1rem;
  bottom: 29%;
}

.height-label-h {
  bottom: 15%;
  right: 1rem;
}

.height-label-z {
  right: 1rem;
  bottom: 47%;
}

.leveling-chain {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.leveling-map {
  min-height: 10rem;
}

.benchmark {
  background: #222817;
  border: 3px solid #fff;
  border-radius: 999px;
  box-shadow: 0 0 0 2px rgba(34, 40, 23, .24);
  height: 1rem;
  position: absolute;
  width: 1rem;
}

.benchmark-1 {
  left: 12%;
  top: 60%;
}

.benchmark-2 {
  left: 38%;
  top: 45%;
}

.benchmark-3 {
  left: 65%;
  top: 52%;
}

.benchmark-4 {
  left: 84%;
  top: 32%;
}

.leveling-line {
  border-top: 3px dashed #557a95;
  left: 13%;
  right: 12%;
  top: 49%;
  transform: rotate(-8deg);
}

.treatment-pipeline {
  grid-template-columns: repeat(5, minmax(0, 1fr));
}

.treatment-card {
  border-left: 4px solid #557a95;
}

.treatment-map {
  min-height: 14rem;
}

.buffer-zone {
  background: rgba(85, 122, 149, .25);
  border: 2px solid rgba(85, 122, 149, .8);
  border-radius: 999px;
  height: 8rem;
  left: 27%;
  position: absolute;
  top: 24%;
  width: 11rem;
}

.intersection-zone {
  background: rgba(118, 63, 92, .45);
  border: 2px solid rgba(118, 63, 92, .9);
  height: 4.5rem;
  left: 43%;
  position: absolute;
  top: 34%;
  transform: rotate(-6deg);
  width: 5rem;
}

.audit-board {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.audit-card {
  border-left: 4px solid #8a6f3d;
}

.territory-question-grid,
.layer-stack-board,
.qualification-strip,
.data-ticket-grid,
.execution-modes-grid,
.responsibility-board,
.weather-compare-grid,
.weather-timeline,
.climae-chain,
.location-grid,
.validation-flow,
.situated-ai-stack,
.ifc-pipeline,
.data-cube {
  display: grid;
  gap: .65rem;
}

.territory-question-grid,
.data-ticket-grid,
.execution-modes-grid,
.weather-compare-grid,
.location-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.territory-question-grid {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.territory-question-grid div,
.layer-card,
.data-ticket,
.mode-card,
.weather-chart,
.weather-event,
.indicator-card,
.responsibility-card,
.location-card,
.pipeline-node,
.cube-layer,
.stack-layer,
.validation-node,
.validation-gate {
  background: #fff;
  border: var(--border);
  border-radius: var(--radius);
  display: grid;
  gap: .25rem;
  padding: .65rem;
}

.territory-question-grid div,
.mode-card,
.responsibility-card,
.location-card,
.stack-layer {
  border-left: 4px solid #557a95;
}

.territory-question-grid span,
.layer-card span,
.data-ticket span,
.data-ticket em,
.mode-card span,
.weather-chart em,
.weather-event span,
.indicator-card span,
.responsibility-card span,
.location-card span,
.pipeline-node span,
.cube-layer span,
.stack-layer span,
.validation-node span {
  color: var(--color-muted);
  font-size: .82rem;
}

.layer-stack-board {
  grid-template-columns: repeat(5, minmax(0, 1fr));
}

.layer-card.ortho {
  border-top: 4px solid #557a95;
}

.layer-card.cadastre {
  border-top: 4px solid #8a6f3d;
}

.layer-card.terrain,
.mode-card.modeler,
.responsibility-card.tool,
.location-card.local {
  border-top: 4px solid #587b4d;
}

.layer-card.network,
.mode-card.qgis,
.responsibility-card.data,
.location-card.api {
  border-top: 4px solid #557a95;
}

.layer-card.local,
.mode-card.sql,
.responsibility-card.human,
.location-card.cloud {
  border-top: 4px solid #763f5c;
}

.qualification-strip {
  grid-template-columns: repeat(5, minmax(0, 1fr));
}

.qualification-strip span {
  background: #e8eadf;
  border-radius: 999px;
  color: var(--color-brand-strong);
  font-size: .82rem;
  font-weight: 800;
  padding: .4rem .55rem;
  text-align: center;
}

.enriched-map,
.compact-context-map {
  min-height: 13rem;
}

.soil-band {
  background: rgba(138, 111, 61, .32);
  border-top: 2px solid rgba(138, 111, 61, .8);
  bottom: 0;
  height: 45%;
  left: 0;
  position: absolute;
  right: 0;
  transform: skewY(-5deg);
  transform-origin: left bottom;
}

.flow-arrow {
  border-top: 3px solid #557a95;
  position: absolute;
  width: 5.5rem;
}

.flow-arrow::after {
  border-bottom: .36rem solid transparent;
  border-left: .58rem solid #557a95;
  border-top: .36rem solid transparent;
  content: "";
  position: absolute;
  right: -.12rem;
  top: -.4rem;
}

.flow-a {
  left: 18%;
  top: 28%;
  transform: rotate(28deg);
}

.flow-b {
  right: 18%;
  top: 54%;
  transform: rotate(155deg);
}

.data-ticket {
  border-left: 4px solid #587b4d;
}

.data-ticket.warning {
  border-left-color: #8a6f3d;
}

.data-ticket.stop {
  border-left-color: #763f5c;
}

.data-ticket em {
  font-style: normal;
  font-weight: 800;
}

.territory-photo-visual {
  align-content: stretch;
  gap: .6rem;
  grid-template-rows: max-content minmax(0, 1fr) auto;
  padding: .55rem;
}

.territory-photo-figure {
  background: #fff;
  border: var(--border);
  border-radius: var(--radius);
  margin: 0;
  min-height: 18rem;
  overflow: hidden;
  padding: .35rem;
  position: relative;
}

.territory-photo-figure img {
  border-radius: calc(var(--radius) - .25rem);
  display: block;
  height: 100%;
  object-fit: cover;
  width: 100%;
}

.territory-photo-label {
  background: rgba(255, 253, 247, .93);
  border: 1px solid rgba(34, 40, 23, .18);
  border-left: 4px solid #557a95;
  border-radius: calc(var(--radius) - .15rem);
  box-shadow: 0 10px 24px rgba(34, 40, 23, .18);
  color: var(--color-brand-strong);
  display: grid;
  gap: .08rem;
  max-width: 12.5rem;
  padding: .42rem .55rem;
  position: absolute;
}

.territory-photo-label strong {
  font-size: .86rem;
  line-height: 1.08;
}

.territory-photo-label strong::after,
.territory-caption-strip strong::after {
  content: " :";
}

.territory-photo-label span {
  color: var(--color-muted);
  font-size: .74rem;
  line-height: 1.16;
}

.decision-building {
  right: 33%;
  top: 34%;
}

.decision-access {
  bottom: 13%;
  right: 4%;
}

.decision-slope {
  left: 16%;
  top: 28%;
}

.decision-water {
  bottom: 12%;
  left: 5%;
}

.risk-project {
  left: 43%;
  top: 28%;
}

.risk-flood {
  bottom: 18%;
  left: 6%;
}

.risk-slope {
  border-left-color: #763f5c;
  right: 9%;
  top: 43%;
}

.risk-scale {
  border-left-color: #8a6f3d;
  left: 7%;
  top: 9%;
}

.subsurface-borehole {
  left: 19%;
  top: 31%;
}

.subsurface-clay {
  border-left-color: #8a6f3d;
  left: 42%;
  top: 43%;
}

.subsurface-water {
  bottom: 25%;
  left: 6%;
}

.subsurface-cavity {
  border-left-color: #763f5c;
  right: 7%;
  top: 49%;
}

.territory-caption-strip {
  display: grid;
  gap: .55rem;
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.territory-caption-strip div {
  background: #fff;
  border: var(--border);
  border-left: 4px solid #557a95;
  border-radius: var(--radius);
  display: grid;
  gap: .18rem;
  padding: .52rem .6rem;
}

.territory-caption-strip span {
  color: var(--color-muted);
  font-size: .78rem;
  line-height: 1.2;
}

.slide-viewer .territory-photo-visual,
.slide-viewer .territory-photo-figure {
  min-height: 0;
}

.saint-cloud-package-visual {
  gap: .65rem;
  grid-template-columns: minmax(0, 1fr) minmax(11.5rem, .42fr);
  grid-template-rows: max-content minmax(0, 1fr);
  padding: .55rem;
}

.saint-cloud-package-visual .visual-label {
  grid-column: 1 / -1;
}

.saint-cloud-plan-figure {
  align-items: stretch;
  background: #fff;
  border: var(--border);
  border-radius: var(--radius);
  display: grid;
  margin: 0;
  min-height: 0;
  overflow: hidden;
  padding: .35rem;
}

.saint-cloud-plan-figure img {
  border-radius: calc(var(--radius) - .25rem);
  display: block;
  height: 100%;
  min-height: 0;
  object-fit: contain;
  width: 100%;
}

.saint-cloud-plan-stack {
  align-content: stretch;
  display: grid;
  gap: .55rem;
  min-height: 0;
}

.saint-cloud-plan-card {
  background: #fff;
  border: var(--border);
  border-left: 4px solid #557a95;
  border-radius: var(--radius);
  display: grid;
  gap: .35rem;
  padding: .72rem .76rem;
}

.saint-cloud-plan-card:nth-child(2) {
  border-left-color: #8a6f3d;
}

.saint-cloud-plan-card:nth-child(3) {
  border-left-color: #587b4d;
}

.saint-cloud-plan-card strong {
  color: var(--color-brand-strong);
  font-size: .92rem;
  line-height: 1.12;
}

.saint-cloud-plan-card strong::after {
  content: " :";
}

.saint-cloud-plan-card span {
  color: var(--color-muted);
  font-size: .8rem;
  line-height: 1.28;
}

.slide-viewer .saint-cloud-package-visual,
.slide-viewer .saint-cloud-plan-figure,
.slide-viewer .saint-cloud-plan-stack {
  min-height: 0;
}

.network-round-visual {
  align-content: start;
  gap: .65rem;
  grid-template-rows: max-content auto auto;
  padding: .55rem;
}

.network-round-grid {
  align-items: start;
  display: grid;
  gap: .72rem;
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.network-round-card {
  align-content: start;
  background: #fff;
  border: var(--border);
  border-top: 5px solid #557a95;
  border-radius: var(--radius);
  display: grid;
  gap: .48rem;
  grid-template-rows: auto auto auto;
  justify-items: center;
  min-height: 0;
  padding: .7rem .62rem;
  text-align: center;
}

.network-round-card.open-data {
  border-top-color: #587b4d;
}

.network-round-card.pcrs {
  border-top-color: #557a95;
}

.network-round-card.dt-dict {
  border-top-color: #8a6f3d;
}

.network-round-card.recolement {
  border-top-color: #763f5c;
}

.network-round-figure {
  aspect-ratio: 1;
  background: #f6f7f2;
  border: 5px solid #fff;
  border-radius: 999px;
  box-shadow: 0 12px 28px rgba(34, 40, 23, .18);
  margin: 0;
  max-width: 100%;
  overflow: hidden;
  width: min(100%, clamp(8.8rem, 12.5vw, 14rem));
}

.network-round-figure img {
  display: block;
  height: 100%;
  object-fit: cover;
  width: 100%;
}

.network-round-card strong {
  color: var(--color-brand-strong);
  font-size: clamp(.95rem, 1vw, 1.12rem);
  line-height: 1.12;
}

.network-round-card strong::after {
  content: " :";
}

.network-round-card span {
  color: var(--color-muted);
  font-size: .82rem;
  line-height: 1.28;
}

.slide-viewer .network-round-visual,
.slide-viewer .network-round-grid {
  min-height: 0;
}

.slide-viewer .network-round-card {
  gap: .38rem;
  padding: .5rem .48rem;
}

.slide-viewer .network-round-figure {
  width: min(100%, clamp(9rem, 11.5vw, 13.25rem));
}

.source-triage-grid,
.scale-ladder,
.data-use-matrix,
.workshop-run-sheet,
.output-triptych,
.execution-proof-matrix,
.weather-taxonomy-grid,
.uncertainty-board,
.prompt-context-grid,
.format-contract-grid,
.execution-log {
  display: grid;
  gap: .65rem;
}

.source-triage-grid {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.source-card,
.scale-step,
.run-row,
.weather-type,
.uncertainty-card,
.prompt-card,
.context-card,
.format-card,
.log-line {
  background: #fff;
  border: var(--border);
  border-radius: var(--radius);
  display: grid;
  gap: .25rem;
  padding: .65rem;
}

.source-card span,
.scale-step span,
.run-row span,
.output-panel span,
.weather-type span,
.uncertainty-card span,
.prompt-card span,
.context-card span,
.format-card span,
.log-line span {
  color: var(--color-muted);
  font-size: .82rem;
}

.source-card.reference,
.context-card.data,
.format-card.geo,
.log-line.ok {
  border-left: 4px solid #557a95;
}

.source-card.local,
.context-card.tools,
.format-card.raster {
  border-left: 4px solid #587b4d;
}

.source-card.regulation,
.context-card.rules,
.format-card.service,
.log-line.warn {
  border-left: 4px solid #8a6f3d;
}

.source-card.project,
.context-card.validation,
.format-card.output,
.log-line.review {
  border-left: 4px solid #763f5c;
}

.source-route-map,
.scale-decision-map,
.indicator-map {
  background:
    linear-gradient(30deg, transparent 0 47%, rgba(255, 255, 255, .55) 48% 52%, transparent 53%),
    linear-gradient(140deg, #c8d4b7 0 38%, #b6c8a4 39% 53%, #d7d2b9 54% 100%);
  border: var(--border);
  border-radius: var(--radius);
  min-height: 13rem;
  overflow: hidden;
  position: relative;
}

.source-pin {
  align-items: center;
  background: #fffdf7;
  border: 2px solid #557a95;
  border-radius: 999px;
  color: var(--color-brand-strong);
  display: inline-flex;
  font-size: .72rem;
  font-weight: 900;
  height: 2.2rem;
  justify-content: center;
  position: absolute;
  width: 2.2rem;
  z-index: 3;
}

.pin-a {
  left: 10%;
  top: 12%;
}

.pin-b {
  right: 14%;
  top: 17%;
}

.pin-c {
  left: 20%;
  bottom: 14%;
}

.pin-d {
  right: 24%;
  bottom: 18%;
}

.scale-box {
  border: 2px solid rgba(118, 63, 92, .78);
  color: var(--color-brand-strong);
  font-size: .75rem;
  font-weight: 900;
  position: absolute;
  text-align: center;
}

.scale-box.region {
  inset: 8% 7%;
}

.scale-box.site {
  bottom: 17%;
  left: 20%;
  right: 22%;
  top: 23%;
}

.scale-box.asset {
  bottom: 32%;
  left: 39%;
  right: 35%;
  top: 38%;
}

.scale-ladder {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.data-use-matrix,
.execution-proof-matrix {
  background: #fff;
  border: var(--border);
  border-radius: var(--radius);
  font-size: .84rem;
  grid-template-columns: 1fr 1.25fr 1fr 1fr;
  overflow: hidden;
}

.execution-proof-matrix {
  grid-template-columns: .85fr 1.25fr 1.25fr;
}

.data-use-matrix > div,
.execution-proof-matrix > div {
  border-top: var(--border);
  padding: .45rem .55rem;
}

.data-use-matrix .matrix-head,
.execution-proof-matrix .matrix-head {
  background: #222817;
  color: #fff;
  font-weight: 900;
}

.workshop-run-sheet {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.run-row {
  border-left: 4px solid #557a95;
}

.output-triptych {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.output-panel {
  background: #fff;
  border: var(--border);
  border-radius: var(--radius);
  min-height: 10rem;
  overflow: hidden;
  padding: .65rem;
  position: relative;
}

.output-panel.map {
  background:
    linear-gradient(135deg, rgba(200, 212, 183, .86), rgba(215, 210, 185, .86));
}

.output-panel.table,
.output-panel.note {
  align-content: start;
  display: grid;
  gap: .4rem;
}

.output-panel.table span,
.output-panel.note span {
  background: #e8eadf;
  border-radius: calc(var(--radius) - .25rem);
  padding: .35rem;
}

.weather-taxonomy-grid {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.weather-type {
  min-height: 6.5rem;
}

.weather-type.burst {
  border-top: 4px solid #763f5c;
}

.weather-type.cumulative {
  border-top: 4px solid #557a95;
}

.weather-type.repeat {
  border-top: 4px solid #587b4d;
}

.weather-type.chain {
  border-top: 4px solid #8a6f3d;
}

.weather-mini-lines {
  background: #fff;
  border: var(--border);
  border-radius: var(--radius);
  display: grid;
  gap: .45rem;
  padding: .7rem;
}

.weather-mini-lines span {
  display: block;
  height: 1.4rem;
  position: relative;
}

.line-burst {
  background: linear-gradient(90deg, transparent 0 42%, #763f5c 43% 49%, transparent 50%);
}

.line-cumulative {
  background: linear-gradient(90deg, rgba(85, 122, 149, .18), rgba(85, 122, 149, .9));
}

.line-repeat {
  background: repeating-linear-gradient(90deg, #587b4d 0 .5rem, transparent .55rem 1.5rem);
}

.line-chain {
  background: linear-gradient(90deg, #8a6f3d 0 45%, transparent 46% 58%, #557a95 59% 100%);
}

.indicator-hotspot {
  background: rgba(118, 63, 92, .58);
  border: 2px solid rgba(118, 63, 92, .9);
  border-radius: 999px;
  position: absolute;
  z-index: 3;
}

.hotspot-a {
  height: 4.6rem;
  left: 32%;
  top: 34%;
  width: 4.6rem;
}

.hotspot-b {
  bottom: 16%;
  height: 3.4rem;
  right: 21%;
  width: 3.4rem;
}

.indicator-legend {
  align-items: center;
  display: grid;
  gap: .45rem;
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.indicator-legend span,
.indicator-legend strong,
.format-warning-strip span {
  border-radius: 999px;
  font-size: .78rem;
  font-weight: 900;
  padding: .38rem .5rem;
  text-align: center;
}

.indicator-legend .faible {
  background: rgba(88, 123, 77, .16);
}

.indicator-legend .moyen {
  background: rgba(138, 111, 61, .2);
}

.indicator-legend .fort,
.indicator-legend strong {
  background: rgba(118, 63, 92, .18);
}

.uncertainty-board {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.prompt-context-grid {
  grid-template-columns: 1.1fr repeat(4, minmax(0, 1fr));
}

.prompt-card {
  border-left: 4px solid #222817;
}

.format-contract-grid {
  grid-template-columns: repeat(5, minmax(0, 1fr));
}

.format-card.bim {
  border-left: 4px solid #763f5c;
}

.format-warning-strip {
  display: grid;
  gap: .45rem;
  grid-template-columns: repeat(5, minmax(0, 1fr));
}

.format-warning-strip span {
  background: #e8eadf;
  color: var(--color-brand-strong);
}

.execution-log {
  background: #222817;
  border-radius: var(--radius);
  color: #f6f7f2;
  gap: .35rem;
  padding: .7rem;
}

.log-line {
  background: rgba(255, 253, 247, .96);
  color: var(--color-brand-strong);
  grid-template-columns: minmax(6rem, .45fr) minmax(0, 1fr);
}

.qgis-screen {
  background: #eef1e8;
  border: var(--border);
  border-radius: var(--radius);
  display: grid;
  gap: .5rem;
  grid-template-columns: minmax(8rem, .42fr) minmax(0, 1fr);
  min-height: 15rem;
  overflow: hidden;
  padding: .5rem;
}

.qgis-layers,
.qgis-map,
.qgis-table {
  background: #fff;
  border: var(--border);
  border-radius: calc(var(--radius) - .25rem);
}

.qgis-layers {
  align-content: start;
  display: grid;
  gap: .35rem;
  padding: .55rem;
}

.qgis-layers span {
  background: #e8eadf;
  border-radius: 999px;
  color: var(--color-brand-strong);
  font-size: .8rem;
  font-weight: 700;
  padding: .28rem .42rem;
}

.qgis-map {
  background:
    linear-gradient(30deg, transparent 0 47%, rgba(255, 255, 255, .55) 48% 52%, transparent 53%),
    linear-gradient(140deg, #c8d4b7 0 38%, #b6c8a4 39% 53%, #d7d2b9 54% 100%);
  min-height: 10rem;
  overflow: hidden;
  position: relative;
}

.qgis-table {
  display: grid;
  font-size: .82rem;
  grid-column: 1 / -1;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  padding: .45rem;
}

.qgis-table span {
  border-top: var(--border);
  padding: .25rem;
}

.model-graph {
  background: #eef1e8;
  border: var(--border);
  border-radius: var(--radius);
  display: grid;
  gap: .75rem;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  min-height: 15rem;
  overflow: hidden;
  padding: .85rem;
  position: relative;
}

.model-node {
  align-content: center;
  font-weight: 800;
  min-height: 4.5rem;
  text-align: center;
  z-index: 1;
}

.model-node.input {
  border-top: 4px solid #557a95;
}

.model-node.process {
  border-top: 4px solid #587b4d;
}

.model-node.output {
  border-top: 4px solid #763f5c;
  grid-column: 4;
  grid-row: 1 / span 2;
}

.model-link {
  border-top: 3px solid rgba(34, 40, 23, .28);
  position: absolute;
  width: 8rem;
}

.link-1 {
  left: 22%;
  top: 31%;
}

.link-2 {
  left: 22%;
  top: 61%;
}

.link-3 {
  left: 46%;
  top: 31%;
}

.link-4 {
  left: 46%;
  top: 61%;
}

.link-5 {
  right: 18%;
  top: 48%;
}

.sql-snippet {
  background: #222817;
  border-radius: var(--radius);
  color: #f6f7f2;
  display: grid;
  font-family: ui-monospace, SFMono-Regular, Consolas, "Liberation Mono", monospace;
  font-size: .82rem;
  gap: .18rem;
  overflow: auto;
  padding: .85rem;
}

.responsibility-board {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.responsibility-card.agent {
  border-left-color: #763f5c;
}

.responsibility-card.tool {
  border-left-color: #587b4d;
}

.responsibility-card.data {
  border-left-color: #557a95;
}

.responsibility-card.human {
  border-left-color: #8a6f3d;
}

.weather-chart {
  align-content: end;
  min-height: 8rem;
}

.weather-line {
  border-top: 4px solid #557a95;
  display: block;
  height: 3rem;
  margin: .5rem 0;
  position: relative;
}

.weather-line.flat {
  transform: translateY(1.4rem);
}

.weather-line.peaked {
  border-top: 0;
}

.weather-line.peaked::before {
  background: linear-gradient(135deg, transparent 0 20%, #557a95 21% 24%, transparent 25% 38%, #557a95 39% 44%, transparent 45% 100%);
  content: "";
  inset: 0;
  position: absolute;
}

.weather-timeline {
  grid-template-columns: 1.2fr .8fr .8fr 1fr;
}

.weather-event {
  min-height: 6rem;
}

.weather-event.dry {
  border-top: 4px solid #8a6f3d;
}

.weather-event.transition {
  border-top: 4px solid #763f5c;
}

.weather-event.rain,
.cube-layer.weather {
  border-top: 4px solid #557a95;
}

.weather-event.after,
.cube-layer.decision {
  border-top: 4px solid #587b4d;
}

.slope-scene {
  background: linear-gradient(180deg, #e6eef3 0 42%, #d7d2b9 43% 100%);
  border: var(--border);
  border-radius: var(--radius);
  min-height: 15rem;
  overflow: hidden;
  position: relative;
}

.slope-road {
  background: #4f5552;
  height: 2.1rem;
  left: -1rem;
  position: absolute;
  right: -1rem;
  top: 36%;
  transform: rotate(-5deg);
}

.slope-fill {
  background: #8a6f3d;
  clip-path: polygon(0 62%, 100% 30%, 100% 100%, 0 100%);
  inset: 0;
  position: absolute;
}

.slope-cracks {
  background:
    linear-gradient(120deg, transparent 0 38%, #763f5c 39% 41%, transparent 42%),
    linear-gradient(70deg, transparent 0 52%, #763f5c 53% 55%, transparent 56%);
  bottom: 24%;
  height: 5rem;
  left: 18%;
  position: absolute;
  width: 34%;
}

.slope-rain {
  background: repeating-linear-gradient(110deg, transparent 0 .7rem, rgba(85, 122, 149, .85) .72rem .82rem, transparent .84rem 1.35rem);
  height: 6rem;
  position: absolute;
  right: 4%;
  top: 0;
  width: 40%;
}

.slope-water {
  background: rgba(85, 122, 149, .44);
  border-top: 2px solid rgba(85, 122, 149, .9);
  bottom: 0;
  height: 22%;
  left: 0;
  position: absolute;
  right: 0;
}

.slope-flow-a {
  left: 38%;
  top: 44%;
  transform: rotate(18deg);
}

.slope-flow-b {
  left: 56%;
  top: 59%;
  transform: rotate(32deg);
}

.slope-label-top {
  left: 58%;
  top: 32%;
}

.slope-label-bottom {
  bottom: .7rem;
  left: 1rem;
}

.climae-chain,
.ifc-pipeline {
  grid-template-columns: repeat(8, minmax(0, 1fr));
}

.chain-node {
  background: #fff;
  border: var(--border);
  border-top: 4px solid #587b4d;
  border-radius: var(--radius);
  color: var(--color-brand-strong);
  font-size: .85rem;
  font-weight: 800;
  min-height: 4.2rem;
  padding: .6rem;
}

.indicator-card {
  border-left: 5px solid #763f5c;
}

.data-cube {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.adaptation-context-visual,
.adaptation-options-visual {
  align-content: stretch;
}

.terrain-context-visual,
.adaptation-response-visual {
  align-content: stretch;
  gap: .75rem;
}

.context-weather-strip {
  align-items: center;
  background: #fff;
  border: var(--border);
  border-left: 5px solid #557a95;
  border-radius: var(--radius);
  display: grid;
  gap: .75rem;
  grid-template-columns: auto minmax(0, 1fr) auto;
  padding: .7rem .85rem;
}

.context-weather-strip strong {
  color: var(--color-brand-strong);
}

.context-weather-strip span {
  color: var(--color-brand-strong);
  font-weight: 800;
}

.context-weather-strip em {
  color: var(--color-muted);
  font-style: normal;
}

.terrain-case-grid {
  display: grid;
  gap: .75rem;
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.terrain-photo-card-grid {
  display: grid;
  gap: .65rem;
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.terrain-photo-card {
  background: #fff;
  border: var(--border);
  border-top: 5px solid #8a6f3d;
  border-radius: var(--radius);
  display: grid;
  gap: .42rem;
  grid-template-rows: minmax(16rem, 1fr) auto;
  min-height: 0;
  padding: .45rem;
}

.terrain-photo-card.talweg {
  border-top-color: #763f5c;
}

.terrain-photo-card.drainage {
  border-top-color: #557a95;
}

.terrain-photo-figure {
  background: #fff;
  border-radius: var(--radius);
  display: grid;
  min-height: 16rem;
  overflow: hidden;
}

.terrain-photo-figure img {
  border-radius: calc(var(--radius) - .25rem);
  display: block;
  height: 100%;
  object-fit: cover;
  width: 100%;
}

.terrain-photo-caption {
  display: grid;
  gap: .16rem;
  padding: .05rem .12rem .15rem;
}

.terrain-photo-caption strong {
  color: var(--color-brand-strong);
  font-size: .94rem;
}

.terrain-photo-caption p {
  color: var(--color-muted);
  font-size: .8rem;
  line-height: 1.25;
  margin: 0;
}

.terrain-photo-caption small {
  color: var(--color-brand-strong);
  font-size: .73rem;
  font-weight: 850;
}

.terrain-case-card {
  align-content: start;
  background: #fff;
  border: var(--border);
  border-radius: var(--radius);
  display: grid;
  gap: .45rem;
  grid-template-rows: minmax(12rem, 1fr) auto auto auto;
  padding: .65rem;
}

.terrain-case-card.diffuse {
  border-top: 5px solid #8a6f3d;
}

.terrain-case-card.talweg {
  border-top: 5px solid #763f5c;
}

.terrain-case-card.drainage {
  border-top: 5px solid #557a95;
}

.terrain-case-card strong {
  color: var(--color-brand-strong);
}

.terrain-case-card p {
  color: var(--color-muted);
  font-size: .84rem;
  line-height: 1.32;
  margin: 0;
}

.terrain-case-card small {
  color: var(--color-brand-strong);
  font-size: .76rem;
  font-weight: 850;
}

.terrain-case-map {
  background:
    linear-gradient(135deg, rgba(232, 234, 223, .94), rgba(215, 210, 185, .78)),
    repeating-linear-gradient(24deg, transparent 0 1.25rem, rgba(85, 122, 149, .14) 1.28rem 1.38rem);
  border: var(--border);
  border-radius: calc(var(--radius) - .15rem);
  height: 100%;
  min-height: 12rem;
  overflow: hidden;
  position: relative;
}

.terrain-case-map span,
.response-site-map span {
  position: absolute;
}

.mnt-contour,
.response-contour {
  border: 2px solid rgba(85, 122, 149, .35);
  border-radius: 50%;
  transform: rotate(-16deg);
}

.terrain-case-map .contour-a,
.response-site-map .contour-a {
  height: 14rem;
  left: -10%;
  top: 4%;
  width: 125%;
}

.terrain-case-map .contour-b,
.response-site-map .contour-b {
  height: 9rem;
  left: 7%;
  top: 22%;
  width: 92%;
}

.terrain-case-map .contour-c {
  height: 5.6rem;
  left: 24%;
  top: 36%;
  width: 54%;
}

.mnt-road,
.response-road {
  background: #4f5552;
  height: 1.45rem;
  left: -1rem;
  right: -1rem;
  top: 49%;
  transform: rotate(-7deg);
  z-index: 5;
}

.mnt-slope {
  background: rgba(138, 111, 61, .42);
  clip-path: polygon(0 35%, 100% 8%, 100% 100%, 0 100%);
  inset: 38% 0 0;
  z-index: 2;
}

.mnt-basin,
.response-basin {
  background: rgba(118, 63, 92, .16);
  border: 2px dashed rgba(118, 63, 92, .7);
  border-radius: 45% 55% 48% 52%;
  height: 8.2rem;
  left: 15%;
  top: 13%;
  transform: rotate(-12deg);
  width: 68%;
  z-index: 3;
}

.mnt-talweg {
  background: rgba(85, 122, 149, .78);
  height: .45rem;
  left: 27%;
  top: 18%;
  transform: rotate(54deg);
  transform-origin: left center;
  width: 7.2rem;
  z-index: 6;
}

.mnt-drain,
.response-drain {
  background: rgba(85, 122, 149, .66);
  border-top: 3px solid rgba(85, 122, 149, .95);
  bottom: 19%;
  height: .8rem;
  left: 10%;
  right: 10%;
  transform: rotate(-7deg);
  z-index: 7;
}

.mnt-outlet {
  background: #fffdf7;
  border: 3px solid rgba(85, 122, 149, .95);
  border-radius: 999px;
  bottom: 16%;
  height: 1.35rem;
  right: 14%;
  width: 1.35rem;
  z-index: 8;
}

.mnt-hotspot,
.response-hotspot {
  background: rgba(118, 63, 92, .76);
  border: 3px solid #fff;
  border-radius: 999px;
  box-shadow: 0 0 0 2px rgba(118, 63, 92, .65);
  height: 1.7rem;
  left: 48%;
  top: 51%;
  width: 1.7rem;
  z-index: 9;
}

.mnt-flow,
.response-flow {
  border: solid rgba(85, 122, 149, .95);
  border-width: 0 3px 3px 0;
  height: 2.2rem;
  width: 4.8rem;
  z-index: 8;
}

.mnt-flow.diffuse-a {
  left: 21%;
  top: 32%;
  transform: rotate(22deg);
}

.mnt-flow.diffuse-b {
  left: 50%;
  top: 57%;
  transform: rotate(23deg);
}

.mnt-flow.converge-a,
.response-flow.flow-a {
  left: 24%;
  top: 30%;
  transform: rotate(34deg);
}

.mnt-flow.converge-b,
.response-flow.flow-b {
  left: 56%;
  top: 35%;
  transform: rotate(130deg);
}

.mnt-flow.drain-a {
  left: 25%;
  top: 37%;
  transform: rotate(28deg);
}

.mnt-flow.drain-b {
  left: 54%;
  top: 44%;
  transform: rotate(35deg);
}

.mnt-label,
.response-label {
  background: rgba(255, 253, 247, .96);
  border: 1px solid rgba(34, 40, 23, .22);
  border-radius: 999px;
  color: var(--color-brand-strong);
  font-size: .72rem;
  font-weight: 850;
  padding: .26rem .42rem;
  z-index: 10;
}

.label-slope {
  left: 10%;
  top: 15%;
}

.label-basin {
  left: 12%;
  top: 9%;
}

.label-talweg {
  right: 12%;
  top: 45%;
}

.label-drainage {
  bottom: 8%;
  left: 13%;
}

.terrain-geodata-chain,
.response-trace-strip {
  display: grid;
  gap: .45rem;
  grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr) auto minmax(0, 1fr) auto minmax(0, 1fr) auto minmax(0, 1fr);
}

.terrain-geodata-chain div,
.response-trace-strip div {
  align-content: center;
  background: #fff;
  border: var(--border);
  border-radius: var(--radius);
  display: grid;
  gap: .12rem;
  padding: .55rem;
  text-align: center;
}

.terrain-geodata-chain strong,
.response-trace-strip strong {
  color: var(--color-brand-strong);
  font-size: .86rem;
}

.terrain-geodata-chain span,
.response-trace-strip span {
  color: var(--color-muted);
  font-size: .74rem;
}

.terrain-geodata-chain .chain-arrow {
  align-self: center;
  color: var(--color-brand-strong);
  font-size: 1.15rem;
  font-weight: 900;
}

.adaptation-response-visual {
  grid-template-columns: minmax(18rem, 1.25fr) minmax(18rem, 1fr);
  grid-template-rows: minmax(0, 1fr) auto;
}

.adaptation-photo-visual {
  align-content: stretch;
  gap: .7rem;
  grid-template-rows: minmax(0, 1fr) auto;
}

.adaptation-photo-figure {
  background: #fff;
  border: var(--border);
  border-radius: var(--radius);
  display: grid;
  min-height: 24rem;
  overflow: hidden;
  padding: .45rem;
}

.adaptation-photo-figure img {
  border-radius: calc(var(--radius) - .25rem);
  display: block;
  height: 100%;
  object-fit: cover;
  width: 100%;
}

.adaptation-solution-grid {
  display: grid;
  gap: .45rem;
  grid-template-columns: repeat(6, minmax(0, 1fr));
}

.adaptation-solution-grid div {
  background: #fff;
  border: var(--border);
  border-left: 5px solid #557a95;
  border-radius: var(--radius);
  display: grid;
  gap: .12rem;
  padding: .52rem .58rem;
}

.adaptation-solution-grid .preventive {
  border-left-color: #8a6f3d;
}

.adaptation-solution-grid .drainage {
  border-left-color: #557a95;
}

.adaptation-solution-grid .protect {
  border-left-color: #587b4d;
}

.adaptation-solution-grid .repair {
  border-left-color: #763f5c;
}

.adaptation-solution-grid .monitor {
  border-left-color: #222817;
}

.adaptation-solution-grid .restrict {
  border-left-color: #c24d3c;
}

.adaptation-solution-grid strong {
  color: var(--color-brand-strong);
  font-size: .88rem;
}

.adaptation-solution-grid span {
  color: var(--color-muted);
  font-size: .76rem;
  line-height: 1.22;
}

.response-site-map {
  background:
    linear-gradient(180deg, #e6eef3 0 32%, #e8eadf 33% 100%);
  border: var(--border);
  border-radius: var(--radius);
  min-height: 20rem;
  overflow: hidden;
  position: relative;
}

.response-talud {
  background: linear-gradient(135deg, #a98753, #7b5f35);
  clip-path: polygon(0 38%, 100% 10%, 100% 100%, 0 100%);
  inset: 28% 0 0;
  z-index: 2;
}

.response-flow.flow-a {
  height: 3rem;
  width: 6.6rem;
}

.response-flow.flow-b {
  height: 3rem;
  width: 6rem;
}

.response-label.label-basin {
  left: 8%;
  top: 8%;
}

.response-label.label-foot {
  left: 45%;
  top: 54%;
}

.response-label.label-drain {
  bottom: 9%;
  left: 10%;
}

.response-label.label-priority {
  right: 6%;
  top: 39%;
}

.response-action-board {
  display: grid;
  gap: .55rem;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.response-action-card {
  align-content: start;
  background: #fff;
  border: var(--border);
  border-left: 5px solid #557a95;
  border-radius: var(--radius);
  display: grid;
  gap: .25rem;
  padding: .72rem;
}

.response-action-card.inspect {
  border-left-color: #8a6f3d;
}

.response-action-card.protect {
  border-left-color: #587b4d;
}

.response-action-card.monitor {
  border-left-color: #763f5c;
}

.response-action-card strong {
  color: var(--color-brand-strong);
}

.response-action-card span {
  color: var(--color-muted);
  font-size: .84rem;
  line-height: 1.32;
}

.adaptation-response-visual .response-trace-strip {
  grid-column: 1 / -1;
}

.context-flow-diagram {
  align-items: stretch;
  display: grid;
  gap: .7rem;
  grid-template-columns: minmax(9rem, .82fr) auto minmax(18rem, 1.8fr) auto minmax(9rem, .9fr);
}

.context-signal-card,
.context-action-card {
  background: #fff;
  border: var(--border);
  border-radius: var(--radius);
  display: grid;
  gap: .55rem;
  min-height: 16rem;
  padding: .75rem;
}

.context-signal-card {
  border-top: 5px solid #8a6f3d;
}

.context-action-card {
  align-content: center;
  border-top: 5px solid #587b4d;
}

.context-signal-card strong,
.context-action-card strong {
  color: var(--color-brand-strong);
  font-size: 1rem;
}

.context-signal-card span,
.context-action-card span {
  color: var(--color-muted);
  font-size: .86rem;
}

.context-mini-timeline {
  align-items: end;
  background: #f6f7f2;
  border: var(--border);
  border-radius: calc(var(--radius) - .25rem);
  display: grid;
  gap: .35rem;
  grid-template-columns: 2fr .9fr;
  min-height: 7rem;
  padding: .7rem;
}

.context-mini-timeline span {
  border-radius: .4rem .4rem 0 0;
  display: block;
}

.context-mini-timeline .dry {
  background: repeating-linear-gradient(90deg, #8a6f3d 0 .42rem, #d7d2b9 .44rem .76rem);
  height: 3.4rem;
}

.context-mini-timeline .rain {
  background: repeating-linear-gradient(115deg, rgba(85, 122, 149, .92) 0 .16rem, transparent .18rem .5rem);
  border: 2px solid rgba(85, 122, 149, .8);
  height: 5.8rem;
}

.context-operator {
  align-self: center;
  color: var(--color-brand-strong);
  font-size: 2.1rem;
  font-weight: 900;
}

.context-map-panel {
  display: grid;
}

.adaptation-context-map {
  background:
    linear-gradient(135deg, rgba(232, 234, 223, .96), rgba(215, 210, 185, .86)),
    repeating-linear-gradient(22deg, transparent 0 1.6rem, rgba(85, 122, 149, .16) 1.62rem 1.72rem);
  border: var(--border);
  border-radius: var(--radius);
  min-height: 18rem;
  overflow: hidden;
  position: relative;
}

.context-flow-diagram .adaptation-context-map {
  min-height: 16rem;
  height: 100%;
}

.context-contour,
.context-road,
.context-talud,
.context-drain,
.context-flow,
.context-soil,
.context-hotspot,
.context-label {
  position: absolute;
}

.context-contour {
  border: 2px solid rgba(85, 122, 149, .35);
  border-radius: 50%;
  transform: rotate(-14deg);
}

.context-contour-a {
  height: 18rem;
  left: 4%;
  top: 8%;
  width: 34rem;
}

.context-contour-b {
  height: 13rem;
  left: 13%;
  top: 21%;
  width: 25rem;
}

.context-contour-c {
  height: 8rem;
  left: 24%;
  top: 34%;
  width: 15rem;
}

.context-road {
  background: #4f5552;
  height: 2.4rem;
  left: -2rem;
  right: -2rem;
  top: 43%;
  transform: rotate(-7deg);
  z-index: 3;
}

.context-talud {
  background: rgba(138, 111, 61, .72);
  clip-path: polygon(0 18%, 100% 0, 88% 100%, 6% 86%);
  height: 8rem;
  left: 27%;
  top: 42%;
  transform: rotate(-7deg);
  width: 34%;
  z-index: 2;
}

.context-drain {
  background: rgba(85, 122, 149, .64);
  border-top: 3px solid rgba(85, 122, 149, .95);
  bottom: 14%;
  height: 1.2rem;
  left: 8%;
  right: 8%;
  transform: rotate(-8deg);
  z-index: 4;
}

.context-flow {
  border: solid rgba(85, 122, 149, .95);
  border-width: 0 4px 4px 0;
  height: 3.5rem;
  width: 7rem;
  z-index: 5;
}

.context-flow-a {
  left: 46%;
  top: 44%;
  transform: rotate(22deg);
}

.context-flow-b {
  left: 60%;
  top: 52%;
  transform: rotate(34deg);
}

.context-soil {
  background: rgba(118, 63, 92, .28);
  border: 2px solid rgba(118, 63, 92, .75);
  border-radius: 999px;
  height: 9rem;
  left: 34%;
  top: 38%;
  transform: rotate(-12deg);
  width: 18rem;
  z-index: 1;
}

.context-hotspot {
  background: rgba(118, 63, 92, .72);
  border: 3px solid #fff;
  border-radius: 999px;
  box-shadow: 0 0 0 2px rgba(118, 63, 92, .72);
  height: 2.2rem;
  left: 51%;
  top: 53%;
  width: 2.2rem;
  z-index: 6;
}

.context-label {
  background: rgba(255, 253, 247, .94);
  border: 1px solid rgba(34, 40, 23, .22);
  border-radius: 999px;
  color: #222817;
  font-size: .82rem;
  font-weight: 800;
  padding: .3rem .55rem;
  z-index: 7;
}

.context-label-mnt {
  left: 5%;
  top: 8%;
}

.context-label-soil {
  left: 38%;
  top: 31%;
}

.context-label-drain {
  bottom: 8%;
  left: 10%;
}

.context-label-asset {
  right: 8%;
  top: 39%;
}

.context-layer-grid,
.adaptation-options-grid {
  display: grid;
  gap: .6rem;
}

.context-layer-legend {
  display: grid;
  gap: .65rem;
  grid-template-columns: repeat(6, minmax(0, 1fr));
}

.context-layer-token {
  align-content: center;
  background: #fff;
  border: var(--border);
  border-radius: var(--radius);
  color: var(--color-brand-strong);
  display: grid;
  gap: .42rem;
  min-height: 7.75rem;
  padding: .65rem;
  text-align: center;
}

.context-layer-token strong {
  font-size: .88rem;
  line-height: 1.1;
}

.context-layer-token .layer-icon {
  background: #f6f7f2;
  border: var(--border);
  border-radius: calc(var(--radius) - .25rem);
  display: block;
  height: 4.35rem;
  overflow: hidden;
  position: relative;
}

.context-layer-token .layer-icon::before,
.context-layer-token .layer-icon::after {
  content: "";
  position: absolute;
}

.context-layer-token.weather .layer-icon {
  background:
    linear-gradient(180deg, rgba(255, 253, 247, .9) 0 48%, rgba(85, 122, 149, .12) 49% 100%);
}

.context-layer-token.weather .layer-icon::before {
  background: repeating-linear-gradient(90deg, #8a6f3d 0 .28rem, #d7d2b9 .3rem .55rem);
  border-radius: .35rem .35rem 0 0;
  bottom: .45rem;
  height: 1.65rem;
  left: .45rem;
  width: 45%;
}

.context-layer-token.weather .layer-icon::after {
  background: repeating-linear-gradient(115deg, rgba(85, 122, 149, .92) 0 .12rem, transparent .14rem .38rem);
  border-left: 2px solid rgba(85, 122, 149, .82);
  bottom: .45rem;
  height: 2.55rem;
  right: .52rem;
  width: 34%;
}

.context-layer-token.topography .layer-icon {
  background: linear-gradient(180deg, #f6f7f2, #e8eadf);
}

.context-layer-token.topography .layer-icon::before,
.context-layer-token.topography .layer-icon::after {
  border: 2px solid rgba(85, 122, 149, .65);
  border-radius: 50%;
  height: 3.8rem;
  transform: rotate(-18deg);
  width: 6rem;
}

.context-layer-token.topography .layer-icon::before {
  left: -1.2rem;
  top: .35rem;
}

.context-layer-token.topography .layer-icon::after {
  left: .35rem;
  top: 1.05rem;
}

.context-layer-token.soils .layer-icon {
  background:
    linear-gradient(180deg, rgba(255, 253, 247, .92) 0 36%, #a98753 37% 62%, #7b5f35 63% 100%);
}

.context-layer-token.soils .layer-icon::before {
  background: rgba(118, 63, 92, .45);
  border: 2px dashed rgba(118, 63, 92, .78);
  border-radius: 999px;
  bottom: .45rem;
  height: 1.55rem;
  left: 18%;
  transform: rotate(-8deg);
  width: 62%;
}

.context-layer-token.soils .layer-icon::after {
  background: radial-gradient(circle, rgba(255, 253, 247, .9) 0 .12rem, transparent .14rem);
  background-size: .55rem .45rem;
  bottom: .25rem;
  height: 2rem;
  left: .25rem;
  right: .25rem;
}

.context-layer-token.drainage .layer-icon {
  background: linear-gradient(180deg, #e8eadf 0 58%, #d7d2b9 59% 100%);
}

.context-layer-token.drainage .layer-icon::before {
  background: rgba(85, 122, 149, .72);
  border: 2px solid rgba(85, 122, 149, .9);
  border-radius: 0 0 999px 999px;
  bottom: .7rem;
  height: 1.15rem;
  left: .55rem;
  right: .55rem;
}

.context-layer-token.drainage .layer-icon::after {
  border: solid rgba(85, 122, 149, .95);
  border-width: 0 3px 3px 0;
  height: 1.7rem;
  left: 36%;
  top: .55rem;
  transform: rotate(30deg);
  width: 2.6rem;
}

.context-layer-token.asset .layer-icon {
  background: linear-gradient(180deg, #e6eef3 0 46%, #d7d2b9 47% 100%);
}

.context-layer-token.asset .layer-icon::before {
  background: #4f5552;
  height: .9rem;
  left: -.45rem;
  right: -.45rem;
  top: 45%;
  transform: rotate(-8deg);
}

.context-layer-token.asset .layer-icon::after {
  background: rgba(138, 111, 61, .8);
  clip-path: polygon(0 35%, 100% 0, 100% 100%, 0 100%);
  bottom: 0;
  height: 2rem;
  left: 22%;
  transform: rotate(-8deg);
  width: 54%;
}

.context-layer-token.decision .layer-icon {
  background: radial-gradient(circle at center, rgba(118, 63, 92, .18) 0 28%, transparent 29% 100%), #f6f7f2;
}

.context-layer-token.decision .layer-icon::before {
  border: 3px solid rgba(118, 63, 92, .85);
  border-radius: 999px;
  height: 2.1rem;
  left: calc(50% - 1.05rem);
  top: calc(50% - 1.05rem);
  width: 2.1rem;
}

.context-layer-token.decision .layer-icon::after {
  background: #763f5c;
  border-radius: 999px;
  height: .72rem;
  left: calc(50% - .36rem);
  top: calc(50% - .36rem);
  width: .72rem;
}

.context-layer-grid {
  grid-template-columns: repeat(5, minmax(0, 1fr));
}

.context-layer-grid div,
.adaptation-option {
  background: #fff;
  border: var(--border);
  border-radius: var(--radius);
  display: grid;
  gap: .25rem;
  padding: .7rem;
}

.context-layer-grid div {
  border-top: 4px solid #557a95;
}

.context-layer-grid div:nth-child(2) {
  border-top-color: #8a6f3d;
}

.context-layer-grid div:nth-child(3) {
  border-top-color: #763f5c;
}

.context-layer-grid div:nth-child(4) {
  border-top-color: #587b4d;
}

.context-layer-grid div:nth-child(5) {
  border-top-color: #222817;
}

.context-layer-grid span,
.adaptation-option span {
  color: var(--color-muted);
  font-size: .82rem;
}

.adaptation-options-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.adaptation-option {
  min-height: 7rem;
}

.adaptation-option.observe,
.adaptation-option.inspect {
  border-left: 4px solid #557a95;
}

.adaptation-option.drain,
.adaptation-option.protect {
  border-left: 4px solid #587b4d;
}

.adaptation-option.rework,
.adaptation-option.monitor {
  border-left: 4px solid #763f5c;
}

.adaptation-principle {
  align-items: center;
  background: #fff;
  border: var(--border);
  border-radius: var(--radius);
  display: grid;
  gap: .5rem;
  grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr) auto minmax(0, 1fr) auto minmax(0, 1.25fr);
  padding: .75rem;
  text-align: center;
}

.adaptation-principle span,
.adaptation-principle strong {
  color: var(--color-brand-strong);
  font-size: .92rem;
}

.adaptation-site-section {
  background: linear-gradient(180deg, #e6eef3 0 36%, #e8eadf 37% 100%);
  border: var(--border);
  border-radius: var(--radius);
  min-height: 24rem;
  overflow: hidden;
  position: relative;
}

.adapt-sky,
.adapt-road,
.adapt-talud,
.adapt-soil-sensitive,
.adapt-drain,
.adapt-water,
.adapt-vegetation,
.adapt-work-zone,
.adapt-sensor,
.adapt-marker,
.adapt-label {
  position: absolute;
}

.adapt-road {
  background: #4f5552;
  height: 2.6rem;
  left: -2rem;
  right: -2rem;
  top: 34%;
  transform: rotate(-5deg);
  z-index: 4;
}

.adapt-talud {
  background: linear-gradient(135deg, #a98753, #7b5f35);
  clip-path: polygon(0 42%, 100% 12%, 100% 100%, 0 100%);
  inset: 0;
  top: 25%;
  z-index: 2;
}

.adapt-soil-sensitive {
  background: rgba(118, 63, 92, .34);
  border: 2px dashed rgba(118, 63, 92, .78);
  border-radius: 999px;
  height: 8rem;
  left: 31%;
  top: 48%;
  transform: rotate(-13deg);
  width: 22rem;
  z-index: 3;
}

.adapt-drain {
  background: #d6d0c3;
  border: 3px solid rgba(34, 40, 23, .38);
  border-radius: 0 0 999px 999px;
  bottom: 14%;
  height: 2.2rem;
  left: 8%;
  width: 25%;
  z-index: 5;
}

.adapt-water {
  background: rgba(85, 122, 149, .72);
  border-radius: 999px;
  bottom: 15%;
  height: .9rem;
  left: 10%;
  width: 21%;
  z-index: 6;
}

.adapt-vegetation {
  background: repeating-linear-gradient(90deg, #587b4d 0 .24rem, transparent .26rem .7rem);
  height: 4.5rem;
  right: 6%;
  top: 42%;
  transform: rotate(-8deg);
  width: 31%;
  z-index: 6;
}

.adapt-work-zone {
  background: rgba(255, 253, 247, .64);
  border: 2px solid rgba(118, 63, 92, .75);
  height: 6.8rem;
  left: 48%;
  top: 48%;
  transform: rotate(-10deg);
  width: 18%;
  z-index: 7;
}

.adapt-sensor {
  background: #222817;
  border: 3px solid #fff;
  border-radius: 999px;
  box-shadow: 0 0 0 2px rgba(34, 40, 23, .2);
  height: 1.25rem;
  right: 18%;
  top: 38%;
  width: 1.25rem;
  z-index: 8;
}

.adapt-marker {
  align-items: center;
  background: #763f5c;
  border: 3px solid #fff;
  border-radius: 999px;
  box-shadow: 0 0 0 2px rgba(118, 63, 92, .4);
  color: #fff;
  display: inline-flex;
  font-size: .9rem;
  font-weight: 900;
  height: 2rem;
  justify-content: center;
  width: 2rem;
  z-index: 10;
}

.marker-observe {
  left: 13%;
  top: 22%;
}

.marker-inspect {
  left: 38%;
  top: 27%;
}

.marker-drain {
  left: 19%;
  bottom: 18%;
}

.marker-protect {
  right: 19%;
  top: 43%;
}

.marker-rework {
  left: 55%;
  top: 57%;
}

.marker-monitor {
  right: 14%;
  top: 26%;
}

.adapt-label {
  background: rgba(255, 253, 247, .96);
  border: 1px solid rgba(34, 40, 23, .22);
  border-radius: 999px;
  color: var(--color-brand-strong);
  font-size: .82rem;
  font-weight: 850;
  padding: .33rem .58rem;
  z-index: 11;
}

.label-observe {
  left: 7%;
  top: 12%;
}

.label-inspect {
  left: 33%;
  top: 16%;
}

.label-drain {
  left: 9%;
  bottom: 7%;
}

.label-protect {
  right: 8%;
  top: 36%;
}

.label-rework {
  left: 50%;
  bottom: 24%;
}

.label-monitor {
  right: 7%;
  top: 16%;
}

.adaptation-decision-strip {
  display: grid;
  gap: .45rem;
  grid-template-columns: repeat(5, minmax(0, 1fr));
}

.adaptation-decision-strip div {
  align-items: center;
  background: #fff;
  border: var(--border);
  border-radius: var(--radius);
  display: grid;
  gap: .1rem;
  grid-template-columns: auto minmax(0, 1fr);
  padding: .55rem;
}

.adaptation-decision-strip strong {
  align-items: center;
  background: #557a95;
  border-radius: 999px;
  color: #fff;
  display: inline-flex;
  font-size: .8rem;
  height: 1.45rem;
  justify-content: center;
  width: 1.45rem;
}

.adaptation-decision-strip span {
  color: var(--color-brand-strong);
  font-size: .82rem;
  font-weight: 800;
}

.case-map {
  min-height: 15rem;
}

.case-road-axis {
  background: #4f5552;
  border: 2px solid rgba(34, 40, 23, .2);
  height: 2.4rem;
  left: -2rem;
  position: absolute;
  right: -2rem;
  top: 48%;
  transform: rotate(-9deg);
}

.case-road-label {
  background: rgba(255, 253, 247, .94);
  border: 1px solid rgba(34, 40, 23, .22);
  border-radius: 999px;
  color: var(--color-brand-strong);
  font-size: .72rem;
  font-weight: 800;
  left: 13%;
  padding: .24rem .42rem;
  position: absolute;
  top: 39%;
}

.case-slope-left,
.case-slope-right {
  background: repeating-linear-gradient(135deg, rgba(138, 111, 61, .28) 0 .4rem, rgba(138, 111, 61, .08) .42rem .85rem);
  border: 1px solid rgba(138, 111, 61, .6);
  height: 4.6rem;
  position: absolute;
  transform: rotate(-9deg);
  width: 12rem;
}

.case-slope-left {
  left: 12%;
  top: 22%;
}

.case-slope-right {
  right: 10%;
  top: 61%;
}

.case-data-grid {
  display: grid;
  gap: .65rem;
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.case-data-card {
  background: #fff;
  border: var(--border);
  border-left: 4px solid #557a95;
  border-radius: var(--radius);
  display: grid;
  gap: .25rem;
  padding: .65rem;
}

.case-data-card span {
  color: var(--color-muted);
  font-size: .82rem;
}

.case-qgis-screen {
  min-height: 13rem;
}

.cube-layer.geo {
  border-top: 4px solid #587b4d;
}

.cube-layer.asset {
  border-top: 4px solid #8a6f3d;
}

.execution-architecture {
  background: #eef1e8;
  border: var(--border);
  border-radius: var(--radius);
  display: grid;
  gap: .65rem;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  padding: .85rem;
}

.arch-zone {
  background: #fff;
  border: var(--border);
  border-radius: var(--radius);
  display: grid;
  gap: .25rem;
  min-height: 6rem;
  padding: .65rem;
}

.arch-zone span {
  color: var(--color-muted);
  font-size: .82rem;
}

.arch-zone.user {
  border-top: 4px solid #8a6f3d;
}

.arch-zone.llm,
.pipeline-node.file {
  border-top: 4px solid #763f5c;
}

.arch-zone.tools,
.pipeline-node.tool {
  border-top: 4px solid #587b4d;
}

.arch-zone.data,
.pipeline-node.db {
  border-top: 4px solid #557a95;
}

.arch-zone.output,
.pipeline-node.output {
  border-top: 4px solid #8a6f3d;
}

.market-landscape-grid,
.llm-principle-flow,
.llm-matrix-board,
.assistant-layers,
.assistant-workbench,
.society-map,
.society-tensions,
.context-history-line,
.context-gap-board,
.context-outcome-strip,
.language-interface-board,
.language-outcome-grid,
.prompt-workspace-flow,
.workspace-checklist,
.maturity-path,
.maturity-roles,
.emancipation-board,
.emancipation-checks,
.agent-folder-layout,
.folder-tree,
.codex-demo-grid,
.ifc-risk-board {
  display: grid;
  gap: .65rem;
}

.market-workflow,
.site-thread,
.llm-wish-board,
.llm-wish-cards,
.language-shift-board,
.information-history-board,
.information-case-thread,
.real-software-gap-map,
.context-proof-strip,
.bim-finish-board {
  display: grid;
  gap: .65rem;
}

.market-landscape-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.market-workflow {
  grid-template-columns: minmax(0, 1fr);
  grid-template-rows: repeat(5, minmax(0, 1fr));
}

.market-landscape-visual,
.llm-principle-visual,
.llm-assistant-visual,
.llm-society-visual,
.real-context-computing-visual,
.language-interface-visual,
.prompt-to-workspace-visual,
.llm-maturity-visual,
.emancipation-visual,
.agent-folder-visual,
.codex-demo-visual,
.ifc-case-visual {
  align-content: start;
}

.market-card,
.llm-stage,
.llm-prompt-demo,
.llm-verification-card,
.assistant-layer,
.workbench-card,
.society-node,
.society-core,
.tension-card,
.wish-card,
.shift-lane,
.shift-operator,
.context-age,
.context-lane,
.context-gap,
.history-era,
.information-case-thread div,
.real-side,
.software-side,
.gap-center,
.llm-bridge,
.context-proof-strip div,
.finish-column,
.finish-arrow,
.interface-card,
.outcome-card,
.prompt-block,
.workspace-block,
.check-block,
.workspace-checklist div,
.maturity-step,
.maturity-roles div,
.emancipation-lane,
.file-row,
.agent-rules-card,
.demo-step,
.ifc-risk {
  background: #fff;
  border: var(--border);
  border-radius: var(--radius);
  display: grid;
  gap: .25rem;
  padding: .65rem;
}

.market-card {
  min-height: 5.9rem;
}

.market-workflow .market-card {
  align-content: stretch;
  align-items: stretch;
  gap: .55rem;
  grid-template-columns: minmax(7.5rem, .2fr) minmax(0, .48fr) minmax(0, .32fr);
  min-height: 5.5rem;
}

.market-workflow .market-card strong {
  align-self: center;
}

.market-mode,
.market-check {
  align-content: center;
  display: grid;
  gap: .2rem;
}

.market-mode strong,
.market-check strong {
  align-self: end;
}

.market-check {
  background: #f4f5ef;
  border-left: 4px solid rgba(88, 123, 77, .65);
  border-radius: calc(var(--radius) - 2px);
  padding: .45rem .55rem;
}

.slide-viewer .market-landscape-visual,
.slide-viewer .llm-principle-visual,
.slide-viewer .llm-assistant-visual,
.slide-viewer .llm-society-visual,
.slide-viewer .real-context-computing-visual,
.slide-viewer .language-interface-visual,
.slide-viewer .prompt-to-workspace-visual,
.slide-viewer .llm-maturity-visual,
.slide-viewer .emancipation-visual,
.slide-viewer .agent-folder-visual,
.slide-viewer .codex-demo-visual,
.slide-viewer .ifc-case-visual {
  align-content: start;
}

.slide-viewer .market-landscape-visual {
  align-content: stretch;
  grid-template-rows: auto minmax(0, 1fr) auto;
}

.slide-viewer .llm-principle-visual {
  grid-template-rows: auto auto auto minmax(0, 1fr);
}

.slide-viewer .market-workflow,
.slide-viewer .language-shift-board {
  min-height: 0;
}

.slide-viewer .market-workflow {
  grid-template-rows: repeat(5, minmax(0, 1fr));
}

.slide-viewer .market-workflow .market-card {
  min-height: 0;
}

.slide-viewer .market-landscape-grid {
  grid-template-rows: repeat(2, minmax(0, 1fr));
  min-height: 0;
}

.slide-viewer .market-card,
.slide-viewer .shift-lane,
.slide-viewer .shift-operator {
  align-content: start;
  min-height: 0;
}

.slide-viewer .llm-stage,
.slide-viewer .assistant-layer,
.slide-viewer .society-node,
.slide-viewer .llm-prompt-demo,
.slide-viewer .llm-verification-card,
.slide-viewer .context-age,
.slide-viewer .context-lane,
.slide-viewer .context-gap {
  min-height: 0;
}

.market-card strong,
.market-mode strong,
.market-check strong,
.llm-stage strong,
.llm-prompt-demo strong,
.llm-verification-card strong,
.assistant-layer strong,
.workbench-card strong,
.society-node strong,
.society-core strong,
.tension-card strong,
.wish-card strong,
.shift-lane strong,
.shift-operator strong,
.history-era strong,
.information-case-thread strong,
.real-side strong,
.software-side strong,
.gap-center strong,
.llm-bridge strong,
.context-proof-strip strong,
.finish-column strong,
.finish-arrow strong,
.context-age strong,
.context-lane strong,
.context-gap strong,
.interface-card strong,
.outcome-card strong,
.prompt-block strong,
.workspace-block strong,
.check-block strong,
.workspace-checklist strong,
.maturity-step strong,
.maturity-roles strong,
.emancipation-lane strong,
.file-row strong,
.agent-rules-card strong,
.demo-step strong,
.ifc-risk strong {
  color: var(--color-brand-strong);
}

.market-card span,
.market-mode span,
.market-check span,
.llm-stage span,
.llm-prompt-demo span,
.llm-verification-card span,
.assistant-layer span,
.workbench-card span,
.society-node span,
.society-core span,
.tension-card span,
.wish-card span,
.shift-lane span,
.shift-operator span,
.history-era span,
.history-era em,
.information-case-thread span,
.real-side span,
.software-side span,
.gap-center span,
.llm-bridge span,
.context-proof-strip span,
.finish-column span,
.finish-arrow span,
.context-age span,
.context-lane span,
.context-gap span,
.interface-card span,
.outcome-card span,
.prompt-block span,
.workspace-block span,
.check-block span,
.workspace-checklist span,
.maturity-step span,
.maturity-roles span,
.emancipation-lane span,
.file-row span,
.demo-step span,
.wish-card span,
.ifc-risk span {
  color: var(--color-muted);
  font-size: .82rem;
}

.market-card.suite,
.prompt-block,
.demo-step.input,
.ifc-risk.local {
  border-top: 4px solid #557a95;
}

.market-card.geoai,
.workspace-block,
.demo-step.prepare,
.ifc-risk.lod {
  border-top: 4px solid #587b4d;
}

.market-card.twin,
.demo-step.process,
.ifc-risk.semantic {
  border-top: 4px solid #8a6f3d;
}

.market-card.agent,
.check-block,
.demo-step.render,
.ifc-risk.control {
  border-top: 4px solid #763f5c;
}

.market-card.engine,
.demo-step.check {
  border-top: 4px solid #222817;
}

.market-card.control {
  border-top: 4px solid #8a6f3d;
}

.llm-principle-flow {
  align-items: stretch;
  grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr) auto minmax(0, 1fr) auto minmax(0, 1fr) auto minmax(0, 1fr);
}

.llm-prompt-demo {
  align-items: center;
  background: #222817;
  border-color: #222817;
  grid-template-columns: minmax(8rem, .34fr) minmax(0, 1fr);
}

.llm-prompt-demo strong,
.llm-prompt-demo span {
  color: #fff;
}

.llm-stage {
  align-content: start;
  min-height: 6.1rem;
}

.llm-stage.corpus,
.assistant-layer.model,
.society-node.design {
  border-top: 4px solid #557a95;
}

.llm-stage.tokens,
.assistant-layer.tuning,
.society-node.engineer {
  border-top: 4px solid #587b4d;
}

.llm-stage.matrix,
.assistant-layer.context,
.society-node.manage {
  border-top: 4px solid #8a6f3d;
}

.llm-stage.gpu,
.assistant-layer.tools,
.society-node.audit {
  border-top: 4px solid #763f5c;
}

.llm-stage.output,
.assistant-layer.checks,
.society-node.learn {
  border-top: 4px solid #222817;
}

.llm-arrow {
  align-content: center;
  color: var(--color-brand-strong);
  display: grid;
  font-size: 1.35rem;
  font-weight: 900;
  justify-items: center;
}

.llm-matrix-board {
  grid-template-columns: .45fr .9fr .9fr;
}

.matrix-grid {
  background: #fff;
  border: var(--border);
  border-radius: var(--radius);
  display: grid;
  gap: .18rem;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  padding: .65rem;
}

.matrix-grid span {
  aspect-ratio: 1;
  background: #d9dfd2;
  border-radius: 4px;
}

.matrix-grid span.hot {
  background: #763f5c;
}

.token-stream {
  align-content: center;
  background: #eef1e8;
  border: var(--border);
  border-radius: var(--radius);
  display: flex;
  flex-wrap: wrap;
  gap: .45rem;
  padding: .75rem;
}

.token-stream span {
  background: #fff;
  border: var(--border);
  border-radius: 999px;
  color: var(--color-brand-strong);
  font-size: .82rem;
  font-weight: 800;
  padding: .36rem .55rem;
}

.llm-verification-card {
  border-left: 4px solid #763f5c;
}

.llm-verification-card span {
  border-top: var(--border);
  padding-top: .35rem;
}

.assistant-layers {
  grid-template-columns: repeat(5, minmax(0, 1fr));
}

.assistant-layer {
  min-height: 7rem;
}

.assistant-workbench {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.workbench-card {
  background: #eef1e8;
  border-left: 4px solid #557a95;
  min-height: 4.7rem;
}

.society-map {
  grid-template-columns: repeat(5, minmax(0, 1fr));
}

.society-core {
  align-content: center;
  background: #222817;
  border-color: #222817;
  color: #fff;
  min-height: 7.4rem;
  text-align: center;
}

.society-core strong,
.society-core span {
  color: #fff;
}

.society-node {
  min-height: 7.4rem;
}

.society-tensions {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.llm-wish-board {
  align-items: stretch;
  grid-template-columns: minmax(0, 1.35fr) minmax(17rem, .65fr);
  min-height: 0;
}

.llm-wish-figure {
  border: var(--border);
  border-radius: var(--radius);
  margin: 0;
  min-height: 0;
  overflow: hidden;
}

.llm-wish-figure img {
  display: block;
  height: 100%;
  object-fit: cover;
  width: 100%;
}

.llm-wish-cards {
  grid-template-rows: repeat(3, minmax(0, 1fr));
  min-height: 0;
}

.wish-card {
  align-content: center;
  border-left: 4px solid #557a95;
  min-height: 0;
}

.wish-card:nth-child(2) {
  border-left-color: #587b4d;
}

.wish-card:nth-child(3) {
  border-left-color: #763f5c;
}

.language-shift-board {
  align-items: stretch;
  grid-template-columns: minmax(0, 1fr) .82fr minmax(0, 1fr);
}

.shift-lane,
.shift-operator {
  align-content: center;
  min-height: 13rem;
}

.shift-lane span,
.shift-operator span {
  border-top: var(--border);
  padding-top: .46rem;
}

.shift-lane.old {
  border-top: 4px solid #557a95;
}

.shift-lane.new {
  border-top: 4px solid #587b4d;
}

.shift-operator {
  background: #222817;
  border-color: #222817;
}

.shift-operator strong,
.shift-operator span {
  color: #fff;
}

.tension-card {
  background: #eef1e8;
  border-left: 4px solid #8a6f3d;
  min-height: 4.8rem;
}

.context-history-line {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.information-history-board {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.information-history-figure {
  border: var(--border);
  border-radius: var(--radius);
  margin: 0;
  min-height: 13rem;
  overflow: hidden;
}

.information-history-figure img {
  display: block;
  height: 100%;
  object-fit: cover;
  width: 100%;
}

.history-era {
  align-content: start;
  min-height: 8rem;
}

.history-era span,
.history-era em {
  border-top: var(--border);
  padding-top: .45rem;
}

.history-era em {
  color: var(--color-brand-strong);
  font-style: normal;
  font-weight: 850;
}

.history-era.admin {
  border-top: 4px solid #8a6f3d;
}

.history-era.measure {
  border-top: 4px solid #557a95;
}

.history-era.compute {
  border-top: 4px solid #587b4d;
}

.history-era.adapt {
  border-top: 4px solid #763f5c;
}

.information-case-thread {
  grid-template-columns: repeat(5, minmax(0, 1fr));
}

.information-case-thread div,
.context-proof-strip div {
  background: #eef1e8;
  border-left: 4px solid #557a95;
  min-height: 5rem;
}

.information-case-thread div:nth-child(2),
.context-proof-strip div:nth-child(2) {
  border-left-color: #8a6f3d;
}

.information-case-thread div:nth-child(3),
.context-proof-strip div:nth-child(3) {
  border-left-color: #587b4d;
}

.information-case-thread div:nth-child(4),
.context-proof-strip div:nth-child(4) {
  border-left-color: #763f5c;
}

.information-case-thread div:nth-child(5) {
  border-left-color: #222817;
}

.context-age {
  min-height: 6rem;
}

.context-age.admin {
  border-top: 4px solid #8a6f3d;
}

.context-age.compute {
  border-top: 4px solid #557a95;
}

.context-age.adapt {
  border-top: 4px solid #587b4d;
}

.context-gap-board {
  align-items: stretch;
  grid-template-columns: minmax(0, 1fr) .58fr minmax(0, 1fr);
}

.real-software-gap-map {
  grid-template-columns: minmax(0, 1fr) .82fr minmax(0, 1fr);
  grid-template-rows: minmax(0, 1fr) auto;
}

.real-side,
.software-side,
.gap-center,
.llm-bridge {
  align-content: start;
  min-height: 9rem;
}

.real-side span,
.software-side span,
.gap-center span,
.llm-bridge span,
.finish-column span {
  border-top: var(--border);
  padding-top: .45rem;
}

.real-side {
  border-top: 4px solid #8a6f3d;
}

.software-side {
  border-top: 4px solid #557a95;
}

.gap-center {
  background: #222817;
  border-color: #222817;
}

.gap-center strong,
.gap-center span {
  color: #fff;
}

.llm-bridge {
  border-top: 4px solid #587b4d;
  grid-column: 1 / -1;
  min-height: 6rem;
}

.context-proof-strip {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.context-lane {
  align-content: start;
  min-height: 12rem;
}

.context-lane span {
  border-top: var(--border);
  padding-top: .42rem;
}

.context-lane.rigid {
  border-top: 4px solid #763f5c;
}

.context-lane.situated {
  border-top: 4px solid #587b4d;
}

.context-gap {
  align-content: center;
  background: #222817;
  border-color: #222817;
  color: #fff;
  min-height: 12rem;
  text-align: center;
}

.context-gap strong,
.context-gap span {
  color: #fff;
}

.context-outcome-strip {
  grid-template-columns: repeat(5, minmax(0, 1fr));
}

.context-outcome-strip span {
  background: #eef1e8;
  border: var(--border);
  border-radius: 999px;
  color: var(--color-brand-strong);
  font-size: .78rem;
  font-weight: 850;
  padding: .42rem .5rem;
  text-align: center;
}

.site-thread {
  grid-template-columns: repeat(5, minmax(0, 1fr));
}

.site-thread span {
  background: #eef1e8;
  border: var(--border);
  border-radius: 999px;
  color: var(--color-brand-strong);
  font-size: .82rem;
  font-weight: 850;
  padding: .48rem .55rem;
  text-align: center;
}

.context-site-thread {
  margin-top: .15rem;
}

.language-interface-board {
  align-items: stretch;
  grid-template-columns: minmax(0, 1fr) .42fr minmax(0, 1fr) .42fr minmax(0, 1fr);
}

.interface-card {
  align-content: center;
  min-height: 8.4rem;
  text-align: center;
}

.interface-card.gui {
  border-top: 4px solid #557a95;
}

.interface-card.llm {
  border-top: 4px solid #763f5c;
}

.interface-card.operations {
  border-top: 4px solid #587b4d;
}

.language-arrow {
  align-content: center;
  color: var(--color-brand-strong);
  display: grid;
  font-size: .72rem;
  font-weight: 900;
  justify-items: center;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.language-arrow::after {
  background: #8a6f3d;
  content: "";
  display: block;
  height: 3px;
  margin-top: .55rem;
  width: 100%;
}

.language-outcome-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.outcome-card {
  border-left: 4px solid #8a6f3d;
  min-height: 4.7rem;
}

.maturity-path {
  grid-template-columns: repeat(5, minmax(0, 1fr));
}

.bim-finish-board {
  align-items: stretch;
  grid-template-columns: minmax(0, 1fr) .58fr minmax(0, 1fr);
}

.finish-column,
.finish-arrow {
  align-content: start;
  min-height: 8rem;
}

.finish-column.with-llm {
  border-top: 4px solid #763f5c;
}

.finish-column.without-llm {
  border-top: 4px solid #587b4d;
}

.finish-arrow {
  align-content: center;
  background: #222817;
  border-color: #222817;
  text-align: center;
}

.finish-arrow strong,
.finish-arrow span {
  color: #fff;
}

.maturity-step {
  min-height: 7.2rem;
}

.maturity-step.explore {
  border-top: 4px solid #763f5c;
}

.maturity-step.model {
  border-top: 4px solid #557a95;
}

.maturity-step.build {
  border-top: 4px solid #587b4d;
}

.maturity-step.audit {
  border-top: 4px solid #8a6f3d;
}

.maturity-step.routine {
  border-top: 4px solid #222817;
}

.maturity-roles {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.maturity-roles div {
  background: #eef1e8;
  border-left: 4px solid #557a95;
  min-height: 4.5rem;
}

.emancipation-board {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.emancipation-lane {
  align-content: start;
  min-height: 13rem;
}

.emancipation-lane strong {
  font-size: 1.05rem;
}

.emancipation-lane span {
  border-top: var(--border);
  padding-top: .46rem;
}

.emancipation-lane.captive {
  border-top: 4px solid #763f5c;
}

.emancipation-lane.mastered {
  border-top: 4px solid #587b4d;
}

.emancipation-checks {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.check-pill {
  background: #eef1e8;
  border: var(--border);
  border-radius: 999px;
  color: var(--color-brand-strong);
  font-size: .8rem;
  font-weight: 900;
  padding: .45rem .55rem;
  text-align: center;
}

.prompt-workspace-flow {
  align-items: stretch;
  grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr) auto minmax(0, 1fr);
}

.flow-arrow {
  align-self: center;
  color: var(--color-brand-strong);
  font-size: 1.9rem;
  font-weight: 900;
  justify-self: center;
}

.prompt-block,
.workspace-block,
.check-block {
  min-height: 6.5rem;
}

.workspace-checklist {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.agent-folder-layout {
  grid-template-columns: minmax(16rem, .9fr) minmax(0, 1.1fr);
}

.folder-tree {
  background: #eef1e8;
  border: var(--border);
  border-radius: var(--radius);
  padding: .65rem;
}

.file-row {
  grid-template-columns: minmax(7rem, .85fr) minmax(0, 1fr);
  padding: .55rem .65rem;
}

.file-row.folder {
  background: var(--color-brand);
}

.file-row.folder strong,
.file-row.folder span {
  color: #fff;
}

.file-row.rule {
  border-left: 4px solid #763f5c;
}

.file-row.doc {
  border-left: 4px solid #8a6f3d;
}

.file-row.data {
  border-left: 4px solid #557a95;
}

.file-row.script {
  border-left: 4px solid #587b4d;
}

.file-row.output {
  border-left: 4px solid #222817;
}

.file-row.check {
  border-left: 4px solid #8a6f3d;
}

.agent-rules-card {
  align-content: start;
  border-left: 4px solid #763f5c;
}

.agent-rules-card p {
  border-top: var(--border);
  color: var(--color-muted);
  font-size: .9rem;
  margin: 0;
  padding-top: .45rem;
}

.agent-code {
  background: #222817;
  border-radius: calc(var(--radius) - .25rem);
  color: #fff;
  display: grid;
  gap: .45rem;
  padding: .75rem;
}

.agent-code span {
  border-top: 1px solid rgba(255, 255, 255, .16);
  color: #fff;
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", monospace;
  font-size: .82rem;
  line-height: 1.34;
  padding-top: .45rem;
}

.agent-code span:first-child {
  border-top: 0;
  padding-top: 0;
}

.codex-demo-grid {
  grid-template-columns: repeat(5, minmax(0, 1fr));
}

.demo-step {
  min-height: 4.8rem;
}

.diagnostic-map-visual {
  display: grid;
  gap: .65rem;
  grid-template-columns: minmax(0, 1.35fr) minmax(16rem, .65fr);
  min-height: 18rem;
}

.diagnostic-map-canvas {
  background:
    linear-gradient(90deg, rgba(255,255,255,.36) 1px, transparent 1px),
    linear-gradient(0deg, rgba(255,255,255,.34) 1px, transparent 1px),
    linear-gradient(135deg, #c7d6b8 0 30%, #e1dbc3 31% 52%, #b9cda9 53% 100%);
  background-size: 2.8rem 2.8rem, 2.8rem 2.8rem, auto;
  border: var(--border);
  border-radius: var(--radius);
  min-height: 100%;
  overflow: hidden;
  position: relative;
}

.diagnostic-map-canvas::before {
  background:
    radial-gradient(circle at 22% 18%, rgba(255,255,255,.35), transparent 16%),
    radial-gradient(circle at 72% 58%, rgba(255,255,255,.24), transparent 18%);
  content: "";
  inset: 0;
  position: absolute;
}

.map-layer,
.map-label {
  position: absolute;
}

.layer-parcel-a,
.layer-parcel-b {
  border: 2px solid rgba(34, 40, 23, .58);
  background: rgba(255, 253, 247, .24);
}

.layer-parcel-a {
  inset: 14% 44% 18% 10%;
  transform: rotate(-5deg);
}

.layer-parcel-b {
  inset: 18% 12% 26% 48%;
  transform: rotate(4deg);
}

.layer-road {
  background: #f7f1e2;
  border: 3px solid rgba(34, 40, 23, .24);
  bottom: 12%;
  height: 9%;
  left: -4%;
  right: -4%;
  transform: rotate(-10deg);
}

.layer-rail {
  border-top: 5px solid #4c5145;
  bottom: 31%;
  left: -2%;
  right: 34%;
  transform: rotate(14deg);
}

.layer-rail::after {
  background: repeating-linear-gradient(90deg, transparent 0 .8rem, rgba(76, 81, 69, .72) .82rem 1rem);
  content: "";
  height: .55rem;
  left: 0;
  position: absolute;
  right: 0;
  top: -.38rem;
}

.layer-water {
  background: rgba(85, 122, 149, .32);
  border: 2px solid rgba(85, 122, 149, .74);
  border-radius: 999px;
  height: 32%;
  right: -6%;
  top: 6%;
  width: 28%;
}

.layer-network {
  border-top: 5px dashed #557a95;
  left: 9%;
  right: 8%;
  top: 66%;
  transform: rotate(10deg);
}

.layer-buffer {
  background: rgba(85, 122, 149, .18);
  border: 3px solid rgba(85, 122, 149, .82);
  border-radius: 999px;
  height: 38%;
  left: 38%;
  top: 27%;
  width: 28%;
}

.layer-ifc {
  align-content: center;
  background: rgba(179, 91, 91, .92);
  border: 3px solid rgba(34, 40, 23, .72);
  color: #fff;
  display: grid;
  font-weight: 900;
  height: 17%;
  left: 46%;
  text-align: center;
  top: 39%;
  transform: rotate(-7deg);
  width: 14%;
}

.layer-intersection {
  background: rgba(118, 63, 92, .58);
  border: 3px solid rgba(118, 63, 92, .92);
  height: 14%;
  left: 56%;
  top: 47%;
  transform: rotate(8deg);
  width: 11%;
}

.map-label {
  background: rgba(255, 253, 247, .95);
  border: 1px solid rgba(34, 40, 23, .22);
  border-radius: 999px;
  color: var(--color-brand-strong);
  font-size: .78rem;
  font-weight: 850;
  padding: .26rem .48rem;
  white-space: nowrap;
}

.label-site {
  left: 4%;
  top: 5%;
}

.label-ifc {
  left: 58%;
  top: 31%;
}

.label-risk {
  right: 4%;
  top: 18%;
}

.label-network {
  bottom: 20%;
  left: 16%;
}

.label-candidate {
  bottom: 8%;
  right: 6%;
}

.diagnostic-map-side {
  display: grid;
  gap: .65rem;
  grid-template-rows: repeat(3, minmax(0, 1fr));
}

.map-side-card {
  background: #fff;
  border: var(--border);
  border-left: 4px solid #557a95;
  border-radius: var(--radius);
  display: grid;
  gap: .25rem;
  padding: .75rem;
}

.map-side-card.process {
  border-left-color: #587b4d;
}

.map-side-card.output {
  border-left-color: #763f5c;
}

.map-side-card strong {
  color: var(--color-brand-strong);
}

.map-side-card span {
  color: var(--color-muted);
  font-size: .9rem;
  line-height: 1.3;
}

.ifc-risk-board {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.ifc-risk {
  min-height: 5.6rem;
}

.execution-location-grid {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.visual-step-strip {
  display: grid;
  gap: .55rem;
}

.ai-action-strip,
.ifc-risk-board {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.format-proof-strip {
  grid-template-columns: repeat(5, minmax(0, 1fr));
}

.situated-proof-strip {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.visual-step {
  align-items: center;
  background: #fff;
  border: var(--border);
  border-radius: var(--radius);
  display: grid;
  gap: .18rem .55rem;
  grid-template-columns: auto minmax(0, 1fr);
  min-height: 5.4rem;
  padding: .62rem;
}

.visual-step strong {
  color: var(--color-brand-strong);
  line-height: 1.12;
}

.visual-step .step-text {
  color: var(--color-muted);
  font-size: .8rem;
  line-height: 1.25;
}

.visual-step.step-blue {
  border-top: 4px solid #557a95;
}

.visual-step.step-green {
  border-top: 4px solid #587b4d;
}

.visual-step.step-violet {
  border-top: 4px solid #763f5c;
}

.visual-step.step-gold {
  border-top: 4px solid #8a6f3d;
}

.visual-step.step-dark {
  border-top: 4px solid #222817;
}

.step-icon {
  background: #f6f7f2;
  border: var(--border);
  border-radius: calc(var(--radius) - .25rem);
  display: block;
  grid-row: 1 / span 2;
  height: 2.8rem;
  overflow: hidden;
  position: relative;
  width: 2.8rem;
}

.step-icon::before,
.step-icon::after {
  content: "";
  position: absolute;
}

.step-icon.frame::before {
  border: 2px solid #557a95;
  inset: .62rem;
}

.step-icon.frame::after {
  background: #763f5c;
  border-radius: 999px;
  height: .54rem;
  left: calc(50% - .27rem);
  top: calc(50% - .27rem);
  width: .54rem;
}

.step-icon.run::before {
  background: #222817;
  border-radius: .22rem;
  inset: .55rem .45rem .5rem;
}

.step-icon.run::after {
  border: solid #f6f7f2;
  border-width: 0 2px 2px 0;
  height: .55rem;
  left: .88rem;
  top: 1.08rem;
  transform: rotate(-45deg);
  width: .55rem;
}

.step-icon.trace::before {
  background: repeating-linear-gradient(180deg, #557a95 0 .14rem, transparent .16rem .48rem);
  inset: .72rem .55rem .55rem;
}

.step-icon.trace::after {
  border: 2px solid #763f5c;
  border-radius: .2rem;
  inset: .45rem .5rem;
}

.step-icon.check::before,
.step-icon.validated::before {
  border: solid #587b4d;
  border-width: 0 .25rem .25rem 0;
  height: 1.35rem;
  left: 1.05rem;
  top: .55rem;
  transform: rotate(42deg);
  width: .72rem;
}

.step-icon.check::after,
.step-icon.validated::after {
  border: 2px solid rgba(88, 123, 77, .65);
  border-radius: 999px;
  inset: .5rem;
}

.step-icon.geometry::before {
  border: 2px solid #763f5c;
  clip-path: polygon(12% 34%, 78% 12%, 92% 70%, 44% 94%, 10% 68%);
  inset: .55rem;
}

.step-icon.geometry::after {
  background: #557a95;
  border-radius: 999px;
  height: .42rem;
  left: .72rem;
  top: .9rem;
  width: .42rem;
}

.step-icon.attributes::before {
  background:
    linear-gradient(90deg, transparent 0 32%, rgba(34, 40, 23, .22) 33% 36%, transparent 37% 100%),
    repeating-linear-gradient(180deg, #fff 0 .42rem, rgba(85, 122, 149, .22) .44rem .48rem);
  border: 2px solid #557a95;
  inset: .52rem;
}

.step-icon.attributes::after {
  background: #557a95;
  height: .34rem;
  left: .52rem;
  right: .52rem;
  top: .52rem;
}

.step-icon.srs::before {
  border-bottom: 2px solid #587b4d;
  border-left: 2px solid #587b4d;
  height: 1.45rem;
  left: .72rem;
  top: .65rem;
  width: 1.45rem;
}

.step-icon.srs::after {
  background: #763f5c;
  border-radius: 999px;
  height: .55rem;
  left: 1.3rem;
  top: 1.12rem;
  width: .55rem;
}

.step-icon.style::before {
  background:
    linear-gradient(90deg, #557a95 0 31%, #587b4d 32% 64%, #763f5c 65% 100%);
  border-radius: 999px;
  height: .72rem;
  left: .55rem;
  right: .55rem;
  top: .85rem;
}

.step-icon.style::after {
  background: linear-gradient(90deg, rgba(85, 122, 149, .22), rgba(85, 122, 149, .9));
  border-radius: 999px;
  height: .42rem;
  left: .78rem;
  right: .78rem;
  top: 1.72rem;
}

.step-icon.rights::before {
  border: 2px solid #222817;
  border-radius: .2rem;
  bottom: .62rem;
  height: 1.12rem;
  left: .75rem;
  right: .75rem;
}

.step-icon.rights::after {
  border: 2px solid #222817;
  border-bottom: 0;
  border-radius: .7rem .7rem 0 0;
  height: .78rem;
  left: 1rem;
  top: .48rem;
  width: .72rem;
}

.step-icon.unsituated::before {
  border: 2px dashed rgba(118, 63, 92, .72);
  border-radius: 999px;
  inset: .48rem;
}

.step-icon.unsituated::after {
  background: #763f5c;
  border-radius: 999px;
  height: .7rem;
  left: .56rem;
  top: .92rem;
  width: .7rem;
}

.step-icon.architecture::before {
  background:
    linear-gradient(180deg, #557a95 0 .52rem, transparent .54rem .72rem, #587b4d .74rem 1.25rem, transparent 1.27rem 1.45rem, #763f5c 1.47rem 2rem);
  border-radius: .25rem;
  left: .62rem;
  right: .62rem;
  top: .43rem;
  bottom: .43rem;
}

.step-icon.architecture::after {
  border-left: 2px solid rgba(34, 40, 23, .55);
  bottom: .65rem;
  left: 50%;
  top: .65rem;
}

.ifc-pipeline {
  grid-template-columns: repeat(6, minmax(0, 1fr));
}

.pipeline-node {
  min-height: 4.6rem;
  place-items: center;
  text-align: center;
}

.validation-flow {
  grid-template-columns: repeat(7, minmax(0, 1fr));
}

.validation-node {
  border-top: 4px solid #557a95;
}

.validation-gate {
  align-content: center;
  background: #587b4d;
  color: #fff;
  font-weight: 900;
  justify-items: center;
}

.situated-ai-stack {
  grid-template-columns: minmax(0, 1fr);
}

.stack-layer.project {
  border-left-color: #8a6f3d;
}

.stack-layer.bim {
  border-left-color: #763f5c;
}

.stack-layer.sig {
  border-left-color: #557a95;
}

.stack-layer.rules {
  border-left-color: #587b4d;
}

.stack-layer.llm {
  border-left-color: #222817;
}

.final-chain {
  grid-template-columns: repeat(8, minmax(0, 1fr));
}

.conclusion-photo-visual {
  align-content: stretch;
  gap: .7rem;
  grid-template-rows: minmax(0, 1fr) auto;
}

.conclusion-photo-figure {
  background: #fff;
  border: var(--border);
  border-radius: var(--radius);
  display: grid;
  min-height: 24rem;
  overflow: hidden;
  padding: .45rem;
}

.conclusion-photo-figure img {
  border-radius: calc(var(--radius) - .25rem);
  display: block;
  height: 100%;
  object-fit: cover;
  width: 100%;
}

.conclusion-flow-strip {
  align-items: stretch;
  display: grid;
  gap: .45rem;
  grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr) auto minmax(0, 1fr) auto minmax(0, 1fr) auto minmax(0, 1fr);
}

.conclusion-flow-strip div,
.conclusion-card-grid div {
  background: #fff;
  border: var(--border);
  border-radius: var(--radius);
  display: grid;
  gap: .12rem;
  padding: .55rem .62rem;
}

.conclusion-flow-strip div {
  text-align: center;
}

.conclusion-flow-strip strong,
.conclusion-card-grid strong {
  color: var(--color-brand-strong);
  font-size: .9rem;
}

.conclusion-flow-strip span,
.conclusion-card-grid span {
  color: var(--color-muted);
  font-size: .78rem;
  line-height: 1.22;
}

.conclusion-flow-strip .flow-arrow {
  align-self: center;
  background: transparent;
  border: 0;
  color: var(--color-brand-strong);
  font-size: 1.18rem;
  font-weight: 900;
  padding: 0;
}

.conclusion-card-grid {
  display: grid;
  gap: .5rem;
}

.conclusion-card-grid.four {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.conclusion-card-grid div {
  border-left: 5px solid #557a95;
}

.conclusion-card-grid div:nth-child(2) {
  border-left-color: #8a6f3d;
}

.conclusion-card-grid div:nth-child(3) {
  border-left-color: #587b4d;
}

.conclusion-card-grid div:nth-child(4) {
  border-left-color: #763f5c;
}

body.slide-viewer-active {
  overflow: hidden;
}

.slide-viewer[hidden] {
  display: none;
}

.slide-viewer {
  --slide-viewer-progress: 0%;
  --slide-viewer-type-scale: 1;
  background: #1d2420;
  display: grid;
  gap: .75rem;
  grid-template-rows: minmax(0, 1fr) auto;
  inset: 0;
  padding: clamp(.5rem, 1.5vw, 1rem);
  position: fixed;
  z-index: 500;
}

.slide-viewer::after {
  background: linear-gradient(90deg, #e8eadf var(--slide-viewer-progress), rgba(251, 248, 241, .22) 0);
  bottom: 0;
  content: "";
  height: 4px;
  left: 0;
  position: fixed;
  right: 0;
}

.slide-viewer-stage {
  align-items: center;
  display: grid;
  justify-items: center;
  min-height: 0;
  overflow: hidden;
  outline: 0;
}

.slide-viewer .slide-pattern {
  aspect-ratio: 16 / 9;
  border-left-width: 7px;
  box-shadow: 0 24px 80px rgba(0, 0, 0, .34);
  max-height: calc(100vh - 5.8rem);
  max-width: calc((100vh - 5.8rem) * 16 / 9);
  min-height: 0;
  overflow: auto;
  padding: clamp(1.25rem, 2.1vw, 2.1rem);
  width: min(100%, calc(100vw - 2rem));
}

.slide-viewer .slide-pattern h2 {
  font-size: calc(clamp(2.1rem, 3vw, 3.05rem) * var(--slide-viewer-type-scale));
  letter-spacing: 0;
  line-height: .98;
  max-width: none;
}

.slide-viewer .slide-pattern h3 {
  font-size: calc(clamp(1.08rem, 1.22vw, 1.36rem) * var(--slide-viewer-type-scale));
  line-height: 1.18;
  margin-bottom: .2rem;
}

.slide-viewer .slide-pattern p,
.slide-viewer .slide-pattern li {
  font-size: calc(clamp(1.02rem, 1.18vw, 1.28rem) * var(--slide-viewer-type-scale));
  line-height: 1.42;
}

.slide-viewer .slide-pattern .kicker,
.slide-viewer .visual-label {
  font-size: calc(clamp(.78rem, .88vw, .96rem) * var(--slide-viewer-type-scale));
}

.slide-viewer .semantic-visual strong {
  font-size: calc(clamp(1rem, 1.1vw, 1.24rem) * var(--slide-viewer-type-scale));
}

.slide-viewer .semantic-visual span,
.slide-viewer .semantic-visual em,
.slide-viewer .visual-caption {
  font-size: calc(clamp(.9rem, 1vw, 1.08rem) * var(--slide-viewer-type-scale));
}

.slide-viewer .note-orateur,
.slide-viewer .source-ref {
  display: none;
}

.slide-viewer .callout {
  background: transparent;
  border: 0;
  color: #6f786f;
  font-size: calc(clamp(1.12rem, 1.36vw, 1.46rem) * var(--slide-viewer-type-scale));
  font-weight: 500;
  justify-items: center;
  margin-top: .2rem;
  padding: .45rem 2rem 0;
  text-align: center;
}

.slide-viewer .callout::before {
  color: rgba(111, 120, 111, .78);
  content: "À retenir";
  font-size: .74rem;
  font-weight: 900;
  letter-spacing: .12em;
  margin-bottom: .1rem;
  text-transform: uppercase;
}

.slide-viewer .callout p {
  font-size: inherit;
  line-height: 1.35;
  max-width: 62rem;
}

.slide-viewer .semantic-visual {
  max-height: 100%;
  overflow: auto;
}

.slide-viewer .language-interface-visual,
.slide-viewer .llm-maturity-visual,
.slide-viewer .emancipation-visual {
  align-content: stretch;
  grid-template-rows: auto minmax(0, 1fr) auto;
  overflow: hidden;
}

.slide-viewer .language-interface-board,
.slide-viewer .maturity-path,
.slide-viewer .emancipation-board {
  min-height: 0;
}

.slide-viewer .llm-principle-visual,
.slide-viewer .llm-society-visual,
.slide-viewer .real-context-computing-visual,
.slide-viewer .llm-maturity-visual,
.slide-viewer .agent-folder-visual,
.slide-viewer .codex-demo-visual,
.slide-viewer .format-contract-visual,
.slide-viewer .situated-ai-visual {
  align-content: stretch;
  grid-template-rows: auto minmax(0, 1fr) auto;
}

.slide-viewer .llm-principle-visual {
  grid-template-rows: auto auto auto minmax(0, 1fr);
}

.slide-viewer .market-workflow .market-card {
  align-items: stretch;
}

.slide-viewer .information-history-board,
.slide-viewer .real-software-gap-map,
.slide-viewer .bim-finish-board {
  min-height: 0;
}

.slide-viewer .information-history-board {
  grid-template-rows: minmax(0, 1fr);
}

.slide-viewer .information-history-figure {
  min-height: 0;
}

.slide-viewer .real-context-computing-visual {
  grid-template-rows: auto minmax(0, .96fr) minmax(0, .64fr) auto;
  overflow: hidden;
}

.slide-viewer .real-context-computing-visual {
  overflow: hidden;
}

.slide-viewer .llm-maturity-visual {
  grid-template-rows: auto minmax(0, 1fr) auto;
}

.slide-viewer .language-shift-board .shift-lane,
.slide-viewer .language-shift-board .shift-operator {
  align-content: center;
}

.slide-viewer .llm-wish-board,
.slide-viewer .llm-wish-cards {
  min-height: 0;
}

.slide-viewer .llm-wish-figure {
  height: 100%;
}

.slide-viewer .agent-folder-layout,
.slide-viewer .codex-demo-grid,
.slide-viewer .diagnostic-map-visual,
.slide-viewer .format-contract-grid,
.slide-viewer .situated-ai-stack {
  align-items: stretch;
  min-height: 0;
}

.slide-viewer .agent-folder-layout {
  height: 100%;
}

.slide-viewer .diagnostic-map-visual {
  height: 100%;
}

.slide-viewer .codex-demo-visual {
  grid-template-rows: auto auto minmax(0, 1fr);
}

.slide-viewer .codex-demo-grid {
  align-items: stretch;
}

.slide-viewer .demo-step {
  align-content: center;
  min-height: 0;
  padding-block: .55rem;
}

.slide-viewer .diagnostic-map-side {
  min-height: 0;
}

.slide-viewer .folder-tree {
  display: grid;
  gap: .5rem;
  grid-template-rows: repeat(7, minmax(0, 1fr));
  min-height: 0;
}

.slide-viewer .agent-rules-card {
  align-content: stretch;
  grid-template-rows: auto repeat(4, minmax(0, 1fr));
  min-height: 0;
}

.slide-viewer .agent-rules-card p {
  align-content: center;
  display: grid;
}

.slide-viewer .file-row {
  align-content: center;
}

.slide-viewer .market-card strong,
.slide-viewer .market-mode strong,
.slide-viewer .market-check strong,
.slide-viewer .llm-stage strong,
.slide-viewer .llm-prompt-demo strong,
.slide-viewer .llm-verification-card strong,
.slide-viewer .society-node strong,
.slide-viewer .society-core strong,
.slide-viewer .tension-card strong,
.slide-viewer .wish-card strong,
.slide-viewer .shift-lane strong,
.slide-viewer .shift-operator strong,
.slide-viewer .context-age strong,
.slide-viewer .context-lane strong,
.slide-viewer .context-gap strong,
.slide-viewer .history-era strong,
.slide-viewer .information-case-thread strong,
.slide-viewer .real-side strong,
.slide-viewer .software-side strong,
.slide-viewer .gap-center strong,
.slide-viewer .llm-bridge strong,
.slide-viewer .context-proof-strip strong,
.slide-viewer .finish-column strong,
.slide-viewer .finish-arrow strong,
.slide-viewer .maturity-step strong,
.slide-viewer .maturity-roles strong,
.slide-viewer .file-row strong,
.slide-viewer .agent-rules-card strong,
.slide-viewer .agent-code span,
.slide-viewer .demo-step strong,
.slide-viewer .format-card strong,
.slide-viewer .stack-layer strong,
.slide-viewer .visual-step strong {
  font-size: calc(1.05rem * var(--slide-viewer-type-scale));
  line-height: 1.16;
}

.slide-viewer .market-card span,
.slide-viewer .market-mode span,
.slide-viewer .market-check span,
.slide-viewer .llm-stage span,
.slide-viewer .llm-prompt-demo span,
.slide-viewer .llm-verification-card span,
.slide-viewer .society-node span,
.slide-viewer .society-core span,
.slide-viewer .tension-card span,
.slide-viewer .wish-card span,
.slide-viewer .shift-lane span,
.slide-viewer .shift-operator span,
.slide-viewer .context-age span,
.slide-viewer .context-lane span,
.slide-viewer .context-gap span,
.slide-viewer .context-outcome-strip span,
.slide-viewer .site-thread span,
.slide-viewer .history-era span,
.slide-viewer .history-era em,
.slide-viewer .information-case-thread span,
.slide-viewer .real-side span,
.slide-viewer .software-side span,
.slide-viewer .gap-center span,
.slide-viewer .llm-bridge span,
.slide-viewer .context-proof-strip span,
.slide-viewer .finish-column span,
.slide-viewer .finish-arrow span,
.slide-viewer .maturity-step span,
.slide-viewer .maturity-roles span,
.slide-viewer .file-row span,
.slide-viewer .agent-rules-card p,
.slide-viewer .demo-step span,
.slide-viewer .map-side-card span,
.slide-viewer .map-label,
.slide-viewer .format-card span,
.slide-viewer .stack-layer span,
.slide-viewer .visual-step .step-text {
  font-size: calc(.92rem * var(--slide-viewer-type-scale));
  line-height: 1.28;
}

.slide-viewer .token-stream span,
.slide-viewer .check-pill {
  font-size: calc(.9rem * var(--slide-viewer-type-scale));
}

.slide-viewer .llm-arrow,
.slide-viewer .flow-arrow {
  font-size: calc(1.55rem * var(--slide-viewer-type-scale));
}

.slide-viewer .interface-card,
.slide-viewer .maturity-step {
  align-content: center;
}

.slide-viewer .map-side-card strong {
  font-size: calc(1.05rem * var(--slide-viewer-type-scale));
}

.slide-viewer .map-side-card {
  align-content: center;
}

.slide-viewer .information-case-thread div,
.slide-viewer .context-proof-strip div {
  align-content: center;
}

.slide-viewer .history-era {
  align-content: stretch;
  grid-template-rows: auto repeat(3, minmax(0, 1fr)) auto;
}

.slide-viewer .real-side,
.slide-viewer .software-side,
.slide-viewer .gap-center,
.slide-viewer .llm-bridge {
  align-content: stretch;
  grid-template-rows: auto repeat(5, minmax(0, 1fr));
}

.slide-viewer .finish-column {
  align-content: stretch;
  grid-template-rows: auto repeat(6, minmax(0, 1fr));
}

.slide-viewer .history-era span,
.slide-viewer .history-era em,
.slide-viewer .real-side span,
.slide-viewer .software-side span,
.slide-viewer .gap-center span,
.slide-viewer .llm-bridge span,
.slide-viewer .finish-column span {
  align-content: center;
  display: grid;
}

.slide-viewer .finish-arrow {
  align-content: center;
}

.slide-viewer .emancipation-lane {
  grid-template-rows: auto repeat(4, minmax(0, 1fr));
}

.slide-viewer .emancipation-lane span {
  align-content: center;
  display: grid;
}

.slide-viewer .climae-case-visual {
  align-content: stretch;
  grid-template-rows: minmax(0, 1fr);
  min-height: 0;
  overflow: hidden;
  padding: .38rem;
}

.slide-viewer .climae-case-figure {
  align-content: center;
  display: block;
  height: 100%;
  min-height: 0;
  position: relative;
}

.slide-viewer .climae-case-figure img {
  height: calc(100% - .7rem);
  inset: .35rem;
  max-height: none;
  max-width: none;
  object-fit: contain;
  position: absolute;
  width: calc(100% - .7rem);
}

.slide-viewer .climae-case-figure .climae-live-map-link {
  inset: .35rem;
  position: absolute;
}

.slide-viewer .climae-case-figure .climae-live-map-link img {
  height: 100%;
  inset: 0;
  width: 100%;
}

.slide-viewer .conclusion-photo-visual {
  grid-template-rows: minmax(0, 1fr) auto;
  min-height: 0;
  overflow: hidden;
}

.slide-viewer .conclusion-photo-figure {
  min-height: 0;
  padding: .32rem;
}

.slide-viewer .conclusion-flow-strip,
.slide-viewer .conclusion-card-grid {
  gap: .42rem;
}

.slide-viewer .conclusion-flow-strip div,
.slide-viewer .conclusion-card-grid div {
  align-content: center;
  padding: .42rem .48rem;
}

.slide-viewer .conclusion-flow-strip strong,
.slide-viewer .conclusion-card-grid strong {
  font-size: clamp(1rem, 1.08vw, 1.18rem);
  line-height: 1.12;
}

.slide-viewer .conclusion-flow-strip span,
.slide-viewer .conclusion-card-grid span {
  font-size: clamp(.86rem, .94vw, 1.02rem);
  line-height: 1.2;
}

.slide-viewer .terrain-context-visual {
  grid-template-rows: auto minmax(0, 1fr) auto;
  min-height: 0;
  overflow: hidden;
}

.slide-viewer .terrain-case-grid,
.slide-viewer .adaptation-response-visual {
  min-height: 0;
}

.slide-viewer .terrain-photo-card-grid {
  min-height: 0;
}

.slide-viewer .terrain-photo-card {
  gap: .32rem;
  grid-template-rows: minmax(0, 1fr) auto;
  min-height: 0;
  padding: .34rem;
}

.slide-viewer .terrain-photo-card .terrain-photo-figure {
  min-height: 0;
}

.slide-viewer .terrain-photo-caption {
  padding: .02rem .08rem .1rem;
}

.slide-viewer .terrain-photo-caption strong {
  font-size: clamp(1rem, 1.08vw, 1.18rem);
  line-height: 1.14;
}

.slide-viewer .terrain-photo-caption p {
  font-size: clamp(.88rem, .96vw, 1.04rem);
  line-height: 1.22;
}

.slide-viewer .terrain-photo-caption small {
  font-size: clamp(.76rem, .84vw, .92rem);
  line-height: 1.16;
}

.slide-viewer .terrain-case-card {
  gap: .35rem;
  grid-template-rows: minmax(13.6rem, 1fr) auto auto auto;
  min-height: 0;
}

.slide-viewer .terrain-case-map {
  min-height: 13.6rem;
}

.slide-viewer .terrain-case-card p,
.slide-viewer .response-action-card span {
  font-size: clamp(.92rem, 1vw, 1.08rem);
  line-height: 1.25;
}

.slide-viewer .terrain-geodata-chain div,
.slide-viewer .response-trace-strip div {
  padding: .42rem;
}

.slide-viewer .response-site-map {
  min-height: 14.5rem;
}

.slide-viewer .response-action-board {
  gap: .45rem;
}

.slide-viewer .response-action-card {
  padding: .55rem;
}

.slide-viewer .adaptation-photo-visual {
  grid-template-rows: minmax(0, 1fr) auto;
  min-height: 0;
  overflow: hidden;
}

.slide-viewer .adaptation-photo-figure {
  min-height: 0;
  padding: .32rem;
}

.slide-viewer .adaptation-solution-grid div {
  padding: .42rem .48rem;
}

.slide-viewer .adaptation-solution-grid strong {
  font-size: clamp(.82rem, .92vw, 1rem);
}

.slide-viewer .adaptation-solution-grid span {
  font-size: clamp(.68rem, .76vw, .84rem);
}

.slide-viewer .reference-svg-visual {
  align-content: stretch;
  grid-template-rows: minmax(0, 1fr);
  min-height: 0;
  overflow: hidden;
  padding: .38rem;
}

.slide-viewer .reference-svg-figure {
  align-content: center;
  display: block;
  height: 100%;
  min-height: 0;
  position: relative;
}

.slide-viewer .reference-svg-figure img {
  aspect-ratio: auto;
  height: calc(100% - .7rem);
  inset: .35rem;
  max-height: none;
  max-width: none;
  object-fit: contain;
  position: absolute;
  width: calc(100% - .7rem);
}

.slide-viewer .history-figure img {
  max-height: min(42vh, 26rem);
}

.slide-viewer .history-strip img {
  max-height: min(30vh, 18rem);
}

.slide-viewer-nav {
  align-items: center;
  background: rgba(251, 248, 241, .96);
  border: 1px solid rgba(251, 248, 241, .34);
  border-radius: var(--radius);
  box-shadow: 0 16px 44px rgba(0, 0, 0, .22);
  display: grid;
  gap: .5rem;
  grid-template-columns: auto auto minmax(4.5rem, auto) minmax(8rem, 1fr) minmax(12rem, 26rem) auto;
  margin-inline: auto;
  max-width: 84rem;
  padding: .55rem;
  width: 100%;
}

.slide-viewer-button,
.slide-viewer-select {
  background: #fffdf7;
  border: var(--border);
  border-radius: calc(var(--radius) - .2rem);
  color: var(--color-brand-strong);
  font: inherit;
  font-weight: 700;
  min-height: 2.6rem;
  padding: .45rem .7rem;
}

.slide-viewer-button {
  cursor: pointer;
}

.slide-viewer-button:hover,
.slide-viewer-button:focus-visible {
  background: var(--color-brand);
  color: #fff;
}

.slide-viewer-button:disabled {
  cursor: not-allowed;
  opacity: .42;
}

.slide-viewer-progress {
  color: var(--color-brand-strong);
  font-size: .9rem;
  font-weight: 800;
  text-align: center;
}

.slide-viewer-range {
  accent-color: var(--color-brand);
  width: 100%;
}

.slide-viewer-select {
  min-width: 0;
  width: 100%;
}

@media (min-width: 768px) {
  .formation-entry {
    grid-template-columns: minmax(0, 1fr) minmax(14rem, 18rem);
  }

  .chapter-sequence-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .formation-meta.course-meta {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .deck-spine {
    grid-template-columns: repeat(auto-fit, minmax(9rem, 1fr));
  }

  .programme-slot {
    grid-template-columns: 8.5rem minmax(0, 1fr);
  }

  .programme-slot > :not(.programme-time) {
    grid-column: 2;
  }

  .programme-time {
    grid-column: 1;
    grid-row: 1 / span 5;
  }

  .columns {
    display: grid;
    gap: var(--spacing-md);
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (min-width: 1024px) {
  .pilot-page .slide-pattern {
    grid-template-columns: minmax(15rem, .26fr) minmax(0, .74fr);
  }

  .slide-viewer.pilot-page .slide-pattern {
    column-gap: clamp(1rem, 1.3vw, 1.6rem);
    grid-template-columns: minmax(19rem, .28fr) minmax(0, .72fr);
    grid-template-rows: max-content max-content minmax(0, 1fr) max-content;
    padding: clamp(1.15rem, 1.6vw, 1.8rem);
    row-gap: clamp(.8rem, 1vw, 1.2rem);
  }


  .pilot-page .slide-pattern > .kicker,
  .pilot-page .slide-pattern > h2 {
    grid-column: 1 / -1;
  }
  .pilot-page .slide-pattern > .columns {
    grid-column: 1;
    grid-template-columns: 1fr;
  }

  .slide-viewer.pilot-page .slide-pattern > .columns {
    grid-row: 3;
    min-height: 0;
  }

  .pilot-page .slide-pattern > .semantic-visual {
    grid-column: 2;
    grid-row: 3 / span 2;
  }

  .slide-viewer.pilot-page .slide-pattern > .semantic-visual {
    align-self: stretch;
    grid-row: 3 / span 2;
    min-height: 0;
  }

  .pilot-page .slide-pattern > .callout,
  .pilot-page .slide-pattern > .note-orateur,
  .pilot-page .slide-pattern > .source-ref {
    grid-column: 1 / -1;
  }

  .pilot-page .slide-pattern > .callout,
  .slide-viewer.pilot-page .slide-pattern > .callout {
    align-self: end;
    grid-column: 1;
    grid-row: 4;
  }

  .pilot-page .slide-pattern > .note-orateur,
  .pilot-page .slide-pattern > .source-ref {
    grid-column: 1 / -1;
  }

  .slide-viewer.pilot-page .slide-pattern > .columns {
    gap: .62rem;
  }

  .slide-viewer.pilot-page .slide-pattern h2 {
    font-size: calc(clamp(2.15rem, 2.8vw, 3.25rem) * var(--slide-viewer-type-scale));
    line-height: .96;
    margin: 0;
    max-width: none;
  }

  .slide-viewer.pilot-page .slide-pattern > .columns > div {
    gap: .3rem;
    padding: .7rem;
  }

  .slide-viewer.pilot-page .slide-pattern > .columns h3 {
    font-size: calc(clamp(1.04rem, 1.08vw, 1.22rem) * var(--slide-viewer-type-scale));
    margin-bottom: 0;
  }

  .slide-viewer.pilot-page .slide-pattern > .columns p {
    font-size: calc(clamp(.98rem, 1.03vw, 1.16rem) * var(--slide-viewer-type-scale));
    line-height: 1.36;
  }

  .slide-viewer.pilot-page .slide-pattern > .callout {
    background: #fff;
    border: var(--border);
    border-left: 4px solid #222817;
    border-radius: calc(var(--radius) - .2rem);
    color: #3b4233;
    gap: .18rem;
    justify-items: start;
    margin-top: auto;
    padding: .75rem;
    text-align: left;
  }

  .slide-viewer.pilot-page .slide-pattern > .callout::before {
    color: var(--color-brand-strong);
    font-size: calc(clamp(1.08rem, 1.12vw, 1.24rem) * var(--slide-viewer-type-scale));
    letter-spacing: 0;
    margin-bottom: 0;
    text-transform: none;
  }

  .slide-viewer.pilot-page .slide-pattern > .callout p {
    font-size: calc(clamp(1.02rem, 1.08vw, 1.22rem) * var(--slide-viewer-type-scale));
    line-height: 1.3;
    max-width: none;
  }

  .pilot-page .opening-history-slide,
  .slide-viewer.pilot-page .opening-history-slide {
    grid-template-columns: minmax(0, 1fr);
  }

  .pilot-page .opening-history-slide > .history-slide-body {
    grid-column: 1 / -1;
    grid-template-columns: minmax(10rem, .23fr) minmax(0, .77fr);
  }

  .slide-viewer.pilot-page .opening-history-slide {
    gap: clamp(.55rem, .8vw, .85rem);
    grid-template-rows: max-content minmax(0, 1fr) max-content;
    padding: clamp(.9rem, 1.35vw, 1.35rem);
  }

  .slide-viewer.pilot-page .history-format-prototype {
    row-gap: clamp(1rem, 1.25vw, 1.35rem);
    grid-template-rows: max-content minmax(0, 1fr);
  }

  .slide-viewer.pilot-page .opening-history-slide h2 {
    font-size: clamp(2rem, 2.6vw, 2.95rem);
    line-height: .96;
    max-width: none;
  }

  .slide-viewer.pilot-page .opening-history-slide > .history-slide-body {
    gap: clamp(.75rem, 1vw, 1.05rem);
    grid-template-columns: minmax(12rem, .21fr) minmax(0, .79fr);
    min-height: 0;
  }

  .pilot-page .history-format-prototype > .history-slide-body,
  .slide-viewer.pilot-page .history-format-prototype > .history-slide-body {
    grid-template-columns: minmax(15rem, .24fr) minmax(0, .76fr);
  }

  .pilot-page .opening-history-slide > .callout,
  .pilot-page .opening-history-slide > .note-orateur,
  .pilot-page .opening-history-slide > .source-ref {
    grid-column: 1 / -1;
  }

  .slide-viewer .opening-history-slide .history-side-panel {
    gap: .85rem;
    padding: clamp(.8rem, 1vw, 1rem);
  }

  .slide-viewer .history-format-prototype .history-side-panel {
    gap: .42rem;
    padding: 0;
  }

  .slide-viewer .history-format-prototype .history-panel-points {
    gap: .42rem;
  }

  .slide-viewer .history-format-prototype .history-panel-points li {
    gap: .1rem;
    padding-top: .42rem;
  }

  .slide-viewer .history-format-prototype .history-panel-intro,
  .slide-viewer .history-format-prototype .history-panel-takeaway,
  .slide-viewer .history-format-prototype .history-panel-note,
  .slide-viewer .history-format-prototype .history-panel-questions {
    gap: .15rem;
    padding: .5rem;
  }

  .slide-viewer .history-format-prototype .history-panel-retain {
    gap: .18rem;
    padding: .6rem;
  }

  .slide-viewer .opening-history-slide .history-side-panel p,
  .slide-viewer .opening-history-slide .history-keywords li {
    font-size: clamp(1.05rem, 1.12vw, 1.22rem);
    line-height: 1.32;
  }

  .slide-viewer .opening-history-slide .history-keywords strong {
    font-size: clamp(1.08rem, 1.16vw, 1.26rem);
  }

  .slide-viewer .opening-history-slide .history-keywords span {
    font-size: clamp(.96rem, 1.02vw, 1.1rem);
  }

  .slide-viewer .opening-history-slide .history-panel-points strong {
    font-size: clamp(1.08rem, 1.16vw, 1.26rem);
  }

  .slide-viewer .opening-history-slide .history-panel-points span,
  .slide-viewer .opening-history-slide .history-panel-takeaway p,
  .slide-viewer .opening-history-slide .history-panel-note p,
  .slide-viewer .opening-history-slide .history-panel-questions p,
  .slide-viewer .opening-history-slide .history-panel-retain p {
    font-size: clamp(.94rem, 1vw, 1.1rem);
    line-height: 1.24;
  }

  .slide-viewer .history-format-prototype .history-panel-intro h3,
  .slide-viewer .history-format-prototype .history-panel-points strong,
  .slide-viewer .history-format-prototype .history-panel-takeaway strong,
  .slide-viewer .history-format-prototype .history-panel-note strong,
  .slide-viewer .history-format-prototype .history-panel-questions strong {
    font-size: clamp(1.02rem, 1.08vw, 1.18rem);
  }

  .slide-viewer .history-format-prototype .history-panel-retain strong {
    font-size: clamp(1.12rem, 1.2vw, 1.32rem);
  }

  .slide-viewer .history-format-prototype .history-panel-intro p,
  .slide-viewer .history-format-prototype .history-panel-points span,
  .slide-viewer .history-format-prototype .history-panel-takeaway p,
  .slide-viewer .history-format-prototype .history-panel-note p,
  .slide-viewer .history-format-prototype .history-panel-questions p {
    font-size: clamp(.98rem, 1.04vw, 1.14rem);
  }

  .slide-viewer .history-format-prototype .history-panel-retain p {
    color: #3b4233;
    font-size: clamp(1.08rem, 1.16vw, 1.26rem);
    line-height: 1.22;
  }

  .slide-viewer .opening-history-slide .history-main-visual {
    align-content: stretch;
    grid-template-rows: minmax(0, 1fr);
    min-height: 0;
    overflow: hidden;
  }

  .slide-viewer .opening-history-slide .history-main-visual {
    padding: .38rem;
  }

  .slide-viewer .opening-history-slide .history-main-visual .history-figure {
    align-content: center;
    display: block;
    justify-items: center;
    height: 100%;
    min-height: 0;
    position: relative;
  }

  .slide-viewer .opening-history-slide .history-main-visual .history-figure img {
    aspect-ratio: auto;
    height: calc(100% - .7rem);
    inset: .35rem;
    max-height: none;
    max-width: none;
    object-fit: contain;
    position: absolute;
    width: calc(100% - .7rem);
  }

  .slide-viewer .opening-history-slide .callout {
    font-size: clamp(1rem, 1.16vw, 1.25rem);
    padding-top: .15rem;
  }

  .slide-viewer .opening-history-slide .callout::before {
    margin-bottom: 0;
  }

  .slide-viewer .opening-history-slide .history-figure-pair .history-figure img {
    height: auto;
    inset: auto;
    max-height: min(46vh, 27rem);
    max-width: 100%;
    position: static;
    width: 100%;
  }

  .slide-viewer .opening-history-slide .history-figure-pair .history-figure {
    align-self: center;
    display: grid;
    height: auto;
    position: static;
  }

  .slide-viewer .opening-history-slide .history-figure-pair {
    align-items: center;
  }

  .slide-viewer .opening-history-slide .history-figure-pair.canada-gis-stack {
    align-items: stretch;
    grid-template-columns: minmax(0, 1fr);
    grid-template-rows: repeat(2, minmax(0, 1fr));
    height: 100%;
  }

  .slide-viewer .opening-history-slide .history-figure-pair.canada-gis-stack .history-figure {
    align-self: stretch;
    height: 100%;
    min-height: 0;
  }

  .slide-viewer .opening-history-slide .history-figure-pair.canada-gis-stack .history-figure img {
    height: 100%;
    max-height: none;
    object-fit: contain;
  }

}
@media (min-width: 640px) {
  .vector-equation {
    align-items: stretch;
    grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr) auto minmax(0, 1fr);
  }

  .raster-board {
    grid-template-columns: minmax(0, .95fr) minmax(11rem, .75fr);
  }

  .lifecycle-flow,
  .five-a-grid {
    grid-template-columns: repeat(auto-fit, minmax(6.5rem, 1fr));
  }
}

@media (max-width: 860px) {
  .slide-viewer {
    gap: .5rem;
  }

  .slide-viewer .slide-pattern {
    aspect-ratio: auto;
    height: calc(100vh - 12.5rem);
    max-height: none;
    max-width: none;
  }

  .slide-viewer .slide-pattern h2 {
    font-size: clamp(1.9rem, 9vw, 2.8rem);
    line-height: 1.03;
  }

  .slide-viewer .slide-pattern p,
  .slide-viewer .slide-pattern li {
    font-size: clamp(.96rem, 4.4vw, 1.12rem);
    line-height: 1.36;
  }

  .slide-viewer .slide-pattern h3 {
    font-size: clamp(1rem, 4.6vw, 1.16rem);
  }

  .slide-viewer .callout {
    font-size: clamp(1rem, 4.8vw, 1.18rem);
    padding-inline: .6rem;
  }

  .slide-viewer-nav {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .slide-viewer-range,
  .slide-viewer-select {
    grid-column: 1 / -1;
  }

  .abstraction-choice-grid,
  .audit-board,
  .bim-site-grid,
  .coordinate-case-grid,
  .dem-image-grid,
  .geometry-choice-grid,
  .leveling-chain,
  .projection-distortion-grid,
  .projection-fit-grid,
  .raster-zoom-layout,
  .srs-control-cards,
  .srs-control-grid,
  .treatment-pipeline,
  .vector-workbench,
  .vertical-check-grid,
  .visual-checklist,
  .territory-question-grid,
  .territory-caption-strip,
  .network-round-grid,
  .layer-stack-board,
  .qualification-strip,
  .data-ticket-grid,
  .execution-modes-grid,
  .responsibility-board,
  .weather-compare-grid,
  .weather-timeline,
  .climae-chain,
  .location-grid,
  .validation-flow,
  .situated-ai-stack,
  .ifc-pipeline,
  .data-cube,
  .case-data-grid,
  .case-study-layout,
  .case-synthesis-grid,
  .execution-architecture,
  .market-landscape-grid,
  .language-interface-board,
  .language-outcome-grid,
  .prompt-workspace-flow,
  .workspace-checklist,
  .maturity-path,
  .maturity-roles,
  .emancipation-board,
  .emancipation-checks,
  .agent-folder-layout,
  .visual-step-strip,
  .ai-action-strip,
  .format-proof-strip,
  .situated-proof-strip,
  .codex-demo-grid,
  .ifc-risk-board,
  .execution-location-grid,
  .qgis-screen,
  .model-graph,
  .source-triage-grid,
  .scale-ladder,
  .workshop-run-sheet,
  .output-triptych,
  .weather-taxonomy-grid,
  .uncertainty-board,
  .prompt-context-grid,
  .format-contract-grid,
  .format-warning-strip,
  .conclusion-flow-strip,
  .conclusion-card-grid.four,
  .terrain-case-grid,
  .terrain-photo-card-grid,
  .terrain-geodata-chain,
  .adaptation-response-visual,
  .adaptation-solution-grid,
  .response-action-board,
  .response-trace-strip,
  .context-flow-diagram,
  .context-layer-legend,
  .context-layer-grid,
  .adaptation-options-grid,
  .adaptation-principle,
  .adaptation-decision-strip,
  .canada-flow,
  .canada-gis-concept-grid,
  .canada-gis-hero,
  .day-plan-columns,
  .day-plan-grid,
  .history-axis,
  .history-figure-pair,
  .history-principle-grid,
  .history-system-grid,
  .indicator-legend {
    grid-template-columns: minmax(0, 1fr);
  }

  .data-use-matrix,
  .execution-proof-matrix {
    grid-template-columns: minmax(0, 1fr);
  }

  .data-use-matrix .matrix-head,
  .execution-proof-matrix .matrix-head {
    display: none;
  }

  .vector-workbench .layer-strip {
    grid-column: auto;
  }

  .model-node.output,
  .qgis-table {
    grid-column: auto;
    grid-row: auto;
  }

  .capture-label {
    display: none;
  }

  .territory-photo-label {
    display: none;
  }
}
