.module-entry {
  --module-entry-accent: #bd5a43;
  --module-entry-code: "00 / РАБОЧИЙ КОНТУР";
  --module-entry-marker: 50%;
  display: none;
}

html.has-module-motion {
  overflow-x: clip;
}

html[data-module-entry="land-auctions"] .module-entry {
  --module-entry-accent: #d45a43;
  --module-entry-code: "01 / КАДАСТР";
  --module-entry-marker: 14%;
}

html[data-module-entry="meetings"] .module-entry {
  --module-entry-accent: #d28a50;
  --module-entry-code: "02 / ПРОТОКОЛ";
  --module-entry-marker: 30%;
}

html[data-module-entry="estimates"] .module-entry {
  --module-entry-accent: #d5aa4b;
  --module-entry-code: "03 / СМЕТА";
  --module-entry-marker: 46%;
}

html[data-module-entry="proposals"] .module-entry {
  --module-entry-accent: #67a47c;
  --module-entry-code: "04 / ПРЕДЛОЖЕНИЕ";
  --module-entry-marker: 62%;
}

html[data-module-entry="norms"] .module-entry {
  --module-entry-accent: #83a8b9;
  --module-entry-code: "05 / НОРМАТИВЫ";
  --module-entry-marker: 78%;
}

html[data-module-entry="calculators"] .module-entry {
  --module-entry-accent: #b68d7e;
  --module-entry-code: "06 / РАСЧЁТ";
  --module-entry-marker: 94%;
}

html.is-module-entering [data-module-entry-content] {
  opacity: 0;
  filter: blur(8px);
  transform: translateY(12px) scale(.994);
}

html.is-module-entering .module-entry {
  position: fixed;
  inset: 0;
  z-index: 10000;
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  align-content: center;
  justify-items: center;
  gap: clamp(18px, 3vh, 30px);
  overflow: hidden;
  background: #171a18 url("./assets/graphite-texture.png") center/560px repeat;
  color: #f5f2ea;
}

html.is-module-entering .module-entry::before {
  position: absolute;
  inset: clamp(18px, 4vw, 58px);
  border-block: 1px solid rgba(245, 242, 234, .22);
  opacity: 0;
  clip-path: inset(0 50%);
  content: "";
}

html.is-module-entering.is-module-entry-animating .module-entry::before {
  animation: module-entry-frame 760ms cubic-bezier(.16, 1, .3, 1) 40ms both;
}

html.is-module-entering .module-entry::after {
  position: absolute;
  top: 50%;
  left: 50%;
  width: min(720px, 82vw);
  height: 1px;
  background: var(--module-entry-accent);
  content: "";
  opacity: 0;
  transform: translate(-50%, clamp(142px, 21vh, 192px)) scaleX(0);
  transform-origin: center;
}

html.is-module-entering.is-module-entry-animating .module-entry::after {
  animation: module-entry-axis 980ms cubic-bezier(.16, 1, .3, 1) 80ms both;
}

.module-entry__scene {
  position: relative;
  width: min(560px, 76vw);
  max-width: calc(100vw - 40px);
  height: clamp(124px, 20vh, 174px);
  opacity: 0;
}

.module-entry__scene span {
  position: absolute;
  display: block;
  box-sizing: border-box;
}

.module-entry__identity {
  position: relative;
  z-index: 2;
  display: grid;
  width: min(560px, calc(100vw - 40px));
  min-width: 0;
  justify-items: center;
  gap: 9px;
}

html.is-module-entering .module-entry strong {
  opacity: 0;
  clip-path: inset(0 100% 0 0);
  filter: blur(7px);
  transform: translateY(12px);
  font-family: "IBM Plex Sans Tendiqo", "Arial Narrow", Arial, sans-serif;
  font-size: clamp(32px, 4vw, 44px);
  font-stretch: 75%;
  line-height: 1;
  letter-spacing: 0;
}

html.is-module-entering.is-module-entry-animating .module-entry strong {
  animation: module-entry-mark 620ms cubic-bezier(.16, 1, .3, 1) 160ms both;
}

html.is-module-entering .module-entry strong span { color: var(--module-entry-accent); }

