/*
 * Tempo trust experience
 * ----------------------
 * Additive presentation only. Existing content and motion live in index.html
 * and visual-polish.css; this layer deliberately does not replace either.
 */

:root {
  --tempo-trust-violet: #5945c6;
  --tempo-trust-violet-deep: #2e236c;
  --tempo-trust-blue: #557cf1;
  --tempo-trust-cyan: #72c9e7;
  --tempo-trust-surface: rgba(255, 255, 255, 0.86);
  --tempo-trust-ease: cubic-bezier(0.22, 1, 0.36, 1);
}

html {
  scroll-padding-top: 84px;
}

html.trust-experience body {
  text-rendering: optimizeLegibility;
}

html.trust-experience a,
html.trust-experience button,
html.trust-experience summary {
  -webkit-tap-highlight-color: transparent;
}

/* Navigation and conversion controls share one tactile material language. */
html.trust-experience .nav-links a:not(.btn),
html.trust-experience .nav-right a:not(.btn) {
  position: relative;
  isolation: isolate;
}

html.trust-experience .nav-links a:not(.btn)::after,
html.trust-experience .nav-right a:not(.btn)::after {
  position: absolute;
  right: 0;
  bottom: -7px;
  left: 0;
  height: 2px;
  border-radius: 999px;
  background: linear-gradient(90deg, var(--tempo-trust-blue), var(--tempo-trust-violet));
  content: "";
  opacity: 0;
  transform: scaleX(0.25);
  transform-origin: center;
  transition:
    opacity 220ms ease,
    transform 420ms var(--tempo-trust-ease);
}

html.trust-experience .nav-links a:not(.btn):hover::after,
html.trust-experience .nav-links a.trust-nav-current::after,
html.trust-experience .nav-right a:not(.btn):hover::after,
html.trust-experience .nav-right a[aria-current="page"]::after {
  opacity: 0.88;
  transform: scaleX(1);
}

html.trust-experience .nav-links a.trust-nav-current,
html.trust-experience .nav-right a[aria-current="page"] {
  color: var(--ink);
}

html.trust-experience .btn {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  transform: translateZ(0);
  transition:
    color 220ms ease,
    background-color 220ms ease,
    border-color 220ms ease,
    box-shadow 420ms var(--tempo-trust-ease),
    translate 420ms var(--tempo-trust-ease),
    transform 420ms var(--tempo-trust-ease);
}

html.trust-experience .btn::before {
  position: absolute;
  z-index: 0;
  top: -70%;
  left: var(--tempo-button-x, 50%);
  width: 88px;
  height: 220%;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(255, 255, 255, 0.38), transparent 67%);
  content: "";
  mix-blend-mode: screen;
  opacity: 0;
  pointer-events: none;
  transform: translateX(-50%);
  transition: opacity 260ms ease;
}

html.trust-experience .btn:hover::before,
html.trust-experience .btn:focus-visible::before {
  opacity: 1;
}

@media (hover: hover) and (pointer: fine) {
  html.trust-experience .btn:hover {
    box-shadow:
      0 19px 38px -22px rgba(48, 35, 126, 0.78),
      0 7px 14px -10px rgba(48, 35, 126, 0.42);
  }

  html.trust-experience .btn:active {
    translate: 0 0;
    transform: translateZ(0) scale(0.985);
    transition-duration: 100ms;
  }
}

/* Trust becomes a connected, inspectable system rather than six loose cards. */
html.trust-experience body.home #trust {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  background:
    radial-gradient(58% 92% at 0% 0%, rgba(170, 155, 255, 0.32), transparent 72%),
    radial-gradient(54% 80% at 100% 100%, rgba(106, 157, 244, 0.2), transparent 74%),
    linear-gradient(180deg, #faf8ff 0%, #f1edff 100%);
}

