/* =========================================================================
   Clover Trade — landing page (advanced pass)
   Scoped entirely under .cv-landing so nothing here can affect
   dashboard.php or any other page that doesn't load this file.
   ========================================================================= */

.cv-landing {
  --cv-ink:       #0B0F14;
  --cv-surface:   #121821;
  --cv-surface-2: #182230;
  --cv-line:      rgba(255,255,255,0.08);
  --cv-text:      #E8EDF2;
  --cv-text-dim:  #8A94A3;
  --cv-mint:      #2EE6A6;
  --cv-mint-dim:  rgba(46,230,166,0.14);
  --cv-gold:      #F0B429;
  --cv-gold-dim:  rgba(240,180,41,0.14);
  --cv-red:       #FF6B6B;

  background: var(--cv-ink);
  color: var(--cv-text);
  font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
  -webkit-font-smoothing: antialiased;
}

.cv-landing * { box-sizing: border-box; }

.cv-landing h1, .cv-landing h2, .cv-landing h3 {
  font-family: 'Space Grotesk', 'Inter', sans-serif;
  letter-spacing: -0.01em;
  margin: 0;
}

.cv-mono { font-family: 'IBM Plex Mono', ui-monospace, monospace; }

.cv-container { max-width: 1180px; margin: 0 auto; padding: 0 24px; }

