/* ================================================================
   POXY Verify Terminal — Full CSS
   Source: Stitch b6f56d5030234256900bb1fb12e13d43
   Every rule is a direct 1:1 translation of the Stitch Tailwind HTML.
   No legacy overrides. No conflicts.
   ================================================================ */

/* ── Panel wrapper ──
   Must fill full viewport height and use Stitch's exact body bg (#050506).
   SPA container shows #131313 behind panels — override with !important. */
#stPanelVerify {
  position: relative;
  overflow: visible;
  overflow-x: clip;
  background: #050506 !important;
}

/* ── Main canvas ──
   Stitch: <main class="flex-grow pt-20 pb-6 px-6 w-full flex flex-col gap-4 z-10 relative">
   pt-20 is for fixed nav (64px+) — in SPA context we use less top padding */
.poxy-verify-page {
  display: flex;
  flex-direction: column;
  gap: 18px;
  padding: 20px 16px 56px;
  width: 100%;
  max-width: 1440px;
  margin: 0 auto;
  min-height: calc(100dvh - var(--st-nav-h, 92px));
  box-sizing: border-box;
  position: relative;
  z-index: 2;
  overflow: visible;
  background: transparent;
  align-items: stretch;
  color: #e5e2e3;
  font-family: 'Hanken Grotesk', Inter, system-ui, sans-serif;
}
@media (min-width: 768px) {
  .poxy-verify-page { padding: 28px 28px 64px; gap: 20px; }
}
@media (min-width: 1280px) {
  .poxy-verify-page { padding: 32px 48px 72px; gap: 22px; }
}

/* Ambient glow + bg mesh — handled globally by poxy-obsidian-ambient.css */
.vt-ambient-center,
.vt-bg-mesh {
  display: none !important;
}

/* ════════════════════════════════════════════════════════
   HEADER + INPUT BENTO CARD (combined single card)
   Stitch: bento-card bg-[#0d0d0f] border border-white/5
           rounded-3xl p-8 w-full
           flex flex-col lg:flex-row items-center justify-between
           gap-8 relative overflow-hidden
   ════════════════════════════════════════════════════════ */
.vt-input-bento {
  background: #0d0d0f;
  border: 1px solid rgba(255, 255, 255, 0.05);
  border-radius: 1.5rem;           /* rounded-3xl */
  padding: 24px;
  width: 100%;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: space-between;
  gap: 24px;
  position: relative;
  overflow: hidden;
  box-sizing: border-box;
}
@media (min-width: 1024px) {
  .vt-input-bento {
    flex-direction: row;
    align-items: center;
    padding: 28px;
    gap: 28px;
  }
}

/* Pink ambient blob inside header card
   Stitch: absolute w-[400px] h-[400px] bg-pink-400/5 rounded-full blur-[100px] animate-pulse */
.vt-input-bento__blob {
  position: absolute;
  width: 400px;
  height: 400px;
  background: rgba(244, 114, 182, 0.05);
  border-radius: 50%;
  filter: blur(100px);
  animation: vtMeshFloat 4s ease-in-out infinite alternate;
  z-index: 0;
  top: 50%;
  left: -50px;
  transform: translateY(-50%);
  pointer-events: none;
}

/* ── Left side: badge + title + description ──
   Stitch: flex flex-col gap-4 z-10 lg:w-1/2 */
.vt-hdr-left {
  display: flex;
  flex-direction: column;
  gap: 16px;                       /* gap-4 */
  position: relative;
  z-index: 1;
  width: 100%;
}
@media (min-width: 1024px) { .vt-hdr-left { width: 50%; } }

/* Protocol badge
   Stitch: bg-white/5 border border-white/20 text-white px-3 py-1
           rounded-full font-label-lg text-[10px] uppercase tracking-widest
           inline-flex items-center gap-2 self-start */
.vt-protocol-badge {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  align-self: flex-start;
  background: rgba(255, 255, 255, 0.05);
  border: 1px solid rgba(255, 255, 255, 0.20);
  color: #ffffff;
  padding: 5px 12px;
  border-radius: 9999px;
  font-family: 'Hanken Grotesk', Inter, sans-serif;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.10em;
  text-transform: uppercase;
}
.vt-protocol-badge .material-symbols-outlined { font-size: 14px; }

