/* usedocs homepage marketing CSS — source: styles/landing-custom.css */
html { scroll-behavior: smooth; }
body {
  color: #10152c;
  background:
    radial-gradient(circle at 75% 7%, rgba(91, 84, 245, .10), transparent 28rem),
    radial-gradient(circle at 5% 25%, rgba(116, 170, 255, .08), transparent 24rem),
    #fff;
  overflow-x: hidden;
  -webkit-font-smoothing: antialiased;
}

::selection {
  background: rgba(91, 84, 245, .16);
  color: #2f2a94;
}

a, button, input, summary {
  -webkit-tap-highlight-color: transparent;
}

button:focus-visible,
a:focus-visible {
  outline: 3px solid rgba(91,84,245,.28);
  outline-offset: 3px;
}

.gradient-text {
  background: linear-gradient(100deg, #5b54f5 0%, #6b64f5 48%, #4a43e0 100%);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}

.gradient-border {
  position: relative;
  isolation: isolate;
}
.gradient-border::before {
  content: "";
  position: absolute;
  inset: -1px;
  z-index: -1;
  border-radius: inherit;
  background: linear-gradient(120deg, rgba(91,84,245,.28), rgba(255,255,255,.8), rgba(91,84,245,.18));
}

.grid-bg {
  background-image:
    linear-gradient(rgba(91,84,245,.045) 1px, transparent 1px),
    linear-gradient(90deg, rgba(91,84,245,.045) 1px, transparent 1px);
  background-size: 42px 42px;
  mask-image: linear-gradient(to bottom, black, transparent 82%);
}

.dot-bg {
  background-image: radial-gradient(rgba(91,84,245,.30) 1px, transparent 1.5px);
  background-size: 12px 12px;
}

/* Ambient orbs */
.orb {
  filter: blur(1px);
  animation: drift 8s ease-in-out infinite;
}
.orb-delay { animation-delay: -3s; }
@keyframes drift {
  0%,100% { transform: translate3d(0,0,0) scale(1); }
  50% { transform: translate3d(18px,-16px,0) scale(1.05); }
}

.float {
  animation: float 5s ease-in-out infinite;
}
.float-delay { animation-delay: -2s; }
@keyframes float {
  0%,100% { transform: translateY(0); }
  50% { transform: translateY(-8px); }
}

/* Shine sweep for CTAs */
.shine {
  position: relative;
  overflow: hidden;
}
.shine::after {
  content: "";
  position: absolute;
  top: 0; left: -130%;
  width: 55%; height: 100%;
  transform: skewX(-20deg);
  background: linear-gradient(90deg, transparent, rgba(255,255,255,.34), transparent);
  transition: left .7s ease;
}
.shine:hover::after { left: 150%; }

/* Scroll reveal (single source of truth) */
.reveal {
  opacity: 0;
  transform: translateY(22px);
  transition: opacity .7s cubic-bezier(.22,1,.36,1), transform .7s cubic-bezier(.22,1,.36,1);
}
.reveal.is-visible {
  opacity: 1;
  transform: translateY(0);
}

.nav-scrolled {
  background: rgba(255,255,255,.78) !important;
  box-shadow: 0 8px 35px rgba(16,21,44,.07);
  backdrop-filter: blur(18px);
  -webkit-backdrop-filter: blur(18px);
}

.doc-window {
  box-shadow:
    0 40px 100px rgba(91, 84, 245, .18),
    0 12px 35px rgba(16,21,44,.08);
  transform: perspective(1200px) rotateY(-2deg) rotateX(1deg);
  transition: transform .7s cubic-bezier(.2,.8,.2,1), box-shadow .7s ease;
}
.doc-window:hover {
  transform: perspective(1200px) rotateY(0deg) rotateX(0deg) translateY(-5px);
  box-shadow:
    0 50px 110px rgba(91,84,245,.22),
    0 15px 40px rgba(16,21,44,.10);
}

.feature-card,
.pricing-card {
  position: relative;
  transform-style: preserve-3d;
  will-change: transform;
  transition: transform .35s cubic-bezier(.22,1,.36,1), box-shadow .35s ease, border-color .35s ease;
}
.feature-card:hover {
  transform: translateY(-7px);
  box-shadow: 0 20px 55px rgba(16,21,44,.10);
  border-color: rgba(91,84,245,.22);
}
.feature-card::after,
.pricing-card::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  border-radius: inherit;
  background: linear-gradient(120deg, rgba(255,255,255,.34), transparent 35%, transparent 70%, rgba(91,84,245,.025));
  opacity: 0;
  transition: opacity .35s ease;
}
.feature-card:hover::after,
.pricing-card:hover::after {
  opacity: 1;
}

.tilt {
  transform-style: preserve-3d;
  transition: transform .15s ease-out;
}

.section-eyebrow {
  transition: transform .35s ease, box-shadow .35s ease;
}
.section-eyebrow:hover {
  transform: translateY(-2px);
  box-shadow: 0 8px 24px rgba(91,84,245,.10);
}
.pricing-kicker {
  display: inline-flex;
  align-items: center;
  padding: 4px 10px;
  border-radius: 999px;
  background: rgb(245 243 255);
  color: rgb(91 84 245);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.16em;
  line-height: 1;
  text-transform: uppercase;
}

/* Magnetic buttons */
.micro-btn {
  position: relative;
  isolation: isolate;
  cursor: pointer;
  transition: transform .25s cubic-bezier(.22,1,.36,1), box-shadow .25s ease, background-color .25s ease, border-color .25s ease;
}
.micro-btn::before {
  content: "";
  position: absolute;
  inset: 1px;
  z-index: -1;
  border-radius: inherit;
  background: linear-gradient(120deg, rgba(255,255,255,.18), transparent 35%);
  opacity: 0;
  transition: opacity .25s ease;
}
.micro-btn:hover { transform: translateY(-2px); }
.micro-btn:hover::before { opacity: 1; }
.micro-btn:active { transform: translateY(0) scale(.98); }
.pricing-card .micro-btn,
.pricing-card .micro-btn:hover,
.pricing-card .micro-btn:active {
  cursor: pointer;
}

/* Animated check icons */
.check-icon {
  display: inline-grid;
  place-items: center;
  width: 18px;
  height: 18px;
  flex: 0 0 18px;
  border-radius: 999px;
  background: #f0effe;
  color: #5b54f5;
  font-size: 11px;
  font-weight: 900;
  transition: transform .25s ease, background-color .25s ease;
}
li:hover .check-icon {
  transform: scale(1.12) rotate(-6deg);
  background: #e4e2fd;
}

.pulse-ring { animation: pulseRing 2.2s ease-out infinite; }
@keyframes pulseRing {
  0% { box-shadow: 0 0 0 0 rgba(91,84,245,.25); }
  70% { box-shadow: 0 0 0 16px rgba(91,84,245,0); }
  100% { box-shadow: 0 0 0 0 rgba(91,84,245,0); }
}

/* Live status indicator */
.status-dot { position: relative; }
.status-dot::after {
  content: "";
  position: absolute;
  inset: -4px;
  border-radius: 999px;
  border: 1px solid rgba(34,197,94,.25);
  animation: status-ping 2s ease-out infinite;
}
@keyframes status-ping {
  0% { transform: scale(.7); opacity: .8; }
  100% { transform: scale(1.8); opacity: 0; }
}

/* FAQ */
.faq-content {
  max-height: 0;
  overflow: hidden;
  transition: max-height .35s ease;
}
.faq.open .faq-content { max-height: 200px; }
.faq.open .faq-icon { transform: rotate(45deg); }
.faq {
  transition: border-color .3s ease;
}
.faq-trigger {
  transition: color .25s ease;
}
.faq:hover .faq-trigger {
  color: #4a43e0;
}

.mobile-menu {
  max-height: 0;
  opacity: 0;
  overflow: hidden;
  pointer-events: none;
  transition: max-height .4s cubic-bezier(.22,1,.36,1), opacity .25s ease;
}
.mobile-menu.open {
  max-height: 420px;
  opacity: 1;
  pointer-events: auto;
}

/* Pricing toggle */
.pricing-toggle {
  position: relative;
  display: inline-flex;
  padding: 4px;
  border: 1px solid rgb(226 232 240);
  border-radius: 999px;
  background: rgba(248,250,252,.9);
  box-shadow: 0 10px 30px rgba(15,23,42,.06);
}
.pricing-toggle .toggle-pill {
  position: absolute;
  top: 4px;
  bottom: 4px;
  left: 4px;
  width: calc(50% - 4px);
  border-radius: 999px;
  background: white;
  box-shadow: 0 3px 12px rgba(15,23,42,.12);
  transition: transform .35s cubic-bezier(.22,1,.36,1);
}
.pricing-toggle.yearly .toggle-pill { transform: translateX(100%); }
.pricing-toggle button {
  position: relative;
  z-index: 1;
  width: 130px;
  min-width: 130px;
  padding: 9px 10px;
  border: 0;
  background: transparent;
  color: rgb(100 116 139);
  font-size: 13px;
  font-weight: 800;
  cursor: pointer;
}
.pricing-toggle button.active { color: rgb(91 84 245); }
.savings-badge {
  display: inline-flex;
  margin-left: 5px;
  padding: 3px 7px;
  border-radius: 999px;
  background: rgb(220 252 231);
  color: rgb(22 101 52);
  font-size: 9px;
  font-weight: 900;
  letter-spacing: .02em;
  vertical-align: middle;
}
@keyframes price-in {
  0% { opacity: .15; transform: translateY(8px) scale(.97); filter: blur(3px); }
  100% { opacity: 1; transform: translateY(0) scale(1); filter: blur(0); }
}
.price-animate { animation: price-in .42s cubic-bezier(.22,1,.36,1); }

/* Scroll progress bar */
#scrollProgress {
  position: fixed;
  z-index: 100;
  left: 0;
  top: 0;
  height: 2px;
  width: 0;
  background: linear-gradient(90deg, #5b54f5, #6b64f5, #4a43e0);
  transform-origin: left;
  transition: width .08s linear;
}

/* Ambient cursor glow */
#cursorGlow {
  position: fixed;
  z-index: 0;
  width: 280px;
  height: 280px;
  left: 0;
  top: 0;
  pointer-events: none;
  border-radius: 999px;
  background: radial-gradient(circle, rgba(91,84,245,.07) 0, rgba(91,84,245,0) 68%);
  transform: translate(-50%, -50%);
  opacity: 0;
  transition: opacity .35s ease;
  will-change: transform;
}