html.is-module-entering .module-entry small {
  max-width: 100%;
  opacity: 0;
  filter: blur(4px);
  transform: translateY(7px);
  color: #d0d1cb;
  font-family: "IBM Plex Sans Tendiqo", "Arial Narrow", Arial, sans-serif;
  font-size: 11px;
  line-height: 1.35;
  letter-spacing: 0;
  text-align: center;
  text-wrap: balance;
}

html.is-module-entering .module-entry small::before {
  margin-right: 10px;
  color: var(--module-entry-accent);
  content: var(--module-entry-code);
  font-size: 9px;
  font-weight: 700;
}

html.is-module-entering.is-module-entry-animating .module-entry small {
  animation: module-entry-caption 480ms cubic-bezier(.16, 1, .3, 1) 290ms both;
}

html.is-module-entering .module-entry__identity > i {
  position: relative;
  width: 112px;
  height: 1px;
  margin-top: 13px;
  background: rgba(245, 242, 234, .26);
  transform: scaleX(.2);
  transform-origin: left;
}

html.is-module-entering .module-entry__identity > i::after {
  position: absolute;
  top: -3px;
  left: var(--module-entry-marker);
  width: 7px;
  height: 7px;
  border: 1px solid var(--module-entry-accent);
  background: #171a18;
  content: "";
  opacity: 0;
  transform: translateX(-50%) scale(.75);
}

html.is-module-entering.is-module-entry-animating .module-entry__identity > i {
  animation: module-entry-line 720ms cubic-bezier(.16, 1, .3, 1) 200ms both;
}

html.is-module-entering.is-module-entry-animating .module-entry__identity > i::after {
  animation: module-entry-marker 360ms cubic-bezier(.16, 1, .3, 1) 570ms both;
}

