/* ===== Dalvox Capital — shared visual system ===== */
html { scroll-behavior: smooth; overflow-x: hidden; }
body { background: #000; color: #fff; -webkit-font-smoothing: antialiased; overflow-x: hidden; }
::selection { background: #D4AF37; color: #000; }

/* Fine institutional grid backdrop */
.grid-bg {
  background-image:
    linear-gradient(to right, rgba(255,255,255,0.035) 1px, transparent 1px),
    linear-gradient(to bottom, rgba(255,255,255,0.035) 1px, transparent 1px);
  background-size: 64px 64px;
}
.gold-glow { box-shadow: 0 0 0 1px rgba(212,175,55,0.25), 0 20px 60px -15px rgba(212,175,55,0.35); }
.gold-text-glow { text-shadow: 0 0 30px rgba(212,175,55,0.25); }
.hairline { border-color: rgba(255,255,255,0.08); }

/* Equity / drawdown line draw-in (works with pathLength="1") */
@keyframes drawIn { from { stroke-dashoffset: 1; } to { stroke-dashoffset: 0; } }
@keyframes fadeUp { from { opacity: 0; transform: translateY(20px); } to { opacity: 1; transform: none; } }
.fade-up { animation: fadeUp .65s cubic-bezier(.16,1,.3,1) both; }

.lucide { stroke-width: 1.5; }
details > summary { list-style: none; }
details > summary::-webkit-details-marker { display: none; }
/* Pipeline step numbers right-aligned so visual gap to icon equals gap to text */
[data-pipeline] details > summary > span:first-child { text-align: right; }

/* Data tables */
.data-table { border-collapse: separate; border-spacing: 0; }
.data-table th, .data-table td { white-space: nowrap; }

/* Heatmap cell tones driven by inline --t (-1..1) */
.heat { color: #d4d4d8; }

/* Scrollbar for the full report */
.thin-scroll::-webkit-scrollbar { height: 8px; width: 8px; }
.thin-scroll::-webkit-scrollbar-thumb { background: rgba(212,175,55,0.25); border-radius: 8px; }
.thin-scroll::-webkit-scrollbar-track { background: rgba(255,255,255,0.04); }

/* Tabular numbers everywhere data lives */
.tnum { font-variant-numeric: tabular-nums; }

/* Prevent sticky heatmap/table cells from overlapping fixed nav */
.data-table .sticky { z-index: 1 !important; }

/* Scroll-triggered reveal */
[data-fade] { opacity: 0; transform: translateY(20px); transition: opacity .65s cubic-bezier(.16,1,.3,1), transform .65s cubic-bezier(.16,1,.3,1); }
[data-fade].in-view { opacity: 1; transform: none; }

/* ── Display font ── */
:root { --font-display: 'Iowan Old Style', 'Charter', Georgia, serif; }
h1, h2, h3, h4, h5, h6 { font-family: var(--font-display); }

/* ── Form inputs ── */
.fi { width: 100%; background: rgba(255,255,255,0.03); border: 1px solid rgba(255,255,255,0.10); border-radius: 8px; padding: 11px 14px; color: #fff; font-size: 14px; font-family: inherit; transition: border-color .2s; outline: none; }
.fi:focus { border-color: rgba(212,175,55,0.55); background: rgba(255,255,255,0.045); }
.fi::placeholder { color: #71717A; }
select.fi option { background: #0B0B0C; }
.fl { display: block; font-family: 'JetBrains Mono', monospace; font-size: 10px; letter-spacing: .18em; text-transform: uppercase; color: #71717A; margin-bottom: 6px; }

/* ── Custom Select ── */
.cs-wrapper { position: relative; user-select: none; }
.cs-trigger { width: 100%; background: rgba(255,255,255,0.03); border: 1px solid rgba(255,255,255,0.10); border-radius: 8px; padding: 11px 14px; color: #fff; font-size: 14px; font-family: inherit; transition: border-color .2s, background .2s; outline: none; cursor: pointer; display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.cs-trigger:hover { border-color: rgba(255,255,255,0.22); }
.cs-trigger.cs-open { border-color: rgba(212,175,55,0.55); background: rgba(255,255,255,0.045); }
.cs-trigger:focus-visible { border-color: rgba(212,175,55,0.55); }
.cs-value { flex: 1; text-align: left; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.cs-value.cs-placeholder { color: #71717A; }
.cs-chevron { width: 15px; height: 15px; flex-shrink: 0; transition: transform .2s, color .2s; color: #52525B; }
.cs-trigger.cs-open .cs-chevron { transform: rotate(180deg); color: #D4AF37; }
.cs-dropdown { position: absolute; top: calc(100% + 5px); left: 0; right: 0; background: #0D0D0F; border: 1px solid rgba(212,175,55,0.22); border-radius: 8px; z-index: 200; max-height: 224px; overflow-y: auto; box-shadow: 0 12px 40px rgba(0,0,0,0.75); scrollbar-width: thin; scrollbar-color: rgba(212,175,55,0.25) transparent; }
.cs-dropdown::-webkit-scrollbar { width: 4px; }
.cs-dropdown::-webkit-scrollbar-thumb { background: rgba(212,175,55,0.25); border-radius: 2px; }
.cs-dropdown.cs-hidden { display: none; }
.cs-option { padding: 9px 14px; font-size: 13.5px; color: #A1A1AA; cursor: pointer; transition: background .1s, color .1s; }
.cs-option:hover { background: rgba(212,175,55,0.08); color: #fff; }
.cs-option.cs-selected { color: #D4AF37; background: rgba(212,175,55,0.06); }
.cs-hint { color: #52525B; font-size: 12px; margin-left: 6px; }
.cs-search-wrap { padding: 8px 10px 6px; border-bottom: 1px solid rgba(255,255,255,0.06); position: sticky; top: 0; background: #0D0D0F; z-index: 1; }
.cs-search-wrap { position: relative; }
.cs-search { width: 100%; background: rgba(255,255,255,0.05); border: 1px solid rgba(255,255,255,0.12); border-radius: 6px; padding: 7px 10px 7px 32px; color: #fff; font-size: 13px; font-family: inherit; outline: none; }
.cs-search::placeholder { color: #52525B; }
.cs-search:focus { border-color: rgba(212,175,55,0.4); }
.cs-search-icon { position: absolute; left: 18px; top: 50%; transform: translateY(-50%); color: #52525B; pointer-events: none; }
.cs-no-results { padding: 12px 14px; font-size: 13px; color: #52525B; }

/* ── Unified scroll-entrance animations ───────────────────────────────────
   Each data-anim type defines its own start state; .anim-in animates to rest.
   Stagger (65 ms/sibling) is applied by initScrollAnimations() in JS.
   ──────────────────────────────────────────────────────────────────────── */
[data-anim] {
  opacity: 0;
  transition-property: opacity, transform;
  transition-timing-function: cubic-bezier(.16,1,.3,1);
  transition-duration: 0.65s;
}
[data-anim="eyebrow"] { transform: translateX(-10px); transition-duration: 0.5s; }
[data-anim="heading"] { transform: translateY(22px);  transition-duration: 0.75s; }
[data-anim="body"]    { transform: translateY(12px);  transition-duration: 0.65s; }
[data-anim="subtext"] { transform: translateY(6px);   transition-duration: 0.5s;  transition-timing-function: ease-out; }
[data-anim="stat"]    { transform: translateY(10px) scale(0.95); transition-duration: 0.6s; }
[data-anim="chart"]   { transform: translateY(6px) scale(0.985); transition-duration: 0.9s; }
[data-anim="card"]    { transform: translateY(16px);  transition-duration: 0.65s; }
[data-anim="step"]    { transform: translateY(14px);  transition-duration: 0.6s; }
[data-anim="cta"]     { transform: translateY(10px);  transition-duration: 0.5s;  transition-timing-function: ease-out; }
[data-anim="pill"]    { transform: translateX(-5px);  transition-duration: 0.4s;  transition-timing-function: ease-out; }
[data-anim].anim-in   { opacity: 1; transform: none; }

/* ── Mobile-only break (shows on mobile, hidden on desktop) ── */
@media (min-width: 640px) { .mob-br { display: none; } }

/* ═══ Mobile fixes (Galaxy S25 / ≤639px) ═══ */
@media (max-width: 639px) {
  /* Footer nav – single row */
  .footer-nav-row { flex-wrap: nowrap !important; justify-content: space-around !important; gap: 0 !important; width: 100%; }
  .footer-nav-row a { font-size: 10px !important; white-space: nowrap; padding: 0 1px !important; }
  /* Comparison table compact */
  #compare-table .data-table { font-size: 10.5px; }
  #compare-table .data-table th, #compare-table .data-table td { padding: 5px 7px !important; }
  /* Pack selector tabs – scrollable single row */
  .mob-tabs { flex-wrap: nowrap !important; overflow-x: auto !important; justify-content: center !important; -webkit-overflow-scrolling: touch; padding-bottom: 4px; scrollbar-width: none; }
  .mob-tabs::-webkit-scrollbar { display: none; }
  .mob-tabs button { font-size: clamp(8px, 2.8vw, 13px) !important; padding: 7px 6px !important; flex-shrink: 1 !important; }
  /* Chart heights */
  .mob-chart-h { height: 175px !important; }
  /* Audit coverage cards */
  .mob-cov-val { font-size: 20px !important; }
  .mob-cov-card { padding: 10px !important; }
  .mob-cov-lbl { font-size: 11px !important; }
  .mob-cov-sub { font-size: 10px !important; margin-top: 3px !important; }
  /* Audit step rows */
  .mob-step-row { padding: 8px 10px !important; gap: 6px !important; }
  .mob-step-icon { width: 26px !important; height: 26px !important; min-width: 26px !important; }
  .mob-step-icon i, .mob-step-icon svg { width: 13px !important; height: 13px !important; }
  .mob-step-num { width: 16px !important; font-size: 10px !important; flex-shrink: 0; }
  .mob-step-title { font-size: 12.5px !important; }
  .mob-step-sub { font-size: 11px !important; margin-top: 0 !important; }
  /* License small text */
  .mob-license { font-size: 9.5px !important; }
  /* Generic utilities */
  .mob-hide { display: none !important; }
  .mob-block { display: block !important; }
  .mob-text-center { text-align: center !important; }
  .mob-items-center { align-items: center !important; }
  .mob-flex-col { flex-direction: column !important; }
  /* Hero h1 font sizes */
  .mob-h1-20 { font-size: 20px !important; line-height: 1.12 !important; }
  .mob-h1-22 { font-size: 22px !important; line-height: 1.12 !important; }
  .mob-h1-24 { font-size: 24px !important; line-height: 1.12 !important; }
  .mob-h1-28 { font-size: 28px !important; line-height: 1.12 !important; }
  .mob-h1-26 { font-size: 26px !important; line-height: 1.12 !important; }
  .mob-h1-28 { font-size: 28px !important; line-height: 1.12 !important; }
  /* "Explore Our Algorithms" title */
  .mob-explore-h2 { font-size: 22px !important; }
  /* "Inspect every portfolio" CTA */
  .mob-inspect-h2 { font-size: 22px !important; }
  /* Audit step cards – CSS-only mobile compact */
  [data-pipeline] details > summary { padding: 8px 10px 8px 5px !important; gap: 12px !important; }
  [data-pipeline] details > summary > span:first-child { width: 16px !important; font-size: 10px !important; flex-shrink: 0; text-align: right !important; }
  [data-pipeline] details > summary > div:first-of-type { width: 26px !important; height: 26px !important; min-width: 26px !important; }
  [data-pipeline] details > summary > div:first-of-type i { width: 13px !important; height: 13px !important; }
  [data-pipeline] details > summary > div.flex-1 > div:first-child { font-size: 12.5px !important; }
  [data-pipeline] details > summary > div.flex-1 > div:last-child { font-size: 11px !important; margin-top: 0 !important; }
}

/* ── Legal prose ── */
.prose-legal h2 { font-size: 1.25rem; font-weight: 700; letter-spacing: -0.02em; color: #fff; margin-top: 2.5rem; margin-bottom: 0.75rem; padding-bottom: 0.5rem; border-bottom: 1px solid rgba(255,255,255,0.07); }
.prose-legal p { font-size: 0.9375rem; line-height: 1.8; color: #A1A1AA; margin-bottom: 1rem; text-wrap: pretty; }
.prose-legal ul { list-style: none; padding: 0; margin-bottom: 1rem; }
.prose-legal ul li { position: relative; padding-left: 1.25rem; font-size: 0.9375rem; line-height: 1.8; color: #A1A1AA; margin-bottom: 0.35rem; }
.prose-legal ul li::before { content: '—'; position: absolute; left: 0; color: #D4AF37; font-size: 0.75rem; top: 0.35rem; }
.prose-legal strong { color: #e4e4e7; font-weight: 600; }
.prose-legal a { color: #D4AF37; text-decoration: underline; text-underline-offset: 3px; }
.prose-legal a:hover { color: #E8C760; }

/* ── Footer navigation items ── */
.footer-nav-item {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  gap: 10px;
  padding: 9px 20px;
  border-radius: 8px;
  color: #A1A1AA;
  text-decoration: none;
  font-size: 13.5px;
  font-weight: 500;
  letter-spacing: -0.01em;
  transition: color 0.2s ease, background-color 0.2s ease;
}
.footer-nav-item:hover { color: #D4AF37; background: rgba(212,175,55,0.07); }
.footer-nav-item svg { width:14px!important;height:14px!important;opacity:0.45;flex-shrink:0;transition:opacity 0.2s ease;stroke-width:1.5;color:#D4AF37; }
.footer-nav-item:hover svg { opacity: 1; }