/* Nav active state */
.nav-link {
  position: relative;
}
.nav-link::after {
  content: "";
  position: absolute;
  left: 0;
  right: 100%;
  bottom: -7px;
  height: 2px;
  border-radius: 999px;
  background: #5b54f5;
  transition: right .3s cubic-bezier(.22,1,.36,1);
}
.nav-link.active::after {
  right: 0;
}

/* Back-to-top */
#backToTop {
  transform: translateY(16px);
  opacity: 0;
  pointer-events: none;
  transition: opacity .3s ease, transform .3s cubic-bezier(.22,1,.36,1);
}
#backToTop.visible {
  opacity: 1;
  pointer-events: auto;
  transform: translateY(0);
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    scroll-behavior: auto !important;
    transition-duration: .01ms !important;
  }
  html { scroll-behavior: auto; }
  #cursorGlow { display: none; }
  .status-dot::after { animation: none; }
  .reveal {
    opacity: 1;
    transform: none;
    transition: none;
  }
}

/* Production a11y helpers */
.skip-link {
  position: absolute;
  left: -9999px;
  top: 0;
  z-index: 200;
  padding: 0.75rem 1rem;
  background: #5b54f5;
  color: #fff;
  font-weight: 700;
  border-radius: 0 0 0.75rem 0;
}
.skip-link:focus { left: 0; }