/* ---------- Nav ---------- */
.cv-nav {
  position: sticky; top: 0; z-index: 40;
  background: rgba(11,15,20,0.72);
  backdrop-filter: blur(14px); -webkit-backdrop-filter: blur(14px);
  border-bottom: 1px solid var(--cv-line);
}
.cv-nav-inner {
  max-width: 1180px; margin: 0 auto; padding: 14px 24px;
  display: flex; align-items: center; justify-content: space-between; gap: 20px;
}
.cv-brand { display: flex; align-items: center; gap: 10px; }
.cv-brand-mark {
  width: 32px; height: 32px; border-radius: 9px;
  background: linear-gradient(135deg, var(--cv-mint), #17b384);
  color: #04231a; display: flex; align-items: center; justify-content: center;
  font-weight: 700; font-family: 'Space Grotesk', sans-serif; font-size: 15px; flex-shrink: 0;
  overflow: hidden;
}
.cv-brand-name { font-weight: 600; font-size: 16px; letter-spacing: -0.01em; }
.cv-nav-links { display: flex; gap: 28px; }
.cv-nav-links a { color: var(--cv-text-dim); text-decoration: none; font-size: 14px; transition: color .15s ease; }
.cv-nav-links a:hover { color: var(--cv-text); }
.cv-nav-actions { display: flex; align-items: center; gap: 10px; }

.cv-btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  padding: 9px 18px; border-radius: 9px; font-size: 14px; font-weight: 600;
  text-decoration: none; border: 1px solid transparent; cursor: pointer;
  transition: transform .15s ease, background .15s ease, border-color .15s ease, box-shadow .15s ease;
  white-space: nowrap;
}
.cv-btn:active { transform: translateY(1px); }
.cv-btn-ghost { color: var(--cv-text); border-color: var(--cv-line); background: transparent; }
.cv-btn-ghost:hover { border-color: rgba(255,255,255,0.22); background: rgba(255,255,255,0.03); }
.cv-btn-primary { color: #04231a; background: var(--cv-mint); }
.cv-btn-primary:hover { box-shadow: 0 4px 18px rgba(46,230,166,0.28); transform: translateY(-1px); }
.cv-btn-lg { padding: 13px 26px; font-size: 15.5px; border-radius: 11px; }

/* ---------- Ticker tape ---------- */
.cv-ticker-wrap { border-bottom: 1px solid var(--cv-line); background: var(--cv-surface); overflow: hidden; position: relative; }
.cv-ticker-wrap::before, .cv-ticker-wrap::after {
  content: ''; position: absolute; top: 0; bottom: 0; width: 60px; z-index: 2; pointer-events: none;
}
.cv-ticker-wrap::before { left: 0; background: linear-gradient(90deg, var(--cv-surface), transparent); }
.cv-ticker-wrap::after  { right: 0; background: linear-gradient(270deg, var(--cv-surface), transparent); }
.cv-ticker-track { display: flex; width: max-content; animation: cv-marquee 34s linear infinite; }
.cv-ticker-wrap:hover .cv-ticker-track { animation-play-state: paused; }
@keyframes cv-marquee { from { transform: translateX(0); } to { transform: translateX(-50%); } }
.cv-ticker-item { display: flex; align-items: center; gap: 10px; padding: 10px 26px; font-size: 13px; border-right: 1px solid var(--cv-line); flex-shrink: 0; }
.cv-ticker-glyph { width: 20px; height: 20px; border-radius: 6px; display: flex; align-items: center; justify-content: center; font-size: 11px; color: #04231a; font-weight: 700; flex-shrink: 0; }
.cv-ticker-sym { color: var(--cv-text-dim); }
.cv-ticker-price { font-weight: 600; }
.cv-ticker-chg.up { color: var(--cv-mint); }
.cv-ticker-chg.down { color: var(--cv-red); }
.cv-ticker-soon { color: var(--cv-gold); font-size: 11px; letter-spacing: .04em; text-transform: uppercase; border: 1px dashed rgba(240,180,41,0.4); padding: 1px 7px; border-radius: 5px; }
.cv-ticker-live { display: flex; align-items: center; gap: 7px; padding: 10px 20px; font-size: 11px; letter-spacing: .06em; text-transform: uppercase; color: var(--cv-mint); font-weight: 600; flex-shrink: 0; }

@keyframes cv-pulse { 0% { box-shadow: 0 0 0 0 rgba(46,230,166,.55); } 70% { box-shadow: 0 0 0 7px rgba(46,230,166,0); } 100% { box-shadow: 0 0 0 0 rgba(46,230,166,0); } }
.cv-live-dot { width: 7px; height: 7px; border-radius: 50%; background: var(--cv-mint); animation: cv-pulse 1.8s infinite; flex-shrink: 0; }
@keyframes cv-pulse-gold { 0% { box-shadow: 0 0 0 0 rgba(240,180,41,.5); } 70% { box-shadow: 0 0 0 6px rgba(240,180,41,0); } 100% { box-shadow: 0 0 0 0 rgba(240,180,41,0); } }
.cv-soon-dot { width: 6px; height: 6px; border-radius: 50%; background: var(--cv-gold); animation: cv-pulse-gold 2.2s infinite; flex-shrink: 0; }

/* ---------- Hero ---------- */
.cv-hero { padding: 84px 0 64px; position: relative; }
.cv-hero-bg { position: absolute; inset: 0; z-index: 0; overflow: hidden; pointer-events: none; }
.cv-float-symbol {
  position: absolute; bottom: -40px; font-family: 'Space Grotesk', sans-serif; font-weight: 700;
  color: rgba(255,255,255,0.09); animation: cv-float linear infinite;
}
@keyframes cv-float {
  0%   { transform: translateY(0) rotate(0deg); opacity: 0; }
  10%  { opacity: 1; }
  90%  { opacity: 1; }
  100% { transform: translateY(-620px) rotate(12deg); opacity: 0; }
}
.cv-hero-inner { position: relative; z-index: 1; display: grid; grid-template-columns: 1.05fr 0.95fr; gap: 56px; align-items: center; }
.cv-eyebrow {
  display: inline-flex; align-items: center; gap: 8px; font-size: 12.5px; font-weight: 600; letter-spacing: .04em;
  color: var(--cv-mint); background: var(--cv-mint-dim); border: 1px solid rgba(46,230,166,0.25);
  padding: 6px 14px; border-radius: 100px; margin-bottom: 22px;
}
.cv-hero h1 { font-size: 52px; line-height: 1.04; font-weight: 700; }
.cv-hero h1 em {
  font-style: normal; background: linear-gradient(100deg, var(--cv-mint), #7be8c9);
  -webkit-background-clip: text; background-clip: text; color: transparent;
}
.cv-hero-sub { color: var(--cv-text-dim); font-size: 17px; line-height: 1.6; margin: 22px 0 32px; max-width: 46ch; }
.cv-hero-cta { display: flex; gap: 14px; flex-wrap: wrap; }
.cv-hero-note { margin-top: 16px; font-size: 12.5px; color: var(--cv-text-dim); }

.cv-terminal {
  background: linear-gradient(180deg, var(--cv-surface), var(--cv-surface-2));
  border: 1px solid var(--cv-line); border-radius: 18px; padding: 22px; position: relative;
  box-shadow: 0 30px 60px -20px rgba(0,0,0,0.55);
  transition: transform .25s ease;
  transform-style: preserve-3d;
  will-change: transform;
}
.cv-terminal-head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 16px; }
.cv-terminal-title { font-size: 13px; color: var(--cv-text-dim); font-weight: 500; }
.cv-terminal-live { display: flex; align-items: center; gap: 7px; font-size: 11px; font-weight: 600; letter-spacing: .05em; color: var(--cv-mint); text-transform: uppercase; }
.cv-terminal-chart { display: block; width: 100%; height: auto; margin-bottom: 8px; }
.cv-terminal-rows { border-top: 1px solid var(--cv-line); padding-top: 14px; }
.cv-terminal-row { display: flex; align-items: center; justify-content: space-between; padding: 9px 0; }
.cv-terminal-row + .cv-terminal-row { border-top: 1px solid var(--cv-line); }
.cv-terminal-asset { display: flex; align-items: center; gap: 10px; }
.cv-terminal-glyph { width: 26px; height: 26px; border-radius: 8px; display: flex; align-items: center; justify-content: center; font-size: 13px; color: #04231a; font-weight: 700; }
.cv-terminal-name { font-size: 13.5px; font-weight: 500; }
.cv-terminal-sym { font-size: 11.5px; color: var(--cv-text-dim); }
.cv-terminal-figures { text-align: right; }
.cv-terminal-price { font-size: 14px; font-weight: 600; }
.cv-terminal-chg { font-size: 11.5px; }
.cv-terminal-chg.up { color: var(--cv-mint); }
.cv-terminal-chg.down { color: var(--cv-red); }

/* ---------- Section shell ---------- */
.cv-section { padding: 88px 0; border-top: 1px solid var(--cv-line); }
.cv-section-alt { background: var(--cv-surface); }
.cv-section-head { max-width: 640px; margin: 0 0 48px; }
.cv-section-head.cv-center { max-width: 640px; margin: 0 auto 48px; text-align: center; }
.cv-section-eyebrow { font-size: 12px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: var(--cv-mint); margin-bottom: 12px; display: block; }
.cv-section-eyebrow.cv-gold { color: var(--cv-gold); }
.cv-section-title { font-size: 32px; font-weight: 700; margin-bottom: 12px; }
.cv-section-sub { color: var(--cv-text-dim); font-size: 15.5px; line-height: 1.6; }

/* ---------- Markets ---------- */
.cv-markets-group { margin-bottom: 40px; }
.cv-markets-group:last-child { margin-bottom: 0; }
.cv-markets-label {
  display: flex; align-items: center; gap: 8px; font-size: 12.5px; font-weight: 600;
  letter-spacing: .04em; text-transform: uppercase; margin-bottom: 16px; color: var(--cv-text-dim);
}
.cv-markets-label.live { color: var(--cv-mint); }
.cv-markets-label.soon { color: var(--cv-gold); }
.cv-market-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
.cv-market-card {
  border: 1px solid var(--cv-line); border-radius: 14px; padding: 20px;
  background: var(--cv-surface); position: relative; overflow: hidden;
  opacity: 0; transform: translateY(14px); transition: opacity .5s ease, transform .5s ease;
}
.cv-market-card.is-visible { opacity: 1; transform: translateY(0); }
.cv-market-card.soon { border-style: dashed; }
.cv-market-top { display: flex; align-items: center; justify-content: space-between; margin-bottom: 14px; }
.cv-market-asset { display: flex; align-items: center; gap: 10px; }
.cv-market-glyph { width: 30px; height: 30px; border-radius: 9px; display: flex; align-items: center; justify-content: center; font-size: 14px; color: #04231a; font-weight: 700; }
.cv-market-name { font-size: 14px; font-weight: 600; }
.cv-market-sym { font-size: 11.5px; color: var(--cv-text-dim); }
.cv-market-badge {
  font-size: 10.5px; font-weight: 700; letter-spacing: .05em; text-transform: uppercase;
  padding: 3px 9px; border-radius: 100px;
}
.cv-market-badge.live { color: var(--cv-mint); background: var(--cv-mint-dim); }
.cv-market-badge.soon { color: var(--cv-gold); background: var(--cv-gold-dim); }
.cv-market-figures { display: flex; align-items: baseline; justify-content: space-between; margin-bottom: 12px; }
.cv-market-price { font-size: 19px; font-weight: 600; }
.cv-market-chg { font-size: 12.5px; }
.cv-market-chg.up { color: var(--cv-mint); }
.cv-market-chg.down { color: var(--cv-red); }
.cv-market-spark { display: block; width: 100%; height: 34px; }
.cv-market-spark path { stroke-dasharray: 300; stroke-dashoffset: 300; transition: stroke-dashoffset 1.1s ease; }
.cv-market-card.is-visible .cv-market-spark path { stroke-dashoffset: 0; }

/* ---------- Platform preview ---------- */
.cv-preview-frame {
  border: 1px solid var(--cv-line); border-radius: 18px; overflow: hidden;
  background: var(--cv-ink);
  box-shadow: 0 30px 60px -24px rgba(0,0,0,0.6);
  opacity: 0; transform: translateY(16px); transition: opacity .6s ease, transform .6s ease;
}
.cv-preview-frame.is-visible { opacity: 1; transform: translateY(0); }
.cv-preview-chrome {
  display: flex; align-items: center; gap: 8px;
  padding: 12px 16px; border-bottom: 1px solid var(--cv-line); background: var(--cv-surface);
}
.cv-preview-dot { width: 10px; height: 10px; border-radius: 50%; display: inline-block; }
.cv-preview-url { margin-left: 10px; font-size: 12px; color: var(--cv-text-dim); font-family: 'IBM Plex Mono', monospace; }
.cv-preview-sample-tag {
  margin-left: auto; font-size: 10px; font-weight: 700; letter-spacing: .05em; text-transform: uppercase;
  color: var(--cv-gold); background: var(--cv-gold-dim); padding: 3px 9px; border-radius: 100px;
}
.cv-preview-body { padding: 24px; }
.cv-preview-summary { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; margin-bottom: 20px; }
.cv-preview-summary-card {
  background: var(--cv-surface); border: 1px solid var(--cv-line); border-radius: 12px; padding: 16px 18px;
}
.cv-preview-summary-label { font-size: 12px; color: var(--cv-text-dim); }
.cv-preview-summary-value { font-size: 22px; font-weight: 600; margin-top: 6px; }
.cv-preview-summary-tag { font-size: 11.5px; color: var(--cv-text-dim); margin-top: 4px; }
.cv-preview-panels { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.cv-preview-panel { background: var(--cv-surface); border: 1px solid var(--cv-line); border-radius: 12px; padding: 16px 18px; }
.cv-preview-panel-head {
  display: flex; align-items: center; justify-content: space-between;
  font-size: 13px; font-weight: 600; margin-bottom: 12px;
}
.cv-preview-row {
  display: flex; align-items: center; justify-content: space-between;
  padding: 10px 0; border-top: 1px solid var(--cv-line); font-size: 13px;
}
.cv-preview-row:first-of-type { border-top: none; }
.cv-preview-row-asset { display: flex; align-items: center; gap: 10px; }
.cv-preview-row-glyph {
  width: 26px; height: 26px; border-radius: 8px; display: flex; align-items: center; justify-content: center;
  color: #04231a; font-weight: 700; font-size: 12px; flex-shrink: 0;
}
.cv-preview-row-name { font-weight: 600; }
.cv-preview-row-sub { font-size: 11px; color: var(--cv-text-dim); }
.cv-preview-row-figures { text-align: right; line-height: 1.5; }
.cv-preview-row-figures .up { color: var(--cv-mint); }
.cv-preview-row-figures .down { color: var(--cv-red); }
.cv-preview-side {
  font-size: 9.5px; font-weight: 700; letter-spacing: .04em; padding: 3px 7px; border-radius: 5px; flex-shrink: 0;
}
.cv-preview-side.up { color: var(--cv-mint); background: var(--cv-mint-dim); }
.cv-preview-side.down { color: var(--cv-red); background: rgba(255,107,107,0.12); }
.cv-preview-note { text-align: center; color: var(--cv-text-dim); font-size: 12px; margin-top: 18px; }
.cv-preview-cta { text-align: center; margin-top: 26px; }

@media (max-width: 760px) {
  .cv-preview-summary { grid-template-columns: 1fr; }
  .cv-preview-panels { grid-template-columns: 1fr; }
}

/* ---------- Stats bar ---------- */
.cv-stats { display: grid; grid-template-columns: repeat(4, 1fr); border: 1px solid var(--cv-line); border-radius: 16px; overflow: hidden; }
.cv-stat { padding: 26px 20px; text-align: center; border-right: 1px solid var(--cv-line); }
.cv-stat:last-child { border-right: none; }
.cv-stat-num { font-size: 30px; font-weight: 600; color: var(--cv-mint); }
.cv-stat-label { font-size: 12.5px; color: var(--cv-text-dim); margin-top: 6px; }

/* ---------- Feature grid ---------- */
.cv-feature-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; background: var(--cv-line); border: 1px solid var(--cv-line); border-radius: 16px; overflow: hidden; }
.cv-feature-card { background: var(--cv-ink); padding: 30px 26px; opacity: 0; transform: translateY(14px); transition: opacity .5s ease, transform .5s ease; position: relative; }
.cv-feature-card.is-visible { opacity: 1; transform: translateY(0); }
.cv-feature-card.soon::after {
  content: 'Coming soon'; position: absolute; top: 20px; right: 24px;
  font-size: 10px; font-weight: 700; letter-spacing: .05em; text-transform: uppercase;
  color: var(--cv-gold); background: var(--cv-gold-dim); padding: 3px 8px; border-radius: 100px;
}
.cv-feature-ico { width: 40px; height: 40px; border-radius: 10px; background: var(--cv-mint-dim); color: var(--cv-mint); display: flex; align-items: center; justify-content: center; margin-bottom: 18px; }
.cv-feature-card.soon .cv-feature-ico { background: var(--cv-gold-dim); color: var(--cv-gold); }
.cv-feature-card h3 { font-size: 16.5px; font-weight: 600; margin-bottom: 8px; }
.cv-feature-card p { color: var(--cv-text-dim); font-size: 14px; line-height: 1.6; margin: 0; }

/* ---------- Security ---------- */
.cv-security-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 28px 40px; }
.cv-security-item { display: flex; gap: 14px; opacity: 0; transform: translateY(10px); transition: opacity .5s ease, transform .5s ease; }
.cv-security-item.is-visible { opacity: 1; transform: translateY(0); }
.cv-security-ico { width: 34px; height: 34px; border-radius: 9px; flex-shrink: 0; background: rgba(240,180,41,0.12); color: var(--cv-gold); display: flex; align-items: center; justify-content: center; }
.cv-security-item b { font-size: 14.5px; font-weight: 600; display: block; margin-bottom: 4px; }
.cv-security-item p { color: var(--cv-text-dim); font-size: 13.5px; line-height: 1.6; margin: 0; }
.cv-audit-log { border: 1px solid var(--cv-line); border-radius: 14px; background: var(--cv-ink); padding: 18px 20px; margin-top: 40px; font-size: 12.5px; line-height: 2; color: var(--cv-text-dim); }
.cv-audit-log b { color: var(--cv-text); font-weight: 500; }
.cv-audit-log .cv-tag { display: inline-block; padding: 1px 8px; border-radius: 5px; background: var(--cv-mint-dim); color: var(--cv-mint); font-size: 11px; margin-right: 8px; }

/* ---------- Testimonials ---------- */
.cv-testimonial-feature {
  border: 1px solid var(--cv-line); border-radius: 18px; padding: 40px;
  background: linear-gradient(160deg, var(--cv-surface), var(--cv-surface-2));
  margin-bottom: 24px; opacity: 0; transform: translateY(14px); transition: opacity .5s ease, transform .5s ease;
}
.cv-testimonial-feature.is-visible { opacity: 1; transform: translateY(0); }
.cv-testimonial-feature .cv-testimonial-quote { font-size: 21px; line-height: 1.5; font-family: 'Space Grotesk', sans-serif; font-weight: 500; }
.cv-testimonial-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.cv-testimonial-card { border: 1px solid var(--cv-line); border-radius: 14px; padding: 24px; background: var(--cv-surface); opacity: 0; transform: translateY(10px); transition: opacity .5s ease, transform .5s ease; }
.cv-testimonial-card.is-visible { opacity: 1; transform: translateY(0); }
.cv-testimonial-stars { color: var(--cv-gold); font-size: 13px; margin-bottom: 12px; letter-spacing: 1px; }
.cv-testimonial-quote { font-size: 14.5px; line-height: 1.6; margin: 0 0 18px; }
.cv-testimonial-author { display: flex; align-items: center; gap: 10px; }
.cv-testimonial-avatar { width: 38px; height: 38px; border-radius: 50%; object-fit: cover; }
.cv-testimonial-avatar-fallback { display: flex; align-items: center; justify-content: center; background: linear-gradient(135deg, var(--cv-mint-dim), var(--cv-gold-dim)); color: var(--cv-mint); font-weight: 700; font-size: 14px; font-family: 'Space Grotesk', sans-serif; }
.cv-testimonial-name { font-size: 13.5px; font-weight: 600; }
.cv-testimonial-role { font-size: 12px; color: var(--cv-text-dim); }
.cv-testimonial-disclaimer { color: var(--cv-text-dim); font-size: 12px; margin-top: 24px; }

.cv-empty-state {
  border: 1px dashed var(--cv-line); border-radius: 16px; padding: 48px 32px; text-align: center;
}
.cv-empty-state h3 { font-size: 17px; margin-bottom: 8px; }
.cv-empty-state p { color: var(--cv-text-dim); font-size: 14px; max-width: 46ch; margin: 0 auto; }

/* ---------- CTA ---------- */
.cv-cta { text-align: center; padding: 96px 24px; border-top: 1px solid var(--cv-line); background: radial-gradient(ellipse at 50% 0%, rgba(46,230,166,0.10), transparent 60%), var(--cv-ink); }
.cv-cta h2 { font-size: 34px; margin-bottom: 26px; }

/* ---------- Footer ---------- */
.cv-footer { border-top: 1px solid var(--cv-line); padding: 34px 0; }
.cv-footer-inner { max-width: 1180px; margin: 0 auto; padding: 0 24px; display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 16px; }
.cv-footer-brand { display: flex; align-items: center; gap: 10px; }
.cv-footer-links { display: flex; gap: 22px; }
.cv-footer-links a { color: var(--cv-text-dim); text-decoration: none; font-size: 13px; }
.cv-footer-links a:hover { color: var(--cv-text); }
.cv-footer-copy { color: var(--cv-text-dim); font-size: 12.5px; }

/* ---------- Responsive ---------- */
@media (max-width: 920px) {
  .cv-hero-inner { grid-template-columns: 1fr; }
  .cv-feature-grid { grid-template-columns: repeat(2, 1fr); }
  .cv-security-grid { grid-template-columns: 1fr; }
  .cv-testimonial-grid { grid-template-columns: 1fr; }
  .cv-market-grid { grid-template-columns: 1fr; }
  .cv-stats { grid-template-columns: repeat(2, 1fr); }
  .cv-stat:nth-child(2) { border-right: none; }
  .cv-stat:nth-child(1), .cv-stat:nth-child(2) { border-bottom: 1px solid var(--cv-line); }
  .cv-nav-links { display: none; }
}
@media (max-width: 600px) {
  .cv-hero { padding: 56px 0 48px; }
  .cv-hero h1 { font-size: 36px; }
  .cv-feature-grid { grid-template-columns: 1fr; }
  .cv-section { padding: 64px 0; }
  .cv-stats { grid-template-columns: 1fr; }
  .cv-stat { border-right: none !important; border-bottom: 1px solid var(--cv-line); }
  .cv-stat:last-child { border-bottom: none; }
  .cv-testimonial-feature { padding: 26px; }
  .cv-testimonial-feature .cv-testimonial-quote { font-size: 17px; }
}

@media (prefers-reduced-motion: reduce) {
  .cv-ticker-track { animation: none; }
  .cv-live-dot, .cv-soon-dot { animation: none; }
  .cv-float-symbol { display: none; }
  .cv-terminal { transform: none !important; }
  .cv-feature-card, .cv-security-item, .cv-testimonial-card, .cv-testimonial-feature, .cv-market-card {
    opacity: 1 !important; transform: none !important; transition: none !important;
  }
  .cv-market-spark path { transition: none; stroke-dashoffset: 0; }
}

/* =========================================================================
   Advanced pass 2 — grain texture, gradient mesh, How it Works, demo widget, FAQ
   ========================================================================= */

/* ---------- Grain texture (subtle, whole-page) ---------- */
.cv-landing { position: relative; }
.cv-landing::before {
  content: '';
  position: fixed; inset: 0; z-index: 1; pointer-events: none;
  opacity: 0.035; mix-blend-mode: overlay;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}
.cv-landing > * { position: relative; z-index: 2; }

/* ---------- Button shine sweep ---------- */
.cv-btn-primary { position: relative; overflow: hidden; }
.cv-btn-primary::after {
  content: '';
  position: absolute; top: 0; left: -60%; width: 40%; height: 100%;
  background: linear-gradient(120deg, transparent, rgba(255,255,255,0.35), transparent);
  transform: skewX(-20deg);
  transition: left .6s ease;
}
.cv-btn-primary:hover::after { left: 130%; }

/* ---------- Gradient mesh blobs ---------- */
.cv-how { position: relative; overflow: hidden; }
.cv-mesh {
  position: absolute; border-radius: 50%; filter: blur(70px); pointer-events: none; z-index: 0;
  animation: cv-mesh-drift 18s ease-in-out infinite alternate;
}
.cv-mesh-1 { width: 420px; height: 420px; top: -140px; left: -100px; background: radial-gradient(circle, rgba(46,230,166,0.16), transparent 70%); }
.cv-mesh-2 { width: 360px; height: 360px; bottom: -160px; right: -80px; background: radial-gradient(circle, rgba(240,180,41,0.12), transparent 70%); animation-delay: -6s; }
@keyframes cv-mesh-drift {
  from { transform: translate(0, 0) scale(1); }
  to   { transform: translate(30px, -20px) scale(1.08); }
}

/* ---------- How it Works ---------- */
.cv-how-grid { display: grid; grid-template-columns: 1fr auto 1fr auto 1fr; align-items: start; gap: 8px; margin-top: 8px; }
.cv-how-step {
  text-align: center; padding: 8px 14px;
  opacity: 0; transform: translateY(14px); transition: opacity .5s ease, transform .5s ease;
}
.cv-how-step.is-visible { opacity: 1; transform: translateY(0); }
.cv-how-num { font-family: 'Space Grotesk', sans-serif; font-size: 13px; font-weight: 700; color: var(--cv-mint); letter-spacing: .1em; margin-bottom: 10px; }
.cv-how-ico {
  width: 52px; height: 52px; border-radius: 14px; margin: 0 auto 16px;
  background: var(--cv-mint-dim); color: var(--cv-mint);
  display: flex; align-items: center; justify-content: center;
}
.cv-how-step h3 { font-size: 16px; font-weight: 600; margin-bottom: 8px; }
.cv-how-step p { color: var(--cv-text-dim); font-size: 13.5px; line-height: 1.6; max-width: 26ch; margin: 0 auto; }
.cv-how-connector { align-self: center; height: 1px; background: linear-gradient(90deg, var(--cv-line), var(--cv-mint-dim), var(--cv-line)); margin-top: 26px; min-width: 24px; }
.cv-how-cta { text-align: center; margin-top: 40px; }

@media (max-width: 820px) {
  .cv-how-grid { grid-template-columns: 1fr; }
  .cv-how-connector { display: none; }
}

/* ---------- Try a Demo Trade widget ---------- */
.cv-demo-card {
  max-width: 640px; margin: 0 auto;
  border: 1px solid var(--cv-line); border-radius: 18px;
  background: linear-gradient(160deg, var(--cv-surface), var(--cv-surface-2));
  padding: 28px; position: relative;
  opacity: 0; transform: translateY(14px); transition: opacity .5s ease, transform .5s ease;
}
.cv-demo-card.is-visible { opacity: 1; transform: translateY(0); }
.cv-demo-tag {
  display: inline-block; font-size: 11px; font-weight: 700; letter-spacing: .05em; text-transform: uppercase;
  color: var(--cv-gold); background: var(--cv-gold-dim); padding: 4px 12px; border-radius: 100px; margin-bottom: 20px;
}
.cv-demo-assets { display: flex; gap: 10px; margin-bottom: 20px; flex-wrap: wrap; }
.cv-demo-asset-btn {
  display: flex; align-items: center; gap: 8px;
  padding: 9px 16px; border-radius: 10px; border: 1px solid var(--cv-line);
  background: var(--cv-ink); color: var(--cv-text-dim); font-size: 13.5px; font-weight: 600;
  cursor: pointer; transition: border-color .15s ease, color .15s ease, background .15s ease;
}
.cv-demo-asset-btn:hover { border-color: rgba(255,255,255,0.22); }
.cv-demo-asset-btn.active { border-color: var(--cv-mint); color: var(--cv-text); background: var(--cv-mint-dim); }
.cv-demo-asset-glyph {
  width: 20px; height: 20px; border-radius: 6px; display: flex; align-items: center; justify-content: center;
  font-size: 10.5px; color: #04231a; font-weight: 700;
}
.cv-demo-body { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; }
.cv-demo-price-row { display: flex; justify-content: space-between; font-size: 13px; color: var(--cv-text-dim); margin-bottom: 16px; }
.cv-demo-price-row span:last-child { color: var(--cv-text); font-weight: 600; }
.cv-demo-label { display: block; font-size: 12px; color: var(--cv-text-dim); margin-bottom: 6px; }
.cv-demo-amount-input {
  display: flex; align-items: center; gap: 6px;
  border: 1px solid var(--cv-line); border-radius: 10px; padding: 10px 14px;
  background: var(--cv-ink); margin-bottom: 12px;
}
.cv-demo-amount-input span { color: var(--cv-text-dim); font-weight: 600; }
.cv-demo-amount-input input {
  border: none; background: transparent; color: var(--cv-text); font-size: 16px; font-weight: 600;
  width: 100%; outline: none; font-family: 'IBM Plex Mono', monospace;
}
.cv-demo-pct-row { display: flex; gap: 8px; margin-bottom: 18px; }
.cv-demo-pct-btn {
  flex: 1; padding: 7px 0; border-radius: 8px; border: 1px solid var(--cv-line);
  background: transparent; color: var(--cv-text-dim); font-size: 12.5px; font-weight: 600; cursor: pointer;
  transition: border-color .15s ease, color .15s ease;
}
.cv-demo-pct-btn:hover { border-color: var(--cv-mint); color: var(--cv-text); }
.cv-demo-buy-btn { width: 100%; }
.cv-demo-result-side {
  border: 1px dashed var(--cv-line); border-radius: 12px;
  display: flex; align-items: center; justify-content: center; padding: 20px;
  min-height: 180px;
}
.cv-demo-result-placeholder { text-align: center; color: var(--cv-text-dim); }
.cv-demo-result-placeholder svg { margin: 0 auto 10px; opacity: .5; }
.cv-demo-result-placeholder p { font-size: 12.5px; max-width: 22ch; margin: 0 auto; }
.cv-demo-result-live { width: 100%; }
.cv-demo-result-row { display: flex; justify-content: space-between; font-size: 13px; padding: 8px 0; border-top: 1px solid var(--cv-line); }
.cv-demo-result-row:first-child { border-top: none; }
.cv-demo-result-note { font-size: 11px; color: var(--cv-text-dim); margin: 14px 0 0; line-height: 1.6; }

@media (max-width: 640px) {
  .cv-demo-body { grid-template-columns: 1fr; }
  .cv-demo-card { padding: 20px; }
}

/* ---------- FAQ accordion ---------- */
.cv-faq-list { max-width: 760px; margin: 0 auto; }
.cv-faq-item {
  border-bottom: 1px solid var(--cv-line);
  opacity: 0; transform: translateY(10px); transition: opacity .5s ease, transform .5s ease;
}
.cv-faq-item.is-visible { opacity: 1; transform: translateY(0); }
.cv-faq-question {
  width: 100%; display: flex; align-items: center; justify-content: space-between;
  background: none; border: none; color: var(--cv-text); font-family: inherit;
  font-size: 15px; font-weight: 600; padding: 20px 4px; cursor: pointer; text-align: left;
}
.cv-faq-chevron { color: var(--cv-text-dim); flex-shrink: 0; transition: transform .25s ease; }
.cv-faq-item.open .cv-faq-chevron { transform: rotate(180deg); color: var(--cv-mint); }
.cv-faq-answer { max-height: 0; overflow: hidden; transition: max-height .3s ease; }
.cv-faq-item.open .cv-faq-answer { max-height: 220px; }
.cv-faq-answer p { color: var(--cv-text-dim); font-size: 14px; line-height: 1.7; padding: 0 4px 20px; margin: 0; }

@media (prefers-reduced-motion: reduce) {
  .cv-mesh { animation: none; }
  .cv-btn-primary::after { display: none; }
  .cv-how-step, .cv-demo-card, .cv-faq-item {
    opacity: 1 !important; transform: none !important; transition: none !important;
  }
}

/* ---------- How it Works — 6-step card grid variant ---------- */
.cv-how-grid-6 {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
}
.cv-how-grid-6 .cv-how-connector { display: none; }
.cv-how-grid-6 .cv-how-card {
  text-align: left;
  border: 1px solid var(--cv-line);
  border-radius: 14px;
  padding: 24px;
  background: var(--cv-surface);
  transition: border-color .2s ease, transform .2s ease;
}
.cv-how-grid-6 .cv-how-card:hover { border-color: rgba(46,230,166,0.35); transform: translateY(-2px); }
.cv-how-grid-6 .cv-how-ico { margin: 0 0 16px; }
.cv-how-grid-6 .cv-how-num { margin-bottom: 8px; }
.cv-how-grid-6 .cv-how-card p { max-width: none; margin: 0; }

@media (max-width: 920px) {
  .cv-how-grid-6 { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 560px) {
  .cv-how-grid-6 { grid-template-columns: 1fr; }
}

/* ---------- Persistent full-page floating currency layer ---------- */
.cv-landing > .cv-float-bg-layer {
  position: fixed; inset: 0; z-index: 0;
  overflow: hidden; pointer-events: none;
}
.cv-float-bg-layer .cv-float-symbol {
  color: rgba(255,255,255,0.09);
}
.cv-float-bg-layer .cv-float-symbol.cv-float-mint {
  color: rgba(46,230,166,0.13);
}

@media (prefers-reduced-motion: reduce) {
  .cv-float-bg-layer { display: none; }
}