html.trust-experience body.home #trust::before {
  position: absolute;
  inset: 0;
  z-index: -2;
  background-image:
    linear-gradient(rgba(75, 58, 174, 0.035) 1px, transparent 1px),
    linear-gradient(90deg, rgba(75, 58, 174, 0.035) 1px, transparent 1px);
  background-position: center;
  background-size: 44px 44px;
  content: "";
  pointer-events: none;
  -webkit-mask-image: linear-gradient(to bottom, transparent, #000 14%, #000 86%, transparent);
  mask-image: linear-gradient(to bottom, transparent, #000 14%, #000 86%, transparent);
}

html.trust-experience body.home #trust::after {
  position: absolute;
  z-index: -1;
  top: 12%;
  left: 50%;
  width: min(880px, 92vw);
  aspect-ratio: 1.75;
  border: 1px solid rgba(90, 69, 198, 0.08);
  border-radius: 50%;
  background: radial-gradient(circle, rgba(255, 255, 255, 0.52), transparent 68%);
  box-shadow:
    0 0 0 70px rgba(89, 69, 198, 0.018),
    0 0 0 140px rgba(89, 69, 198, 0.012);
  content: "";
  opacity: 1;
  pointer-events: none;
  -webkit-mask-image: none;
  mask-image: none;
  transform: translateX(-50%) rotate(-5deg);
}

html.trust-experience body.home #trust .wrap {
  position: relative;
  z-index: 1;
}

html.trust-experience body.home #trust .sec-head {
  position: relative;
  z-index: 2;
}

html.trust-experience body.home #trust .sec-head::after {
  display: block;
  width: min(330px, 56vw);
  height: 1px;
  margin-top: 28px;
  background: linear-gradient(90deg, rgba(75, 58, 174, 0.58), rgba(85, 124, 241, 0.16), transparent);
  content: "";
}

html.trust-experience body.home #trust .trust-grid {
  position: relative;
  isolation: isolate;
  gap: 24px;
}

html.trust-experience body.home #trust .trust {
  position: relative;
  z-index: 2;
  min-height: 218px;
  overflow: hidden;
  border-color: rgba(65, 49, 149, 0.14);
  background:
    linear-gradient(145deg, rgba(255, 255, 255, 0.96), rgba(250, 249, 255, 0.88));
  box-shadow:
    0 26px 58px -48px rgba(44, 31, 115, 0.72),
    inset 0 1px rgba(255, 255, 255, 0.92);
  transform: translateZ(0);
  transition:
    border-color 360ms ease,
    box-shadow 520ms var(--tempo-trust-ease),
    clip-path 950ms var(--ambient-ease-soft) var(--ambient-delay, 0ms),
    filter 950ms var(--ambient-ease-soft) var(--ambient-delay, 0ms),
    translate var(--ambient-card-translate-duration, 950ms) var(--ambient-ease-soft) var(--ambient-delay, 0ms),
    transform 520ms var(--tempo-trust-ease);
}

html.trust-experience body.home #trust .trust::before {
  position: absolute;
  top: 0;
  right: 24px;
  left: 24px;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(89, 69, 198, 0.58), rgba(85, 124, 241, 0.48), transparent);
  content: "";
  opacity: 0.52;
  pointer-events: none;
  transform: scaleX(0.54);
  transition:
    opacity 420ms ease,
    transform 700ms var(--tempo-trust-ease);
}

html.trust-experience body.home #trust .trust::after {
  position: absolute;
  inset: 0;
  background:
    radial-gradient(
      210px circle at var(--tempo-trust-x, 50%) var(--tempo-trust-y, 42%),
      rgba(105, 128, 235, 0.14),
      transparent 68%
    );
  content: "";
  opacity: 0;
  pointer-events: none;
  transition: opacity 320ms ease;
}

html.trust-experience body.home #trust .trust > * {
  position: relative;
  z-index: 1;
}