/* Page title
   Stitch: font-headline-lg text-[48px] text-white uppercase leading-none
           drop-shadow-lg tracking-tighter */
.vt-page-title {
  font-family: 'Hanken Grotesk', Inter, sans-serif;
  font-size: clamp(1.65rem, 3.8vw, 40px);
  font-weight: 800;
  color: #ffffff;
  text-transform: uppercase;
  line-height: 1;
  letter-spacing: -0.04em;
  margin: 0;
}

/* Page description
   Stitch: font-body-md text-gray-400 max-w-lg border-l pl-4 py-1 text-sm border-white/20 */
.vt-page-desc {
  color: #9ca3af;
  max-width: 480px;
  border-left: 1px solid rgba(255, 255, 255, 0.20);
  padding: 4px 0 4px 16px;
  font-size: 14px;
  line-height: 1.6;
  font-family: 'Hanken Grotesk', Inter, sans-serif;
}

/* ── Right side: filter tabs + search bar ──
   Stitch: w-full lg:w-1/2 flex flex-col gap-4 items-end z-10 */
.vt-search-area {
  display: flex;
  flex-direction: column;
  gap: 16px;                       /* gap-4 */
  width: 100%;
  align-items: flex-end;
  position: relative;
  z-index: 1;
}
@media (min-width: 1024px) { .vt-search-area { width: 50%; } }

/* Filter tabs container — Stitch: flex gap-2 */
.vt-tabs {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  justify-content: flex-end;
}

/* Filter pill — inactive
   Stitch: font-label-lg text-[10px] px-4 py-2 rounded-full
           text-gray-400 bg-white/5 border border-white/10 */
.vt-tab-btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 8px 16px;
  border-radius: 9999px;
  font-family: 'Hanken Grotesk', Inter, sans-serif;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  cursor: pointer;
  transition: color 0.2s, background 0.2s, border-color 0.2s;
  background: rgba(255, 255, 255, 0.05);
  border: 1px solid rgba(255, 255, 255, 0.10);
  color: #9ca3af;
}
.vt-tab-btn:hover {
  color: #ffffff;
  background: rgba(255, 255, 255, 0.10);
}
.vt-tab-btn .material-symbols-outlined { font-size: 14px; }

/* Filter pill — ACTIVE
   Stitch: bg-white text-black border border-white — solid white pill */
