/* Full-width bands sit outside the site's capped reading column. */
html:has(body.gpb-page) { overflow-x: clip; }
html body.gpb-page { max-width: none; margin-inline: 0; }
.gpb-page .gpb-ai-section { max-width: var(--gpb-page-width); margin-inline: auto; }
.gpb-page .gpb-ai-thesis { max-width: none; padding-inline: 0; }
.gpb-ai-thesis > .gpb-ai-section-intro { max-width: var(--gpb-page-width); margin-inline: auto; padding-inline: var(--page-gutter); }
.gpb-page .page-back-bar, .gpb-page .compact-footer { max-width: var(--gpb-page-width); margin-inline: auto; }
.gpb-page .gpb-wall-stage, .gpb-wall-stage .gpb-field { width: 100%; max-width: none; margin-inline: 0; }

.gpb-finale {
  --finale-paper: #151618;
  --finale-ink: #f3f2ee;
  --finale-tile: clamp(136px, 16vw, 232px);
  --finale-gap: clamp(12px, 1.2vw, 18px);
  position: relative;
  isolation: isolate;
  width: 100%;
  height: clamp(400px, 54vw, 720px);
  margin-top: var(--gpb-section-space);
  overflow: hidden;
  overflow: clip;
  background: var(--finale-paper);
  color: var(--finale-ink);
  color-scheme: dark;
}
.gpb-finale-viewport, .gpb-finale-depth { position: absolute; inset: 0; }
.gpb-finale-viewport { mask-image: linear-gradient(transparent, #000 18%, #000 78%, transparent); }
.gpb-finale-depth {
  perspective: 1600px;
  mask-image: linear-gradient(90deg, transparent, #000 12%, #000 88%, transparent);
}
.gpb-finale-plane {
  position: absolute;
  left: 50%;
  top: 50%;
  width: calc((var(--finale-tile) + var(--finale-gap)) * 8);
  display: grid;
  gap: var(--finale-gap);
  transform: translate(-50%, -50%) rotateX(50deg) rotateZ(-20deg);
}
.gpb-finale-row { display: flex; width: max-content; will-change: transform; }
.gpb-finale-group { display: flex; flex: none; gap: var(--finale-gap); padding-right: var(--finale-gap); }
.gpb-finale-tile {
  display: block;
  flex: 0 0 var(--finale-tile);
  width: var(--finale-tile);
  height: var(--finale-tile);
  background: var(--tile-paper);
  border-radius: 6px;
  overflow: hidden;
}
.gpb-finale-tile img { display: block; width: 100%; height: 100%; object-fit: contain; }
@media (prefers-reduced-motion: reduce) {
  .gpb-finale-row { will-change: auto; }
}

.gpb-ai-section {
  --stage-0: #3b5bff;
  --stage-1: #7a3cff;
  --stage-2: #c83cff;
  --stage-3: #ff4fd8;
  --stage-4: #59e1ff;
  --stage-5: #b2baff;
  margin-top: var(--gpb-section-space);
  padding-inline: var(--page-gutter);
  scroll-margin-top: 110px;
}
.gpb-ai-section h2 {
  margin: 0;
  font: var(--gpb-h2);
  letter-spacing: var(--gpb-heading-tracking);
  overflow-wrap: normal;
  min-width: 0;
}
.gpb-ai-section-intro {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--gpb-grid-gap);
  align-items: start;
  margin-bottom: var(--gpb-media-space);
}
.gpb-ai-section p {
  margin: 0;
  font: var(--gpb-body);
  text-wrap: pretty;
  overflow-wrap: normal;
}
.gpb-ai-section-intro > * { min-width: 0; }
.gpb-ai-section-intro > p { max-width: 48ch; color: var(--theme-muted); }
.gpb-ai-section h3 { margin: 0 0 var(--gpb-heading-space); font: var(--gpb-h3); letter-spacing: var(--gpb-heading-tracking); overflow-wrap: normal; }
.gpb-ai-section-intro > h3, .gpb-events-intro > h3 { margin: 0; }
.gpb-ai-it .gpb-ai-section-intro, .gpb-ai-it .gpb-events-intro, .gpb-ai-hr .gpb-ai-section-intro { grid-template-columns: minmax(0, 1fr); gap: var(--gpb-heading-space); }
.gpb-ai-it .gpb-ai-section-intro > p, .gpb-ai-it .gpb-events-intro p, .gpb-ai-hr .gpb-ai-section-intro > p { max-width: 64ch; }
.gpb-ai-image, .gpb-ai-image img { border: 0; border-radius: var(--gpb-image-radius); box-shadow: none; }
.gpb-ai-section .gpb-ai-image { outline: none; }
.gpb-ai-image:hover { filter: brightness(.94); }
.gpb-ai-section .gpb-ai-image:focus-visible { filter: brightness(.7); }
/* The static ordered swimlane remains the reading and reduced-motion view. */
.gpb-ai-roles {
  --role-surface: var(--theme-raised);
  --role-me: #1919ef;
  --role-ai: #dd41db;
  --role-me-side: #1010ac;
  --role-ai-side: #a82fa6;
  --role-me-text: var(--role-me);
  --role-ai-text: #971b95;
  --swim-icon: #ffffff;
  --swim-shadow: #090d18;
  --pipeline-floor: #efefec;
  --pipeline-grid: #969da8;
  --pipeline-glow: #c7d5f2;
  --swim-label-ink: #202630;
}
html[data-theme="dark"] .gpb-ai-roles {
  --pipeline-floor: #101216;
  --pipeline-grid: #a0b4ff;
  --pipeline-glow: #192e58;
  --swim-label-ink: #f0f2f6;
  --role-me-text: #a6a6ff;
  --role-ai-text: #f597f3;
}
.gpb-swim-track { --swim-copy: 400 clamp(16px, 1.2vw, 17px)/1.4 var(--sans); }
.gpb-swim-stage { position: relative; }
.gpb-swim-stage > h2 { margin-bottom: var(--gpb-media-space); }
.gpb-swim-scene { display: none; }
.gpb-swim-diagram { position: relative; padding: 12px 0 8px 48px; }
.gpb-swim-static-thread { position: absolute; inset: 0; width: 100%; height: 100%; pointer-events: none; opacity: .65; }
.gpb-swim-lanes { position: absolute; inset: 12px 0 8px; display: grid; grid-template-rows: 1fr 1fr; gap: 48px; pointer-events: none; }
.gpb-swim-lanes span { align-self: center; font: var(--swim-copy); color: var(--role-me-text); }
.gpb-swim-lanes span:last-child { color: var(--role-ai-text); }
.gpb-swim-steps { position: relative; display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); grid-template-rows: repeat(2, auto); gap: 48px 12px; margin: 0; padding: 0; list-style: none; }
.gpb-swim-step { grid-column: var(--column) / span 2; grid-row: var(--row); min-width: 0; padding: 16px; border: 1px solid var(--role-me); border-radius: 8px; background: var(--role-surface); color: var(--ink); font: var(--swim-copy); overflow-wrap: normal; }
.gpb-swim-step.is-ai { border-color: var(--role-ai); }
.gpb-swim-label { font-weight: 500; }
.gpb-ai-section .gpb-swim-sentence { margin-top: 10px; color: var(--theme-muted); font: var(--gpb-caption); }
.gpb-swim-viewport { position: relative; min-width: 0; min-height: 0; overflow: clip; }
.gpb-swim-anchor { position: absolute; top: 0; left: 0; z-index: 1; width: 160px; font: inherit; color: var(--swim-label-ink); overflow-wrap: normal; text-wrap: balance; pointer-events: none; visibility: hidden; }
.gpb-swim-owner { display: block; margin-bottom: 4px; color: var(--role-me-text); font: var(--gpb-caption); }
.gpb-swim-anchor.is-ai .gpb-swim-owner { color: var(--role-ai-text); }
.gpb-swim-name { font-weight: 400; }
.gpb-swim-anchor.is-current .gpb-swim-name { color: var(--role-me-text); }
.gpb-swim-anchor.is-current.is-ai .gpb-swim-name { color: var(--role-ai-text); }
.gpb-swim-captions { width: 100%; max-width: var(--gpb-page-width); box-sizing: border-box; padding: 16px var(--page-gutter) clamp(24px, 4svh, 48px); margin: 0 auto; min-height: 5.5em; }
.gpb-ai-section .gpb-swim-captions p { font: var(--swim-copy); max-width: 65ch; color: var(--swim-label-ink); }
.gpb-swim-captions [hidden] { display: none; }
.gpb-swim-captions > p { min-width: 0; }
@media (max-width: 1023px) {
  .gpb-swim-diagram { padding: 44px 0 0; }
  .gpb-swim-lanes { inset: 0; grid-template-columns: repeat(2, minmax(0, 1fr)); grid-template-rows: 1fr; column-gap: 24px; }
  .gpb-swim-lanes span { align-self: start; }
  .gpb-swim-steps { grid-template-columns: repeat(2, minmax(0, 1fr)); grid-template-rows: repeat(11, auto); gap: 12px 24px; }
  .gpb-swim-step { grid-column: 1; grid-row: calc(var(--step) + 1); padding: 10px; }
  .gpb-swim-step.is-ai { grid-column: 2; }
}
@media (max-width: 767px) {
  .gpb-swim-anchor { width: 102px; font-size: 13px; }
  .gpb-swim-captions { min-height: 7em; padding-top: 8px; padding-bottom: 24px; }
}
@media (max-width: 600px) {
  .gpb-swim-steps { grid-template-columns: repeat(3, minmax(0, 1fr)); column-gap: 12px; }
  .gpb-swim-step { grid-column: 1 / span 2; }
  .gpb-swim-step.is-ai { grid-column: 2 / span 2; }
}


@media (max-width: 800px) {
  .gpb-ai-section-intro { grid-template-columns: minmax(0, 1fr); gap: var(--gpb-heading-space); margin-bottom: var(--gpb-media-space); }
}


.gpb-page .compact-footer { background: var(--paper); color: var(--ink); padding: 25px var(--page-gutter); font-weight: 600; }
.gpb-page .compact-footer a { border-color: var(--theme-muted); white-space: nowrap; }
.gpb-page .compact-footer a:focus-visible { outline: 2px solid var(--theme-focus); outline-offset: 5px; }

.gpb-events-intro p + p { margin-top: var(--gpb-paragraph-space); }
.gpb-ai-event-pair {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: var(--gpb-media-space);
  align-items: start;
}
.gpb-ai-event-flats {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--gpb-media-gap);
}
.gpb-ai-event-pair figcaption,
.gpb-ai-illustration-gallery figcaption {
  margin-top: var(--gpb-caption-space);
  color: var(--theme-muted);
  font: var(--gpb-caption);
  text-wrap: pretty;
}
.gpb-ai-it > .gpb-ai-subsection {
  margin-top: var(--gpb-section-space);
  padding: 0;
  scroll-margin-top: 110px;
}
.gpb-ai-subsection .gpb-ai-section-intro,
.gpb-ai-subsection .gpb-events-intro { margin-bottom: var(--gpb-media-space); }
.gpb-ai-subsection .gpb-ai-image { min-width: 0; margin: 0; }
.gpb-ai-process {
  --pipeline-accent: var(--stage-0);
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--gpb-media-gap);
  margin-bottom: var(--gpb-media-space);
}
.gpb-ai-process-step { min-width: 0; }
.gpb-ai-process-images { position: relative; aspect-ratio: 16 / 9; margin-bottom: var(--gpb-heading-space); }
.gpb-ai-process-images > .gpb-ai-image { position: absolute; inset: 0; }
.gpb-ai-process-images .gpb-ai-image { display: block; width: 100%; height: 100%; border-radius: 0; }
.gpb-ai-process-images img { display: block; min-width: 0; width: 100%; height: 100%; object-fit: contain; }
.gpb-ai-process-images .gpb-ai-image img { background: transparent; border-radius: 0; }
.gpb-ai-process-images a:focus-visible { outline: 2px solid var(--theme-focus); outline-offset: 4px; }
.gpb-ai-process-step h4 { font: var(--gpb-step-title); letter-spacing: 0; margin: 0 0 var(--gpb-heading-space); overflow-wrap: normal; }
.gpb-ai-process-step > p { margin: 0; font: var(--gpb-body); color: var(--theme-muted); }
.gpb-ai-process-step .gpb-ai-pipeline-tools { margin-top: var(--gpb-heading-space); }
.gpb-ai-process-step .gpb-ai-pipeline-chip { white-space: nowrap; }
.gpb-ill-reveal canvas { visibility: hidden; position: absolute; inset: 0; width: 100%; height: 100%; pointer-events: none; }
.gpb-ill-reveal.is-drawing canvas { visibility: visible; }
.gpb-ill-article-tile { position: absolute; width: 47%; height: 100%; left: 0; top: 0; }
.gpb-ill-square { position: absolute; width: 48%; aspect-ratio: 1; right: 0; top: 50%; translate: 0 -50%; }
@media screen and (prefers-reduced-motion: no-preference) {
  .gpb-ai-process.is-motion-enabled .gpb-ill-article-tile { transform: translateX(6%) scale(.94); }
  .gpb-ai-process.is-motion-enabled .gpb-ill-square { transform: translateX(-6%) scale(.94); }
  .gpb-ai-process .is-prepared .gpb-ill-article-tile,
  .gpb-ai-process .is-prepared .gpb-ill-square { transition: transform .6s cubic-bezier(.2, .7, .2, 1); }
  .gpb-ai-process .is-entered .gpb-ill-article-tile,
  .gpb-ai-process .is-entered .gpb-ill-square { transform: none; }
}
@media print { .gpb-ill-reveal canvas { display: none; } }
.gpb-ill-article { position: absolute; inset: 0; display: block; width: 100%; height: 100%; }
.gpb-ill-article-frame,
.gpb-ill-article-wire,
.gpb-ill-article-copy { fill: none; stroke-width: 1; vector-effect: non-scaling-stroke; }
.gpb-ill-article-frame { stroke: color-mix(in srgb, var(--ink) 22%, transparent); }
.gpb-ill-article-wire { stroke: color-mix(in srgb, var(--ink) 38%, transparent); }
.gpb-ill-article-copy { stroke: color-mix(in srgb, var(--ink) 22%, transparent); }
.gpb-ill-article-title { fill: color-mix(in srgb, var(--ink) 38%, transparent); }
.gpb-ai-illustration-gallery { margin: 0; }
.gpb-ai-illustration-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--gpb-media-gap); }
.gpb-ai-illustration-grid .gpb-print { min-width: 0; margin: 0; align-self: start; }
.gpb-ai-illustration-grid img { display: block; width: 100%; height: auto; aspect-ratio: 1400 / 751; object-fit: cover; }
.gpb-ai-pipeline,
.gpb-ai-event-process {
  --pipeline-1: var(--stage-0);
  --pipeline-2: color-mix(in srgb, var(--stage-0), var(--stage-1));
  --pipeline-3: var(--stage-1);
  --pipeline-4: color-mix(in srgb, var(--stage-1), var(--stage-3));
  --pipeline-5: var(--stage-3);
  --pipeline-6: var(--theme-muted);
}
/* Let the pipeline reach the page gutters while preserving adjacent reading widths. */
.gpb-page .gpb-ai-it { max-width: none; }
.gpb-ai-it > :not(.gpb-ai-pipelines) { max-width: calc(var(--gpb-page-width) - 2 * var(--page-gutter)); margin-inline: auto; }
.gpb-ai-pipelines .gpb-ai-pipeline-note { max-width: 56ch; color: var(--theme-muted); }
.gpb-ai-pipeline-node {
  position: absolute;
  top: 0;
  left: 0;
  box-sizing: border-box;
  width: 14px;
  height: 14px;
  border: 1px solid var(--pipeline-accent);
  border-radius: 50%;
  background: var(--paper);
}
.gpb-ai-pipeline-node::after { content: ''; position: absolute; inset: 3px; border-radius: inherit; background: var(--pipeline-accent); }
.gpb-ai-pipeline-steps h3 { min-width: 0; overflow-wrap: normal; margin: 0; font: var(--gpb-step-title); letter-spacing: 0; }
.gpb-ai-pipeline-steps p { font: var(--gpb-body); }
.gpb-ai-pipeline-tools { display: flex; flex-wrap: wrap; gap: 6px; }
.gpb-ai-pipeline-steps .gpb-ai-pipeline-tools { margin-top: var(--gpb-heading-space); }
.gpb-ai-pipeline-chip { max-width: 100%; box-sizing: border-box; padding: 5px 9px; border: 1px solid color-mix(in srgb, var(--pipeline-accent) 55%, var(--line)); border-radius: 100px; color: var(--ink); font: var(--gpb-caption); }
.gpb-ai-pipeline-chip.is-neutral { border-color: var(--line); color: var(--theme-muted); }
.gpb-ai-pipeline {
  --pipeline-tile: #090d18;
  --pipeline-tile-ink: #f3f2ee;
  --pipeline-floor: #efefec;
  --pipeline-grid: #969da8;
  --pipeline-glow: #c7d5f2;
  --pipeline-muted: #49515c;
  --pipeline-gap: var(--gpb-media-space);
  margin-block: var(--gpb-media-space) var(--gpb-section-space);
}
.gpb-ai-pipeline-steps { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--pipeline-gap); max-width: 640px; margin-inline: auto; }
.gpb-pipeline-row { position: relative; display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--gpb-heading-space); align-items: start; }
.gpb-pipeline-row > .gpb-ai-pipeline-node { top: 3px; }
.gpb-pipeline-row > h3 { grid-area: 1 / 1; padding-left: 28px; }
.gpb-pipeline-card { min-width: 0; }
.gpb-pipeline-visual { position: relative; aspect-ratio: 1; margin-bottom: var(--gpb-heading-space); background: var(--pipeline-tile); color: var(--pipeline-tile-ink); border-radius: var(--gpb-image-radius); }
.gpb-pipeline-visual > .gpb-ai-image { display: block; width: 100%; height: 100%; margin: 0; border-radius: inherit; }
.gpb-pipeline-visual .gpb-ai-image img { display: block; width: 100%; height: 100%; object-fit: contain; background: transparent; border-radius: inherit; }
.gpb-pipeline-visual .gpb-ai-image:focus-visible { outline: 2px solid var(--ink); outline-offset: 4px; }
.gpb-pipeline-visual .gpb-ai-image:active { filter: brightness(.9); }
.gpb-pipeline-card .gpb-ai-pipeline-chip { white-space: nowrap; }
/* The fallback remains the complete reading order; the stage is its visual twin. */
.gpb-ai-pipeline {
  position: relative;
}
html[data-theme="dark"] .gpb-ai-pipeline {
  --pipeline-floor: #101216;
  --pipeline-grid: #a0b4ff;
  --pipeline-glow: #192e58;
  --pipeline-muted: #d0d2dc;
}
.gpb-pipeline-stage {
  display: none;
  overflow: clip;
  isolation: isolate;
  margin-inline: calc(-1 * var(--page-gutter));
  background: var(--pipeline-floor);
  color: var(--ink);
}
.gpb-pipeline-stage-body {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: minmax(0, 2fr) minmax(0, 3fr);
  height: 100%;
  padding-inline: var(--page-gutter);
  box-sizing: border-box;
  pointer-events: none;
}
.gpb-pipeline-panel { align-self: center; min-width: 0; padding-right: clamp(24px, 3vw, 72px); }
.gpb-pipeline-space { min-width: 0; min-height: 0; }
/* Overlapping grid cells reserve the longest caption without shifting the scene. */
.gpb-pipeline-captions { display: grid; grid-template-columns: minmax(0, 1fr); align-items: start; min-width: 0; }
.gpb-pipeline-caption, .gpb-pipeline-interlude { grid-area: 1 / 1; min-width: 0; opacity: 0; visibility: hidden; }
.gpb-pipeline-caption { display: flex; flex-direction: column; align-items: flex-start; }
.gpb-pipeline-caption:first-child { opacity: 1; visibility: visible; }
.gpb-pipeline-caption h3, .gpb-pipeline-interlude h3, .gpb-pipeline-interlude-copy h3 { margin: 0; font: var(--gpb-step-title); letter-spacing: 0; overflow-wrap: normal; }
.gpb-pipeline-caption p, .gpb-pipeline-interlude p, .gpb-pipeline-interlude-copy p { margin: var(--gpb-step-gap, 8px) 0 0; max-width: 33ch; color: var(--pipeline-muted); font: var(--gpb-body); }
.gpb-pipeline-caption .gpb-ai-pipeline-tools { margin: var(--gpb-caption-space) 0 0; }
.gpb-pipeline-stage .gpb-ai-pipeline-chip { white-space: nowrap; font: var(--gpb-caption); padding: 4px 8px; }
.gpb-pipeline-interlude-copy { max-width: 640px; margin-inline: auto; }
.gpb-pipeline-fallback > .gpb-pipeline-interlude-copy { margin-block: var(--gpb-media-space); }
@media (max-width: 1023px) {
  .gpb-pipeline-stage-body { grid-template-columns: minmax(0, 1fr); grid-template-rows: auto minmax(0, 1fr); padding-top: 24px; }
  .gpb-pipeline-panel { width: 100%; max-width: 640px; padding-right: 0; justify-self: center; }
  .gpb-pipeline-caption p, .gpb-pipeline-interlude p { max-width: 46ch; }
}
@media (max-width: 767px) {
  .gpb-pipeline-card > p { font: var(--gpb-caption); }
  .gpb-pipeline-stage .gpb-ai-pipeline-chip { padding: 4px 8px; font-size: 12px; }
  .gpb-pipeline-stage .gpb-ai-pipeline-tools { gap: 4px; }
}
@media (max-height: 600px) {
  .gpb-pipeline-stage-body { padding-top: 12px; }
}