html.trust-experience body.home #trust .trust .tick {
  width: 31px;
  height: 31px;
  border: 1px solid rgba(85, 71, 174, 0.18);
  background: linear-gradient(145deg, #f3f0ff, #e4e8ff);
  box-shadow:
    0 9px 22px -13px rgba(55, 40, 135, 0.82),
    inset 0 1px rgba(255, 255, 255, 0.92);
}

html.trust-experience body.home #trust .trust .tick::before {
  position: absolute;
  inset: -5px;
  border: 1px solid rgba(83, 67, 174, 0.1);
  border-radius: inherit;
  content: "";
  pointer-events: none;
}

html.trust-experience body.home #trust .trust h3 {
  margin-top: 2px;
  font-size: 17.5px;
  letter-spacing: -0.012em;
}

html.trust-experience body.home #trust .trust p {
  line-height: 1.58;
}

@media (hover: hover) and (pointer: fine) {
  html.trust-experience body.home #trust .trust:hover {
    border-color: rgba(72, 53, 171, 0.27);
    box-shadow:
      0 34px 70px -43px rgba(48, 34, 132, 0.62),
      0 11px 28px -22px rgba(47, 35, 118, 0.4),
      inset 0 1px rgba(255, 255, 255, 0.96);
    transform: translateY(-6px);
  }

  html.trust-experience body.home #trust .trust:hover::before {
    opacity: 1;
    transform: scaleX(1);
  }

  html.trust-experience body.home #trust .trust:hover::after {
    opacity: 1;
  }
}

.trust-flow {
  position: absolute;
  z-index: 0;
  inset: 0;
  width: 100%;
  height: 100%;
  overflow: visible;
  pointer-events: none;
}

.trust-flow-line {
  fill: none;
  stroke: url("#tempo-trust-flow-gradient");
  stroke-dasharray: 3 8;
  stroke-linecap: round;
  stroke-width: 1.4;
  opacity: 0.34;
  vector-effect: non-scaling-stroke;
  transition:
    opacity 420ms ease,
    stroke-width 420ms ease;
}

.trust-flow-line.trust-flow-related {
  stroke-width: 2.1;
  opacity: 0.72;
}

.trust-flow-packet {
  fill: #6e63d8;
  opacity: 0;
  filter: drop-shadow(0 0 4px rgba(94, 77, 202, 0.78));
  transition: opacity 500ms ease;
}

.trust-flow-active .trust-flow-line {
  animation: tempoTrustSignal 8s linear infinite;
}

.trust-flow-active .trust-flow-packet {
  opacity: 0.78;
}

@keyframes tempoTrustSignal {
  to { stroke-dashoffset: -44; }
}

/* Blog and legal pages carry the same glass, line and signal language. */
html.trust-experience body.subpage {
  position: relative;
  isolation: isolate;
  overflow-x: hidden;
}