.vt-tab-btn--active {
  background: #ffffff !important;
  border-color: #ffffff !important;
  color: #080809 !important;
}
.vt-tab-btn--active .material-symbols-outlined { color: #080809 !important; }

/* Search bar wrapper — Stitch: w-full flex relative group */
.vt-search-bar {
  display: flex;
  align-items: center;
  position: relative;
  width: 100%;
}

/* Search input
   Stitch: bg-[#050506] border border-white/10 text-white font-mono-style
           px-6 h-14 rounded-3xl pl-6 pr-32 */
.vt-search-input {
  width: 100%;
  background: #050506;
  border: 1px solid rgba(255, 255, 255, 0.10);
  border-radius: 9999px;
  padding: 0 130px 0 24px;
  height: 50px;
  font-family: 'JetBrains Mono', monospace;
  font-size: 13px;
  color: #ffffff;
  outline: none;
  transition: border-color 0.25s, box-shadow 0.25s;
  box-sizing: border-box;
}
.vt-search-input::placeholder { color: rgba(156, 163, 175, 0.5); font-size: 12px; }

/* VERIFY button
   Stitch: absolute right-1 top-1 bottom-1 bg-white text-[#080809]
           font-label-lg text-[12px] px-6 rounded-2xl hover:bg-pink-100 */
.vt-search-btn {
  position: absolute;
  right: 4px;
  top: 4px;
  bottom: 4px;
  background: #ffffff;
  color: #080809;
  border: none;
  border-radius: 9999px;
  padding: 0 24px;
  font-family: 'Hanken Grotesk', Inter, sans-serif;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  transition: background 0.2s;
  flex-shrink: 0;
}
.vt-search-btn:hover { background: #fbcfe8; }
.vt-search-btn .material-symbols-outlined { font-size: 16px; }

/* ════════════════════════════════════════════════════════
   MAIN TERMINAL GRID
   Stitch: grid grid-cols-1 lg:grid-cols-12 w-full flex-grow gap-6
   ════════════════════════════════════════════════════════ */
.vt-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 18px;
  width: 100%;
  position: relative;
  z-index: 1;
}
@media (min-width: 1024px) {
  .vt-grid {
    grid-template-columns: repeat(12, 1fr);
    align-items: start;
  }
}

/* ════════════════════════════════════════════════════════
   VALIDATION PATH PANEL  (col-span-4)
   Stitch: bento-card lg:col-span-4 bg-[#0d0d0f] border border-white/5
           rounded-3xl p-6 relative overflow-hidden
   ════════════════════════════════════════════════════════ */
.vt-validation-panel {
  background: #0d0d0f;
  border: 1px solid rgba(255, 255, 255, 0.05);
  border-radius: 1.5rem;
  padding: 20px;
  position: relative;
  overflow: visible;
  box-sizing: border-box;
}
@media (min-width: 1024px) { .vt-validation-panel { grid-column: span 4; } }

/* Panel title
   Stitch: flex items-center gap-3 · icon text-white · text font-black text-white uppercase */
.vt-panel-title {
  display: flex;
  align-items: center;
  gap: 12px;
  font-family: 'Hanken Grotesk', Inter, sans-serif;
  font-size: 17px;
  font-weight: 900;
  color: #ffffff;
  text-transform: uppercase;
  letter-spacing: -0.01em;
  margin-bottom: 24px;
}
.vt-panel-title .material-symbols-outlined { color: #ffffff; font-size: 22px; }

/* Vertical timeline
   Stitch: relative pl-4 mt-2 border-l border-white/10 flex flex-col gap-6 overflow-hidden */
.vt-steps {
  position: relative;
  padding-left: 16px;
  border-left: none;
  display: flex;
  flex-direction: column;
  gap: 20px;
  overflow: visible;
  margin-top: 8px;
  --vt-line-top: 10px;
  --vt-line-height: 0px;
}
/* Dim track — static segment from step 1 icon center to step 3 icon center */
.vt-steps::before {
  content: '';
  position: absolute;
  left: 0;
  top: var(--vt-line-top);
  width: 1px;
  height: var(--vt-line-height);
  background: rgba(255, 255, 255, 0.10);
  pointer-events: none;
}

.vt-step {
  position: relative;
}

/* Step icon (done)
   Stitch: absolute w-5 h-5 rounded-full -left-[27px] top-0
           border-[3px] border-[#0d0d0f] status-glow bg-white */
.vt-step__icon {
  position: absolute;
  width: 20px;
  height: 20px;
  border-radius: 50%;
  left: -27px;
  top: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 1;
}
.vt-step__icon--done {
  background: #ffffff;             /* bg-white — NOT pink */
  border: 3px solid #0d0d0f;
}
.vt-step__icon--done .material-symbols-outlined {
  color: #080809;                  /* dark icon on white bubble */
  font-size: 10px;
}
.vt-step__icon--pending {
  background: #050506;
  border: 1px solid rgba(255, 255, 255, 0.20);
}
.vt-step__icon--pending::after {
  content: '';
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.20);
}

.vt-step__body { padding-left: 4px; }

/* Phase name — Stitch: font-label-lg text-[11px] text-white uppercase font-black tracking-wider */
.vt-step__name {
  font-family: 'Hanken Grotesk', Inter, sans-serif;
  font-size: 11px;
  font-weight: 900;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: #ffffff;
  margin-bottom: 4px;
}

/* Phase description — Stitch: font-body-md text-gray-400 text-xs */
.vt-step__desc {
  font-size: 12px;
  color: #9ca3af;
  line-height: 1.5;
  margin-bottom: 6px;
  font-family: 'Hanken Grotesk', Inter, sans-serif;
}

/* Phase hash box
   Stitch: bg-[#050506] border border-white/5 rounded-md p-2 mt-1
           font-mono-style break-all text-[11px] text-white */
.vt-step__hash {
  background: #050506;
  border: 1px solid rgba(255, 255, 255, 0.05);
  border-radius: 6px;
  padding: 8px 10px;
  font-family: 'JetBrains Mono', monospace;
  font-size: 11px;
  color: #ffffff;                  /* text-white — NOT pink */
  word-break: break-all;
  margin-top: 4px;
  line-height: 1.5;
}

/* Data pulse line — static accent from first to last step icon center */
.vt-data-pulse-line {
  position: absolute;
  left: -1px;
  top: var(--vt-line-top);
  width: 2px;
  height: var(--vt-line-height);
  background: linear-gradient(
    to bottom,
    rgba(251, 207, 232, 0.25) 0%,
    rgba(251, 207, 232, 0.75) 50%,
    rgba(251, 207, 232, 0.25) 100%
  );
  transform: none;
  animation: none;
  opacity: 0.55;
  pointer-events: none;
  z-index: 0;
}

/* ════════════════════════════════════════════════════════
   RIGHT COLUMN  (col-span-8)
   Stitch: lg:col-span-8 flex flex-col gap-4
   ════════════════════════════════════════════════════════ */
.vt-right-col {
  display: flex;
  flex-direction: column;
  gap: 14px;
}
@media (min-width: 1024px) { .vt-right-col { grid-column: span 8; } }

/* ── ASSET PROOF RECEIPT ──
   Stitch: bento-card bg-[#0d0d0f] border border-white/5
           rounded-3xl p-6 relative overflow-hidden flex-grow */
.vt-receipt {
  background: #0d0d0f;
  border: 1px solid rgba(255, 255, 255, 0.05);
  border-radius: 1.5rem;
  padding: 20px;
  position: relative;
  overflow: hidden;
  flex-grow: 1;
  box-sizing: border-box;
}

.vt-receipt__corner-glow {
  position: absolute;
  right: -80px;
  bottom: -80px;
  width: 256px;
  height: 256px;
  background: rgba(20, 184, 166, 0.08);
  border-radius: 50%;
  filter: blur(60px);
  pointer-events: none;
}

/* Receipt top row — Stitch: flex justify-between items-start border-b border-white/5 pb-4 mb-6 */
.vt-receipt__top {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  margin-bottom: 24px;
  padding-bottom: 16px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.05);
}