@media (max-width: 1000px) {
  .gpb-ai-illustration-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 1023px) {
  .gpb-ai-process { grid-template-columns: minmax(0, 1fr); gap: var(--gpb-media-space); }
}
@media (max-width: 600px) {
  .gpb-ai-illustration-grid { grid-template-columns: minmax(0, 1fr); }
}

.gpb-ai-event-process {
  --pipeline-6: var(--stage-4);
  --event-tile: #090d18;
  --event-tile-ink: #f3f2ee;
  margin-top: var(--gpb-section-space);
}
.gpb-ai-event-process > h3, .gpb-disclosure summary h3 { margin: 0 0 var(--gpb-heading-space); font: var(--gpb-h3); letter-spacing: var(--gpb-heading-tracking); overflow-wrap: normal; }
.gpb-ai-event-process .gpb-ai-brain-intro { max-width: 64ch; margin-bottom: var(--gpb-media-space); color: var(--theme-muted); }
.gpb-ai-brain-process { list-style: none; margin: 0; padding: 0; }
.gpb-ai-brain-step {
  text-wrap: pretty;
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, .85fr) minmax(0, 1.4fr);
  gap: var(--gpb-grid-gap);
  padding: 0 0 var(--gpb-media-space) 40px;
  min-width: 0;
}
.gpb-ai-brain-step::before {
  content: '';
  position: absolute;
  top: 9px;
  bottom: -9px;
  left: 6px;
  width: 1px;
  background: linear-gradient(var(--pipeline-accent), var(--pipeline-next));
  opacity: .65;
}
.gpb-ai-brain-step:last-child { padding-bottom: 0; }
.gpb-ai-brain-step:last-child::before { display: none; }
.gpb-ai-brain-step .gpb-ai-pipeline-node { top: 2px; left: 0; }
.gpb-ai-brain-step:last-child .gpb-ai-pipeline-node::after { inset: 2px; }
.gpb-ai-brain-copy { min-width: 0; }
.gpb-ai-brain-copy h5 { margin: 0 0 var(--gpb-heading-space); font: var(--gpb-step-title); letter-spacing: 0; overflow-wrap: normal; }
.gpb-ai-brain-copy > p { max-width: 38ch; font: var(--gpb-body); color: var(--theme-muted); }
.gpb-ai-brain-copy .gpb-ai-pipeline-tools { margin-top: var(--gpb-heading-space); }
.gpb-ai-brain-copy .gpb-ai-pipeline-chip { white-space: nowrap; }
.gpb-ai-brain-images { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; align-self: start; min-width: 0; }
.gpb-ai-brain-images.is-wide { grid-template-columns: minmax(0, 1fr); }
.gpb-ai-brain-images .gpb-ai-image { min-height: 0; aspect-ratio: 1; background: var(--event-tile); }
.gpb-ai-brain-images.is-wide .gpb-ai-image { aspect-ratio: 32 / 9; }
.gpb-ai-brain-images .gpb-ai-image img { width: 100%; height: 100%; object-fit: contain; background: transparent; }
@media (max-width: 800px) {
  .gpb-ai-brain-step { grid-template-columns: minmax(0, 1fr); gap: var(--gpb-media-space); padding-left: 32px; }
  .gpb-ai-brain-copy > p { max-width: 56ch; }
}
@media (max-width: 600px) {
  .gpb-ai-event-flats { grid-template-columns: minmax(0, 1fr); }
  .gpb-ai-brain-images { gap: 8px; }
  .gpb-ai-brain-step { padding-left: 0; }
  .gpb-ai-brain-step::before { display: none; }
  .gpb-ai-brain-copy h5 { padding-left: 32px; }
}