.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.final-box-centered { text-align: center; }

/* Diagram showcase — continuous motion, not stepped UML. */
.usedocs-diagram-section {
  --diagram-ink: #10152c;
  --diagram-muted: #64748b;
  --diagram-soft: #94a3b8;
  --diagram-accent: #5b54f5;
  --diagram-accent-deep: #4338ca;
  --diagram-accent-tint: #f0effe;
  --diagram-font: Inter, ui-sans-serif, system-ui, sans-serif;
  --diagram-mono: ui-monospace, SFMono-Regular, Menlo, monospace;
  --beat: 6s;
  --orbit: 6s;
}
.usedocs-diagram-panel {
  overflow: hidden;
  isolation: isolate;
  border: 1px solid rgb(226 232 240);
  border-radius: 1.5rem;
  background: #fff;
  box-shadow: 0 1px 2px rgba(16, 21, 44, .04), 0 28px 56px -32px rgba(91, 84, 245, .3);
  clip-path: inset(0 round 1.5rem);
}
.usedocs-diagram-panel-feature {
  display: grid;
  grid-template-columns: minmax(240px, .64fr) minmax(0, 1.36fr);
  align-items: stretch;
}
.usedocs-diagram-copy {
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 2.4rem 2.2rem;
}
.usedocs-diagram-panel-feature .usedocs-diagram-copy { padding: 3rem; }
.usedocs-diagram-kicker {
  color: var(--diagram-accent);
  font-family: var(--diagram-mono);
  font-size: .68rem;
  font-weight: 700;
  letter-spacing: .12em;
  text-transform: uppercase;
}
.usedocs-diagram-heading {
  margin-top: .8rem;
  color: var(--diagram-ink);
  font-size: clamp(1.35rem, 2vw, 1.85rem);
  font-weight: 900;
  letter-spacing: -.035em;
  line-height: 1.08;
}
.usedocs-diagram-body {
  margin-top: 1rem;
  color: rgb(100 116 139);
  font-size: .9rem;
  line-height: 1.7;
}
.usedocs-diagram-links {
  display: flex;
  flex-wrap: wrap;
  gap: .55rem 1rem;
  margin-top: 1.15rem;
}
.usedocs-diagram-links a {
  color: var(--diagram-accent);
  font-size: .78rem;
  font-weight: 750;
  text-decoration: none;
  transition: color 160ms ease, transform 160ms ease;
}
.usedocs-diagram-links a:hover {
  color: #3f39c9;
  transform: translateY(-1px);
}
.usedocs-diagram-links a:focus-visible {
  border-radius: .25rem;
  outline: 2px solid rgba(91, 84, 245, .45);
  outline-offset: 3px;
}
.usedocs-diagram-note {
  display: flex;
  gap: .6rem;
  align-items: flex-start;
  margin-top: 1.4rem;
  color: rgb(71 85 105);
  font-size: .76rem;
  font-weight: 700;
  line-height: 1.5;
}
.usedocs-diagram-note span:first-child {
  display: grid;
  width: 1.35rem;
  height: 1.35rem;
  flex: 0 0 1.35rem;
  place-items: center;
  border-radius: 999px;
  background: var(--diagram-accent-tint);
  color: var(--diagram-accent);
  font-size: .8rem;
}
.usedocs-diagram-canvas {
  position: relative;
  min-width: 0;
  min-height: 28rem;
  display: flex;
  align-items: center;
  padding: 1.6rem;
  overflow: hidden;
  contain: paint;
  isolation: isolate;
  clip-path: inset(0);
  border-left: 1px solid rgb(241 245 249);
  background-color: #f4f5fd;
  background-image:
    radial-gradient(ellipse at 70% 28%, rgba(91, 84, 245, .16), transparent 46%),
    radial-gradient(ellipse at 18% 82%, rgba(116, 170, 255, .1), transparent 40%),
    radial-gradient(rgba(91, 84, 245, .14) 1px, transparent 1.2px);
  background-size: auto, auto, 20px 20px;
}
.usedocs-diagram-svg {
  display: block;
  width: 100%;
  height: auto;
  overflow: hidden;
  transform-origin: center;
}