.vt-receipt__badges {
  display: flex;
  gap: 8px;
  margin-bottom: 12px;
  flex-wrap: wrap;
}

/* "Valid Signatures" badge
   Stitch: bg-white/5 text-gray-300 rounded-full border border-white/5 text-[9px] */
.vt-receipt__badge--sig {
  display: inline-flex;
  align-items: center;
  padding: 3px 8px;
  background: rgba(255, 255, 255, 0.05);
  border: 1px solid rgba(255, 255, 255, 0.05);
  border-radius: 9999px;
  font-family: 'Hanken Grotesk', Inter, sans-serif;
  font-size: 9px;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: #d1d5db;
}

/* "Verified" badge — Stitch: bg-teal-500/10 text-teal-400 border border-teal-500/20 */
.vt-receipt__badge--ok {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 3px 8px;
  background: rgba(20, 184, 166, 0.10);
  border: 1px solid rgba(20, 184, 166, 0.20);
  border-radius: 9999px;
  font-family: 'Hanken Grotesk', Inter, sans-serif;
  font-size: 9px;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: #2dd4bf;
}
.vt-receipt__badge--ok .material-symbols-outlined { font-size: 10px; }

/* DESTROY / burn — amber warning, not mint-teal "verified" */
.vt-receipt__badge--burn {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 3px 8px;
  background: rgba(245, 158, 11, 0.12);
  border: 1px solid rgba(245, 158, 11, 0.28);
  border-radius: 9999px;
  font-family: 'Hanken Grotesk', Inter, sans-serif;
  font-size: 9px;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: #fbbf24;
}
.vt-receipt__badge--burn .material-symbols-outlined { font-size: 10px; }

/* Receipt title — Stitch: font-headline-md text-[24px] font-black text-white uppercase tracking-tight */
.vt-receipt__title {
  font-family: 'Hanken Grotesk', Inter, sans-serif;
  font-size: 24px;
  font-weight: 900;
  color: #ffffff;
  text-transform: uppercase;
  letter-spacing: -0.01em;
  margin: 0;
}