.gpb-ai-brochure-images { grid-template-columns: repeat(var(--brochure-columns), minmax(0, 1fr)); }
.gpb-ai-brochure-images .gpb-ai-image { aspect-ratio: var(--brochure-ratio); }
.gpb-ai-brochure-images .gpb-ai-image img { object-fit: contain; background: var(--event-tile); }
.gpb-ai-brochure-report { align-self: start; padding: clamp(16px, 3vw, 32px); background: var(--event-tile); color: var(--event-tile-ink); border-top: 2px solid var(--pipeline-accent); }
.gpb-ai-brochure-report p { margin: 0; font: var(--gpb-label); overflow-wrap: normal; }
.gpb-ai-brochure-report p:first-child { margin-bottom: var(--gpb-caption-space); }


.gpb-hr-composition {
  --hr-layer-1: #c6dcff;
  --hr-layer-2: #bde4cf;
  --hr-layer-3: #f4d391;
  --hr-layer-4: #d7c9ed;
  --hr-layer-5: #f4bfb1;
  --hr-tag-ink: #24262c;
  --hr-wire: color-mix(in srgb, var(--ink) 22%, transparent);
  --hr-wire-ink: color-mix(in srgb, var(--ink) 38%, transparent);
  --hr-skeleton: color-mix(in srgb, var(--ink) 13%, transparent);
  --hr-books-paper: #fef3bb;
  --hr-mint-paper: #d4e8df;
}
.gpb-hr-composition [data-layer="1"] { --hr-layer: var(--hr-layer-1); }
.gpb-hr-composition [data-layer="2"] { --hr-layer: var(--hr-layer-2); }
.gpb-hr-composition [data-layer="3"] { --hr-layer: var(--hr-layer-3); }
.gpb-hr-composition [data-layer="4"] { --hr-layer: var(--hr-layer-4); }
.gpb-hr-composition [data-layer="5"] { --hr-layer: var(--hr-layer-5); }
.gpb-hr-principles { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 16px; margin: 0 0 24px; padding: 0; list-style: none; }
.gpb-hr-principles li { min-width: 0; padding: 12px 8px; border-top: 2px solid var(--hr-layer); }
.gpb-hr-tag { display: grid; place-items: center; width: 24px; height: 24px; border-radius: 4px; background: var(--hr-layer); color: var(--hr-tag-ink); font: var(--gpb-label); }
.gpb-hr-principles h3 { margin: var(--gpb-caption-space) 0 var(--gpb-heading-space); font: var(--gpb-step-title); letter-spacing: 0; overflow-wrap: normal; }
.gpb-hr-principles p { margin: 0; font: var(--gpb-caption); color: var(--ink); }
@media (min-width: 768px) and (max-width: 1023px) {
  .gpb-hr-principles { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
.gpb-hr-stage { padding: 16px 0 0; }
.gpb-hr-composition.is-assembling .gpb-hr-principles li { opacity: .72; border-color: var(--line); }
.gpb-hr-composition.is-assembling .gpb-hr-principles .is-done { opacity: .85; }
.gpb-hr-composition.is-assembling .gpb-hr-principles [aria-current],
.gpb-hr-composition[data-step="6"] .gpb-hr-principles li { opacity: 1; border-color: var(--hr-layer); background: color-mix(in srgb, var(--hr-layer) 9%, transparent); }
.gpb-hr-composition.is-assembling .gpb-hr-principles li:not([aria-current]):not(.is-done) .gpb-hr-tag { background: transparent; color: var(--ink); box-shadow: inset 0 0 0 1px var(--line); }
/* The complete feed card is the base plane; keep its 3D ancestors unclipped. */
.gpb-hr-posts { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(16px, 3vw, 48px); width: 100%; max-width: 1200px; margin-inline: auto; }
.gpb-hr-column { min-width: 0; perspective: 1800px; perspective-origin: 50% 50%; }
.gpb-hr-post { min-width: 0; margin: 0; padding: 8px; border: 1px solid var(--hr-wire); border-radius: 12px; transform-origin: 50% 50%; transform-style: preserve-3d; }
.gpb-hr-feed-head { display: flex; align-items: center; gap: 8px; height: 40px; padding: 0 4px 8px; }
.gpb-hr-avatar { flex: 0 0 24px; height: 24px; border: 1px solid var(--hr-wire); border-radius: 50%; background: var(--hr-skeleton); }
.gpb-hr-feed-meta { display: grid; gap: 6px; width: 48%; }
.gpb-hr-feed-meta i, .gpb-hr-caption-lines i, .gpb-hr-views { display: block; height: 4px; border-radius: 2px; background: var(--hr-skeleton); }
.gpb-hr-feed-meta i:last-child { width: 46%; }
.gpb-hr-feed-foot { padding: 12px 4px 6px; }
.gpb-hr-feed-actions { display: flex; align-items: center; gap: 12px; color: var(--hr-wire-ink); }
.gpb-hr-feed-icon { width: 18px; height: 18px; flex: 0 0 auto; overflow: visible; fill: none; stroke: currentColor; stroke-width: 32; stroke-linecap: round; stroke-linejoin: round; }
.gpb-hr-like-fill { fill: currentColor; opacity: 0; }
.gpb-hr-views { width: 28px; margin-left: auto; }
.gpb-hr-caption-lines { display: grid; gap: 6px; padding-top: 12px; }
.gpb-hr-caption-lines i:nth-child(1) { width: 91%; }
.gpb-hr-caption-lines i:nth-child(2) { width: 76%; }
.gpb-hr-caption-lines i:nth-child(3) { width: 43%; }
.gpb-hr-post-box { position: relative; aspect-ratio: 1; transform-style: preserve-3d; }
.gpb-hr-post-box > img { display: block; width: 100%; height: 100%; object-fit: contain; }
.gpb-hr-pieces { display: none; position: absolute; inset: 0; pointer-events: none; transform-style: preserve-3d; }
.gpb-hr-base { position: absolute; inset: 0; background: var(--hr-mint-paper); border: 1px solid var(--hr-wire); }
.gpb-hr-post[data-post="hr-b-card-1"] .gpb-hr-base { background: var(--hr-books-paper); }
.gpb-hr-plane, .gpb-hr-shadow, .gpb-hr-piece, .gpb-hr-cutout, .gpb-hr-piece-art, .gpb-hr-plane-edge { position: absolute; inset: 0; }
.gpb-hr-plane, .gpb-hr-shadow { opacity: 0; }
.gpb-hr-plane-edge { border: 1px solid var(--hr-layer); }
.gpb-hr-piece-art { background-image: var(--hr-post-image); background-size: 100% 100%; background-repeat: no-repeat; }
.gpb-hr-shadow { filter: blur(7px) brightness(0); }
.gpb-hr-outline { position: absolute; inset: 0; width: 100%; height: 100%; overflow: visible; fill: none; stroke: var(--hr-layer); stroke-linejoin: round; }
.gpb-hr-outline path { vector-effect: non-scaling-stroke; }
.gpb-hr-outline-edge { stroke-width: .75px; opacity: .55; }
.gpb-hr-outline-trace { stroke-width: 2px; stroke-dasharray: 1; stroke-dashoffset: 1; opacity: 0; }
.gpb-hr-guide { position: absolute; top: 0; left: 0; width: 1px; height: 80%; background: var(--ink); transform-origin: 50% 0; }
.gpb-hr-guide.is-far { left: 100%; top: 100%; }
/* Six assembly steps; the spacer adds scroll distance without measuring the stage. */
.gpb-hr-composition.is-assembling .gpb-hr-track::after { content: ''; display: block; height: calc(6 * 350px); }
.gpb-hr-composition.is-assembling .gpb-hr-stage { position: sticky; top: 80px; box-sizing: border-box; }
.gpb-hr-composition.is-assembling .gpb-hr-posts { width: 100%; }
@media (min-width: 768px) {
  .gpb-hr-composition.is-assembling .gpb-hr-stage { display: grid; height: calc(100svh - 96px); grid-template-rows: auto minmax(0, 1fr); row-gap: 40px; padding: 16px 0 0; }
  .gpb-hr-composition.is-assembling .gpb-hr-principles { margin-bottom: 0; }
  .gpb-hr-composition.is-assembling .gpb-hr-posts { max-width: none; min-height: 0; container-type: size; }
  .gpb-hr-composition.is-assembling .gpb-hr-column { display: grid; align-content: center; }
  .gpb-hr-composition.is-assembling .gpb-hr-post {
    width: max(72px, min(calc((100cqw - 2 * clamp(16px, 3vw, 48px) - 144px) / 3 / 1.25), calc((100cqh - 64px) / 1.5)));
  }
}
.gpb-hr-composition.is-assembling .gpb-hr-post { box-sizing: border-box; margin-inline: auto; }
.gpb-hr-composition.is-assembling .gpb-hr-post-box > img { opacity: 0; }
.gpb-hr-composition.is-assembling .gpb-hr-pieces { display: block; }
.gpb-hr-composition.is-in-view .gpb-hr-plane { will-change: transform, opacity; }
.gpb-hr-composition.is-in-view .gpb-hr-post { will-change: transform; }
@media (max-width: 767px) {
  .gpb-hr-posts, .gpb-hr-composition.is-assembling .gpb-hr-posts { width: 100%; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; padding-top: 0; perspective: none; }
  .gpb-hr-column:last-child { grid-column: 1 / -1; width: calc((100% - 12px) / 2); justify-self: center; box-sizing: border-box; }
  .gpb-hr-composition.is-assembling .gpb-hr-track::after { height: 80svh; }
  .gpb-hr-column { perspective: none; }
  .gpb-hr-composition.is-assembling .gpb-hr-post { width: 100%; }
  .gpb-hr-post { padding: 3px; border-radius: 6px; }
  .gpb-hr-feed-head { height: 28px; gap: 4px; padding: 2px 2px 6px; }
  .gpb-hr-avatar { flex-basis: 16px; height: 16px; }
  .gpb-hr-feed-meta { gap: 4px; width: 52%; }
  .gpb-hr-feed-meta i, .gpb-hr-caption-lines i, .gpb-hr-views { height: 3px; }
  .gpb-hr-feed-foot { padding: 8px 2px 4px; }
  .gpb-hr-feed-actions { gap: 5px; }
  .gpb-hr-feed-icon { width: 12px; height: 12px; }
  .gpb-hr-views { width: 12px; }
  .gpb-hr-caption-lines { gap: 4px; padding-top: 8px; }
  .gpb-hr-guide, .gpb-hr-shadow, .gpb-hr-plane-edge { display: none; }
  .gpb-hr-principles { position: relative; gap: 6px; padding-bottom: 64px; margin-bottom: 12px; }
  .gpb-hr-principles li { padding: 8px 0; }
  .gpb-hr-principles h3 { display: none; }
  .gpb-hr-tag { width: 100%; height: 28px; font-size: 0; }
  .gpb-hr-tag::after { content: attr(data-short); font: var(--gpb-label); }
  .gpb-hr-principles p { display: none; position: absolute; left: 0; right: 0; bottom: 0; min-height: 48px; font: var(--gpb-caption); }
  .gpb-hr-principles [aria-current] p,
  .gpb-hr-composition[data-step="6"] .gpb-hr-principles li:last-child p,
  .gpb-hr-composition:not(.is-assembling) .gpb-hr-principles li:last-child p { display: block; }
}
@media (max-width: 767px) {
  .gpb-hr-composition:not(.is-assembling) .gpb-hr-principles { grid-template-columns: minmax(0, 1fr); gap: var(--gpb-heading-space); padding-bottom: 0; }
  .gpb-hr-composition:not(.is-assembling) .gpb-hr-principles li { display: grid; grid-template-columns: 24px minmax(0, 1fr); column-gap: 12px; }
  .gpb-hr-composition:not(.is-assembling) .gpb-hr-tag { width: 24px; height: 24px; font: var(--gpb-label); }
  .gpb-hr-composition:not(.is-assembling) .gpb-hr-tag::after { content: none; }
  .gpb-hr-composition:not(.is-assembling) .gpb-hr-principles h3 { display: block; margin: 0 0 var(--gpb-heading-space); }
  .gpb-hr-composition:not(.is-assembling) .gpb-hr-principles p { display: block; position: static; grid-column: 2; min-height: 0; }
}
@media (prefers-reduced-motion: reduce) {
  .gpb-hr-composition .gpb-hr-track { height: auto !important; }
  .gpb-hr-composition .gpb-hr-track::after { display: none; }
  .gpb-hr-composition .gpb-hr-stage { position: static !important; }
  .gpb-hr-composition .gpb-hr-posts { width: 100%; max-width: 1200px; padding-top: 0; gap: clamp(6px, 2vw, 32px); }
  .gpb-hr-composition .gpb-hr-post-box > img { opacity: 1 !important; }
  .gpb-hr-composition .gpb-hr-pieces { display: none !important; }
  .gpb-hr-post { transform: none !important; }
  .gpb-hr-like { transform: none !important; }
  .gpb-hr-like-fill { opacity: 0 !important; }
}

.gpb-ai-hr .gpb-print { display: block; min-width: 0; margin: 0; }
.gpb-ai-plugin { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, .72fr); gap: var(--gpb-grid-gap); align-items: center; }
.gpb-ai-plugin p { max-width: 48ch; }
.gpb-ai-plugin-panel { display: block; width: 100%; height: auto; border: 1px solid var(--line); border-radius: 4px; }
.gpb-ai-it { padding-block: 0; }
@media (max-width: 800px) {
  .gpb-ai-plugin { grid-template-columns: minmax(0, 1fr); gap: var(--gpb-media-space); }
}

.gpb-ai-plugins { margin-top: var(--gpb-section-space); }
.gpb-ai-plugins > p { max-width: 48ch; margin-bottom: var(--gpb-media-space); color: var(--theme-muted); }
.gpb-ai-plugins .gpb-ai-plugin { margin: 0; padding-block: var(--gpb-media-space); border-top: 1px solid var(--line); min-width: 0; }
.gpb-ai-plugins > p + .gpb-ai-plugin { padding-top: 0; border-top: 0; }
.gpb-ai-plugins .gpb-ai-plugin:last-child { padding-bottom: 0; }
.gpb-ai-plugin > div { min-width: 0; }
.gpb-ai-plugin p + p { margin-top: var(--gpb-paragraph-space); }
.gpb-ai-plugin h4 { margin: 0 0 var(--gpb-heading-space); font: var(--gpb-step-title); letter-spacing: 0; overflow-wrap: normal; }
.gpb-ai-plugin a:focus-visible { outline: 2px solid var(--theme-focus); outline-offset: 4px; }

/* File particles become month columns, then a stage grid. */
.gpb-ai-flow {
  --chart-paper: #151618;
  --chart-ink: #f3f2ee;
  --chart-muted: #b6b8c4;
  --chart-unlit: #687080;
  --flow-end-progress: .93;
  position: relative;
  width: 100%;
  margin: 0;
  padding-block: var(--gpb-media-space);
  background: var(--chart-paper);
  color: var(--chart-ink);
  color-scheme: dark;
}
.gpb-ai-flow::before, .gpb-ai-flow::after {
  content: '';
  position: absolute;
  inset-inline: 0;
  height: 24px;
  pointer-events: none;
}
.gpb-ai-flow::before { top: -1px; background: linear-gradient(var(--paper), transparent); }
.gpb-ai-flow::after { bottom: -1px; background: linear-gradient(transparent, var(--paper)); }
.gpb-ai-flow [hidden] { display: none !important; }
.gpb-ai-flow [data-stage="0"] { --stage-color: var(--stage-0); }
.gpb-ai-flow [data-stage="1"] { --stage-color: var(--stage-1); }
.gpb-ai-flow [data-stage="2"] { --stage-color: var(--stage-2); }
.gpb-ai-flow [data-stage="3"] { --stage-color: var(--stage-3); }
.gpb-ai-flow [data-stage="4"] { --stage-color: var(--stage-4); }
.gpb-ai-flow [data-stage="5"] { --stage-color: var(--stage-5); }
.gpb-ai-flow .numeral { font-variant-numeric: tabular-nums; letter-spacing: -.08em; font-weight: 500; line-height: .95; }
.gpb-ai-flow .flow-track { position: relative; display: none; }
.gpb-ai-flow .flow-pin {
  position: relative;
  box-sizing: border-box;
  height: 100%;
  display: flex;
  flex-direction: column;
  padding: 24px max(var(--page-gutter), calc((100% - var(--gpb-page-width)) / 2 + var(--page-gutter))) 0;
  background: var(--chart-paper);
  color: var(--chart-ink);
}
.gpb-ai-flow .scene-top { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: start; gap: 24px; position: relative; z-index: 2; pointer-events: none; }
.gpb-ai-flow .scene-headlines { min-width: 0; min-height: 0; }
.gpb-ai-flow .scene-top h3 { margin: 0; font: var(--gpb-h3); letter-spacing: var(--gpb-heading-tracking); max-width: 700px; overflow-wrap: normal; }
.gpb-ai-flow .file-counter { display: flex; flex-direction: column; align-items: flex-end; }
.gpb-ai-flow .file-counter .numeral { font-size: clamp(64px, 6vw, 96px); min-width: 3ch; text-align: right; }
.gpb-ai-flow .file-counter > span:nth-child(2) { font: var(--gpb-caption); margin-top: 12px; color: var(--chart-muted); }
.gpb-ai-flow .particle-field { position: relative; flex: 1; min-height: 0; width: 100%; isolation: isolate; }
.gpb-ai-flow .month-labels, .gpb-ai-flow .grid-labels { position: absolute; inset: 0; pointer-events: none; }
.gpb-ai-flow .grid-labels { opacity: 0; }
.gpb-ai-flow .month-label { position: absolute; text-align: center; transform: translateX(-50%); font: var(--gpb-label); color: var(--chart-muted); }
.gpb-ai-flow .month-label b { display: block; color: var(--chart-ink); font-weight: 500; }
.gpb-ai-flow .month-label.june { color: var(--stage-4); }
.gpb-ai-flow .grid-label { position: absolute; font: var(--gpb-caption); color: var(--chart-muted); transform: translateY(-50%); overflow-wrap: normal; }
.gpb-ai-flow .grid-label::before { content: ''; width: 8px; height: 8px; display: inline-block; background: var(--stage-color); margin-right: 8px; border-radius: 2px; }
.gpb-ai-flow .grid-stat { position: absolute; left: 58%; top: 30%; display: flex; flex-direction: column; gap: 16px; opacity: 0; pointer-events: none; max-width: 42%; }
.gpb-ai-flow .grid-stat .numeral { font-size: clamp(64px, 9vw, 140px); white-space: nowrap; }
.gpb-ai-flow .grid-stat > span:last-child { font: var(--gpb-caption); max-width: 230px; overflow-wrap: normal; }
.gpb-ai-flow .flow-fallback { max-width: var(--gpb-page-width); margin-inline: auto; padding: 0 var(--page-gutter); }
.gpb-ai-flow .flow-fallback h3 { color: var(--chart-ink); }
.gpb-ai-flow .static-share { display: grid; grid-template-columns: minmax(0, 480px) minmax(0, 1fr); gap: clamp(24px, 4vw, 48px); align-items: stretch; margin-top: var(--gpb-media-space); }
.gpb-ai-flow .static-waffle { display: block; width: 100%; height: auto; max-width: 480px; }
.gpb-ai-flow .static-share .numeral { font-size: clamp(64px, 7vw, 110px); white-space: nowrap; text-box-trim: trim-both; text-box-edge: cap alphabetic; }
.gpb-ai-flow .static-share p { margin-top: var(--gpb-caption-space); font: var(--gpb-caption); overflow-wrap: normal; }
.gpb-ai-flow .fallback-months { height: 320px; display: grid; grid-template-columns: repeat(var(--month-count), minmax(0, 1fr)); gap: clamp(2px, 1vw, 16px); align-items: end; padding-top: 32px; width: 100%; color: var(--chart-muted); }
.gpb-ai-flow .fallback-month { display: flex; flex-direction: column; align-items: center; justify-content: flex-end; min-width: 0; height: 100%; font: var(--gpb-label); }
.gpb-ai-flow .fallback-bar { position: relative; width: 64%; height: calc(var(--files) * 1.85px); min-height: 2px; border-radius: 6px 6px 0 0; background: linear-gradient(0deg, var(--stage-0), var(--stage-2)); }
.gpb-ai-flow .fallback-bar span { position: absolute; bottom: calc(100% + 12px); left: 50%; transform: translateX(-50%); color: var(--chart-ink); text-align: center; }
.gpb-ai-flow .fallback-label { margin-top: 20px; min-height: 2.4em; text-align: center; }
.gpb-ai-flow .month-year { display: block; }
.gpb-ai-flow .fallback-month.june .fallback-bar { background: linear-gradient(0deg, var(--stage-0), var(--stage-4)); }
@media (max-width: 1050px) {
  .gpb-ai-flow .grid-stat { top: 3%; left: 0; gap: 8px; max-width: 100%; }
  .gpb-ai-flow .grid-stat .numeral { font-size: 72px; }
  .gpb-ai-flow .grid-stat > span:last-child { max-width: none; }
}
@media (max-width: 680px) {
  .gpb-ai-flow .flow-pin { padding-top: 16px; }
  .gpb-ai-flow .scene-top { grid-template-columns: minmax(0, 1fr); gap: 16px; }
  .gpb-ai-flow .scene-headlines { min-height: 0; }
  .gpb-ai-flow .file-counter { flex-direction: row; align-items: baseline; justify-content: flex-end; gap: 16px; }
  .gpb-ai-flow .file-counter .numeral { font-size: 64px; }
  .gpb-ai-flow .file-counter > span:nth-child(2) { max-width: 110px; text-align: left; overflow-wrap: normal; }
  .gpb-ai-flow .static-share { grid-template-columns: minmax(0, 1fr); gap: var(--gpb-media-space); }
  .gpb-ai-flow .static-share .numeral { font-size: 90px; }
}



.gpb-ai-flow .flow-stages { list-style: none; padding: 0; margin: 0; font: var(--gpb-caption); text-align: left; }
.gpb-ai-flow .scene-top > .flow-stages { position: absolute; top: calc(100% + 12px); left: 0; width: 40%; }
.gpb-ai-flow .scene-top > .flow-stages li { visibility: hidden; }
.gpb-ai-flow .scene-top > .flow-stages li:first-child { visibility: visible; }
.gpb-ai-flow .flow-stages li { overflow-wrap: normal; margin: 0 0 10px; min-width: 0; color: var(--chart-muted); }
.gpb-ai-flow .flow-stage-title { display: block; font: var(--gpb-step-title); }
.gpb-ai-flow .flow-stage-tools { display: block; margin-top: 2px; }
.gpb-ai-flow .flow-stages .is-current { color: var(--chart-ink); }
.gpb-ai-flow .fallback-overview { display: grid; grid-template-columns: minmax(0, 2fr) minmax(0, 3fr); align-items: center; gap: var(--gpb-media-space); }
@media (max-width: 767px) {
  .gpb-ai-flow .scene-top { grid-template-columns: minmax(0, 1fr); gap: 8px; }
  .gpb-ai-flow .scene-headlines { min-height: 0; }
  .gpb-ai-flow .scene-top > .flow-stages { position: relative; top: auto; width: 100%; min-height: 64px; display: grid; }
  .gpb-ai-flow .scene-top > .flow-stages li { grid-area: 1 / 1; align-self: start; max-width: 100%; }
  .gpb-ai-flow .file-counter { flex-direction: row; align-items: baseline; justify-content: flex-end; gap: 16px; }
  .gpb-ai-flow .file-counter .numeral { font-size: 48px; }
  .gpb-ai-flow .month-label, .gpb-ai-flow .fallback-month { font-size: clamp(10px, 2.8vw, 11px); }
  .gpb-ai-flow .fallback-overview { grid-template-columns: minmax(0, 1fr); gap: 12px; }
}

/* Plugin demos inherit the case type and the HR cover's blue paper palette. */
.gpb-ai-plugins {
  --demo-paper: #151618;
  --demo-panel: #24262b;
  --demo-ink: #f3f2ee;
  --demo-muted: #b6b8c4;
  --demo-line: #3c3e44;
  --demo-grid: #2c2e34;
  --demo-white: #fff;
  --demo-accent: #a79bff;
  --demo-selection: #83baff;
  --demo-pastel: #b8cdee;
  --demo-error: #ffad80;
  --demo-ui: 500 12px/1.4 var(--sans);
}
.gpb-ai-plugin > .gpb-ai-plugin-link { width: min(100%, 360px); justify-self: center; }
.gpb-ai-plugin > div > p { color: var(--theme-muted); }
.gpb-plugin-demo { margin-top: var(--gpb-media-space); border: 1px solid var(--demo-line); border-radius: 8px; background: var(--demo-paper); color: var(--demo-ink); overflow: hidden; color-scheme: dark; }
.gpb-demo-canvas { position: relative; padding-bottom: 92px; background-image: radial-gradient(circle, var(--demo-grid) .75px, transparent .8px); background-size: 16px 16px; }
.gpb-outline-art { display: block; width: 100%; height: auto; margin: auto; overflow: visible; }
.gpb-outline-paper { fill: var(--demo-pastel); }
.gpb-outline-fill, .gpb-outline-chips { fill: var(--demo-white); }
.gpb-outline-brush { fill: none; stroke: var(--demo-white); stroke-linejoin: round; }
.gpb-outline-trace { fill: none; stroke: var(--demo-white); stroke-width: 3; stroke-linejoin: round; stroke-dasharray: 1; stroke-dashoffset: 0; }
.gpb-outline-selection { fill: none; stroke: var(--demo-selection); stroke-width: 1; }
.gpb-outline-selection text { fill: var(--demo-selection); stroke: none; font: 12px var(--sans); }
.gpb-outline-selection .gpb-selection-handle { fill: var(--demo-paper); }
.gpb-demo-mini { position: absolute; bottom: 20px; left: 50%; transform: translateX(-50%); display: flex; align-items: center; gap: 18px; width: max-content; max-width: calc(100% - 32px); padding: 12px; border: 1px solid var(--demo-line); border-radius: 6px; background: var(--demo-panel); color: var(--demo-muted); font: var(--demo-ui); }
.gpb-demo-action { display: block; padding: 9px 12px; border-radius: 4px; background: var(--demo-accent); color: var(--demo-paper); white-space: nowrap; }
.gpb-outline-stage { container-type: inline-size; padding-bottom: 0; }
.gpb-outline-stage .gpb-demo-mini { bottom: 1.6cqi; gap: 3.75cqi; padding: 2.5cqi; font-size: 2.5cqi; }
.gpb-outline-stage .gpb-demo-action { padding: 1.875cqi 2.5cqi; }
.gpb-demo-cursor { position: absolute; opacity: 0; width: 24px; height: 28px; left: 0; top: 0; background: url('assets/gazprombank/ai/plugin-demo-cursor.svg?v=3312b8f3') center / contain no-repeat; pointer-events: none; }
.gpb-techograph-stage { padding: 46px 30px 88px; }
.gpb-techograph-stage .gpb-demo-mini { bottom: 12px; }
.gpb-techograph-frame { position: relative; display: grid; box-sizing: border-box; width: min(100%, 356px); max-width: 100%; min-width: 0; margin: auto; border: 1px solid var(--demo-selection); padding: 12px; }
.gpb-demo-layer { position: absolute; top: -25px; left: 0; color: var(--demo-selection); font: var(--demo-ui); }
.gpb-techograph-frame > i { position: absolute; width: 6px; height: 6px; background: var(--demo-paper); border: 1px solid var(--demo-selection); }
.gpb-techograph-frame > i:nth-of-type(1) { top: -3px; left: -3px; }
.gpb-techograph-frame > i:nth-of-type(2) { top: -3px; right: -3px; }
.gpb-techograph-frame > i:nth-of-type(3) { bottom: -3px; left: -3px; }
.gpb-techograph-frame > i:nth-of-type(4) { bottom: -3px; right: -3px; }
.gpb-techograph-copy { grid-area: 1 / 1; min-width: 0; }
.gpb-ai-plugin .gpb-techograph-copy p { margin: 0; max-width: none; color: var(--demo-ink); font: 400 16px/1.9 var(--sans); text-wrap: wrap; overflow-wrap: normal; letter-spacing: 0; }
.gpb-techograph-copy[data-demo-before] { opacity: 0; }
.gpb-techograph-word { position: relative; display: inline-block; }
[data-demo-before] .gpb-techograph-bound { white-space: normal; }
.gpb-techograph-word[data-marker]:not([data-marker=""])::after { content: attr(data-marker); position: absolute; right: 0; top: -8px; color: var(--demo-error); font: 10px/1 var(--mono); }
.gpb-techograph-bound { white-space: nowrap; }
.gpb-techograph-error, .gpb-techograph-fixed { text-decoration: underline; text-decoration-thickness: 2px; text-underline-offset: 4px; text-decoration-color: var(--demo-error); }
.gpb-techograph-fixed { text-decoration-color: var(--demo-accent); }
@media (max-width: 800px) {
  .gpb-ai-plugin > .gpb-ai-plugin-link { width: min(100%, 320px); }
}
@media (max-width: 400px) {
  .gpb-demo-mini { gap: 10px; padding: 9px; font-size: 11px; }
  .gpb-demo-action { padding-inline: 9px; }
  .gpb-techograph-stage { padding-inline: 18px; }
  .gpb-ai-plugin .gpb-techograph-copy p { font-size: 14px; }
}
@media (prefers-reduced-motion: reduce) {
  .gpb-demo-cursor { display: none; }
}

/* One world, one sticky viewport; fallback sections keep their normal reading order. */
.gpb-page {
  --pipeline-floor: #efefec;
  --pipeline-grid: #969da8;
  --pipeline-glow: #c7d5f2;
  --field-ink: #202630;
}
html[data-theme="dark"] .gpb-page {
  --pipeline-floor: #101216;
  --pipeline-grid: #a0b4ff;
  --pipeline-glow: #192e58;
  --field-ink: #f0f2f6;
}
.gpb-field-track {
  --field-flow-scroll: 110;
  --field-camera-scroll: 224;
  --field-grid-hold: 50;
  --field-grid-exit: 40;
  /* Eleven readable tile slices, with the original flight/pause ratio. */
  --field-roles-scroll: 400;
  --field-pipeline-scroll: 508;
  --field-final-hold: 50;
  --field-stage-0: #3452d5;
  --field-stage-1: #7130c9;
  --field-stage-2: #a526ba;
  --field-stage-3: #b32191;
  --field-stage-4: #125b6c;
  --field-stage-5: #5d6399;
  --field-muted: #49515c;
}
html[data-theme="dark"] .gpb-field-track {
  --field-stage-0: #3b5bff;
  --field-stage-1: #7a3cff;
  --field-stage-2: #c83cff;
  --field-stage-3: #ff4fd8;
  --field-stage-4: #59e1ff;
  --field-stage-5: #b2baff;
  --field-muted: #d0d2dc;
}
@media screen and (prefers-reduced-motion: no-preference) {
.gpb-field-track.is-field { height: calc(100svh - var(--site-header-height) + (var(--field-camera-scroll) + var(--field-flow-scroll) + var(--field-grid-hold) + var(--field-grid-exit) + var(--field-roles-scroll) + var(--field-pipeline-scroll) + var(--field-final-hold)) * 1svh); margin-top: var(--gpb-section-space); }
.is-field .gpb-field-stage { position: sticky; top: var(--site-header-height); height: calc(100svh - var(--site-header-height)); overflow: clip; isolation: isolate; background: var(--paper); color: var(--field-ink); }
.gpb-field-canvas { display: block; position: absolute; inset: 0; width: 100%; height: 100%; }
.is-field:not(.is-field-ready) .gpb-field-stage { opacity: 0; }
.gpb-page .is-field [data-field-zone] { position: absolute; inset: 0; margin: 0; padding: 0; max-width: none; pointer-events: none; color: var(--field-ink); }
.is-field [data-field-zone] h2, .is-field [data-field-zone] h3 { color: var(--field-ink); }
.is-field .gpb-ai-section-intro { position: absolute; top: 7%; left: 0; right: 0; padding-inline: var(--page-gutter); max-width: var(--gpb-page-width); margin: 0 auto; }
.is-field .gpb-ai-section-intro p { color: var(--field-muted); }
.is-field .gpb-ai-flow {
  --stage-0: var(--field-stage-0); --stage-1: var(--field-stage-1); --stage-2: var(--field-stage-2);
  --stage-3: var(--field-stage-3); --stage-4: var(--field-stage-4); --stage-5: var(--field-stage-5);
  --chart-paper: var(--pipeline-floor); --chart-ink: var(--field-ink); --chart-muted: var(--field-muted); background: none; color-scheme: normal; height: 100%; padding: 0; }
.is-field .gpb-ai-flow::before, .is-field .gpb-ai-flow::after { display: none; }
.is-field .flow-track { display: block; height: 100%; }
.is-field .flow-pin { position: absolute; inset: 0; top: 0; height: 100%; padding: 4svh var(--page-gutter) 3svh; background: none; }
.is-field .scene-headlines { display: grid; }
.is-field [data-flow-scene] { grid-area: 1 / 1; }
.is-field .gpb-ai-flow .scene-top > .flow-stages li { visibility: visible; }
.is-field .scene-top { max-width: calc(var(--gpb-page-width) - 2 * var(--page-gutter)); width: 100%; margin-inline: auto; }
.is-field .scene-top > .flow-stages { top: calc(100% + 40px); width: 36%; }
.is-field .particle-field { flex: none; position: absolute; top: 25%; bottom: 6%; left: 42%; width: calc(58% - var(--page-gutter)); }
.is-field .grid-stat { top: 0; left: 58%; max-width: 42%; }
.is-field .grid-stat .numeral { font-size: clamp(64px, 7vw, 110px); }
.is-field .flow-fallback, .is-field .gpb-swim-fallback, .is-field .gpb-pipeline-fallback { position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.is-field .gpb-swim-track, .is-field .gpb-swim-stage, .is-field .gpb-swim-scene, .is-field .gpb-swim-viewport { position: absolute; inset: 0; height: 100%; display: block; overflow: visible; }
.is-field .gpb-swim-stage > h2 { position: absolute; top: 4svh; left: var(--page-gutter); right: var(--page-gutter); margin: 0; }
.is-field .gpb-swim-anchor { visibility: visible; opacity: 0; width: clamp(160px, 18vw, 260px); font-size: clamp(20px, 1.81vw, 28px); line-height: 1.25; text-align: right; }
.is-field .gpb-swim-owner { font-size: 22px; }
.is-field .gpb-swim-anchor.is-ai { text-align: left; }
.is-field .gpb-pipeline-caption, .is-field .gpb-pipeline-interlude { visibility: visible; }
.is-field .month-label, .is-field .grid-label { left: 0; top: 0; }
.is-field .gpb-swim-captions p { grid-area: 1 / 1; opacity: 0; }
.is-field .gpb-swim-captions { display: grid; position: absolute; bottom: 0; left: 0; right: 0; }
.is-field .gpb-ai-pipelines { margin: 0; }
.is-field .gpb-ai-pipeline { position: absolute; inset: 0; height: 100%; }
.is-field .gpb-pipeline-stage { --ink: var(--field-ink); --theme-muted: var(--field-muted); position: absolute; inset: 0; display: block; height: 100%; margin: 0; background: none; }
.is-field .gpb-pipeline-stage-body { max-width: var(--gpb-page-width); margin-inline: auto; }
.is-field .gpb-pipeline-caption p, .is-field .gpb-pipeline-interlude p, .is-field .gpb-ai-pipeline-note { color: var(--field-muted); }
@media (max-width: 1023px) {
  .is-field .scene-top { grid-template-columns: minmax(0, 1fr); }
  .is-field .particle-field { left: var(--page-gutter); width: calc(100% - 2 * var(--page-gutter)); top: 48%; bottom: 6%; }
  .is-field .scene-top > .flow-stages { position: relative; top: auto; width: 100%; min-height: 68px; display: grid; }
  .is-field .scene-top > .flow-stages li { grid-area: 1 / 1; }
  .is-field .grid-stat { left: 62%; top: 4%; max-width: 38%; }
  .is-field .grid-stat .numeral { font-size: clamp(42px, 7vw, 72px); }
  .is-field .gpb-ai-section-intro { grid-template-columns: minmax(0, 1fr); gap: 24px; }
}
@media (max-width: 767px) {
  .gpb-field-track { --field-grid-hold: 37.5; }
  .is-field .gpb-ai-section h2 { font-size: clamp(26px, 6.5vw, 38px); }
  .is-field .scene-top h3 { font-size: clamp(24px, 5.5vw, 32px); }
  .is-field .scene-top { gap: 8px; }
  .is-field .flow-pin { padding-top: 16px; }
  .is-field .gpb-ai-section-intro { top: 24px; }
  .is-field .gpb-ai-section-intro p { font-size: 16px; }
  .is-field .gpb-swim-captions { bottom: auto; min-height: 0; padding: 0 var(--page-gutter); grid-template-columns: minmax(0, 1fr); }
  .is-field .gpb-swim-captions p { font-size: 14px; line-height: 1.35; }
  .is-field .gpb-swim-stage > h2 { top: 16px; left: 24px; right: 24px; }
  .is-field .gpb-swim-anchor { width: calc((100% - 64px) / 2); min-width: 0; font-size: clamp(13px, 3.7vw, 17px); line-height: 1.25; text-align: center; overflow-wrap: normal; word-break: normal; hyphens: none; }
  .is-field .gpb-swim-anchor.is-ai { text-align: center; }
  .is-field .gpb-swim-owner { display: block; margin: 0 0 4px; font-size: 18px; line-height: 1.2; }
  .is-field .grid-stat { left: 58%; max-width: 42%; top: 0; }
  .is-field .grid-stat > span:last-child { font-size: 12px; }
  .is-field .grid-label { font-size: 11px; }
  .is-field .gpb-ai-pipeline-note { right: var(--page-gutter); top: 52%; font-size: 16px; }
}

}

@media (max-width: 767px) {
  /* Keep the non-breaking compound within the mobile reading column. */
  .gpb-ai-thesis h2, .is-field .gpb-ai-thesis h2 { font-size: clamp(25px, 7.8125vw, 29px); }
}

/* Field edges share the page paper; the canvas and its floor fade together. */
.gpb-page .gpb-main { display: block; padding: 0; }
.gpb-field-track { width: 100%; margin-inline: 0; }
.gpb-ai-flow .grid-label { position: static; display: block; transform: none; color: var(--chart-ink); white-space: nowrap; }
.gpb-ai-flow .grid-label::before { width: 10px; height: 10px; border-radius: 50%; }
.gpb-ai-flow .grid-label-manual::before { background: none; border: 1px solid var(--chart-unlit); border-radius: 0; box-sizing: border-box; }
.gpb-ai-flow .grid-labels, .gpb-ai-flow .static-legend { display: grid; gap: 10px; }
.gpb-ai-flow .static-share figure { margin: 0; }
.gpb-ai-flow .static-share > div { display: flex; flex-direction: column; padding-block: 4px; }
.gpb-ai-flow .static-legend { margin-top: auto; padding-top: 24px; }
@media (max-width: 1023px) {
  .gpb-ai-flow .static-share { grid-template-columns: minmax(0, 1fr); }
}
@media screen and (prefers-reduced-motion: no-preference) {
  .gpb-field-track.is-field { margin-top: 0; }
  .is-field .gpb-field-stage { background: var(--paper); }
  .gpb-field-canvas { mask-image: linear-gradient(to bottom, transparent, #000 var(--field-top-fade, 200px), #000 calc(100% - var(--field-bottom-fade, 0px)), transparent); }
  .is-field .gpb-ai-flow .grid-labels { inset: auto; height: auto; }
  .is-field .gpb-ai-flow .grid-label { white-space: normal; min-width: 0; }
  .is-field .gpb-ai-flow .file-counter > .visually-hidden { width: max-content; height: auto; }
  .is-field .gpb-ai-flow .flow-fallback { width: calc(100% - 2 * var(--page-gutter)); white-space: normal; }
  .is-field .gpb-ai-flow .grid-stat { max-width: none; gap: 12px; }
  .is-field .gpb-ai-flow .grid-stat .numeral { font-size: clamp(64px, 7vw, 110px); }
  .is-field .gpb-ai-pipeline-note {
    left: max(var(--page-gutter), calc((100% - var(--gpb-page-width))/2 + var(--page-gutter)));
    right: auto; width: calc((min(100%, var(--gpb-page-width)) - 2 * var(--page-gutter)) * .4 - 32px);
    max-width: none; padding: 0; margin: 0;
  }
}
@media (max-width: 1023px) and (prefers-reduced-motion: no-preference) {
  .is-field .gpb-ai-pipeline-note {
    left: var(--page-gutter); width: calc(100% - 2 * var(--page-gutter));
  }
  .is-field .gpb-ai-pipeline-note { font-size: 14px; line-height: 1.4; }
}
@media (max-width: 767px) {
  .gpb-ai-flow .static-legend { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .gpb-ai-flow .grid-label { font-size: 12px; line-height: 1.4; }
  .gpb-ai-flow .grid-label::before { margin-right: 6px; width: 8px; height: 8px; }
  .is-field .gpb-ai-flow .scene-top > .flow-stages { position: absolute; top: calc(100% + 24px); }
  .is-field .gpb-ai-flow .file-counter { gap: 10px; }
  .is-field .gpb-ai-flow .file-counter .numeral { font-size: 32px; }
  .is-field .gpb-ai-flow .file-counter > span:nth-child(2) { font-size: 12px; max-width: none; margin-top: 0; }
  .is-field .gpb-ai-flow .grid-stat { flex-direction: row; align-items: center; gap: 16px; }
  .is-field .gpb-ai-flow .grid-stat .numeral { font-size: 42px; }
  .is-field .gpb-ai-flow .grid-stat > span:last-child { font-size: 12px; line-height: 1.35; }
  .is-field .gpb-ai-flow .grid-labels { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 6px 8px; }
}
@media screen and (prefers-reduced-motion: no-preference) {
  .is-field .gpb-ai-flow.is-grid .scene-headlines { position: relative; }
}

/* The hero wall and case title share the floor projection. */
@media screen and (prefers-reduced-motion: no-preference) {
  .gpb-field-track.has-floor-hero { --field-hero-scroll: 219; height: calc(100svh - var(--site-header-height) + (var(--field-hero-scroll) + var(--field-camera-scroll) + var(--field-flow-scroll) + var(--field-grid-hold) + var(--field-grid-exit) + var(--field-roles-scroll) + var(--field-pipeline-scroll) + var(--field-final-hold)) * 1svh); }
  .gpb-page .is-field .gpb-wall-stage.is-floor-hero { position: absolute; inset: 0; min-height: 0; perspective: none; overflow: visible; isolation: auto; background: transparent; pointer-events: none; }
  .gpb-hero-camera { position: absolute; inset: 0; pointer-events: none; overflow: clip; mask-image: linear-gradient(to bottom, transparent, #000 6%, #000 94%, transparent); }
  .gpb-hero-plane { position: absolute; left: 0; top: 0; transform-origin: 0 0; }
  .is-floor-hero .gpb-hero-plane .gpb-field { overflow: clip; pointer-events: auto; transition: opacity .35s ease, filter .35s ease; }
  .is-floor-hero .gpb-hero-plane .gpb-print { pointer-events: auto; }
  .is-floor-hero.is-floor-inactive .gpb-hero-plane .gpb-field,
  .is-floor-hero.is-floor-inactive .gpb-hero-plane .gpb-print { pointer-events: none; }
  .is-floor-hero .gpb-intro { opacity: var(--hero-intro-opacity, 0); transition: none; }
  .is-floor-hero .gpb-pullout { pointer-events: auto; }
  .is-field .gpb-swim-name { display: block; }
  .is-field .gpb-swim-owner { line-height: 1.35; }
  .is-field .gpb-ai-flow .grid-stat .numeral { line-height: 1.15; }
}

@media screen and (prefers-reduced-motion: no-preference) {
  .is-field .gpb-ai-flow .scene-top > .flow-stages { position: absolute; top: calc(100% + var(--gpb-heading-space)); width: clamp(220px, 26vw, 320px); display: grid; gap: 14px; min-height: 0; }
  .is-field .gpb-ai-flow .scene-top > .flow-stages li { grid-area: auto; margin: 0; }
  .is-field .gpb-ai-flow .scene-top > .flow-stages .flow-stage-title { font: var(--gpb-step-title); }
  .is-field .gpb-ai-flow .scene-top > .flow-stages .flow-stage-tools { font: var(--gpb-caption); }
  @media (max-width: 767px) {
    .is-field .gpb-ai-flow .scene-top > .flow-stages { width: 100%; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px 12px; }
    .is-field .gpb-ai-flow .scene-top > .flow-stages .flow-stage-title { font-size: 13px; }
    .is-field .gpb-ai-flow .scene-top > .flow-stages .flow-stage-tools { font-size: 11px; }
  }
  .is-field .gpb-ai-flow .particle-field { left: var(--page-gutter); width: calc(100% - 2 * var(--page-gutter)); }
}

@media screen and (prefers-reduced-motion: no-preference) {
  .is-field .gpb-pipeline-caption p, .gpb-pipeline-interlude p { max-width: 46ch; }
}

@media screen and (prefers-reduced-motion: no-preference) {
  .gpb-page .is-floor-hero .gpb-intro { top: 50%; transform: translateY(-50%); padding-block: 0; color: var(--field-ink); }
  .gpb-page .is-floor-hero .gpb-intro h1, .gpb-page .is-floor-hero .gpb-intro p { color: inherit; }
  .is-field .gpb-ai-flow .month-label { font: var(--gpb-caption); font-size: clamp(12px, 1.12vw, 16px); white-space: nowrap; }
  .is-field .gpb-ai-flow .month-label > span { display: block; }
  @media (max-width: 767px) {
    .is-field .gpb-ai-flow .scene-top { grid-template-columns: minmax(0, 1fr); gap: 12px; }
    .is-field .gpb-ai-flow .scene-top h3 { font-size: 22px; }
    .is-field .gpb-ai-flow .file-counter { flex-direction: row; align-items: baseline; gap: 8px; }
    .is-field .gpb-ai-flow .file-counter > span:nth-child(2) { font-size: 12px; text-align: right; }
    .is-field .gpb-ai-flow .month-label { font-size: 10px; line-height: 1.5; }
  }
}

@media screen and (prefers-reduced-motion: no-preference) {
  .is-field .gpb-swim-captions { top: auto; bottom: 24px; padding-inline: var(--page-gutter); }
  .is-field .gpb-swim-captions p { font-size: 16px; line-height: 1.4; }
  .is-field .gpb-ai-pipeline-note { font-size: max(16px, 1.25vw); }
  .is-field .grid-label,
  .is-field .gpb-ai-flow .grid-stat > span:last-child,
  .is-field .gpb-ai-flow .file-counter > span:nth-child(2) { font-size: 16px; }
  @media (max-width: 767px) {
    .is-field .gpb-ai-flow .file-counter > span:nth-child(2) { font-size: 12px; }
  }
  .is-field .gpb-swim-anchor { font-size: max(16px, 1.81vw); }
  .is-field .flow-stage-tools,
  .is-field .gpb-pipeline-stage .gpb-ai-pipeline-chip { font-size: 16px; }
}

.gpb-disclosure { border-block: 1px solid var(--line); }
.gpb-disclosure + .gpb-disclosure { border-top: 0; }
.gpb-disclosure summary { display: grid; grid-template-columns: minmax(0, 1fr) 24px; gap: 0 16px; align-items: center; padding-block: var(--gpb-media-space); cursor: pointer; list-style: none; }
.gpb-disclosure summary::-webkit-details-marker { display: none; }
.gpb-disclosure summary h3 { margin: 0; min-width: 0; white-space: normal; overflow: visible; overflow-wrap: anywhere; }
.gpb-disclosure summary .gpb-ai-brain-intro { grid-column: 1 / -1; margin: var(--gpb-heading-space) 0 0; }
.gpb-disclosure summary:focus-visible { outline: 2px solid var(--theme-focus); outline-offset: 4px; }
.gpb-disclosure-chevron { width: 24px; height: 24px; background: currentColor; mask: url('/assets/icons/framework7/chevron_down.svg?v=d48f5b98') center / contain no-repeat; transition: transform .35s ease; }
.gpb-disclosure[open] .gpb-disclosure-chevron { transform: rotate(180deg); }
.gpb-disclosure-body { padding-bottom: var(--gpb-media-space); }
@supports (interpolate-size: allow-keywords) and (content-visibility: hidden) {
  .gpb-disclosure { interpolate-size: allow-keywords; }
  .gpb-disclosure::details-content { height: 0; overflow: clip; transition: height .45s cubic-bezier(.2,.7,.2,1), content-visibility .45s allow-discrete; }
  .gpb-disclosure[open]::details-content { height: auto; }
}
.gpb-ai-brain-images .gpb-depth-object { position: relative; overflow: visible; isolation: isolate; background: transparent; border-radius: 0; }
.gpb-depth-object canvas { position: absolute; inset: 0; width: 100%; height: 100%; pointer-events: none; }
.gpb-depth-object.is-depth-ready > img { visibility: hidden; }
.gpb-depth-object::after { content: ''; position: absolute; width: 62%; height: 7%; left: 19%; bottom: 3%; background: radial-gradient(ellipse, color-mix(in srgb, var(--ink) 16%, transparent), transparent 70%); pointer-events: none; z-index: -1; }
@media (prefers-reduced-motion: reduce) {
  .gpb-disclosure::details-content, .gpb-disclosure-chevron { transition: none; }
}
.gpb-ai-brain-images .gpb-depth-object > img { transform: scale(.9); }

.gpb-ai-section .gpb-depth-object:hover { filter: none; }
.gpb-ai-section .gpb-depth-object:focus-visible { filter: none; outline: 2px solid var(--theme-focus); outline-offset: 4px; }

/* The title, introduction and changing step share the card's projected frame. */
@media screen and (prefers-reduced-motion: no-preference) {
  .is-field .gpb-pipeline-column {
    --gpb-step-title: 600 clamp(20px, 1.6vw, 24px)/1.2 var(--sans);
    --gpb-step-gap: 8px;
    --gpb-step-block-space: 40px;
    position: absolute; left: var(--page-gutter); top: 26px;
    width: calc((100% - 2 * var(--page-gutter)) * .4 - 32px);
    display: flex; flex-direction: column; min-width: 0;
  }
  .is-field .gpb-pipeline-column > h2 { margin: 0; font: var(--gpb-h3); letter-spacing: var(--gpb-heading-tracking); }
  .is-field .gpb-pipeline-column .gpb-ai-pipeline-note {
    position: static; width: auto; max-width: 40ch; margin: var(--gpb-heading-space) 0 0;
    font: var(--gpb-body);
    text-wrap: balance;
  }
  .is-field .gpb-pipeline-column .gpb-pipeline-panel {
    display: flex; flex-direction: column; align-self: stretch;
    width: auto; max-width: none; padding: 0; margin-top: var(--gpb-step-block-space);
  }
  .is-field .gpb-pipeline-space { grid-column: 2; }
  .is-field .gpb-pipeline-captions { align-items: start; }
  @media (max-width: 1023px) {
    .is-field .gpb-pipeline-column { --gpb-step-block-space: 28px; }
  }
}
@media (min-width: 1024px) and (max-height: 800px) and (prefers-reduced-motion: no-preference) {
  .is-field .gpb-pipeline-stage .gpb-ai-pipeline-chip { font-size: 14px; }
}
@media (max-width: 1023px) and (prefers-reduced-motion: no-preference) {
  .is-field .gpb-pipeline-column { position: relative; left: auto; top: auto; width: 100%; grid-column: 1; }
  .is-field .gpb-pipeline-space { grid-column: 1; grid-row: 2; }
  .is-field .gpb-pipeline-stage .gpb-ai-pipeline-chip { font-size: 12px; }
}

.gpb-wall-stage:not(.is-floor-hero) { height: calc(2 * (100svh - var(--site-header-height))); margin-bottom: 0; }
.gpb-page .gpb-wall-stage:not(.is-floor-hero) .gpb-intro { top: 0; height: calc(100svh - var(--site-header-height)); display: flex; align-items: center; padding-block: 0; }
.gpb-wall-stage:not(.is-floor-hero) > .gpb-field,
.gpb-wall-stage:not(.is-floor-hero) > .gpb-wall-canvas { top: calc(100svh - var(--site-header-height)); height: calc(100svh - var(--site-header-height)); }
.gpb-stage-pending .gpb-wall-stage > .gpb-field,
.gpb-stage-pending .gpb-wall-stage > .gpb-wall-canvas { visibility: hidden; }
.gpb-page .gpb-wall-stage .gpb-intro {
  width: 80vw; max-width: none; left: 10%; right: auto; padding-inline: 0;
}
.gpb-page .gpb-wall-stage .gpb-intro h1 { display: inline-block; white-space: nowrap; overflow-wrap: normal; max-width: none; line-height: 1.05; }
.gpb-page .gpb-wall-stage .gpb-intro p { width: max-content; max-width: min(46ch, 100%); text-wrap: balance; }
@media screen and (prefers-reduced-motion: no-preference) {
  .gpb-title-camera { position: absolute; inset: 0; pointer-events: none; }
  .gpb-page .is-floor-hero .gpb-intro { left: 0; top: 0; margin: 0; padding: 0; transform-origin: 0 0; }
}

/* Pending stage content stays out of the first paint; failure restores the reading view. */
@media screen and (prefers-reduced-motion: no-preference) {
  .gpb-stage-pending .gpb-field-track { visibility: hidden; }
  .gpb-stage-mode .flow-fallback,
  .gpb-stage-mode .gpb-swim-fallback,
  .gpb-stage-mode .gpb-pipeline-fallback {
    position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0;
    overflow: hidden; clip-path: inset(50%); white-space: nowrap;
  }
}

@media screen and (prefers-reduced-motion: no-preference) {
  .is-field .gpb-thesis-camera { pointer-events: none; }
  .is-field [data-world-text="floor-thesis"] {
    display: block; left: 0; top: 0; right: auto; max-width: none;
    margin: 0; padding: 0; transform-origin: 0 0; text-align: left;
  }
  .is-field [data-world-text="floor-thesis"] h2 { margin: 0; font: var(--gpb-h2); letter-spacing: var(--gpb-heading-tracking); line-height: 1.08; text-wrap: balance; }
  .is-field [data-world-text="floor-thesis"] p { font: var(--gpb-body); max-width: none; margin: 1em 0 0; line-height: 1.4; text-wrap: pretty; }
}

@media screen and (prefers-reduced-motion: no-preference) {
  .has-scroll-reveal { opacity: calc(.35 + .65 * var(--scroll-reveal, 0)); transform: translateY(calc((1 - var(--scroll-reveal, 0)) * 24px)); transition: none; }
  .gpb-ai-process .has-scroll-reveal .gpb-ill-article-tile { transform: translateX(calc((1 - var(--scroll-reveal, 0)) * 6%)) scale(calc(.94 + .06 * var(--scroll-reveal, 0))); transition: none; }
  .gpb-ai-process .has-scroll-reveal .gpb-ill-square { transform: translateX(calc((1 - var(--scroll-reveal, 0)) * -6%)) scale(calc(.94 + .06 * var(--scroll-reveal, 0))); transition: none; }
}

/* The opening is a complete title frame before the field renderer starts. */
.gpb-page .page-back-bar { position: absolute; top: var(--site-header-height); left: 0; right: 0; z-index: 4; margin-top: 0; }
.gpb-page #case { padding-top: var(--site-header-height); }
.gpb-page .gpb-main { margin-top: 0; }

@media screen and (prefers-reduced-motion: no-preference) {
  .is-field .gpb-swim-stage > [data-world-text="floor-roles"] { top: 0; left: 0; right: auto; margin: 0; padding: 0; transform-origin: 0 0; text-wrap: balance; }
}

@media screen and (max-width: 767px) and (prefers-reduced-motion: no-preference) {
}

@media screen and (prefers-reduced-motion: no-preference) {
  .is-field .gpb-ai-flow .scene-top { grid-template-columns: minmax(0, 1fr) auto; }
  .is-field .gpb-ai-flow .scene-headlines { width: min(26ch, 100%); min-height: 0; font: var(--gpb-h3); }
  .is-field .gpb-ai-flow .scene-top h3 { font: var(--gpb-h3); max-width: 26ch; }
  .is-field .gpb-ai-flow .file-counter { flex-direction: column; align-items: flex-end; gap: 8px; }
  .is-field .gpb-ai-flow .file-counter > span:nth-child(2) { margin-top: 0; text-align: right; }
  @media (max-width: 767px) {
    .is-field .gpb-ai-flow .scene-top { gap: 12px; }
    .is-field .gpb-ai-flow .file-counter { max-width: 90px; }
    .is-field .gpb-ai-flow .file-counter .numeral { font-size: 42px; }
    .is-field .gpb-ai-flow .file-counter > span:nth-child(2) { font-size: 12px; }
  }
  @media (max-width: 359px) {
    .is-field .gpb-ai-flow .scene-top { grid-template-columns: minmax(0, 1fr); }
    .is-field .gpb-ai-flow .file-counter { justify-self: end; }
  }
}

/* The shared title transform is also used by the camera at scroll zero. */
.gpb-wall-stage { --gpb-opening-transform: translate3d(10vw,calc((100svh - var(--site-header-height)) / 2 - 50%),0); }
/* The plane sits .012 world units below the title; JS refines the 100px grid. */
.gpb-opening-floor {
  position: absolute; inset: 0; height: calc(100svh - var(--site-header-height));
  pointer-events: none;
  background: radial-gradient(circle calc(100svh - var(--site-header-height)) at 88% 10% in srgb-linear,
    color-mix(in srgb-linear, var(--pipeline-glow) 70.0000%, var(--pipeline-floor)) 0%,
    color-mix(in srgb-linear, var(--pipeline-glow) 68.3400%, var(--pipeline-floor)) 10%,
    color-mix(in srgb-linear, var(--pipeline-glow) 63.5925%, var(--pipeline-floor)) 20%,
    color-mix(in srgb-linear, var(--pipeline-glow) 56.4015%, var(--pipeline-floor)) 30%,
    color-mix(in srgb-linear, var(--pipeline-glow) 47.6792%, var(--pipeline-floor)) 40%,
    color-mix(in srgb-linear, var(--pipeline-glow) 38.4168%, var(--pipeline-floor)) 50%,
    color-mix(in srgb-linear, var(--pipeline-glow) 29.5031%, var(--pipeline-floor)) 60%,
    color-mix(in srgb-linear, var(--pipeline-glow) 21.5957%, var(--pipeline-floor)) 70%,
    color-mix(in srgb-linear, var(--pipeline-glow) 15.0668%, var(--pipeline-floor)) 80%,
    color-mix(in srgb-linear, var(--pipeline-glow) 10.0191%, var(--pipeline-floor)) 90%,
    color-mix(in srgb-linear, var(--pipeline-glow) 6.3503%, var(--pipeline-floor)) 100%,
    color-mix(in srgb-linear, var(--pipeline-glow) 3.8362%, var(--pipeline-floor)) 110%,
    color-mix(in srgb-linear, var(--pipeline-glow) 2.2089%, var(--pipeline-floor)) 120%,
    color-mix(in srgb-linear, var(--pipeline-glow) 1.2123%, var(--pipeline-floor)) 130%,
    color-mix(in srgb-linear, var(--pipeline-glow) 0.6341%, var(--pipeline-floor)) 140%,
    color-mix(in srgb-linear, var(--pipeline-glow) 0.3162%, var(--pipeline-floor)) 150%,
    color-mix(in srgb-linear, var(--pipeline-glow) 0.1502%, var(--pipeline-floor)) 160%,
    color-mix(in srgb-linear, var(--pipeline-glow) 0.0681%, var(--pipeline-floor)) 170%,
    color-mix(in srgb-linear, var(--pipeline-glow) 0.0294%, var(--pipeline-floor)) 180%,
    color-mix(in srgb-linear, var(--pipeline-glow) 0.0121%, var(--pipeline-floor)) 190%,
    color-mix(in srgb-linear, var(--pipeline-glow) 0.0047%, var(--pipeline-floor)) 200%);
  background-size: 100% 100%;
}
.gpb-opening-floor::before, .gpb-opening-floor::after {
  content: ''; position: absolute; inset: 0; pointer-events: none;
}
.gpb-opening-floor::before {
  background-image: linear-gradient(to right, transparent calc(50% - .5px), color-mix(in srgb, var(--pipeline-grid) 22%, transparent) calc(50% - .5px) calc(50% + .5px), transparent calc(50% + .5px)), linear-gradient(to bottom, transparent calc(50% - .5px), color-mix(in srgb, var(--pipeline-grid) 22%, transparent) calc(50% - .5px) calc(50% + .5px), transparent calc(50% + .5px));
  background-size: var(--gpb-opening-cell, 100px) var(--gpb-opening-cell, 100px); background-position: center;
}
.gpb-opening-floor::after {
  background: var(--pipeline-grid); opacity: .33;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='300' height='300'%3E%3Cpath d='M135 50h30M150 35v30' stroke='white' stroke-width='1'/%3E%3C/svg%3E") center / calc(3 * var(--gpb-opening-cell, 100px)) calc(3 * var(--gpb-opening-cell, 100px)) repeat;
}
.gpb-page .gpb-wall-stage:not(.is-floor-hero) .gpb-intro {
  display: block; left: 0; top: 0; height: auto; margin: 0; padding: 0;
  transform: var(--gpb-opening-transform);
}
.gpb-page .gpb-wall-stage .gpb-intro,
.gpb-page .gpb-wall-stage .gpb-intro h1,
.gpb-page .gpb-wall-stage .gpb-intro p { color: var(--field-ink); }
.gpb-scene-progress {
  display: none; position: absolute; top: calc(100% + 24px); left: 0;
  width: min(280px, 100%); height: 2px; background: var(--line);
  opacity: 1; transition: opacity 400ms ease; pointer-events: none;
}
.gpb-scene-progress span { display: block; height: 100%; background: var(--field-ink); transform: scaleX(var(--scene-progress, 0)); transform-origin: left; }
.gpb-stage-mode .gpb-scene-progress:not([hidden]) { display: block; }
.gpb-scene-progress.is-complete { opacity: 0; }
html.gpb-stage-loading { overflow: hidden; }
.gpb-stage-loading body { overflow: clip; }
.is-field .gpb-opening-floor { z-index: -1; }
.is-field .gpb-field-stage { background: transparent; }
