/* EDIGISTRA motion layer: precise, monochrome, and independent of layout styles. */
html { scroll-behavior: auto; }
html.motion-anchor-scroll { scroll-behavior: smooth; }
@view-transition { navigation: auto; }
::view-transition-old(root) { animation: edigistra-page-out 240ms ease both; }
::view-transition-new(root) { animation: edigistra-page-in 520ms cubic-bezier(.22,1,.36,1) both; }
::view-transition-group(marketing-header) { animation-duration: 400ms; }
@keyframes edigistra-page-out { to { opacity: 0; transform: translateY(-8px); } }
@keyframes edigistra-page-in { from { opacity: 0; transform: translateY(18px); } }

.marketing-site .site-header { view-transition-name: marketing-header; }
.marketing-site .site-header::after {
  content:''; position:absolute; inset:auto 0 -1px; height:1px;
  background:var(--ink); transform:scaleX(var(--reading-progress,0));
  transform-origin:left center; pointer-events:none; opacity:.7;
}
.marketing-site .motion-line-mask {
  display:block; overflow:clip; padding-block:.12em; margin-block:-.12em;
}
.marketing-site .motion-title-lines { display:grid; }
.marketing-site .motion-line-ink {
  display:block; white-space:nowrap; transform-origin:left bottom;
}
.marketing-site :is(a,button,summary,[tabindex]):focus-visible { outline-width: 1.5px; outline-offset: 3px; }
.marketing-site :is(.btn,.text-link,.arrow-link,.site-nav a,.footer-grid a,.trust-doc-index a) {
  transition-duration: 220ms;
  transition-timing-function: cubic-bezier(.22,1,.36,1);
}
.marketing-site :is(.btn,.text-link,.arrow-link) > span[aria-hidden] {
  display: inline-block;
  transition: transform 220ms cubic-bezier(.22,1,.36,1);
}
.marketing-site :is(.btn,.text-link,.arrow-link):focus-visible > span[aria-hidden] { transform: translate(3px,-1px); }
.marketing-site .site-nav a { text-underline-offset: 5px; text-decoration-thickness: 1px; }
.marketing-site .footer-grid a { transition: color 220ms,translate 220ms cubic-bezier(.22,1,.36,1); }

@media (hover:hover) and (pointer:fine) {
  .marketing-site :is(.text-link,.arrow-link):hover { translate: 0 -1px; }
  .marketing-site :is(.btn,.text-link,.arrow-link):hover > span[aria-hidden] { transform: translate(3px,-1px); }
  .marketing-site .footer-grid a:hover { translate: 3px 0; }
  .marketing-site .btn::before { transform:translateY(102%); }
  .marketing-site .btn:hover::before { transform:translateY(0); }
}
.marketing-site .btn { position:relative; isolation:isolate; overflow:hidden; }
.marketing-site .btn::before {
  content:''; position:absolute; inset:0; z-index:-1; pointer-events:none;
  background:rgb(150 150 160 / 16%); transform:translateY(102%);
  transition:transform 450ms cubic-bezier(.22,1,.36,1);
}
.marketing-site .btn:active { scale:.985; transition:scale 120ms; }
.marketing-site .atlas-workflow-tabs { position:relative; }
.marketing-site .atlas-workflow-tabs::after {
  content:''; position:absolute; bottom:0; left:0; width:25%; height:2px;
  pointer-events:none; background:var(--ink);
  transform:translateX(calc(var(--workflow-index,0) * 100%));
  transition:transform 600ms cubic-bezier(.22,1,.36,1);
}
.marketing-site .atlas-workflow-tabs a.is-active { border-bottom-color:transparent; }
.marketing-site .atlas-role-list a { transition:padding 350ms cubic-bezier(.22,1,.36,1),background-color 350ms; }
@media(hover:hover) and (pointer:fine) {
  .marketing-site .atlas-role-list a:hover { padding-left:10px; padding-right:10px; background:rgb(0 0 0 / 2%); }
}

/* Photographs get slight overscan for drift; native product views never move or scale. */
.marketing-site .motion-photo-layer {
  translate: 0 var(--photo-shift,0px);
  scale: 1.065;
}
.marketing-site .motion-photo-frame { overflow: hidden; }
.marketing-site .motion-reading-rule {
  position: absolute;
  z-index: 2;
  top: 0;
  left: 0;
  width: 100%;
  height: 1px;
  background: currentColor;
  opacity: .16;
  transform: scaleX(0);
  transform-origin: left center;
  pointer-events: none;
  transition: opacity 180ms ease;
}
.marketing-site .motion-reading-chapter { position: relative; }
.marketing-site .motion-reading-chapter.is-reading > .motion-reading-rule { opacity: .58; }