.usedocs-diagram-node,
.usedocs-diagram-bubble,
.usedocs-diagram-queue-card,
.usedocs-diagram-window {
  fill: rgba(255,255,255,.94);
  stroke: rgba(16, 21, 44, .07);
  stroke-width: 1;
}
.usedocs-diagram-node-accent,
.usedocs-diagram-bubble-accent {
  fill: var(--diagram-accent);
  stroke: transparent;
}
.usedocs-diagram-node-glow {
  fill: none;
  stroke: rgba(91, 84, 245, .7);
  stroke-width: 1.5;
  opacity: 0;
  transform-box: fill-box;
  transform-origin: center;
}
.usedocs-diagram-hub {
  stroke: rgba(255,255,255,.7);
  stroke-width: 2;
  transform-box: fill-box;
  transform-origin: center;
}
.usedocs-diagram-hub-halo {
  fill: none;
  stroke: rgba(91, 84, 245, .28);
  stroke-width: 1.4;
  stroke-dasharray: 3 6;
  stroke-linecap: round;
  transform-box: fill-box;
  transform-origin: center;
}
.usedocs-diagram-orbit-guide {
  fill: none;
  stroke: rgba(91, 84, 245, .1);
  stroke-width: 1;
  stroke-dasharray: 3 8;
  stroke-linecap: round;
}
.usedocs-diagram-orbit-ring {
  fill: none;
  stroke: rgba(91, 84, 245, .42);
  stroke-width: 1.8;
  stroke-dasharray: 4 7;
  stroke-linecap: round;
}
.usedocs-diagram-zone {
  fill: rgba(255,255,255,.38);
  stroke: rgba(16, 21, 44, .05);
  stroke-width: 1;
}
.usedocs-diagram-zone-accent {
  fill: rgba(91, 84, 245, .06);
  stroke: rgba(91, 84, 245, .1);
}
.usedocs-diagram-zone-label,
.usedocs-diagram-kicker,
.usedocs-diagram-window-meta,
.usedocs-diagram-cite-label,
.usedocs-diagram-node-sub {
  font-family: var(--diagram-mono);
}
.usedocs-diagram-zone-label {
  fill: rgba(16, 21, 44, .4);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .16em;
}
.usedocs-diagram-node-title,
.usedocs-diagram-hub-title,
.usedocs-diagram-window-title,
.usedocs-diagram-bubble-text {
  fill: var(--diagram-ink);
  font-family: var(--diagram-font);
  font-size: 15px;
  font-weight: 700;
}
.usedocs-diagram-node-title-accent { fill: #fff; }
.usedocs-diagram-node-title-accent + .usedocs-diagram-node-sub {
  fill: rgba(255, 255, 255, .9);
}
.usedocs-diagram-node-sub {
  fill: var(--diagram-muted);
  font-size: 11px;
}
.usedocs-diagram-hub-title { fill: #fff; font-size: 16px; }
.usedocs-diagram-hub-sub { fill: rgba(255,255,255,.72); font-size: 11px; font-family: var(--diagram-mono); }
.usedocs-diagram-connector,
.usedocs-diagram-connector-accent {
  fill: none;
  stroke: #8b85f7;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-dasharray: 4 6;
}
.usedocs-diagram-connector-accent { stroke: var(--diagram-accent); stroke-width: 2; }
.usedocs-diagram-arrow-caption {
  fill: var(--diagram-accent);
  font-family: var(--diagram-mono);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .12em;
  text-transform: uppercase;
}
.usedocs-diagram-window-title { font-size: 16px; }
.usedocs-diagram-window-meta {
  fill: var(--diagram-muted);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.usedocs-diagram-window-rule {
  stroke: rgba(16, 21, 44, .08);
  stroke-width: 1;
}
.usedocs-diagram-live-dot { fill: #22c55e; }
.usedocs-diagram-bubble-text { font-size: 14px; font-weight: 600; }
.usedocs-diagram-bubble-text-on { fill: #fff; }
.usedocs-diagram-cite { fill: var(--diagram-accent-tint); stroke: none; }
.usedocs-diagram-cite-warn { fill: #fff7ed; }
.usedocs-diagram-cite-label {
  fill: var(--diagram-accent);
  font-size: 10px;
  font-weight: 700;
}
.usedocs-diagram-cite-warn + .usedocs-diagram-cite-label,
.usedocs-diagram-queue-card .usedocs-diagram-cite-label { fill: #c2410c; }
.usedocs-diagram-orb-soft { fill: #5b54f5; opacity: .22; }
.usedocs-diagram-orb-core { fill: #5b54f5; }
.usedocs-diagram-comet-head { fill: #fff; }

/* Motion */
.usedocs-diagram-loop-flow {
  pointer-events: none;
}
.usedocs-diagram-orb-arm {
  transform-box: view-box;
  transform-origin: 50% 51.5625%;
  transform: rotate(.055turn);
}
.usedocs-diagram-motion {
  --beat: 6s;
  --motion-step: 520ms;
  --motion-hold: 700ms;
  --motion-ease: cubic-bezier(.22, 1, .36, 1);
}
.usedocs-diagram-motion [data-motion-item] {
  transform-box: fill-box;
  transform-origin: center;
}
.usedocs-diagram-motion [data-motion-decorative] {
  opacity: 0;
  pointer-events: none;
}
.usedocs-diagram-motion.motion-ready[data-frame="prepared"] .usedocs-diagram-svg {
  opacity: 0;
}
.usedocs-diagram-motion.motion-ready[data-frame="play"] .usedocs-diagram-svg,
.usedocs-diagram-motion.motion-ready[data-frame="end"] .usedocs-diagram-svg,
.usedocs-diagram-motion.motion-ready[data-frame="live"] .usedocs-diagram-svg {
  opacity: 1;
  transition: opacity 620ms var(--motion-ease);
}
.usedocs-diagram-motion.motion-ready[data-frame="play"] [data-motion-item] {
  opacity: .26;
  transform: translateY(6px);
  transition: opacity var(--motion-step) var(--motion-ease),
              transform var(--motion-step) var(--motion-ease);
}
.usedocs-diagram-motion.motion-ready[data-frame="play"] [data-motion-item].is-visible {
  opacity: .68;
  transform: none;
}
.usedocs-diagram-motion.motion-ready[data-frame="play"] [data-motion-item].is-active {
  opacity: 1;
  transform: none;
}
.usedocs-diagram-motion.motion-ready[data-frame="play"] .usedocs-diagram-connector,
.usedocs-diagram-motion.motion-ready[data-frame="play"] .usedocs-diagram-connector-accent {
  opacity: .38;
  transition: opacity var(--motion-step) ease;
}
.usedocs-diagram-motion.motion-ready[data-frame="play"] .usedocs-diagram-arrow-caption {
  opacity: .58;
  transition: opacity var(--motion-step) ease;
}
.usedocs-diagram-motion.motion-ready[data-frame="end"] .usedocs-diagram-connector,
.usedocs-diagram-motion.motion-ready[data-frame="end"] .usedocs-diagram-connector-accent,
.usedocs-diagram-motion.motion-ready[data-frame="live"] .usedocs-diagram-connector,
.usedocs-diagram-motion.motion-ready[data-frame="live"] .usedocs-diagram-connector-accent,
.usedocs-diagram-motion.motion-ready[data-frame="end"] .usedocs-diagram-arrow-caption,
.usedocs-diagram-motion.motion-ready[data-frame="live"] .usedocs-diagram-arrow-caption {
  opacity: 1;
}
.usedocs-diagram-motion.motion-ready[data-frame="end"] [data-motion-item],
.usedocs-diagram-motion.motion-ready[data-frame="live"] [data-motion-item] {
  opacity: 1;
  transform: none;
}
.usedocs-diagram-motion.motion-ready[data-frame="play"] [data-motion-item].is-active > .usedocs-diagram-node-glow {
  animation: usedocs-diagram-stage-outline 680ms var(--motion-ease) both;
}
.usedocs-diagram-motion.motion-ready[data-frame="play"] [data-motion-item].is-active > .usedocs-diagram-node,
.usedocs-diagram-motion.motion-ready[data-frame="play"] [data-motion-item].is-active > .usedocs-diagram-bubble,
.usedocs-diagram-motion.motion-ready[data-frame="play"] [data-motion-item].is-active > .usedocs-diagram-queue-card {
  stroke: rgba(91, 84, 245, .45);
  stroke-width: 1.6;
}
.usedocs-diagram-motion.motion-ready[data-frame="live"] [data-motion-decorative]:not([data-step]) {
  opacity: 1;
  transition: opacity 420ms ease;
}
.usedocs-diagram-motion.motion-ready[data-frame="live"] .usedocs-diagram-orb-arm {
  animation: usedocs-diagram-orbit var(--beat) linear infinite;
}
.usedocs-diagram-motion.motion-ready[data-frame="live"] .usedocs-diagram-loop-tracer,
.usedocs-diagram-motion.motion-ready[data-frame="live"] .usedocs-diagram-comet-tail {
  fill: none;
  stroke: var(--diagram-accent);
  stroke-width: 2.6;
  stroke-linecap: round;
  stroke-dasharray: .055 .945;
  animation: usedocs-diagram-loop-trace var(--beat) linear infinite;
}
.usedocs-diagram-motion .usedocs-diagram-path-draw {
  fill: none;
  stroke: var(--diagram-accent);
  stroke-width: 3;
  stroke-linecap: round;
  stroke-dasharray: .18 .82;
  stroke-dashoffset: 1;
}
.usedocs-diagram-motion.motion-ready[data-frame="play"] .usedocs-diagram-path-draw.is-active {
  animation: usedocs-diagram-path-signal 760ms cubic-bezier(.4, 0, .2, 1) both;
}
.usedocs-diagram-motion.motion-ready[data-frame="live"] .usedocs-diagram-live-dot {
  animation: usedocs-diagram-live var(--beat) ease-in-out infinite;
}
.usedocs-diagram-motion.motion-paused *,
.usedocs-diagram-motion.motion-paused *::before {
  animation-play-state: paused !important;
}

@keyframes usedocs-diagram-orbit {
  from { transform: rotate(.055turn); }
  to { transform: rotate(1.055turn); }
}
@keyframes usedocs-diagram-stage-outline {
  0% { opacity: 0; transform: scale(.98); }
  45% { opacity: .82; }
  100% { opacity: .48; transform: none; }
}
@keyframes usedocs-diagram-loop-trace {
  to { stroke-dashoffset: -1; }
}
@keyframes usedocs-diagram-path-signal {
  0% { opacity: 0; stroke-dashoffset: 1; }
  18% { opacity: .9; }
  70% { opacity: .9; }
  100% { opacity: 0; stroke-dashoffset: 0; }
}
@keyframes usedocs-diagram-live {
  0% { opacity: 1; }
  70% { opacity: .35; }
  100% { opacity: 1; }
}
@keyframes usedocs-diagram-typing-window {
  0%, 10% { opacity: 0; }
  14%, 28% { opacity: 1; }
  34%, 100% { opacity: 0; }
}
@keyframes usedocs-diagram-typing-bounce {
  0%, 80%, 100% { transform: translateY(0); opacity: .4; }
  40% { transform: translateY(-3px); opacity: 1; }
}

@media (max-width: 1024px) {
  .usedocs-diagram-panel-feature { grid-template-columns: 1fr; }
  .usedocs-diagram-panel-feature .usedocs-diagram-copy { padding-bottom: 1.5rem; }
  .usedocs-diagram-canvas {
    border-left: 0;
    border-top: 1px solid rgb(241 245 249);
    min-height: 0;
  }
}
@media (max-width: 700px) {
  .usedocs-diagram-copy,
  .usedocs-diagram-panel-feature .usedocs-diagram-copy { padding: 1.5rem; }
  .usedocs-diagram-canvas { padding: .85rem .7rem; min-height: 0; }
}

@media (prefers-reduced-motion: reduce), print {
  .usedocs-diagram-motion [data-motion-decorative] { display: none; }
  .usedocs-diagram-motion [data-motion-item] {
    opacity: 1 !important;
    animation: none !important;
    transform: none !important;
    transition: none !important;
  }
  .usedocs-diagram-hub,
  .usedocs-diagram-hub-halo,
  .usedocs-diagram-connector,
  .usedocs-diagram-connector-accent,
  .usedocs-diagram-orbit-guide,
  .usedocs-diagram-orbit-ring,
  .usedocs-diagram-orb-arm,
  .usedocs-diagram-svg {
    animation: none !important;
    opacity: 1 !important;
    transform: none !important;
  }
}

/* Soft FAQ container — outer only, no heavy item boxes */
.faq-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  border: 1px solid rgb(226 232 240);
  border-radius: 1.5rem;
  background: #fff;
  overflow: hidden;
}
.faq-column {
  min-width: 0;
  padding: 0 1.5rem;
}
.faq-column + .faq-column {
  border-left: 1px solid rgb(241 245 249);
}
.faq-list .faq {
  border: 0;
}
.faq-column .faq + .faq {
  border-top: 1px solid rgb(241 245 249);
}

@media (max-width: 800px) {
  .faq-list {
    grid-template-columns: 1fr;
  }
  .faq-column + .faq-column {
    border-top: 1px solid rgb(241 245 249);
    border-left: 0;
  }
}

@keyframes marquee-scroll {
  from { transform: translateX(0); }
  to { transform: translateX(-50%); }
}

/* Integrations strip under hero — infinite horizontal marquee */
.logo-marquee-section .marquee-viewport {
  overflow: hidden;
  mask-image: linear-gradient(to right, transparent, #000 6%, #000 94%, transparent);
  -webkit-mask-image: linear-gradient(to right, transparent, #000 6%, #000 94%, transparent);
}
.logo-marquee-section .marquee-track {
  display: flex;
  flex-wrap: nowrap;
  align-items: center;
  width: max-content;
  gap: 2.75rem;
  font-size: 0.875rem;
  font-weight: 600;
  color: rgb(148 163 184);
  animation: marquee-scroll 32s linear infinite;
}
.logo-marquee-section .marquee-track span {
  flex: 0 0 auto;
  letter-spacing: 0.01em;
  transition: color 0.15s ease;
}
.logo-marquee-section .marquee-track span:hover {
  color: rgb(51 65 85);
}
@media (prefers-reduced-motion: reduce) {
  .logo-marquee-section .marquee-viewport {
    mask-image: none;
    -webkit-mask-image: none;
  }
  .logo-marquee-section .marquee-track {
    animation: none;
    flex-wrap: wrap;
    justify-content: center;
    width: auto;
    max-width: 56rem;
    margin-inline: auto;
    gap: 0.75rem 1.75rem;
  }
}

/* ambient depth */
body { background-image: radial-gradient(125% 125% at 50% 90%, rgba(91, 84, 245, .04), transparent); }


/* Responsive: landing homepage */
html, body {
  max-width: 100%;
  overflow-x: hidden;
}

/* Kill 3D tilt overflow on small screens */
@media (max-width: 1024px) {
  .doc-window {
    transform: none !important;
  }
  .doc-window:hover {
    transform: translateY(-3px) !important;
  }
  .feature-card,
  .pricing-card {
    transform: none;
  }
  .feature-card:hover,
  .pricing-card:hover {
    transform: translateY(-4px);
  }
  /* Hero preview: hide heavy mock sidebar on narrow tablets */
  #heroPreview .grid.min-h-\[430px\] {
    grid-template-columns: 1fr !important;
    min-height: 0 !important;
  }
  #heroPreview aside {
    display: none;
  }
  #heroPreview .float {
    position: static !important;
    width: 100% !important;
    margin-top: 12px;
    display: block !important;
  }
}

@media (max-width: 768px) {
  /* Header spacing */
  #navbar .mx-auto {
    height: 64px !important;
  }

  /* Type scale */
  #hero-heading {
    font-size: clamp(2.25rem, 9vw, 3.25rem) !important;
    line-height: 1.05 !important;
    letter-spacing: -0.03em !important;
  }

  section h2 {
    font-size: clamp(1.75rem, 7vw, 2.5rem) !important;
    line-height: 1.12 !important;
  }

  /* Section padding */
  section.relative.pt-28,
  section[class*="py-24"],
  section[class*="py-20"],
  section[class*="lg:py"] {
    padding-top: 4.5rem;
  }

  /* Stack CTAs full width */
  .micro-btn.shine,
  #demoBtn,
  a.micro-btn {
    width: 100%;
  }

  .mt-9.flex.flex-col.gap-3,
  .mt-9.flex {
    width: 100%;
  }

  /* Pricing: 1 col phones, 2 on sm handled by utilities */
  .pricing-toggle button {
    width: 110px;
    min-width: 110px;
    padding: 8px 6px;
    font-size: 12px;
  }

  /* Final CTA band */
  #cta .final-box,
  #cta .final-box-centered {
    padding-left: 1.25rem !important;
    padding-right: 1.25rem !important;
    padding-top: 2.25rem !important;
    padding-bottom: 2.25rem !important;
    border-radius: 1.25rem !important;
  }

  /* Footer: already grid; tighten gaps */
  footer .grid {
    gap: 2rem !important;
  }

  /* Mobile menu above content */
  #mobileMenu {
    z-index: 60;
  }

  /* Comparison / feature cards */
  .feature-card,
  .pricing-card {
    padding-left: 1.25rem;
    padding-right: 1.25rem;
  }

  /* How-it-works dashed connector */
  .relative.mt-16 .absolute.left-\[16\%\] {
    display: none !important;
  }

  /* Prevent absolute float cards from clipping */
  .reveal {
    max-width: 100%;
  }
}

@media (max-width: 480px) {
  #hero-heading {
    font-size: 2.05rem !important;
  }

  .doc-window {
    border-radius: 16px !important;
    padding: 0.5rem !important;
  }

  #heroPreview .relative.p-6 {
    padding: 1rem !important;
  }

  .logo-marquee-section .marquee-track {
    gap: 1.5rem;
    font-size: 12px;
    animation-duration: 26s;
  }

  .pricing-toggle button {
    width: 96px;
    min-width: 96px;
  }

  .savings-badge {
    display: none;
  }
}

/* Tablet: keep nav readable */
@media (min-width: 768px) and (max-width: 1023px) {
  nav.nav-link,
  #navbar nav a {
    font-size: 13px;
  }
  #navbar .gap-6 {
    gap: 1rem !important;
  }
}