/* Land: a surveyed parcel resolves from the coordinate grid. */
html[data-module-entry="land-auctions"] .module-entry__scene span:nth-child(1) {
  inset: 4px 12%;
  border: 1px solid rgba(245, 242, 234, .3);
  background-image: linear-gradient(rgba(245, 242, 234, .09) 1px, transparent 1px), linear-gradient(90deg, rgba(245, 242, 234, .09) 1px, transparent 1px);
  background-size: 34px 34px;
}
html[data-module-entry="land-auctions"] .module-entry__scene span:nth-child(2) { top: 24%; left: 37%; width: 29%; height: 53%; border: 2px solid var(--module-entry-accent); transform: rotate(-7deg) scale(.72); }
html[data-module-entry="land-auctions"] .module-entry__scene span:nth-child(3) { top: 0; bottom: 0; left: 51%; border-left: 1px solid rgba(245, 242, 234, .5); }
html[data-module-entry="land-auctions"] .module-entry__scene span:nth-child(4) { top: 51%; right: 5%; left: 5%; border-top: 1px solid rgba(245, 242, 234, .5); }
html[data-module-entry="land-auctions"] .module-entry__scene span:nth-child(5) { top: calc(51% - 5px); left: calc(51% - 5px); width: 10px; height: 10px; border: 2px solid var(--module-entry-accent); border-radius: 50%; background: #171a18; }
html[data-module-entry="land-auctions"] .module-entry__scene span:nth-child(6) { right: 13%; bottom: 7px; color: #d0d1cb; font: 9px/1.2 ui-monospace, monospace; }
html[data-module-entry="land-auctions"] .module-entry__scene span:nth-child(6)::before { content: "54.5102 N  /  36.2598 E"; }
html[data-module-entry="land-auctions"].is-module-entry-animating .module-entry__scene { animation: module-land-scene 980ms cubic-bezier(.16, 1, .3, 1) 40ms both; }
html[data-module-entry="land-auctions"].is-module-entry-animating .module-entry__scene span:nth-child(2) { animation: module-land-parcel 680ms cubic-bezier(.16, 1, .3, 1) 280ms both; }

/* Meetings: a recording waveform settles into a protocol baseline. */
html[data-module-entry="meetings"] .module-entry__scene { display: flex; align-items: center; justify-content: center; gap: clamp(12px, 3vw, 30px); border-block: 1px solid rgba(245, 242, 234, .19); }
html[data-module-entry="meetings"] .module-entry__scene::after { position: absolute; right: 0; bottom: 18px; left: 0; border-top: 1px solid var(--module-entry-accent); content: ""; transform: scaleX(0); transform-origin: left; }
html[data-module-entry="meetings"] .module-entry__scene span { position: relative; width: clamp(8px, 1.2vw, 12px); height: 62%; background: #d7d8d2; transform: scaleY(.08); }
html[data-module-entry="meetings"] .module-entry__scene span:nth-child(2), html[data-module-entry="meetings"] .module-entry__scene span:nth-child(5) { height: 34%; }
html[data-module-entry="meetings"] .module-entry__scene span:nth-child(3) { height: 82%; }
html[data-module-entry="meetings"] .module-entry__scene span:nth-child(4) { height: 52%; }
html[data-module-entry="meetings"].is-module-entry-animating .module-entry__scene { animation: module-meeting-scene 960ms cubic-bezier(.16, 1, .3, 1) 40ms both; }
html[data-module-entry="meetings"].is-module-entry-animating .module-entry__scene::after { animation: module-meeting-baseline 660ms cubic-bezier(.16, 1, .3, 1) 330ms both; }
html[data-module-entry="meetings"].is-module-entry-animating .module-entry__scene span { animation: module-meeting-wave 520ms cubic-bezier(.16, 1, .3, 1) both; }
html[data-module-entry="meetings"].is-module-entry-animating .module-entry__scene span:nth-child(1) { animation-delay: 90ms; }
html[data-module-entry="meetings"].is-module-entry-animating .module-entry__scene span:nth-child(2) { animation-delay: 150ms; }
html[data-module-entry="meetings"].is-module-entry-animating .module-entry__scene span:nth-child(3) { animation-delay: 210ms; }
html[data-module-entry="meetings"].is-module-entry-animating .module-entry__scene span:nth-child(4) { animation-delay: 270ms; }
html[data-module-entry="meetings"].is-module-entry-animating .module-entry__scene span:nth-child(5) { animation-delay: 330ms; }
html[data-module-entry="meetings"].is-module-entry-animating .module-entry__scene span:nth-child(6) { animation-delay: 390ms; }

/* Estimates: calculation rows arrive and balance against one total. */
html[data-module-entry="estimates"] .module-entry__scene { border: 1px solid rgba(245, 242, 234, .24); padding: 13px 18px; }
html[data-module-entry="estimates"] .module-entry__scene span { position: relative; width: 100%; height: calc(100% / 6); border-bottom: 1px solid rgba(245, 242, 234, .16); opacity: 0; transform: translateX(-24px); }
html[data-module-entry="estimates"] .module-entry__scene span::before { position: absolute; top: 50%; left: 0; width: calc(42% + var(--estimate-row, 0%)); border-top: 4px solid #d5d6d0; content: ""; }
html[data-module-entry="estimates"] .module-entry__scene span::after { position: absolute; top: calc(50% - 3px); right: 0; width: calc(13% + var(--estimate-row, 0%)); border-top: 6px solid var(--module-entry-accent); content: ""; }
html[data-module-entry="estimates"] .module-entry__scene span:nth-child(2) { --estimate-row: 7%; }
html[data-module-entry="estimates"] .module-entry__scene span:nth-child(3) { --estimate-row: 15%; }
html[data-module-entry="estimates"] .module-entry__scene span:nth-child(4) { --estimate-row: 3%; }
html[data-module-entry="estimates"] .module-entry__scene span:nth-child(5) { --estimate-row: 20%; }
html[data-module-entry="estimates"] .module-entry__scene span:nth-child(6) { --estimate-row: 10%; border-bottom: 0; }
html[data-module-entry="estimates"].is-module-entry-animating .module-entry__scene { animation: module-estimate-scene 980ms cubic-bezier(.16, 1, .3, 1) 40ms both; }
html[data-module-entry="estimates"].is-module-entry-animating .module-entry__scene span { animation: module-estimate-row 430ms cubic-bezier(.16, 1, .3, 1) both; }
html[data-module-entry="estimates"].is-module-entry-animating .module-entry__scene span:nth-child(1) { animation-delay: 120ms; }
html[data-module-entry="estimates"].is-module-entry-animating .module-entry__scene span:nth-child(2) { animation-delay: 180ms; }
html[data-module-entry="estimates"].is-module-entry-animating .module-entry__scene span:nth-child(3) { animation-delay: 240ms; }
html[data-module-entry="estimates"].is-module-entry-animating .module-entry__scene span:nth-child(4) { animation-delay: 300ms; }
html[data-module-entry="estimates"].is-module-entry-animating .module-entry__scene span:nth-child(5) { animation-delay: 360ms; }
html[data-module-entry="estimates"].is-module-entry-animating .module-entry__scene span:nth-child(6) { animation-delay: 420ms; }

/* Proposals: working sheets gather into one issued document. */
html[data-module-entry="proposals"] .module-entry__scene span { top: 10%; left: 50%; width: clamp(92px, 16vw, 132px); height: 80%; border: 1px solid rgba(245, 242, 234, .52); background: #252925; box-shadow: 0 12px 24px rgba(0, 0, 0, .22); opacity: 0; }
html[data-module-entry="proposals"] .module-entry__scene span::before { position: absolute; top: 18px; right: 15px; left: 15px; height: 38%; border-block: 1px solid rgba(245, 242, 234, .27); content: ""; }
html[data-module-entry="proposals"] .module-entry__scene span:nth-child(1) { transform: translateX(-142%) rotate(-9deg); }
html[data-module-entry="proposals"] .module-entry__scene span:nth-child(2) { transform: translateX(-106%) rotate(-5deg); }
html[data-module-entry="proposals"] .module-entry__scene span:nth-child(3) { transform: translateX(-66%) rotate(-1deg); }
html[data-module-entry="proposals"] .module-entry__scene span:nth-child(4) { transform: translateX(-28%) rotate(3deg); }
html[data-module-entry="proposals"] .module-entry__scene span:nth-child(5) { transform: translateX(10%) rotate(7deg); }
html[data-module-entry="proposals"] .module-entry__scene span:nth-child(6) { border-color: var(--module-entry-accent); transform: translateX(-50%); }
html[data-module-entry="proposals"] .module-entry__scene span:nth-child(6)::after { position: absolute; right: 13px; bottom: 16px; width: 42px; height: 18px; border: 1px solid var(--module-entry-accent); color: var(--module-entry-accent); content: "КП"; font: 700 9px/16px ui-monospace, monospace; text-align: center; }
html[data-module-entry="proposals"].is-module-entry-animating .module-entry__scene { animation: module-proposal-scene 1000ms cubic-bezier(.16, 1, .3, 1) 30ms both; }
html[data-module-entry="proposals"].is-module-entry-animating .module-entry__scene span { animation: module-proposal-sheet 620ms cubic-bezier(.16, 1, .3, 1) both; }
html[data-module-entry="proposals"].is-module-entry-animating .module-entry__scene span:nth-child(1) { animation-delay: 80ms; }
html[data-module-entry="proposals"].is-module-entry-animating .module-entry__scene span:nth-child(2) { animation-delay: 130ms; }
html[data-module-entry="proposals"].is-module-entry-animating .module-entry__scene span:nth-child(3) { animation-delay: 180ms; }
html[data-module-entry="proposals"].is-module-entry-animating .module-entry__scene span:nth-child(4) { animation-delay: 230ms; }
html[data-module-entry="proposals"].is-module-entry-animating .module-entry__scene span:nth-child(5) { animation-delay: 280ms; }
html[data-module-entry="proposals"].is-module-entry-animating .module-entry__scene span:nth-child(6) { animation-delay: 390ms; }

/* Norms: catalogue spines are scanned into a selected edition. */
html[data-module-entry="norms"] .module-entry__scene { display: flex; align-items: stretch; justify-content: center; gap: 10px; border-bottom: 1px solid rgba(245, 242, 234, .26); padding: 9px 11%; }
html[data-module-entry="norms"] .module-entry__scene::after { position: absolute; top: 10%; bottom: 3%; left: 25%; width: 2px; background: var(--module-entry-accent); content: ""; opacity: 0; }
html[data-module-entry="norms"] .module-entry__scene span { position: relative; width: 12%; border: 1px solid rgba(245, 242, 234, .35); background: #222522; opacity: 0; transform: translateY(18px); }
html[data-module-entry="norms"] .module-entry__scene span::before { position: absolute; top: 14px; right: 8px; left: 8px; border-top: 3px solid rgba(245, 242, 234, .55); box-shadow: 0 9px 0 rgba(245, 242, 234, .17), 0 18px 0 rgba(245, 242, 234, .17); content: ""; }
html[data-module-entry="norms"].is-module-entry-animating .module-entry__scene { animation: module-norms-scene 1000ms cubic-bezier(.16, 1, .3, 1) 30ms both; }
html[data-module-entry="norms"].is-module-entry-animating .module-entry__scene::after { animation: module-norms-scan 700ms cubic-bezier(.16, 1, .3, 1) 260ms both; }
html[data-module-entry="norms"].is-module-entry-animating .module-entry__scene span { animation: module-norms-spine 460ms cubic-bezier(.16, 1, .3, 1) both; }
html[data-module-entry="norms"].is-module-entry-animating .module-entry__scene span:nth-child(1) { animation-delay: 90ms; }
html[data-module-entry="norms"].is-module-entry-animating .module-entry__scene span:nth-child(2) { animation-delay: 140ms; }
html[data-module-entry="norms"].is-module-entry-animating .module-entry__scene span:nth-child(3) { animation-delay: 190ms; }
html[data-module-entry="norms"].is-module-entry-animating .module-entry__scene span:nth-child(4) { animation-delay: 240ms; }
html[data-module-entry="norms"].is-module-entry-animating .module-entry__scene span:nth-child(5) { animation-delay: 290ms; }
html[data-module-entry="norms"].is-module-entry-animating .module-entry__scene span:nth-child(6) { animation-delay: 340ms; }

/* Calculators: variables rise from a common engineering axis. */
html[data-module-entry="calculators"] .module-entry__scene { border-left: 1px solid rgba(245, 242, 234, .35); border-bottom: 1px solid rgba(245, 242, 234, .35); }
html[data-module-entry="calculators"] .module-entry__scene::before { position: absolute; top: -6px; left: -12px; color: var(--module-entry-accent); content: "Q"; font: 9px/1 ui-monospace, monospace; }
html[data-module-entry="calculators"] .module-entry__scene::after { position: absolute; right: -8px; bottom: -14px; color: var(--module-entry-accent); content: "DN"; font: 9px/1 ui-monospace, monospace; }
html[data-module-entry="calculators"] .module-entry__scene span { bottom: 0; width: 8%; border-top: 2px solid var(--module-entry-accent); background: rgba(245, 242, 234, .13); transform: scaleY(0); transform-origin: bottom; }
html[data-module-entry="calculators"] .module-entry__scene span:nth-child(1) { left: 8%; height: 18%; }
html[data-module-entry="calculators"] .module-entry__scene span:nth-child(2) { left: 23%; height: 31%; }
html[data-module-entry="calculators"] .module-entry__scene span:nth-child(3) { left: 38%; height: 47%; }
html[data-module-entry="calculators"] .module-entry__scene span:nth-child(4) { left: 53%; height: 66%; }
html[data-module-entry="calculators"] .module-entry__scene span:nth-child(5) { left: 68%; height: 78%; }
html[data-module-entry="calculators"] .module-entry__scene span:nth-child(6) { left: 83%; height: 91%; }
html[data-module-entry="calculators"].is-module-entry-animating .module-entry__scene { animation: module-calculator-scene 980ms cubic-bezier(.16, 1, .3, 1) 40ms both; }
html[data-module-entry="calculators"].is-module-entry-animating .module-entry__scene span { animation: module-calculator-column 620ms cubic-bezier(.16, 1, .3, 1) both; }
html[data-module-entry="calculators"].is-module-entry-animating .module-entry__scene span:nth-child(1) { animation-delay: 110ms; }
html[data-module-entry="calculators"].is-module-entry-animating .module-entry__scene span:nth-child(2) { animation-delay: 160ms; }
html[data-module-entry="calculators"].is-module-entry-animating .module-entry__scene span:nth-child(3) { animation-delay: 210ms; }
html[data-module-entry="calculators"].is-module-entry-animating .module-entry__scene span:nth-child(4) { animation-delay: 260ms; }
html[data-module-entry="calculators"].is-module-entry-animating .module-entry__scene span:nth-child(5) { animation-delay: 310ms; }
html[data-module-entry="calculators"].is-module-entry-animating .module-entry__scene span:nth-child(6) { animation-delay: 360ms; }

html.is-module-entering.is-module-entry-ready [data-module-entry-content] {
  opacity: 1;
  filter: blur(0);
  transform: translateY(0) scale(1);
  transition: opacity 280ms cubic-bezier(.16, 1, .3, 1), filter 280ms cubic-bezier(.16, 1, .3, 1), transform 340ms cubic-bezier(.16, 1, .3, 1);
}

html.is-module-entering.is-module-entry-ready body > main[data-module-entry-content] { transition-delay: 0ms; }
html.has-module-motion .module-motion-reveal {
  --module-motion-from: translateY(24px) scale(.992);
  opacity: 0;
  filter: blur(4px);
  transform: var(--module-motion-from);
  will-change: opacity, filter, transform;
  transition:
    opacity 420ms cubic-bezier(.16, 1, .3, 1) var(--module-motion-delay, 0ms),
    filter 420ms cubic-bezier(.16, 1, .3, 1) var(--module-motion-delay, 0ms),
    transform 480ms cubic-bezier(.16, 1, .3, 1) var(--module-motion-delay, 0ms);
}

html.has-module-motion .module-motion-reveal.is-motion-visible {
  opacity: 1;
  filter: none;
  transform: none;
  will-change: auto;
}

html[data-module-entry="land-auctions"].has-module-motion .auctions-layout > .filters-panel,
html[data-module-entry="land-auctions"].has-module-motion .auctions-layout > .registry-panel {
  --module-motion-from: translateY(18px) scaleX(.975);
  transform-origin: left center;
}

html[data-module-entry="land-auctions"].has-module-motion .auctions-layout > .dossier-panel {
  --module-motion-from: translateY(18px) scaleX(.975);
  transform-origin: right center;
}

html[data-module-entry="meetings"].has-module-motion .meeting-upload > .module-motion-reveal {
  --module-motion-from: translateY(20px) scaleX(.98);
  transform-origin: left center;
}

html[data-module-entry="meetings"].has-module-motion .meetings-workspace > .module-motion-reveal {
  --module-motion-from: translateY(24px) scale(.988);
}

html[data-module-entry="estimates"].has-module-motion .tz-grid > .module-motion-reveal:first-child,
html[data-module-entry="estimates"].has-module-motion .estimate-workspace > .module-motion-reveal:first-child,
html[data-module-entry="proposals"].has-module-motion .proposal-layout > .module-motion-reveal:first-child,
html[data-module-entry="norms"].has-module-motion .workspace-grid > .module-motion-reveal:first-child {
  --module-motion-from: translateY(20px) scaleX(.975);
  transform-origin: left center;
}

html[data-module-entry="estimates"].has-module-motion .tz-grid > .module-motion-reveal:last-child,
html[data-module-entry="estimates"].has-module-motion .estimate-workspace > .module-motion-reveal:last-child,
html[data-module-entry="proposals"].has-module-motion .proposal-layout > .module-motion-reveal:last-child,
html[data-module-entry="norms"].has-module-motion .workspace-grid > .module-motion-reveal:last-child {
  --module-motion-from: translateY(20px) scaleX(.975);
  transform-origin: right center;
}

html[data-module-entry="calculators"].has-module-motion .calculator-cards > .module-motion-reveal {
  --module-motion-from: translateY(28px) scale(.97);
}

html[data-module-entry="calculators"].has-module-motion .calculator-panel > .module-motion-reveal {
  --module-motion-from: translateY(24px) scale(.985);
}

html.has-module-motion :is(button, a, input, select, textarea) {
  transition-duration: 160ms;
  transition-timing-function: cubic-bezier(.16, 1, .3, 1);
}

html.has-module-motion button:active,
html.has-module-motion a:active {
  transform: translateY(1px) scale(.992);
}

html.is-module-entering.is-module-entry-ready .module-entry {
  opacity: 0;
  filter: blur(2px);
  clip-path: inset(0 0 100% 0);
  transform: translateY(-4px);
  pointer-events: none;
  transition: opacity 260ms cubic-bezier(.4, 0, 1, 1), filter 260ms cubic-bezier(.4, 0, 1, 1), clip-path 360ms cubic-bezier(.4, 0, 1, 1), transform 260ms cubic-bezier(.4, 0, 1, 1);
}

@keyframes module-entry-frame { from { opacity: 0; clip-path: inset(0 50%); } to { opacity: 1; clip-path: inset(0); } }
@keyframes module-entry-axis { from { opacity: 0; transform: translate(-50%, clamp(142px, 21vh, 192px)) scaleX(0); } 35% { opacity: 1; } to { opacity: .72; transform: translate(-50%, clamp(142px, 21vh, 192px)) scaleX(1); } }
@keyframes module-entry-mark { from { opacity: 0; clip-path: inset(0 100% 0 0); filter: blur(7px); transform: translateY(12px); } to { opacity: 1; clip-path: inset(0); filter: blur(0); transform: translateY(0); } }
@keyframes module-entry-caption { from { opacity: 0; filter: blur(4px); transform: translateY(7px); } to { opacity: 1; filter: blur(0); transform: translateY(0); } }
@keyframes module-entry-line { from { transform: scaleX(.2); } to { transform: scaleX(1); } }
@keyframes module-entry-marker { from { opacity: 0; filter: blur(2px); transform: translateX(-50%) scale(.75); } to { opacity: 1; filter: blur(0); transform: translateX(-50%) scale(1); } }
@keyframes module-entry-surface { from { opacity: 0; filter: blur(5px); transform: translateY(14px); } to { opacity: 1; filter: blur(0); transform: translateY(0); } }
@keyframes module-land-scene { from { opacity: 0; filter: blur(8px); transform: scale(.94); } to { opacity: 1; filter: blur(0); transform: scale(1); } }
@keyframes module-land-parcel { from { opacity: 0; transform: rotate(-7deg) scale(.72); } to { opacity: 1; transform: rotate(-7deg) scale(1); } }
@keyframes module-meeting-scene { from { opacity: 0; filter: blur(7px); } to { opacity: 1; filter: blur(0); } }
@keyframes module-meeting-baseline { from { transform: scaleX(0); } to { transform: scaleX(1); } }
@keyframes module-meeting-wave { from { opacity: 0; transform: scaleY(.08); } to { opacity: 1; transform: scaleY(1); } }
@keyframes module-estimate-scene { from { opacity: 0; transform: scaleX(.9); } to { opacity: 1; transform: scaleX(1); } }
@keyframes module-estimate-row { from { opacity: 0; transform: translateX(-24px); } to { opacity: 1; transform: translateX(0); } }
@keyframes module-proposal-scene { from { opacity: 0; filter: blur(8px); } to { opacity: 1; filter: blur(0); } }
@keyframes module-proposal-sheet { from { opacity: 0; translate: 0 20px; } to { opacity: 1; translate: 0 0; } }
@keyframes module-norms-scene { from { opacity: 0; filter: blur(7px); } to { opacity: 1; filter: blur(0); } }
@keyframes module-norms-spine { from { opacity: 0; transform: translateY(18px); } to { opacity: 1; transform: translateY(0); } }
@keyframes module-norms-scan { from { opacity: 0; transform: translateX(0); } 15% { opacity: 1; } to { opacity: 1; transform: translateX(min(286px, 39vw)); } }
@keyframes module-calculator-scene { from { opacity: 0; filter: blur(7px); } to { opacity: 1; filter: blur(0); } }
@keyframes module-calculator-column { from { opacity: 0; transform: scaleY(0); } to { opacity: 1; transform: scaleY(1); } }

@media (max-height: 590px) {
  .module-entry__scene { height: 104px; }
  html.is-module-entering .module-entry { gap: 12px; }
  html.is-module-entering .module-entry::after { transform: translate(-50%, 118px) scaleX(0); }
}

@media (prefers-reduced-motion: reduce) {
  .module-entry { display: none !important; }
  html.is-module-entering [data-module-entry-content] { opacity: 1 !important; filter: none !important; transform: none !important; animation: none !important; transition: none !important; }
  .module-motion-reveal { opacity: 1 !important; filter: none !important; transform: none !important; animation: none !important; transition: none !important; }
}