/* Timestamp */
.vt-receipt__ts-wrap { text-align: right; flex-shrink: 0; }
.vt-receipt__ts-label {
  font-family: 'Hanken Grotesk', Inter, sans-serif;
  font-size: 9px;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: #6b7280;
  margin-bottom: 4px;
  display: block;
}
.vt-receipt__ts {
  font-family: 'JetBrains Mono', monospace;
  font-size: 12px;
  color: #ffffff;
}

/* Data fields grid — Stitch: grid grid-cols-1 md:grid-cols-2 gap-x-6 gap-y-4 */
.vt-receipt__fields {
  display: grid;
  grid-template-columns: 1fr;
  gap: 16px;
}
@media (min-width: 600px) {
  .vt-receipt__fields {
    grid-template-columns: 1fr 1fr;
    column-gap: 24px;
    row-gap: 16px;
  }
}

/* Field label — Stitch: font-label-lg text-[9px] text-gray-500 uppercase flex items-center gap-1.5 tracking-wider */
.vt-field__label {
  display: flex;
  align-items: center;
  gap: 6px;
  font-family: 'Hanken Grotesk', Inter, sans-serif;
  font-size: 9px;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: #6b7280;
  margin-bottom: 8px;
}
.vt-field__label .material-symbols-outlined { font-size: 12px; }

/* Field value — Stitch: bg-[#050506] border border-white/5 rounded-xl p-3 font-mono-style text-gray-400 text-xs */
.vt-field__value {
  background: #050506;
  border: 1px solid rgba(255, 255, 255, 0.05);
  border-radius: 12px;
  padding: 12px;
  font-family: 'JetBrains Mono', monospace;
  font-size: 12px;
  color: #9ca3af;
  word-break: break-all;
  line-height: 1.6;
}

/* Download button
   Stitch: bg-white/[0.03] hover:bg-white/10 border border-white/10
           text-white font-label-lg text-[10px] py-3 rounded-xl spring-transition btn-magnetic */
.vt-download-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  width: 100%;
  padding: 12px 18px;
  border-radius: 12px;
  border: 1px solid rgba(255, 255, 255, 0.10);
  background: rgba(255, 255, 255, 0.03);
  color: #ffffff;
  font-family: 'Hanken Grotesk', Inter, sans-serif;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.10em;
  text-transform: uppercase;
  cursor: pointer;
  transition: background 0.5s cubic-bezier(0.34, 1.56, 0.64, 1);
}
.vt-download-btn:hover { background: rgba(255, 255, 255, 0.10); }
.vt-download-btn .material-symbols-outlined { font-size: 14px; }

/* ── LIVE CONSOLE TERMINAL ──
   Stitch: bento-card bg-[#0d0d0f] border border-white/5
           rounded-3xl flex flex-col min-h-[140px] overflow-hidden mt-2 */
.vt-console {
  background: #0d0d0f;
  border: 1px solid rgba(255, 255, 255, 0.05);
  border-radius: 1.5rem;
  display: flex;
  flex-direction: column;
  min-height: 120px;
  overflow: hidden;
}

/* Terminal toolbar — Stitch: border-b border-white/5 px-4 py-2 flex items-center */
.vt-console__toolbar {
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 8px 16px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.05);
}

/* Traffic light dots — Stitch: w-2.5 h-2.5 rounded-full bg-white/10 */
.vt-console__dot {
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.10);
  flex-shrink: 0;
}
.vt-console__dot--r { background: rgba(255, 255, 255, 0.10); }
.vt-console__dot--y { background: rgba(255, 255, 255, 0.10); }
.vt-console__dot--g { background: rgba(255, 255, 255, 0.10); }

/* Console label — Stitch: font-mono-style text-gray-500 text-[10px] tracking-wider */
.vt-console__label {
  font-family: 'JetBrains Mono', monospace;
  font-size: 10px;
  color: #6b7280;
  letter-spacing: 0.05em;
  margin-left: 8px;
}

/* Terminal body
   Stitch: p-4 bg-transparent flex-grow font-mono-style text-gray-400 text-xs
           flex flex-col gap-1 opacity-70 */