html.trust-experience body.subpage::before {
  position: fixed;
  z-index: -2;
  inset: 0;
  background-image:
    radial-gradient(circle at 8% 18%, rgba(91, 128, 239, 0.14), transparent 24%),
    radial-gradient(circle at 92% 12%, rgba(104, 76, 204, 0.14), transparent 28%),
    radial-gradient(rgba(71, 55, 154, 0.11) 0.7px, transparent 0.8px);
  background-position: center, center, 0 0;
  background-size: auto, auto, 22px 22px;
  content: "";
  pointer-events: none;
  -webkit-mask-image: linear-gradient(to bottom, #000, rgba(0, 0, 0, 0.2) 72%, transparent);
  mask-image: linear-gradient(to bottom, #000, rgba(0, 0, 0, 0.2) 72%, transparent);
}

html.trust-experience body.subpage::after {
  position: fixed;
  z-index: -1;
  top: 7vh;
  right: -10vw;
  width: 42vw;
  min-width: 420px;
  aspect-ratio: 1;
  border: 1px solid rgba(88, 68, 190, 0.08);
  border-radius: 50%;
  box-shadow:
    0 0 0 78px rgba(88, 68, 190, 0.014),
    0 0 0 156px rgba(88, 68, 190, 0.009);
  content: "";
  pointer-events: none;
}

html.trust-experience body.subpage > main,
html.trust-experience body.subpage > footer {
  position: relative;
  z-index: 1;
}

html.trust-experience body.subpage > nav {
  z-index: 60;
  border-color: rgba(255, 255, 255, 0.9);
  box-shadow:
    0 18px 46px -34px rgba(31, 23, 83, 0.62),
    inset 0 1px rgba(255, 255, 255, 0.92);
}

html.trust-experience body.subpage > nav .logo {
  letter-spacing: -0.025em;
}

html.trust-experience body.subpage > main.wrap,
html.trust-experience body.subpage > main.wrap-wide {
  overflow: hidden;
  border-color: rgba(255, 255, 255, 0.9);
  background:
    linear-gradient(150deg, rgba(255, 255, 255, 0.9), rgba(255, 255, 255, 0.72));
  box-shadow:
    0 38px 96px -64px rgba(34, 25, 91, 0.66),
    inset 0 1px rgba(255, 255, 255, 0.96);
}

html.trust-experience body.subpage > main::before {
  position: absolute;
  top: 0;
  right: 13%;
  left: 13%;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(86, 69, 189, 0.45), rgba(92, 132, 235, 0.35), transparent);
  content: "";
  pointer-events: none;
}

html.trust-experience body.blog-post h1,
html.trust-experience body.legal h1,
html.trust-experience body.blog-index h1 {
  letter-spacing: -0.028em;
  text-wrap: balance;
}

html.trust-experience body.blog-post .dek,
html.trust-experience body.blog-index .dek {
  text-wrap: pretty;
}

html.trust-experience body.blog-post .hero-img {
  border-color: rgba(52, 40, 122, 0.13);
  box-shadow:
    0 26px 52px -36px rgba(42, 30, 112, 0.56),
    0 8px 18px -14px rgba(42, 30, 112, 0.32);
}

html.trust-experience body.blog-post article h2,
html.trust-experience body.legal main h2 {
  position: relative;
  padding-left: 18px;
  letter-spacing: -0.015em;
}

html.trust-experience body.blog-post article h2::before,
html.trust-experience body.legal main h2::before {
  position: absolute;
  top: 0.36em;
  bottom: 0.24em;
  left: 0;
  width: 3px;
  border-radius: 999px;
  background: linear-gradient(to bottom, var(--tempo-trust-blue), var(--tempo-trust-violet));
  box-shadow: 0 0 18px rgba(87, 74, 194, 0.18);
  content: "";
}

html.trust-experience body.blog-post .answer,
html.trust-experience body.blog-post .cta-box {
  position: relative;
  overflow: hidden;
  box-shadow: 0 24px 48px -42px rgba(47, 35, 118, 0.62);
}

html.trust-experience body.blog-post .answer::before,
html.trust-experience body.blog-post .cta-box::before {
  position: absolute;
  inset: 0 auto 0 0;
  width: 3px;
  background: linear-gradient(to bottom, var(--tempo-trust-blue), var(--tempo-trust-violet));
  content: "";
}

html.trust-experience body.blog-index .post-grid {
  gap: 28px;
}

html.trust-experience body.blog-index .post-card {
  position: relative;
  isolation: isolate;
  border-color: rgba(45, 33, 112, 0.12);
  box-shadow:
    0 30px 66px -54px rgba(37, 27, 96, 0.66),
    inset 0 1px rgba(255, 255, 255, 0.95);
  transform: translateZ(0);
  transition:
    border-color 420ms ease,
    box-shadow 560ms var(--tempo-trust-ease),
    clip-path 950ms var(--ambient-ease-soft) var(--ambient-delay, 0ms),
    filter 950ms var(--ambient-ease-soft) var(--ambient-delay, 0ms),
    translate var(--ambient-card-translate-duration, 950ms) var(--ambient-ease-soft) var(--ambient-delay, 0ms),
    transform 560ms var(--tempo-trust-ease);
}

html.trust-experience body.blog-index .post-card::after {
  position: absolute;
  z-index: 2;
  inset: 0;
  border: 1px solid transparent;
  border-radius: inherit;
  background: linear-gradient(145deg, rgba(255, 255, 255, 0.5), transparent 28%, rgba(93, 72, 198, 0.12)) border-box;
  content: "";
  opacity: 0;
  pointer-events: none;
  -webkit-mask: linear-gradient(#000 0 0) padding-box, linear-gradient(#000 0 0);
  -webkit-mask-composite: xor;
  mask-composite: exclude;
  transition: opacity 420ms ease;
}

html.trust-experience body.blog-index .post-card img {
  transition:
    filter 600ms ease,
    transform 900ms var(--tempo-trust-ease);
}

@media (hover: hover) and (pointer: fine) {
  html.trust-experience body.blog-index .post-card:hover {
    border-color: rgba(72, 52, 170, 0.24);
    box-shadow:
      0 38px 78px -50px rgba(48, 34, 132, 0.58),
      0 12px 24px -20px rgba(43, 31, 110, 0.4);
    transform: translateY(-7px);
  }

  html.trust-experience body.blog-index .post-card:hover::after {
    opacity: 1;
  }

  html.trust-experience body.blog-index .post-card:hover img {
    filter: saturate(1.06) contrast(1.02);
    transform: scale(1.045);
  }
}

html.trust-experience body.legal .updated,
html.trust-experience body.blog-post .byline,
html.trust-experience body.blog-post .crumb {
  letter-spacing: 0.012em;
}

html.trust-experience body.legal .placeholder {
  box-shadow: inset 0 1px rgba(255, 255, 255, 0.75);
}

html.trust-experience body.subpage .table-scroll {
  position: relative;
  border: 1px solid rgba(48, 36, 113, 0.1);
  background: rgba(255, 255, 255, 0.56);
  box-shadow: 0 20px 42px -38px rgba(46, 33, 113, 0.55);
}

html.trust-experience body.subpage footer a {
  text-underline-offset: 4px;
  text-decoration-thickness: 1px;
}

.trust-reading-progress {
  position: fixed;
  z-index: 600;
  top: 0;
  right: 0;
  left: 0;
  height: 3px;
  background: linear-gradient(90deg, var(--tempo-trust-blue), var(--tempo-trust-violet), #8d70dc);
  box-shadow: 0 0 12px rgba(75, 58, 174, 0.35);
  pointer-events: none;
  transform: scaleX(var(--tempo-reading-progress, 0));
  transform-origin: left center;
  transition: transform 90ms linear;
}

@media (prefers-reduced-motion: no-preference) {
  html.trust-experience body.home #trust::after {
    animation: tempoTrustOrbit 18s ease-in-out infinite alternate;
  }

  html.trust-experience body.subpage::after {
    animation: tempoSubpageOrbit 24s ease-in-out infinite alternate;
  }

  html.trust-experience body.blog-index .post-card img {
    animation: tempoImageBreathe 18s ease-in-out infinite alternate;
  }

  html.trust-experience body.blog-index .post-card:nth-child(2n) img {
    animation-direction: alternate-reverse;
    animation-duration: 22s;
  }
}

@keyframes tempoTrustOrbit {
  from { transform: translateX(-51%) rotate(-6deg) scale(0.98); }
  to { transform: translateX(-49%) rotate(-2deg) scale(1.025); }
}

@keyframes tempoSubpageOrbit {
  from { transform: translate3d(0, -1.5%, 0) rotate(-4deg); }
  to { transform: translate3d(-4%, 2.5%, 0) rotate(4deg); }
}

@keyframes tempoImageBreathe {
  from { object-position: 48% 50%; }
  to { object-position: 53% 50%; }
}

@media (max-width: 1099px) {
  html.trust-experience body.home .nav-links a:not(.btn)::after {
    bottom: 4px;
    transform-origin: left;
  }
}

@media (max-width: 860px) {
  html.trust-experience body.home #trust .trust-grid {
    gap: 18px;
  }

  html.trust-experience body.home #trust .trust {
    min-height: 0;
  }
}

