/* Выставочный кадр: семантический текст над тихим космосом.
--su задаёт композицию 16:9; на телефоне сцена становится прокручиваемой.
Раскладка не меняется от декоративного движения; reduced motion статичен. */
.pres.exhibition  {
  background: #050810;
  color: #f4f2ec;
  --frame-top: calc(50% - 28.125 * var(--su));
}

.exhibition .ambient-backdrop  {
  display: none;
}

.exhibition > .star-field  {
  opacity: .28;
}

.exhibition .pres-depth  {
  opacity: .6;
}

.exhibition .pres-hud  {
  opacity: .24;
}

.exhibition .pres-hud__scan,.exhibition .pres-mark  {
  display: none;
}

.exhibition .pres-veil  {
  background: radial-gradient(ellipse at 65% 45%,#1c213fbb,#050810 78%);
}

.exhibition .pres-controls  {
  top: calc(var(--frame-top) + 51.55 * var(--su));
  left: calc(var(--frame-left) + 4.6 * var(--su));
  width: calc(90.8 * var(--su));
  background: #0b101bee;
  border-color: #aab8e41e;
  border-radius: 8px;
  backdrop-filter: blur(16px);
  box-shadow: 0 12px 48px #0004;
}

.exhibition .pres-btn  {
  border-radius: 5px;
  border-color: #aebbe724;
  background: #ffffff04;
}

.exhibition .pres-btn--next  {
  background: #e8d4ad;
  color: #111723;
  border-color: #e8d4ad;
}

.exhibition .pres-btn:hover  {
  background: #ffffff0d;
}

.exhibition .pres-btn--next:hover  {
  background: #f6e5c5;
}

.exhibition .pres-progress__label  {
  color: #b0b9cd;
  font-size: .72em;
  letter-spacing: .03em;
}

.exhibition .pres-btn--exit  {
  border: 0;
  color: #b0b9cd;
}

.exhibition .pres-controls .locale-switch  {
  border-radius: 5px;
}

.ex-stage  {
  --ex-accent: #e8cda0;
  --ex-rgb: 232,205,160;
  --ex-muted: #a4aec0;
}

.ex-stage[data-tone="family"]  {
  --ex-accent: #93dec5;
  --ex-rgb: 147,222,197;
}

.ex-stage[data-tone="personal"]  {
  --ex-accent: #c1acf5;
  --ex-rgb: 193,172,245;
}

.ex-stage[data-tone="alert"]  {
  --ex-accent: #f0a69b;
  --ex-rgb: 240,166,155;
}

.ex-stage__aura  {
  position: absolute;
  inset: 0;
  pointer-events: none;
  background: radial-gradient(ellipse at 78% 46%,rgba(var(--ex-rgb),.065),transparent 47%),radial-gradient(ellipse at 16% 96%,#6f69b009,transparent 50%);
}

.ex-frame  {
  padding: calc(2.5 * var(--su)) calc(5 * var(--su)) calc(6.7 * var(--su));
  display: flex;
  flex-direction: column;
}

.ex-topline  {
  display: flex;
  align-items: center;
  gap: calc(2 * var(--su));
  height: calc(2.4 * var(--su));
  min-height: 32px;
  position: relative;
  z-index: 4;
}

.ex-brand  {
  display: flex;
  align-items: center;
  gap: .55em;
  font-size: max(15px,calc(1.3 * var(--su)));
  letter-spacing: .04em;
  font-weight: 500;
}

.ex-brand svg  {
  width: 1.9em;
  height: 1.9em;
  fill: none;
  stroke: #e7cca0;
  stroke-width: .8;
}

.ex-brand svg circle  {
  fill: #e7cca0;
  stroke: none;
}

.ex-brand svg circle:not(.ex-brand__planet)  {
  fill: #e7cca015;
  stroke: #e7cca0;
  stroke-width: .8;
}

.ex-topline__section,.ex-topline__number  {
  font: 400 max(10px,calc(.73 * var(--su)))/1.3 var(--mono);
  text-transform: uppercase;
  letter-spacing: .16em;
  color: #929db4;
}

.ex-topline__section  {
  padding-left: calc(2 * var(--su));
  border-left: 1px solid #b9c7ea24;
}

.ex-topline__number  {
  margin-left: auto;
  white-space: nowrap;
  color: #e4cda6;
}

.ex-layout  {
  display: grid;
  grid-template-columns: minmax(0, .82fr) minmax(0,1.18fr);
  gap: calc(4 * var(--su));
  align-items: center;
  flex: 1;
  min-height: 0;
}

.ex-copy  {
  position: relative;
  z-index: 3;
  padding-bottom: calc(1.4 * var(--su));
}

.ex-kicker,.ex-label  {
  display: flex;
  align-items: center;
  gap: .65em;
  font: 500 max(10px,calc(.78 * var(--su)))/1.4 var(--mono);
  text-transform: uppercase;
  letter-spacing: .13em;
  color: var(--ex-accent,#e8cda0);
}

.ex-signal  {
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background: var(--ex-accent);
  box-shadow: 0 0 12px rgba(var(--ex-rgb),.45);
  flex: none;
}

.ex-copy h1  {
  font-size: clamp(30px,calc(3.8 * var(--su)),176px);
  font-weight: 430;
  line-height: 1.09;
  letter-spacing: -.045em;
  margin: calc(1.2 * var(--su)) 0;
  text-wrap: balance;
  outline: none;
  max-width: 12em;
}

.ex-copy h1:focus,.ex-start h1:focus,.ex-cold h1:focus,.ex-finale h1:focus  {
  outline: none;
  box-shadow: none;
}

.ex-subtitle  {
  font-size: max(14px,calc(1.13 * var(--su)));
  line-height: 1.65;
  color: #aeb7c7;
  max-width: 33em;
}

.ex-narrative  {
  display: flex;
  gap: calc(1.1 * var(--su));
  margin-top: calc(2.4 * var(--su));
  padding-top: calc(1.5 * var(--su));
  border-top: 1px solid #c5d0ec24;
  min-height: calc(9.2 * var(--su));
}

.ex-narrative__index  {
  color: var(--ex-accent);
  font: 400 max(14px,calc(1.2 * var(--su)))/1.5 var(--mono);
}

.ex-narrative h2  {
  font-size: max(15px,calc(1.13 * var(--su)));
  font-weight: 550;
  line-height: 1.4;
  margin: 0 0 .45em;
  letter-spacing: -.01em;
}

.ex-narrative p  {
  font-size: max(13px,calc(1 * var(--su)));
  line-height: 1.65;
  color: #aeb7c7;
}

.ex-copy .stage-badge,.ex-finale .stage-badge  {
  display: inline-flex;
  margin-top: calc(.85 * var(--su));
  border-color: #adc0e227;
  color: #8f9baf;
  font: 400 max(9px,calc(.62 * var(--su))) var(--mono);
  text-transform: uppercase;
  letter-spacing: .13em;
  padding: .4em .6em;
  border-radius: 3px;
  background: transparent;
}

.ex-visual  {
  position: relative;
  min-width: 0;
  height: calc(34 * var(--su));
  align-self: center;
  font-size: max(13px,calc(1.05 * var(--su)));
}

.ex-scene-footer  {
  display: flex;
  align-items: center;
  gap: calc(2 * var(--su));
  justify-content: space-between;
  padding-top: calc(1 * var(--su));
  border-top: 1px solid #b6c5ec15;
  min-height: calc(3.1 * var(--su));
}

.ex-phase  {
  display: flex;
  align-items: center;
  gap: calc(1.1 * var(--su));
  max-width: 64%;
}

.ex-phase__marker  {
  display: flex;
  align-items: center;
  gap: .5em;
  color: #586379;
  font-size: max(10px,calc(.71 * var(--su)));
  line-height: 1.35;
}

.ex-phase__marker b  {
  font: 400 1em var(--mono);
}

.ex-phase__marker span  {
  max-width: 14em;
}

.ex-phase__marker--active  {
  color: var(--ex-accent);
}

.ex-takeaway  {
  display: flex;
  align-items: center;
  gap: .7em;
  max-width: 36%;
  text-align: right;
  justify-content: flex-end;
  font-size: max(11px,calc(.8 * var(--su)));
  line-height: 1.45;
  color: #bbc1d0;
}

.ex-thought-star  {
  display: inline-block;
  width: .65em;
  height: .65em;
  flex: none;
  background: #c2affb;
  transform: rotate(45deg);
  box-shadow: 0 0 12px #b7a2f577;
}

.ex-stage [data-reveal]  {
  transition: opacity 750ms ease,transform 900ms cubic-bezier(.16,1,.3,1),visibility 750ms;
}

.ex-stage[data-beat="0"] [data-reveal="1"],.ex-stage[data-beat="0"] [data-reveal="2"],.ex-stage[data-beat="1"] [data-reveal="2"]  {
  opacity: 0;
  visibility: hidden;
  transform: translateY(12px);
}

.ex-stage .ui-icon  {
  width: 1.2em;
  height: 1.2em;
  flex-shrink: 0;
}

.ex-stage h3  {
  font-size: 1.22em;
  font-weight: 500;
  line-height: 1.35;
  letter-spacing: -.015em;
}

.ex-stage h4  {
  font-size: 1em;
  font-weight: 550;
  line-height: 1.4;
}

.ex-panel-title  {
  display: flex;
  align-items: center;
  gap: .7em;
  color: #e6e8ec;
  font-size: 1.03em;
  padding-bottom: 1.2em;
  border-bottom: 1px solid #c2ceed1b;
}

.ex-access,.ex-scene-note  {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: .65em;
  color: #9aabbd;
  font-size: .79em;
  line-height: 1.5;
  margin-top: 1.4em;
  text-align: center;
}

.ex-scene-note  {
  border: 1px solid rgba(var(--ex-rgb),.19);
  padding: 1em;
  color: var(--ex-accent);
  border-radius: 6px;
}

.ex-source  {
  display: flex;
  align-items: center;
  gap: .5em;
  font-size: .72em;
  color: #a2b4bb;
  margin-top: 1em;
}

[data-circle="personal"]  {
  --tile-color: #c1acf5;
  --tile-rgb: 193,172,245;
}

[data-circle="family"]  {
  --tile-color: #93dec5;
  --tile-rgb: 147,222,197;
}

[data-circle="work"]  {
  --tile-color: #e8cda0;
  --tile-rgb: 232,205,160;
}

.ex-tile  {
  position: relative;
  display: flex;
  align-items: center;
  gap: 1em;
  padding: 1.1em;
  background: linear-gradient(130deg,rgba(var(--tile-rgb),.075),#0d1322f2);
  border: 1px solid rgba(var(--tile-rgb),.24);
  border-radius: 8px;
  box-shadow: 0 15px 40px #0002;
}

.ex-tile__icon  {
  display: grid;
  place-items: center;
  width: 2.5em;
  height: 2.5em;
  flex: none;
  color: var(--tile-color);
  border: 1px solid rgba(var(--tile-rgb),.17);
  border-radius: 50%;
}

.ex-tile h3  {
  font-size: 1em;
}

.ex-tile p  {
  color: #98a6ba;
  font-size: .78em;
  margin-top: .4em;
  line-height: 1.5;
}

/* Внимание: источники, лицо, орбиты, выбранный фокус. */
.ex-attention  {
  position: relative;
  height: 100%;
}

.ex-attention__cosmos  {
  position: absolute;
  inset: -13% -10%;
}

.ex-attention[data-kind="overload"] .ex-attention__cosmos  {
  inset: -5% -2%;
}

.ex-orbit-labels  {
  position: absolute;
  right: -1%;
  top: 8%;
  display: grid;
  gap: 1.3em;
}

.ex-orbit-labels > div  {
  display: flex;
  gap: .8em;
  align-items: center;
  font-size: .82em;
  color: #bdc4d2;
  transform: translateX(calc(var(--i) * -.7em));
}

.ex-orbit-labels span  {
  color: #d1b991;
  font: 400 .8em var(--mono);
}

.ex-quiet-chip  {
  position: absolute;
  bottom: 2%;
  left: 50%;
  transform: translateX(-50%);
  display: flex;
  gap: .7em;
  align-items: center;
  padding: .8em 1.2em;
  border: 1px solid #b9a6f33b;
  border-radius: 30px;
  background: #111122db;
  color: #d0c0f6;
  font-size: .8em;
  white-space: nowrap;
}

.ex-stage[data-beat="0"] .ex-quiet-chip[data-reveal="2"],.ex-stage[data-beat="1"] .ex-quiet-chip[data-reveal="2"]  {
  transform: translate(-50%,12px);
}

.ex-focus-card  {
  position: absolute;
  right: -1%;
  top: 52%;
  width: 21em;
  padding: 1.35em 1.5em;
  background: linear-gradient(120deg,#30291ee8,#111724ef);
  border: 1px solid #e8cda059;
  border-radius: 8px;
  box-shadow: 0 0 50px #e8cda009,0 22px 60px #0005;
}

.ex-focus-card h3  {
  font-size: 1.55em;
  margin: .6em 0 .4em;
}

.ex-focus-card p  {
  font-size: .85em;
  color: #c0c4cd;
  line-height: 1.5;
}

/* Договорённости. */
.ex-agreements  {
  padding: calc(1.3 * var(--su)) 0;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1.2em;
  align-content: center;
  height: 100%;
}

.ex-thread  {
  border: 1px solid rgba(var(--tile-rgb),.27);
  border-radius: 9px;
  padding: 1.45em;
  background: linear-gradient(160deg,rgba(var(--tile-rgb),.07),#0e1524e8);
  position: relative;
}

.ex-thread .ex-panel-title  {
  color: var(--tile-color);
  font-size: .88em;
}

.ex-person  {
  display: block;
  font-size: .77em;
  color: #8f9daf;
  margin-top: 1.7em;
}

.ex-thread blockquote  {
  padding: 0;
  margin: .7em 0 1.5em;
  font-size: 1.17em;
  line-height: 1.55;
  min-height: 5.4em;
}

.ex-thread__response  {
  display: flex;
  gap: .6em;
  color: var(--tile-color);
  font-size: .84em;
  line-height: 1.5;
  padding-top: 1em;
  border-top: 1px solid rgba(var(--tile-rgb),.2);
}

.ex-agreements > .ex-scene-note  {
  grid-column: 1/-1;
  margin-top: 0;
}

.ex-agreements[data-resolved="false"] .ex-thread:first-child  {
  transform: rotate(-3deg) translateY(-12px);
}

.ex-agreements[data-resolved="false"] .ex-thread:nth-child(2)  {
  transform: rotate(3deg) translateY(14px);
}

/* Временные дорожки. */
.ex-timeline  {
  margin-top: calc(3 * var(--su));
  padding: 1.6em;
  border: 1px solid #a4b7d92d;
  background: linear-gradient(130deg,#121b2ded,#0a101be8);
  border-radius: 10px;
  box-shadow: 0 25px 75px #0005;
}

.ex-time-axis  {
  display: flex;
  justify-content: space-between;
  margin: 1.8em 0 1em 25%;
  font: 400 .78em var(--mono);
  color: #7f91ab;
}

.ex-lanes  {
  display: grid;
  gap: 1em;
}

.ex-lane  {
  display: grid;
  grid-template-columns: 25% 75%;
  align-items: center;
  gap: .7em;
}

.ex-lane__person  {
  font-size: .77em;
  color: var(--tile-color);
  display: flex;
  align-items: center;
  gap: .55em;
}

.ex-lane__person i  {
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background: var(--tile-color);
  flex: none;
}

.ex-lane__track  {
  height: 4.3em;
  position: relative;
  border: 1px solid #bac8e512;
  background: repeating-linear-gradient(90deg,transparent 0,transparent calc(33.33% - 1px),#a5bbde16 33.33%);
}

.ex-timeblock  {
  position: absolute;
  top: .35em;
  left: calc(4% + var(--i) * 22%);
  width: 52%;
  height: calc(100% - .7em);
  padding: .4em .7em;
  display: flex;
  align-items: center;
  gap: .5em;
  background: rgba(var(--tile-rgb),.11);
  border: 1px solid rgba(var(--tile-rgb),.4);
  border-radius: 4px;
  color: var(--tile-color);
  font-size: .85em;
  line-height: 1.35;
  transition: left 1.5s cubic-bezier(.2,.8,.2,1),background 1s;
}

.ex-timeline[data-kind="collision"] .ex-timeblock  {
  left: 30%;
  border-color: #f29d9177;
  background: #f29d9121;
  color: #f2b3a9;
}

.ex-timeline[data-kind="balance"] .ex-timeblock  {
  width: 48%;
}

.ex-stage[data-beat="0"] .ex-timeline[data-kind="balance"] .ex-timeblock  {
  left: 30%;
}

.ex-timeline__verdict  {
  display: flex;
  align-items: center;
  gap: .65em;
  margin-top: 1.5em;
  border-top: 1px solid #adc4dd20;
  padding-top: 1.4em;
  color: var(--ex-accent);
  font-size: .95em;
}

/* Семейная машина. */
.ex-car  {
  height: 100%;
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.ex-car__caption  {
  text-align: center;
}

.ex-car__caption .ex-label  {
  justify-content: center;
}

.ex-car__caption h3  {
  margin: .4em 0;
  font-size: 1.7em;
}

.ex-car__drawing  {
  width: 100%;
  height: calc(16 * var(--su));
  stroke: #c1ded9;
  stroke-width: 1.4;
  filter: drop-shadow(0 0 10px #92dec533);
}

.ex-car__body  {
  fill: #93dec507;
}

.ex-car__floor  {
  stroke: #8ed9c744;
}

.ex-car__people  {
  display: grid;
  grid-template-columns: repeat(3,1fr);
  gap: .6em;
}

.ex-car__people .ex-tile  {
  flex-direction: column;
  align-items: flex-start;
  padding: .85em;
  gap: .7em;
}

.ex-car__people .ex-tile__icon  {
  width: 2em;
  height: 2em;
}

.ex-car__people .ex-tile h3  {
  font-size: .82em;
}

/* Внешние источники. */
.ex-world  {
  display: flex;
  flex-direction: column;
  height: 100%;
  justify-content: center;
}

.ex-query  {
  padding: 1em 1.2em;
  display: flex;
  align-items: center;
  gap: .8em;
  color: #e3e7ee;
  background: linear-gradient(120deg,#182238,#0d1524);
  border: 1px solid #aabce83b;
  border-radius: 7px;
  font-size: 1em;
  line-height: 1.5;
}

.ex-query .ui-icon  {
  color: #d5bd94;
}

.ex-query i  {
  margin-left: auto;
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background: #c4acf4;
  box-shadow: 0 0 12px #c4acf4;
}

.ex-source-grid  {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1em;
  margin-top: 1.3em;
}

.ex-source-card  {
  position: relative;
  padding: 1.3em;
  min-height: 11em;
  border: 1px solid #c4c8e32b;
  border-radius: 8px;
  background: #0e1726;
}

.ex-source-card .ex-label  {
  letter-spacing: .04em;
  font-size: .72em;
  text-transform: none;
}

.ex-source-card h3  {
  margin: 1.2em 0 .6em;
  font-size: 1.14em;
}

.ex-source-card p  {
  color: #8fa3b5;
  font-size: .82em;
}

.ex-source-card__stamp  {
  display: block;
  font: 400 .65em var(--mono);
  color: #6f8399;
  margin-top: 1.3em;
  text-transform: uppercase;
  letter-spacing: .14em;
}

.ex-world__bridge  {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 3.1em;
  gap: 1em;
  color: #b9dcca;
}

.ex-world__bridge span  {
  height: 1px;
  width: 30%;
  background: linear-gradient(90deg,transparent,#8dd8c4aa);
}

.ex-world__bridge span:last-child  {
  transform: rotate(180deg);
}

.ex-world__answer  {
  display: flex;
  align-items: center;
  gap: 1em;
  padding: 1.15em;
  border: 1px solid #8edcc940;
  border-radius: 6px;
  background: #93dec50b;
  color: #bce3d6;
}

.ex-world__answer h3  {
  font-size: 1em;
}

.ex-world__answer p  {
  color: #91aba6;
  font-size: .8em;
  margin-top: .45em;
}

/* Питомцы. */
.ex-pets  {
  height: 100%;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1.1em;
  align-content: center;
}

.ex-pet  {
  border: 1px solid rgba(var(--tile-rgb),.25);
  background: radial-gradient(ellipse at 50% 0,rgba(var(--tile-rgb),.08),#0b1321 80%);
  border-radius: 12px;
  padding: 1.4em;
}

.ex-pet__portrait  {
  width: 75%;
  margin: 0 auto .8em;
}

.ex-pet__portrait svg  {
  display: block;
  width: 100%;
  stroke: var(--tile-color);
  stroke-width: 1.5;
  filter: drop-shadow(0 0 12px rgba(var(--tile-rgb),.25));
}

.ex-pet h3  {
  font-size: 1.5em;
}

.ex-pet p  {
  color: #96a5b7;
  font-size: .75em;
  margin: .4em 0 1em;
}

.ex-pet ul  {
  list-style: none;
  padding: 1em 0 0;
  margin: 0;
  border-top: 1px solid rgba(var(--tile-rgb),.19);
  display: grid;
  gap: .8em;
}

.ex-pet li  {
  display: flex;
  align-items: center;
  gap: .6em;
  font-size: .85em;
  color: #bdc9d4;
}

.ex-pet .ui-icon  {
  color: var(--tile-color);
}

.ex-pets>.ex-scene-note  {
  grid-column: 1/-1;
  margin-top: 0;
}

/* Проект. */
.ex-project  {
  position: relative;
  height: 100%;
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.ex-project__orbit  {
  position: absolute;
  width: 80%;
  aspect-ratio: 1;
  left: 10%;
  top: 0;
  border: 1px solid #cfb68524;
  border-radius: 50%;
  transform: rotateX(55deg) rotateZ(-20deg);
  box-shadow: 0 0 60px #cfb68509,inset 0 0 60px #cfb68509;
}

.ex-project__hub  {
  position: relative;
  margin: 0 auto 1.6em;
  display: flex;
  align-items: center;
  gap: .7em;
  font-size: 1.7em;
  color: #e7cfaa;
}

.ex-project__hub .ui-icon  {
  padding: .4em;
  width: 2.1em;
  height: 2.1em;
  border: 1px solid #c9b08655;
  border-radius: 50%;
}

.ex-project__cards  {
  position: relative;
  display: grid;
  gap: .8em;
  padding: 0 2em;
}

.ex-project[data-resolved="false"] .ex-tile:nth-child(1)  {
  transform: translateX(-18px) rotate(-5deg);
}

.ex-project[data-resolved="false"] .ex-tile:nth-child(2)  {
  transform: translateX(22px) rotate(4deg);
}

.ex-project[data-resolved="false"] .ex-tile:nth-child(3)  {
  transform: translateX(-6px) rotate(-2deg);
}

.ex-project__steps  {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: .7em;
  margin-top: 1.8em;
  font-size: .76em;
  color: #bcab91;
}

.ex-project__steps i  {
  width: 1.8em;
  height: 1px;
  background: #d6bd8d55;
}

/* Мысль. */
.ex-idea  {
  position: relative;
  height: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
}

.ex-idea__halo  {
  position: absolute;
  inset: -7%;
  background: radial-gradient(ellipse at 50% 26%,#a38cf829,transparent 46%);
  border: 1px solid #baabef13;
  border-radius: 50%;
  transform: rotate(-20deg) scaleY(.8);
}

.ex-idea__star  {
  color: #dacafa;
  filter: drop-shadow(0 0 18px #bfa2ff);
  animation: ex-thought-breathe 7s ease-in-out infinite alternate;
  margin-bottom: 1.5em;
}

.ex-idea__star .ui-icon  {
  width: 4.4em;
  height: 4.4em;
  stroke-width: .6;
}

.ex-idea__quote  {
  position: relative;
  width: 84%;
  text-align: center;
}

.ex-idea__quote .ex-label  {
  justify-content: center;
}

.ex-idea__quote p  {
  margin: .6em 0 1.3em;
  font-size: 1.7em;
  font-weight: 350;
  line-height: 1.4;
  letter-spacing: -.02em;
}

.ex-idea__steps  {
  display: grid;
  gap: .6em;
  width: 88%;
}

.ex-idea__steps .ex-tile  {
  padding: .8em 1em;
}

.ex-idea__steps .ex-tile__icon  {
  width: 2.1em;
  height: 2.1em;
}

.ex-idea__steps .ex-tile h3  {
  font-size: .85em;
}

.ex-idea__steps .ex-tile p  {
  font-size: .73em;
}

.ex-idea__interruptions  {
  width: 100%;
  position: relative;
  display: flex;
  flex-wrap: wrap;
  gap: .8em;
  justify-content: center;
  margin-top: 1.8em;
}

.ex-idea__interruptions span  {
  display: flex;
  align-items: center;
  gap: .7em;
  background: #211926;
  color: #bfa8b7;
  border: 1px solid #c9869355;
  padding: .8em;
  font-size: .83em;
  transform: rotate(-4deg);
}

.ex-idea__interruptions span:nth-child(2)  {
  transform: rotate(4deg) translateY(1em);
}

/* Память и профиль. */
.ex-memory  {
  display: flex;
  flex-direction: column;
  justify-content: center;
  height: 100%;
}

.ex-memory__core  {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1em;
  padding: 2em 0 0;
  font-size: .9em;
  color: #cfc4e9;
}

.ex-memory__core>.ui-icon  {
  width: 4.5em;
  height: 4.5em;
  stroke-width: .65;
  filter: drop-shadow(0 0 14px #baa6ee66);
}

.ex-memory__rings  {
  position: absolute;
  width: 9em;
  height: 4em;
  top: 3em;
  border: 1px solid #b3a4de33;
  border-radius: 50%;
  transform: rotate(-25deg);
}

.ex-memory__links  {
  width: 100%;
  height: 5em;
  stroke: #b4a2d85c;
  stroke-width: 1;
}

.ex-storage  {
  display: grid;
  grid-template-columns: repeat(4,1fr);
  gap: .7em;
}

.ex-storage__cell  {
  text-align: center;
  padding: 1.2em .6em;
  background: #141929;
  border: 1px solid #b2b6e037;
  border-radius: 7px;
}

.ex-storage__cell>.ui-icon  {
  width: 1.8em;
  height: 1.8em;
  color: #cab5e6;
  margin-bottom: .7em;
}

.ex-storage__cell h3  {
  font-size: .87em;
}

.ex-storage__cell p  {
  margin-top: .5em;
  color: #8796ac;
  font: .65em/1.5 var(--mono);
}

.ex-profile  {
  position: relative;
  height: 100%;
}

.ex-profile__face  {
  position: absolute;
  inset: -4% 10% 15%;
}

.ex-profile__cards  {
  position: absolute;
  inset: 5% 0 25%;
}

.ex-profile__card  {
  position: absolute;
  width: 39%;
  padding: 1.1em;
  background: #11182bcc;
  border: 1px solid #b1a3dd33;
  border-radius: 6px;
}

.ex-profile__card:nth-child(odd)  {
  left: 0;
}

.ex-profile__card:nth-child(even)  {
  right: 0;
}

.ex-profile__card:nth-child(n+3)  {
  top: 55%;
}

.ex-profile__card .ex-label  {
  font-size: .61em;
  letter-spacing: .05em;
}

.ex-profile__card h3  {
  font-size: .97em;
  margin-top: .65em;
}

.ex-profile__hypothesis  {
  position: absolute;
  bottom: 0;
  left: 7%;
  right: 7%;
  padding: 1.1em;
  border: 1px dashed #b2a0e252;
  background: #101628ef;
  border-radius: 8px;
}

.ex-profile__hypothesis .ex-label  {
  font-size: .67em;
  letter-spacing: .04em;
}

.ex-profile__hypothesis p  {
  font-size: .9em;
  color: #c1c5d3;
  margin: .6em 0;
}

.ex-profile__hypothesis>span:last-child  {
  color: #9e8fc4;
  font-size: .7em;
}

/* Социальные круги. */
.ex-stage--family-chat .ex-layout,.ex-stage--project-chat .ex-layout  {
  grid-template-columns: minmax(0,.72fr) minmax(0,1.28fr);
  gap: calc(3 * var(--su));
}

.ex-stage--family-chat .ex-visual,.ex-stage--project-chat .ex-visual  {
  height: calc(37 * var(--su));
}

.ex-stage--family-chat .ex-copy h1,.ex-stage--project-chat .ex-copy h1  {
  font-size: calc(3.45 * var(--su));
}

.ex-social  {
  width: 100%;
  height: 100%;
  display: flex;
  flex-direction: column;
  position: relative;
  margin-top: calc(.5 * var(--su));
  background: linear-gradient(125deg,#121e2c,#0b1423);
  border: 1px solid #93dec53f;
  border-radius: 12px;
  box-shadow: 0 35px 80px #0006,0 0 70px #93dec507;
  overflow: hidden;
  font-size: max(12px,calc(.9 * var(--su)));
}

.ex-social[data-work="true"]  {
  border-color: #e0c08e4d;
}

.ex-social__header  {
  padding: 1.25em 1.4em;
  display: flex;
  align-items: center;
  justify-content: space-between;
  border-bottom: 1px solid #9bd3c51d;
  background: linear-gradient(90deg,#95dbc70a,transparent);
}

.ex-social__identity  {
  display: flex;
  align-items: center;
  gap: .9em;
}

.ex-social__glyph  {
  width: 2.8em;
  height: 2.8em;
  display: grid;
  place-items: center;
  border: 1px solid rgba(var(--ex-rgb),.4);
  border-radius: 9px;
  color: var(--ex-accent);
}

.ex-social__identity h3  {
  font-size: 1.15em;
}

.ex-social__identity span:not(.ex-social__glyph)  {
  display: block;
  font-size: .72em;
  color: #90a3b1;
  margin-top: .25em;
}

.ex-avatar-stack  {
  display: flex;
  padding-left: .5em;
}

.ex-avatar-stack .ex-avatar  {
  margin-left: -.5em;
  border: 2px solid #121b2b;
}

.ex-avatar  {
  display: grid;
  place-items: center;
  width: 2.5em;
  height: 2.5em;
  background: #273a41;
  color: #bce3d8;
  border: 1px solid #a4d7c533;
  border-radius: 50%;
  font: 500 .7em var(--mono);
  flex: none;
}

.ex-avatar:nth-child(2)  {
  background: #342c47;
  color: #d0bcee;
}

.ex-avatar:nth-child(3)  {
  background: #433829;
  color: #e5cca5;
}

.ex-social__body  {
  display: grid;
  grid-template-columns: 1.32fr .88fr;
  flex: 1;
  min-height: 0;
}

.ex-chat  {
  padding: 1.5em 1.25em;
  min-width: 0;
}

.ex-chat>.ex-label  {
  font-size: .65em;
  letter-spacing: .06em;
  color: #748d9e;
  margin-bottom: 1.3em;
}

.ex-chat-line  {
  display: flex;
  align-items: flex-start;
  gap: .7em;
  margin-top: .8em;
}

.ex-chat-line__author  {
  display: block;
  font-size: .75em;
  font-weight: 550;
  color: #b9d8d0;
  margin-bottom: .4em;
}

.ex-chat-line p  {
  padding: .65em .8em;
  border: 1px solid #aec6d91a;
  border-radius: 0 8px 8px;
  background: #9ab3d008;
  color: #d9dfe7;
  font-size: .9em;
  line-height: 1.6;
}

.ex-chat-line[data-own="true"] p  {
  background: rgba(var(--ex-rgb),.075);
  border-color: rgba(var(--ex-rgb),.2);
}

.ex-chat-attachment  {
  display: flex;
  align-items: center;
  gap: .6em;
  margin: .55em 0 0 2.65em;
  padding: .6em .8em;
  border: 1px solid rgba(var(--ex-rgb),.23);
  border-radius: 5px;
  color: var(--ex-accent);
  font-size: .77em;
}

.ex-file  {
  border-left: 1px solid #a9bad91a;
  padding: 1.5em 1em;
  background: #080e1880;
  min-width: 0;
}

.ex-file>.ex-label  {
  font-size: .68em;
  letter-spacing: .05em;
  text-transform: none;
  margin-bottom: 1.3em;
}

.ex-file h4  {
  margin-top: 1.1em;
  font-size: .91em;
}

.ex-file p  {
  color: #8ea2b1;
  font-size: .72em;
  margin-top: .55em;
  line-height: 1.55;
}

.ex-file__history  {
  display: flex;
  align-items: flex-start;
  gap: .6em;
  color: #89a0ac;
  font-size: .68em;
  line-height: 1.55;
  border-top: 1px solid #a8b5d71a;
  padding-top: 1.1em;
  margin-top: 1.3em;
}

.ex-photo  {
  position: relative;
  padding: .3em;
  background: #e1d5b7;
  border-radius: 2px;
  box-shadow: 0 12px 30px #0004;
  transform: rotate(-3deg);
}

.ex-photo svg  {
  display: block;
  width: 100%;
  height: auto;
}

.ex-photo::after  {
  content: "";
  position: absolute;
  inset: 0;
  background: repeating-linear-gradient(0deg,#00000005 0,#00000005 1px,transparent 1px,transparent 3px);
  pointer-events: none;
}

.ex-document  {
  position: relative;
  width: auto;
  max-width: 100%;
  height: 11em;
  margin: auto;
  aspect-ratio: .74;
  padding: 1.2em;
  border: 1px solid #e0c59959;
  border-radius: 3px;
  background: linear-gradient(140deg,#c6ad7c1a,#32364022);
  transform: rotate(3deg);
  box-shadow: 0 15px 30px #0005;
}

.ex-document>.ui-icon  {
  color: #d2ba8f;
  width: 2.1em;
  height: 2.1em;
  margin-bottom: 1.1em;
}

.ex-document>div  {
  height: 2px;
  margin: .5em 0;
  background: #cfb9904d;
}

.ex-document>div:nth-child(3n)  {
  width: 65%;
}

.ex-document>span  {
  display: block;
  height: 2em;
  margin: 1em 0;
  border: 1px solid #cfb9903c;
  background: repeating-linear-gradient(90deg,#cfb99013 0,#cfb99013 12%,transparent 12%,transparent 25%);
}

.ex-composer  {
  display: flex;
  align-items: center;
  gap: .7em;
  margin: 0 1.3em 1em;
  padding: .7em .7em .7em 1em;
  border: 1px solid #a4bcd633;
  border-radius: 6px;
  color: #7791a0;
}

.ex-composer>span  {
  font-size: .8em;
  flex: 1;
}

.ex-composer button  {
  display: grid;
  place-items: center;
  width: 2.5em;
  height: 2.5em;
  border: 1px solid rgba(var(--ex-rgb),.55);
  background: rgba(var(--ex-rgb),.1);
  border-radius: 4px;
  color: var(--ex-accent);
  cursor: pointer;
}

.ex-composer button:disabled  {
  opacity: .35;
  cursor: default;
}

.ex-composer button:hover:not(:disabled)  {
  background: rgba(var(--ex-rgb),.2);
}

.ex-social__privacy  {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: .5em;
  border-top: 1px solid #a7bcd21a;
  padding: .8em;
  font-size: .67em;
  color: #8395a4;
}

/* Поиск фото. */
.ex-recall  {
  height: 100%;
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.ex-recall__paths  {
  display: flex;
  justify-content: space-between;
  gap: .6em;
  padding: 1.5em 0;
  font-size: .74em;
  color: #a392c5;
}

.ex-recall__paths>span  {
  display: flex;
  align-items: center;
  gap: .55em;
}

.ex-recall__paths i  {
  width: 4px;
  height: 4px;
  border-radius: 50%;
  background: #beaae8;
  box-shadow: 0 0 10px #beaae877;
}

.ex-recall__result  {
  display: grid;
  grid-template-columns: 1fr 1.1fr;
  gap: 1.8em;
  padding: 1.7em;
  border: 1px solid #aabfb334;
  border-radius: 10px;
  background: #101c27;
  align-items: center;
}

.ex-recall__result .ex-label  {
  font-size: .66em;
  letter-spacing: .04em;
}

.ex-recall__result h3  {
  margin: .6em 0;
}

.ex-recall__result p  {
  font-size: .83em;
  line-height: 1.7;
  color: #a4b8ba;
}

/* Операционная система внимания. */
.ex-os  {
  position: relative;
  height: 100%;
}

.ex-os__cosmos  {
  position: absolute;
  inset: -10% -3%;
}

.ex-os__steps  {
  position: absolute;
  inset: 0;
}

.ex-os__steps>div  {
  position: absolute;
  display: flex;
  align-items: center;
  gap: .7em;
  width: 11em;
  padding: .7em .9em;
  background: #101626d9;
  border: 1px solid #d2c29f2b;
  border-radius: 5px;
  color: #c7d0dd;
  font-size: .8em;
}

.ex-os__steps b  {
  color: #b9a6e6;
  font: 400 .8em var(--mono);
}

.ex-os__steps>div:nth-child(1)  {
  top: 7%;
  left: 8%;
}

.ex-os__steps>div:nth-child(2)  {
  top: 7%;
  right: 7%;
}

.ex-os__steps>div:nth-child(3)  {
  top: 41%;
  right: 0;
}

.ex-os__steps>div:nth-child(4)  {
  bottom: 18%;
  right: 6%;
}

.ex-os__steps>div:nth-child(5)  {
  bottom: 18%;
  left: 7%;
}

.ex-os__steps>div:nth-child(6)  {
  top: 41%;
  left: 0;
}

/* Пролог, заставка и финал. */
.ex-button  {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 1.1em;
  padding: 1em 1.3em;
  min-height: 44px;
  border: 1px solid #e7cfa955;
  border-radius: 5px;
  background: #e7cfa908;
  color: #e9d6b5;
  font: 500 max(13px,calc(.95 * var(--su)))/1.3 var(--font);
  cursor: pointer;
  text-decoration: none;
  transition: background .2s,transform .2s;
}

.ex-button:hover  {
  background: #e7cfa914;
  transform: translateY(-2px);
  text-decoration: none;
}

.ex-button--light  {
  color: #111927;
  border-color: #e8d6b4;
  background: #e8d6b4;
  box-shadow: 0 0 30px #e8d6b414;
}

.ex-button--light:hover  {
  background: #f3e3c6;
}

.ex-actions  {
  display: flex;
  align-items: center;
  gap: 1em;
}

.ex-circles  {
  display: flex;
  align-items: center;
  gap: 1.8em;
  margin: 1.8em 0;
}

.ex-circles>span  {
  display: flex;
  align-items: center;
  gap: .65em;
  color: #c6ceda;
  font-size: max(12px,calc(.9 * var(--su)));
}

.ex-circles>span::before  {
  content: "";
  width: .55em;
  height: .55em;
  border-radius: 50%;
  border: 1px solid var(--tile-color);
  box-shadow: 0 0 12px rgba(var(--tile-rgb),.12);
}

.ex-start  {
  flex: 1;
  position: relative;
  display: flex;
  align-items: center;
  min-height: 0;
}

.ex-start__copy  {
  position: relative;
  z-index: 2;
  width: 52%;
  padding-bottom: calc(2 * var(--su));
}

.ex-start h1  {
  font-size: calc(5.25 * var(--su));
  font-weight: 360;
  line-height: 1.1;
  letter-spacing: -.055em;
  margin: calc(1 * var(--su)) 0 calc(1.5 * var(--su));
}

.ex-start__promise  {
  max-width: 12em;
  font-size: calc(2.75 * var(--su));
  line-height: 1.25;
  font-weight: 350;
  letter-spacing: -.035em;
  color: #e4e6ee;
}

.ex-start__subtitle  {
  color: #98a4ba;
  font-size: calc(1.2 * var(--su));
  margin-top: 1em;
}

.ex-start__cosmos  {
  position: absolute;
  width: 80%;
  height: 132%;
  right: -14%;
  top: -15%;
  pointer-events: none;
}

.ex-start__tools  {
  margin-left: auto;
  display: flex;
  gap: .8em;
  align-items: center;
}

.ex-start__tools .header-action  {
  border-radius: 5px;
}

.ex-start__bottom  {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: calc(1.3 * var(--su)) 0;
  border-top: 1px solid #b0bdd51e;
  gap: 1em;
}

.ex-start__position  {
  display: flex;
  align-items: center;
  gap: 1em;
  font-size: max(12px,calc(.9 * var(--su)));
  color: #a1aec3;
}

.ex-tours  {
  display: flex;
  gap: 1em;
}

.ex-tour  {
  display: flex;
  align-items: center;
  gap: .7em;
  background: none;
  border: 1px solid #b0bdd522;
  border-radius: 4px;
  color: #bdc6d4;
  padding: .8em 1em;
  font: 400 max(11px,calc(.8 * var(--su))) var(--font);
  cursor: pointer;
}

.ex-tour:hover  {
  background: #b0bdd508;
  border-color: #d3be9266;
}

.ex-chapters  {
  position: relative;
  z-index: 12;
}

.ex-chapters>summary  {
  list-style: none;
  display: flex;
  align-items: center;
  gap: .7em;
  font-size: max(12px,calc(.9 * var(--su)));
  color: #d5be95;
  cursor: pointer;
  padding: .6em 0;
  width: max-content;
}

.ex-chapters>summary::-webkit-details-marker  {
  display: none;
}

.ex-chapters>summary>span  {
  margin-left: 1em;
  font-size: 1.3em;
}

.ex-chapters[open]>summary>span  {
  transform: rotate(45deg);
}

.ex-chapters .pres-menu  {
  position: absolute;
  bottom: calc(3 * var(--su));
  left: 0;
  width: calc(90 * var(--su));
  max-height: calc(39 * var(--su));
  background: #0c1424fa;
  border-color: #bbbfdf3c;
  border-radius: 10px;
  box-shadow: 0 -30px 100px #000b;
  backdrop-filter: blur(22px);
  padding: calc(1.5 * var(--su));
  font-size: max(12px,calc(.92 * var(--su)));
}

.ex-chapters .pres-menu__chapters  {
  grid-template-columns: repeat(4,minmax(0,1fr));
  gap: 1.3em 1em;
}

.ex-chapters .pres-menu__chapter-title  {
  font-size: .72em;
  line-height: 1.5;
  color: #cfc2a7;
  min-height: 2.8em;
}

.ex-chapters .pres-menu__chapter-title b  {
  min-width: 1.6em;
}

.ex-chapters .pres-menu__item  {
  padding: .55em .35em;
  grid-template-columns: 1.7em minmax(0,1fr);
}

.ex-chapters .pres-menu__name  {
  white-space: normal;
  font-size: .85em;
  line-height: 1.4;
}

.ex-chapters .pres-menu__time,.ex-chapters .pres-menu__item .stage-badge  {
  display: none;
}

.ex-cold  {
  position: absolute;
  inset: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  background: radial-gradient(ellipse at 50% 45%,#1720354a,transparent 50%);
}

.ex-cold__heading  {
  font: 400 max(12px,calc(.85 * var(--su))) var(--mono);
  text-transform: uppercase;
  letter-spacing: .18em;
  color: #97a4b9;
  margin-bottom: calc(1.5 * var(--su));
}

.ex-phone  {
  width: calc(25 * var(--su));
  border: 1px solid #8091b451;
  border-radius: calc(2 * var(--su));
  padding: calc(1.1 * var(--su));
  background: linear-gradient(140deg,#171e30,#0d1421);
  box-shadow: 0 40px 120px #000a,inset 0 1px #b9c8ee2b;
}

.ex-phone__notch  {
  width: 27%;
  height: calc(.45 * var(--su));
  background: #02050c;
  border-radius: 30px;
  margin: 0 auto calc(1 * var(--su));
}

.ex-phone header  {
  display: flex;
  align-items: center;
  gap: .8em;
  padding: .4em .4em 1em;
  font-size: calc(.9 * var(--su));
  border-bottom: 1px solid #aab9db24;
}

.ex-phone header>div  {
  flex: 1;
}

.ex-phone header b  {
  font-size: .92em;
  font-weight: 500;
}

.ex-phone header div>span  {
  display: block;
  font-size: .7em;
  color: #788ba0;
  margin-top: .2em;
}

.ex-phone header>.ui-icon  {
  color: #96a3b9;
}

.cold-open__thread  {
  list-style: none;
  padding: .8em .4em 0;
  margin: 0;
  display: grid;
  gap: .8em;
}

.cold-open__line  {
  max-width: 88%;
  font-size: calc(1.02 * var(--su));
  animation: ex-message-arrive .6s cubic-bezier(.2,.8,.2,1) var(--delay) both;
}

.cold-open__line>span  {
  display: block;
  font: 400 .64em var(--mono);
  color: #73879b;
  margin-bottom: .45em;
}

.cold-open__line>p  {
  padding: .8em 1em;
  background: #202d40;
  border: 1px solid #a2b8d319;
  border-radius: 0 9px 9px;
  font-size: .96em;
  line-height: 1.45;
}

.cold-open__line[data-own="true"]  {
  justify-self: end;
}

.cold-open__line[data-own="true"]>p  {
  background: #273729;
  border-color: #95c68c22;
  border-radius: 9px 0 9px 9px;
}

.ex-bags  {
  padding: .5em;
  background: #65533f52;
  border: 1px solid #99806533;
  border-bottom: 0;
}

.ex-bags svg  {
  display: block;
  width: 100%;
  height: calc(4.8 * var(--su));
}

.cold-open__note  {
  font-size: calc(2.3 * var(--su));
  line-height: 1.2;
  letter-spacing: -.035em;
  margin-top: calc(1.4 * var(--su));
  animation: ex-message-arrive 1s ease 9s both;
}

.ex-cold__skip  {
  position: absolute;
  bottom: calc(2 * var(--su));
  right: calc(5 * var(--su));
  display: flex;
  gap: 1em;
  align-items: center;
  background: none;
  border: 0;
  color: #a5b1c4;
  font-size: max(12px,calc(.85 * var(--su)));
  cursor: pointer;
}

.ex-cold__locale  {
  position: absolute;
  top: calc(3 * var(--su));
  right: calc(5 * var(--su));
}

.ex-finale  {
  flex: 1;
  position: relative;
  display: flex;
  align-items: flex-end;
  justify-content: center;
  text-align: center;
  padding-bottom: calc(1.5 * var(--su));
}

.ex-finale__galaxy  {
  position: absolute;
  inset: -15% 14% 26%;
}

.ex-finale__copy  {
  position: relative;
  width: 78%;
  z-index: 2;
}

.ex-finale__brand  {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 1.3em;
  margin-bottom: calc(1.5 * var(--su));
}

.ex-finale__brand .ex-brand  {
  font-size: max(24px,calc(2.3 * var(--su)));
}

.ex-finale__brand>span:not(.ex-brand)  {
  padding-left: 1.3em;
  border-left: 1px solid #d3bd8b44;
  font: 400 max(9px,calc(.8 * var(--su)))/1.5 var(--mono);
  color: #dcc399;
  letter-spacing: .14em;
}

.ex-finale h1  {
  font-size: calc(3.65 * var(--su));
  line-height: 1.15;
  font-weight: 380;
  letter-spacing: -.04em;
  margin: calc(.8 * var(--su)) 0;
}

.ex-finale__copy>p  {
  color: #b7bdd0;
  font-size: calc(1.35 * var(--su));
}

.ex-finale .ex-circles  {
  justify-content: center;
  margin: 1.3em 0;
}

.ex-finale__resolution  {
  display: flex;
  gap: .7em;
  align-items: center;
  justify-content: center;
  color: #a4cdbd;
  font-size: max(12px,calc(.9 * var(--su)));
  margin: 1.3em auto;
}

.ex-finale .ex-actions  {
  justify-content: center;
}

@keyframes ex-message-arrive  {
  from  {
    opacity: 0;
    transform: translateY(12px);
  }
  to  {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes ex-thought-breathe  {
  from  {
    opacity: .6;
    transform: scale(.95);
  }
  to  {
    opacity: 1;
    transform: scale(1.05);
  }
}

/* Уменьшенное движение всегда показывает завершённую, читаемую композицию. */
.exhibition[data-hidden="true"] *, .exhibition[data-play-mode="paused"] *  {
  animation-play-state: paused !important;
}

.exhibition[data-reduced="true"] *  {
  animation: none !important;
  transition: none !important;
}

@media(prefers-reduced-motion:reduce)  {
  .exhibition *  {
    animation: none !important;
    transition: none !important;
  }
}

/* Небольшой планшет: сохраняем кадр и сокращаем служебные детали. */
@media (min-width:761px) and (max-width:1100px)  {
  .ex-frame  {
    top: 16px;
    height: calc(100dvh - 92px);
  }
  .ex-copy h1  {
    font-size: calc(3.5 * var(--su));
  }
  .ex-subtitle  {
    font-size: 13px;
    line-height: 1.5;
  }
  .ex-narrative  {
    margin-top: 1.3em;
    min-height: 0;
  }
  .ex-narrative p  {
    font-size: 12px;
    line-height: 1.45;
  }
  .ex-narrative h2  {
    font-size: 13px;
  }
  .ex-visual  {
    font-size: 12px;
  }
  .ex-social  {
    font-size: 11px;
  }
  .ex-chat-line p  {
    line-height: 1.4;
  }
  .ex-social__body  {
    min-height: 0;
  }
  .ex-file__history  {
    display: none;
  }
  .ex-phase__marker span  {
    display: none;
  }
  .ex-takeaway  {
    max-width: 72%;
  }
  .ex-phase  {
    max-width: 25%;
  }
  .ex-topline__section  {
    font-size: 9px;
  }
  .ex-copy .stage-badge  {
    margin-top: 8px;
  }
  .exhibition .pres-controls  {
    top: auto;
    bottom: 12px;
    flex-wrap: nowrap;
  }
  .exhibition .pres-progress  {
    order: initial;
    flex-basis: 25%;
  }
  .exhibition .pres-btn--exit  {
    display: none;
  }
  .exhibition .pres-btn  {
    padding: 0 .7em;
  }
  .ex-narrative  {
    gap: .6em;
  }
  .ex-source-card  {
    padding: 1em;
  }
  .ex-thread  {
    padding: 1em;
  }
}

/* Телефон: настоящий вертикальный layout со скроллом, а не сжатый 16:9. */
@media(max-width:760px)  {
  .pres.exhibition  {
    --su: 9px;
    --frame-left: 0px;
    --frame-top: 0px;
  }
  .exhibition .pres-main  {
    overflow: auto;
    bottom: calc(132px + env(safe-area-inset-bottom,0px));
    overscroll-behavior: contain;
  }
  .ex-stage  {
    position: relative;
    min-height: 100%;
  }
  .ex-frame  {
    position: relative;
    width: 100%;
    height: auto;
    min-height: 100%;
    left: 0;
    top: 0;
    padding: 22px 22px 32px;
  }
  .ex-topline  {
    height: 32px;
    gap: 12px;
    margin-bottom: 30px;
  }
  .ex-brand  {
    font-size: 15px;
  }
  .ex-topline__section  {
    display: none;
  }
  .ex-topline__number  {
    font-size: 10px;
  }
  .ex-layout,.ex-stage--family-chat .ex-layout,.ex-stage--project-chat .ex-layout  {
    display: flex;
    flex-direction: column;
    gap: 18px;
  }
  .ex-copy  {
    width: 100%;
    padding: 0;
  }
  .ex-copy h1,.ex-stage--family-chat .ex-copy h1,.ex-stage--project-chat .ex-copy h1  {
    font-size: 36px;
    max-width: 15em;
    margin: 13px 0;
  }
  .ex-subtitle  {
    font-size: 15px;
    line-height: 1.55;
  }
  .ex-kicker  {
    font-size: 10px;
  }
  .ex-narrative  {
    margin-top: 20px;
    padding-top: 15px;
    gap: 12px;
    min-height: 0;
  }
  .ex-narrative h2  {
    font-size: 15px;
  }
  .ex-narrative p  {
    font-size: 13px;
    line-height: 1.6;
  }
  .ex-copy .stage-badge  {
    margin-top: 14px;
    font-size: 9px;
  }
  .ex-visual  {
    width: 100%;
    height: 350px;
    flex: none;
    font-size: 12px;
  }
  .ex-stage--family-chat .ex-visual,.ex-stage--project-chat .ex-visual  {
    height: auto;
  }
  .ex-scene-footer  {
    margin-top: 26px;
    display: block;
    padding-top: 18px;
  }
  .ex-phase  {
    max-width: none;
    gap: 15px;
  }
  .ex-phase__marker  {
    font-size: 9px;
  }
  .ex-phase__marker span  {
    max-width: 8em;
  }
  .ex-takeaway  {
    max-width: none;
    margin-top: 16px;
    text-align: left;
    justify-content: flex-start;
    font-size: 12px;
  }
  .exhibition .pres-controls  {
    left: 8px;
    right: 8px;
    width: auto;
    top: auto;
    bottom: calc(8px + env(safe-area-inset-bottom,0px));
    padding: 8px;
    gap: 6px;
    border-radius: 9px;
    justify-content: space-between;
    flex-wrap: wrap;
    font-size: 12px;
  }
  .exhibition .pres-progress  {
    order: -1;
    flex: 0 0 100%;
    padding: 0 2px;
  }
  .exhibition .pres-progress__label  {
    font-size: 9px;
  }
  .exhibition .pres-progress__ticks  {
    gap: 3px;
    height: 2px;
  }
  .exhibition .pres-btn  {
    min-height: 34px;
    padding: 0 9px;
  }
  .exhibition .pres-btn--exit,.exhibition .pres-controls__spacer,.exhibition .pres-paused  {
    display: none;
  }
  .exhibition .pres-controls .header-action  {
    min-height: 32px;
    width: 32px;
    height: 32px;
  }
  .exhibition .pres-btn--auto  {
    font-size: 0;
    width: 32px;
    padding: 0;
    justify-content: center;
  }
  .exhibition .pres-btn--auto .ui-icon  {
    width: 16px;
    height: 16px;
  }
  .ex-focus-card  {
    font-size: 11px;
    right: 0;
    top: 54%;
    width: 21em;
  }
  .ex-orbit-labels  {
    font-size: 12px;
    right: 0;
  }
  .ex-quiet-chip  {
    font-size: 10px;
  }
  .ex-timeline  {
    margin-top: 25px;
    padding: 15px;
  }
  .ex-lane  {
    grid-template-columns: 25% 72%;
    gap: .4em;
  }
  .ex-timeblock  {
    font-size: 9px;
  }
  .ex-lane__person  {
    font-size: 9px;
  }
  .ex-timeline__verdict  {
    font-size: 11px;
  }
  .ex-time-axis  {
    font-size: 9px;
  }
  .ex-car__drawing  {
    height: 160px;
  }
  .ex-car__people  {
    gap: 6px;
  }
  .ex-car__people .ex-tile  {
    padding: 9px;
  }
  .ex-car__people .ex-tile h3  {
    font-size: 10px;
  }
  .ex-social  {
    margin-top: 0;
    height: auto;
    font-size: 11px;
  }
  .ex-social__body  {
    grid-template-columns: 1.3fr .85fr;
    min-height: 0;
  }
  .ex-social__header  {
    padding: 13px;
  }
  .ex-chat  {
    padding: 14px 10px;
  }
  .ex-chat-line  {
    gap: 6px;
  }
  .ex-chat-line p  {
    font-size: 10px;
    padding: 8px;
    line-height: 1.5;
  }
  .ex-chat-line__author  {
    font-size: 9px;
  }
  .ex-file  {
    padding: 14px 10px;
  }
  .ex-file>.ex-label  {
    font-size: 8px;
  }
  .ex-file h4  {
    font-size: 10px;
  }
  .ex-file__history  {
    font-size: 8px;
  }
  .ex-chat-attachment  {
    font-size: 8px;
    margin-left: 22px;
  }
  .ex-composer  {
    margin: 0 10px 10px;
  }
  .ex-composer>span  {
    font-size: 10px;
  }
  .ex-composer button  {
    width: 30px;
    height: 30px;
  }
  .ex-social__privacy  {
    font-size: 8px;
  }
  .ex-project__cards  {
    padding: 0 16px;
  }
  .ex-project__steps  {
    font-size: 9px;
    gap: 8px;
  }
  .ex-profile__card  {
    padding: 10px;
  }
  .ex-profile__hypothesis  {
    padding: 12px;
  }
  .ex-storage  {
    gap: 7px;
  }
  .ex-storage__cell  {
    padding: 12px 5px;
  }
  .ex-storage__cell h3  {
    font-size: 10px;
  }
  .ex-storage__cell p  {
    font-size: 8px;
  }
  .ex-recall__result  {
    gap: 18px;
    padding: 16px;
  }
  .ex-recall__result h3  {
    font-size: 14px;
  }
  .ex-start  {
    display: block;
    padding-top: 16px;
  }
  .ex-start__copy  {
    width: 100%;
    padding: 0;
  }
  .ex-start h1  {
    font-size: 44px;
    margin: 14px 0 18px;
  }
  .ex-start__promise  {
    font-size: 30px;
    max-width: 10em;
  }
  .ex-start__subtitle  {
    font-size: 16px;
    margin-top: 14px;
  }
  .ex-start__cosmos  {
    position: relative;
    width: 120%;
    height: 300px;
    right: auto;
    top: auto;
    margin: -30px -10% -65px;
    order: 2;
  }
  .ex-start  {
    display: flex;
    flex-direction: column-reverse;
  }
  .ex-start__tools .header-action  {
    width: 32px;
    height: 32px;
  }
  .ex-circles  {
    gap: 22px;
    margin: 24px 0;
  }
  .ex-circles>span  {
    font-size: 12px;
  }
  .ex-actions  {
    flex-wrap: wrap;
    gap: 10px;
  }
  .ex-button  {
    font-size: 13px;
    padding: 13px 17px;
  }
  .ex-start__bottom  {
    display: block;
    padding: 20px 0 10px;
  }
  .ex-start__position  {
    font-size: 12px;
    margin-bottom: 15px;
  }
  .ex-tours  {
    flex-wrap: wrap;
    gap: 8px;
  }
  .ex-tour  {
    font-size: 11px;
    padding: 10px;
  }
  .ex-chapters>summary  {
    font-size: 13px;
    padding: 14px 0;
  }
  .ex-chapters .pres-menu  {
    position: fixed;
    left: 12px;
    bottom: 70px;
    top: 75px;
    width: calc(100vw - 24px);
    max-height: none;
    padding: 16px;
    font-size: 13px;
  }
  .ex-chapters .pres-menu__chapters  {
    grid-template-columns: 1fr 1fr;
    gap: 18px 12px;
  }
  .ex-chapters .pres-menu__chapter-title  {
    font-size: 10px;
  }
  .ex-chapters .pres-menu__item  {
    min-height: 38px;
  }
  .ex-chapters .pres-menu__programs  {
    gap: 7px;
  }
  .ex-chapters .pres-menu__program  {
    font-size: 11px;
  }
  .ex-cold  {
    position: relative;
    min-height: calc(100dvh - 56px);
  }
  .ex-cold__heading  {
    font-size: 10px;
    margin: 22px 0;
  }
  .ex-phone  {
    width: 285px;
    border-radius: 22px;
    padding: 14px;
  }
  .ex-phone header  {
    font-size: 13px;
  }
  .ex-phone__notch  {
    height: 5px;
    margin-bottom: 10px;
  }
  .cold-open__line  {
    font-size: 14px;
  }
  .ex-bags svg  {
    height: 60px;
  }
  .cold-open__note  {
    font-size: 26px;
    margin-top: 24px;
    text-align: center;
  }
  .ex-cold__skip  {
    position: relative;
    right: auto;
    bottom: auto;
    font-size: 12px;
    margin-top: 30px;
    padding: 10px;
  }
  .ex-cold__locale  {
    top: 0;
    right: 0;
  }
  .ex-finale  {
    display: block;
    padding-top: 270px;
  }
  .ex-finale__galaxy  {
    inset: -50px -15% auto;
    height: 370px;
  }
  .ex-finale__copy  {
    width: 100%;
  }
  .ex-finale h1  {
    font-size: 36px;
    margin: 14px 0;
  }
  .ex-finale__copy>p  {
    font-size: 18px;
  }
  .ex-finale__resolution  {
    font-size: 12px;
    line-height: 1.6;
  }
  .ex-finale .ex-actions  {
    margin-top: 20px;
  }
}

/* Последний кадр собирается в три читаемых такта. */
.ex-finale__galaxy  {
  transition: transform 2s cubic-bezier(.16,1,.3,1),opacity 1.5s;
}

.ex-stage--finale[data-beat="0"] .ex-finale__galaxy  {
  transform: scale(.78) translateY(4%);
  opacity: .72;
}

.ex-finale__resolution  {
  transition: transform 1.2s cubic-bezier(.16,1,.3,1),color 1s;
}

.ex-stage--finale[data-beat="0"] .ex-finale__resolution  {
  transform: scale(1.04);
  color: #c0e6d4;
}

.ex-idea[data-resolved="false"] .ex-idea__star  {
  transition: opacity 1.5s;
}

.ex-stage--dream[data-beat="2"] .ex-idea__star  {
  opacity: .38;
  animation: none;
}

@media (max-width:760px)  {
  .ex-stage--finale[data-beat="0"] .ex-finale__resolution  {
    transform: none;
  }
}

/* Постоянная подсказка ведущему отделена от исчезающих кнопок управления.
   Кадр целиком масштабируется в оставшуюся высоту, сохраняя пропорции сцен. */
.pres.exhibition {
  --presenter-height: clamp(86px, 8.2vh, 164px);
  --su: min(1vw, calc((100dvh - var(--presenter-height)) / 56.25));
  --frame-top: calc((100% - var(--presenter-height)) / 2 - 28.125 * var(--su));
}
.pres-presenter {
  box-sizing: border-box;
  position: absolute;
  z-index: 31;
  inset: auto 0 0;
  height: var(--presenter-height);
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: clamp(16px, 2vw, 64px);
  padding: 10px clamp(18px, 3vw, 100px);
  border-top: 1px solid #c8cde324;
  background: #080d16f5;
  cursor: auto;
}
.pres-presenter__context { min-width: 0; }
.pres-presenter__meta {
  display: flex;
  align-items: baseline;
  flex-wrap: wrap;
  gap: .35em 1.2em;
  margin-bottom: .35em;
}
.pres-presenter__position {
  color: #b9c2d3;
  font: 400 clamp(11px, .85vw, 26px)/1.4 var(--mono);
}
.pres-presenter__title {
  color: #ead7b4;
  font-size: clamp(14px, 1.15vw, 36px);
  line-height: 1.3;
  font-weight: 550;
}
.pres-presenter__note {
  margin: 0;
  color: #c2c9d7;
  font-size: clamp(12px, 1vw, 30px);
  line-height: 1.45;
  text-wrap: pretty;
}
.pres-countdown {
  display: grid;
  justify-items: end;
  align-content: center;
  gap: 3px;
  min-width: 7em;
  padding-left: clamp(14px, 1.5vw, 48px);
  border-left: 1px solid #c8cde324;
  color: #ead7b4;
  text-align: right;
}
.pres-countdown__label {
  max-width: 13em;
  color: #929fb6;
  font-size: clamp(10px, .75vw, 22px);
  line-height: 1.35;
}
.pres-countdown__value {
  font: 400 clamp(26px, 2vw, 64px)/1.1 var(--mono);
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}
.pres-countdown[data-running="false"] .pres-countdown__value { color: #a4b0c4; }
@media (min-width: 761px) and (max-width: 1100px) {
  .exhibition .ex-frame { height: calc(100dvh - 92px - var(--presenter-height)); }
  .exhibition .ex-timeline { margin-top: calc(1.5 * var(--su)); }
  .exhibition .pres-controls { bottom: calc(12px + var(--presenter-height)); }
}
@media (max-width: 760px) {
  .pres.exhibition {
    --presenter-height: calc(164px + env(safe-area-inset-bottom, 0px));
    --su: 9px;
    --frame-top: 0px;
  }
  .exhibition .pres-main { bottom: calc(132px + var(--presenter-height)); }
  .exhibition .pres-controls { bottom: calc(8px + var(--presenter-height)); }
  .pres-presenter {
    padding: 10px 14px calc(10px + env(safe-area-inset-bottom, 0px));
    gap: 10px;
  }
  .pres-presenter__meta { display: grid; gap: 3px; margin-bottom: 5px; }
  .pres-presenter__position { font-size: 10px; }
  .pres-presenter__title { font-size: 14px; }
  .pres-presenter__note { font-size: 12px; line-height: 1.4; }
  .pres-countdown { min-width: 64px; padding-left: 10px; }
  .pres-countdown__label { max-width: 7em; font-size: 9px; }
  .pres-countdown__value { font-size: 25px; }
}


/* Лавина — широкий сценический поток с защищёнными зонами чтения. */
.ex-stage--overload .ex-layout { grid-template-columns:minmax(0,.62fr) minmax(0,1.38fr); gap:0; }
.ex-stage--overload .ex-copy { padding:calc(2 * var(--su)); margin-left:calc(-2 * var(--su)); background:radial-gradient(ellipse,#080d18fa 40%,#080d18dc 65%,#080d1800 75%); }
.ex-stage--overload .ex-copy h1 { font-size:calc(3.5 * var(--su)); }
.ex-stage--overload .ex-visual { z-index:2; }
.ex-stage--overload .ex-topline,.ex-stage--overload .ex-scene-footer { position:relative; z-index:3; background:#080d18d9; }
.ex-attention[data-kind="overload"] .ex-attention__cosmos { inset:-20% -12% -12%; }
.ex-start__os { color:#c8b48e; font:400 calc(1.15 * var(--su))/1.3 var(--font-mono,monospace); letter-spacing:.3em; margin:calc(-.65 * var(--su)) 0 calc(1.8 * var(--su)); }
@media(max-width:760px) {
  .ex-stage--overload .ex-layout { display:flex; }
  .ex-stage--overload .ex-copy { padding:18px; margin:-18px; }
  .ex-stage--overload .ex-copy h1 { font-size:36px; }
  .ex-attention[data-kind="overload"] .ex-attention__cosmos { inset:-5% -5%; }
  .ex-storm-card { width:155px; font-size:10px; }
  .ex-start__os { font-size:12px; margin:-4px 0 18px; }
}