.vt-console__body {
  padding: 16px;
  background: transparent;
  flex-grow: 1;
  font-family: 'JetBrains Mono', monospace;
  font-size: 12px;
  line-height: 1.8;
  color: #9ca3af;
  opacity: 0.7;
  min-height: 80px;
  max-height: 160px;
  overflow-y: auto;
  display: flex;
  flex-direction: column;
  gap: 4px;
}
/* Hide scrollbar on console body — no second page-level bar (wheel scroll still works). */
.vt-console__body { scrollbar-width: none; -ms-overflow-style: none; }
.vt-console__body::-webkit-scrollbar { width: 0; height: 0; display: none; }

/* Log colors */
.vt-log-ok     { color: rgba(74, 222, 128, 0.7); }
.vt-log-accent { color: #ffffff; }
.vt-log-err    { color: #f87171; }
.vt-log-cursor {
  display: inline-block;
  animation: vtCursorBlink 1s step-end infinite;
}

/* ════════════════════════════════════════════════════════
   ANIMATIONS  — exact Stitch timings, 1:1
   ════════════════════════════════════════════════════════ */

/* Bento card staggered entrance
   Stitch: opacity 0→1 translateY(20px)→0, 0.8s cubic-bezier(0.16,1,0.3,1) */
.vt-bento-card {
  opacity: 0;
  transform: translateY(20px);
  transition:
    opacity  0.8s cubic-bezier(0.16, 1, 0.3, 1),
    transform 0.8s cubic-bezier(0.16, 1, 0.3, 1);
}
.vt-bento-card.vt-visible {
  opacity: 1;
  transform: translateY(0);
}

/* Breath glow on done step icons — Stitch: breathGlow 3s infinite ease-in-out */
.vt-status-glow {
  animation: vtBreathGlow 3s infinite ease-in-out;
}
@keyframes vtBreathGlow {
  0%, 100% { box-shadow: 0 0 10px rgba(251, 207, 232, 0.2); }
  50%       { box-shadow: 0 0 20px rgba(251, 207, 232, 0.6); }
}

/* Data pulse — Stitch: dataPulse 2.5s infinite linear */
@keyframes vtDataPulse {
  0%   { transform: translateY(-100%); }
  100% { transform: translateY(100%); }
}

/* Input shimmer on focus — Stitch: shimmerEdge 2s infinite */
.vt-search-input.vt-input-shimmer:focus {
  animation: vtShimmerEdge 2s infinite;
  outline: none;
}
@keyframes vtShimmerEdge {
  0%, 100% {
    border-color: rgba(255, 255, 255, 0.10);
    box-shadow: 0 0 0 rgba(236, 72, 153, 0);
  }
  50% {
    border-color: rgba(251, 207, 232, 0.40);
    box-shadow: 0 0 15px rgba(236, 72, 153, 0.15);
  }
}

/* Magnetic button — Stitch: transform 0.2s cubic-bezier(0.25,0.46,0.45,0.94) */
.vt-btn-magnetic {
  transition:
    transform  0.2s cubic-bezier(0.25, 0.46, 0.45, 0.94),
    box-shadow 0.2s ease;
}
.vt-btn-magnetic:active { transform: scale(0.95) !important; }

/* Cursor blink — Stitch: blink 1s step-end infinite */
@keyframes vtCursorBlink {
  0%, 100% { opacity: 1; }
  50%       { opacity: 0; }
}

/* Mesh float — Stitch: meshFloat 20s ease-in-out infinite alternate */
@keyframes vtMeshFloat {
  0%   { transform: scale(1)    translate(0,   0);   }
  50%  { transform: scale(1.10) translate(2%,  2%);  }
  100% { transform: scale(1)    translate(-2%, -2%); }
}

/* Spring transition helper */
.vt-spring {
  transition: all 0.5s cubic-bezier(0.34, 1.56, 0.64, 1);
}

/* Reduced motion */
@media (prefers-reduced-motion: reduce) {
  .vt-bento-card,
  .vt-data-pulse-line,
  .vt-status-glow,
  .vt-search-input.vt-input-shimmer:focus,
  .vt-log-cursor,
  .vt-bg-mesh,
  .vt-input-bento__blob {
    animation: none !important;
    transition: opacity 0.3s ease !important;
    transform: none !important;
    opacity: 1 !important;
  }
}