@media (max-width: 640px) {
  html {
    scroll-padding-top: 74px;
  }

  html.trust-experience body.home #trust::before {
    background-size: 34px 34px;
  }

  html.trust-experience body.home #trust .sec-head::after {
    margin-top: 22px;
  }

  html.trust-experience body.home #trust .trust {
    padding: 20px;
  }

  html.trust-experience body.subpage > nav .nav-right {
    max-width: 100%;
    overflow-x: auto;
    overscroll-behavior-inline: contain;
    scrollbar-width: none;
  }

  html.trust-experience body.subpage > nav .nav-right::-webkit-scrollbar {
    display: none;
  }

  html.trust-experience body.blog-post article h2,
  html.trust-experience body.legal main h2 {
    padding-left: 14px;
  }

  html.trust-experience body.subpage::after {
    right: -260px;
    min-width: 460px;
  }
}

@media (prefers-reduced-motion: reduce) {
  /* Only the new decorative layer is quieted; original Tempo motion is untouched. */
  .trust-flow-active .trust-flow-line,
  .trust-flow-active .trust-flow-packet,
  html.trust-experience body.home #trust::after,
  html.trust-experience body.subpage::after {
    animation: none;
  }

  .trust-flow-packet {
    display: none;
  }

  .trust-reading-progress,
  html.trust-experience .btn,
  html.trust-experience .btn::before,
  html.trust-experience body.home #trust .trust,
  html.trust-experience body.home #trust .trust::before,
  html.trust-experience body.home #trust .trust::after,
  html.trust-experience body.blog-index .post-card::after,
  html.trust-experience body.blog-index .post-card img {
    transition: none;
  }

  html.trust-experience .btn:hover,
  html.trust-experience .btn:focus-visible,
  html.trust-experience body.home #trust .trust:hover {
    translate: 0 0;
    transform: none;
  }

  /* Keep the original Tempo card lift while quieting only the added zoom/glow. */
  html.trust-experience body.blog-index .post-card {
    transition: transform 0.25s ease, box-shadow 0.25s ease;
  }

  html.trust-experience body.blog-index .post-card:hover {
    border-color: var(--line);
    box-shadow: 0 14px 30px -18px rgba(20, 19, 16, 0.3);
    translate: 0 0;
    transform: translateY(-3px);
  }

  html.trust-experience body.blog-index .post-card:hover::after {
    opacity: 0;
  }

  html.trust-experience body.blog-index .post-card:hover img {
    filter: none;
    transform: none;
  }
}

@media (forced-colors: active) {
  .trust-flow {
    display: none;
  }

  html.trust-experience body.home #trust .trust,
  html.trust-experience body.subpage > main.wrap,
  html.trust-experience body.subpage > main.wrap-wide {
    border: 1px solid CanvasText;
    background: Canvas;
  }

  html.trust-experience .nav-links a.trust-nav-current,
  html.trust-experience .nav-right a[aria-current="page"] {
    text-decoration: underline;
  }
}

@media print {
  .trust-flow,
  .trust-reading-progress,
  html.trust-experience body.subpage::before,
  html.trust-experience body.subpage::after {
    display: none !important;
  }

  html.trust-experience body.subpage > main.wrap,
  html.trust-experience body.subpage > main.wrap-wide {
    border: 0;
    box-shadow: none;
    background: #fff;
  }
}