/* Scene entrances follow the reader's scroll rather than a playback timer. */
@supports (animation-timeline: view()) {
  .marketing-site .motion-scroll-chapter { view-timeline-name: --chapter; view-timeline-axis: block; }
  .marketing-site .motion-scroll-scene {
    --scene-distance: 46px;
    animation: edigistra-scene-arrive 1s linear both;
    animation-timeline: --chapter;
    animation-range: entry 0% entry 75%;
  }
  .marketing-site .motion-scroll-proof { --scene-distance: 64px; }
  @keyframes edigistra-scene-arrive {
    from { transform: translate3d(0,var(--scene-distance),0); }
    to { transform: none; }
  }
}
.marketing-site .motion-hold {
  position: sticky;
  top: max(104px, calc(80px + (100svh - 80px - var(--hold-height,300px))/2));
  align-self: start;
}
/* The interface remains geometrically exact while the surrounding frame arrives. */
.marketing-site .atlas-workflow-panel { transition:background-color 400ms; }
.marketing-site .atlas-workflow-image img { backface-visibility:hidden; }
@media (max-width:900px) {
  .marketing-site .motion-hold { position: static; }
  .marketing-site .motion-scroll-scene { --scene-distance: 16px; }
  .marketing-site .motion-scroll-proof { --scene-distance: 22px; }
}

/* Dialogs remain native; WAAPI only adds a short entrance/exit when available. */
.marketing-site .mobile-menu[open] { overscroll-behavior: contain; }
.marketing-site .demo-form[aria-busy="true"] [type="submit"] { opacity: .72; cursor: progress; }
.marketing-site .demo-form [type="submit"] { transition: opacity 180ms,background-color 180ms; }
.marketing-site .trust-doc-index a { transition: color 180ms,background-color 180ms; }
.marketing-site .trust-doc-index a[aria-current="location"] { color: var(--ink); background: #f0f0f2; }

html.motion-reduced { scroll-behavior: auto !important; }
html.motion-reduced ::view-transition-group(*),html.motion-reduced ::view-transition-old(*),html.motion-reduced ::view-transition-new(*) { animation: none !important; }
html.motion-reduced .marketing-site *,html.motion-reduced .marketing-site *::before,html.motion-reduced .marketing-site *::after {
  scroll-behavior: auto !important;
  animation-duration: .01ms !important;
  animation-iteration-count: 1 !important;
  transition-duration: .01ms !important;
}
html.motion-reduced .marketing-site :is(.btn,.text-link,.arrow-link,.footer-grid a) { translate: none !important; }
html.motion-reduced .marketing-site :is(.btn,.text-link,.arrow-link) > span[aria-hidden] { transform: none !important; }
html.motion-reduced .marketing-site .motion-photo-layer { translate: none; scale: 1; will-change: auto; }
html.motion-reduced .marketing-site .motion-reading-rule { transform: none !important; opacity: .2; }
html.motion-reduced .marketing-site .motion-scroll-scene { animation: none !important; }
html.motion-reduced .marketing-site .motion-hold { position: static; }
html.motion-reduced .marketing-site .btn:active { scale:1; }
html.motion-reduced .marketing-site .motion-line-ink { transform:none !important; }

@supports (interpolate-size: allow-keywords) {
  .marketing-site details { interpolate-size: allow-keywords; }
  .marketing-site details::details-content {
    height: 0;
    opacity: 0;
    overflow: clip;
    transition: height 380ms cubic-bezier(.22,1,.36,1),opacity 280ms,content-visibility 380ms allow-discrete;
  }
  .marketing-site details[open]::details-content { height: auto; opacity: 1; }
}

@media (prefers-reduced-motion:reduce) {
  @view-transition { navigation: none; }
  html,html.motion-anchor-scroll { scroll-behavior: auto !important; }
  ::view-transition-group(*),::view-transition-old(*),::view-transition-new(*) { animation: none !important; }
  .marketing-site *, .marketing-site *::before, .marketing-site *::after {
    scroll-behavior: auto !important;
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .01ms !important;
  }
  .marketing-site .motion-photo-layer { translate: none; scale: 1; will-change: auto; }
  .marketing-site .motion-reading-rule { transform: none !important; opacity: .2; }
  .marketing-site .motion-scroll-scene { animation: none !important; }
  .marketing-site .motion-hold { position: static; }
  .marketing-site .btn:active { scale:1; }
  .marketing-site .motion-line-ink { transform:none !important; }
  .marketing-site details::details-content { transition: none; }
}
