/* ── Sub-page shell (matches index h2 / body scale) ─────────────── */
  .page-hero { padding: calc(var(--pad-y) * 0.85) 0 calc(var(--pad-y) * 0.25); }
  .page-hero-inner,
  .page-body-inner { max-width: 820px; }
  .page-body-inner { position: relative; padding-top: 26px; }
  .page-body-inner::before {
    content: ''; position: absolute; top: 0; left: 0; width: 46px; height: 1px;
    background: linear-gradient(90deg, var(--accent), var(--teal));
  }
  .page-kicker {
    font-family: var(--sans);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .22em;
    color: var(--accent);
    text-transform: uppercase;
    margin: 0 0 22px;
  }
  .page-h1 {
    font-family: var(--sans);
    font-optical-sizing: auto;
    font-weight: 620;
    font-size: clamp(24px, 2.8vw, 34px);
    letter-spacing: -.015em;
    line-height: 1.18;
    color: var(--page-text);
    margin: 0 0 20px;
  }
  .page-lede {
    font-family: var(--sans);
    font-size: clamp(17px, 1.4vw, 19px);
    line-height: 1.6;
    color: var(--page-text-secondary);
    max-width: 720px;
    margin: 0;
  }
  .page-body { padding: calc(var(--pad-y) * 0.32) 0 calc(var(--pad-y) * 0.62); }
  .page-p {
    font-family: var(--sans);
    font-size: clamp(15px, 1.15vw, 17px);
    line-height: 1.72;
    color: var(--page-text-secondary);
    margin: 0 0 20px;
    text-align: left;
  }
  .page-p:last-child { margin-bottom: 0; }
  .page-sect { background: transparent !important; border: 0 !important; }

  /* ── Finance intro: head/subhead left, body copy right ────────────── */
  /* Tall — the section holds almost the full viewport on its own, so only
     a sliver of the dark demo section peeks in below the fold. The arrow
     sits on this section's own bottom border and hands the user down. */
  .fin-intro { min-height:0; padding-bottom:34px;
    min-height: calc(100svh - 150px);
    display: flex;
    align-items: center;
    position: relative;
    padding: calc(var(--pad-y) * 0.7) 0 84px;
  }
  .fin-intro-grid {
    display: grid;
    grid-template-columns: minmax(0, 0.85fr) minmax(0, 1.15fr);
    gap: clamp(40px, 6vw, 96px);
    align-items: start;
    width: 100%;
  }
  .fin-intro-head { position: sticky; top: 130px; }
  .fin-intro-head .page-h1 { margin-bottom: 16px; }
  .fin-intro-head .page-lede { max-width: 44ch; }
  .fin-intro-body { display: flex; flex-direction: column; gap: 24px; padding-top: 8px; }
  .fin-intro-body .page-p { margin: 0; max-width: 58ch; }
  /* choreographed cascade — each paragraph lands a beat after the last */
  .fin-intro-body .page-p.scroll-reveal { transition-delay: calc(var(--i, 0) * 0.14s); }
  .fin-intro-arrow {
    position: absolute;
    bottom: 22px; left: 50%;
    transform: translateX(-50%);
    width: 46px; height: 46px;
    display: flex;
    align-items: center;
    justify-content: center;
    border: 1px solid rgba(78,143,247,.3);
    border-radius: 50%;
    background: rgba(78,143,247,.08);
    cursor: pointer;
    color: var(--accent, #4e8ff7);
    opacity: 0.9;
    animation: finArrowBounce 2.2s ease-in-out infinite;
    transition: opacity .2s ease, background .2s ease, border-color .2s ease;
  }
  .fin-intro-arrow:hover { opacity: 1; background: rgba(78,143,247,.16); border-color: rgba(78,143,247,.55); }
  .fin-intro-arrow svg { width: 22px; height: 22px; stroke-width: 2; }
  @keyframes finArrowBounce {
    0%, 100% { transform: translateX(-50%) translateY(0); }
    50%      { transform: translateX(-50%) translateY(8px); }
  }
  @media (prefers-reduced-motion: reduce) {
    .fin-intro-arrow { animation: none; }
  }
  @media (max-width: 900px) {
    .fin-intro { min-height:0; padding-bottom:34px; min-height: 0; padding-top: calc(var(--pad-y) * 0.85); padding-bottom: 70px; }
    .fin-intro-grid { grid-template-columns: 1fr; gap: 30px; }
    .fin-intro-head { position: static; }
  }

  /* ── Page tone variants (scoped to page content, not <body>) ─────
     Using --page-text / --page-text-secondary so we do NOT stomp the
     site-wide --text tokens the fixed nav panel relies on. */
  .page-tone-warm  { background: #f4f0e8; --page-text: #14171f; --page-text-secondary: rgba(20,23,31,0.72); }
  .page-tone-blue  { background: #0d1a2e; --page-text: #ecf1fa; --page-text-secondary: rgba(236,241,250,0.75); }
  .page-tone-deep  { background: #080a10; --page-text: #ecedf1; --page-text-secondary: rgba(236,237,241,0.75); }
  .page-tone-slate { background: #1a1f2b; --page-text: #ecedf1; --page-text-secondary: rgba(236,237,241,0.75); }

  /* ── Finance: workflow-into-chat demo ─────────────────────────────
     Flat background set to the exact --sys-bg value so the borderless
     .sys instance below disappears into the section with no seam. */
  .finance-demo-sect { margin-top:0; padding-top:clamp(22px,3vw,42px)!important; background: #080b11 !important; padding: calc(var(--pad-y) * 0.7) 0; position: relative; overflow: hidden; }
  /* Stepped transition off the cream page body above — a single
     geometric step in the light color laid over this dark section's
     top edge, so the seam reads as one clean landing instead of a
     straight line. Same principle as the homepage dividers: this
     shaped edge is the full border. */
  .finance-demo-sect::before {
    content: '';
    position: absolute;
    top: -1px; left: 0; right: 0;
    height: 60px;
    background: #f4f0e8;
    clip-path: polygon(0% 0%, 100% 0%, 100% 100%, 48% 100%, 38% 30%, 0% 30%);
    pointer-events: none;
    z-index: 2;
  }

  /* ── Wider desktop scene: the app is a window open on a real desktop ── */
  .finance-demo-sect .section-inner { max-width: 1560px; }
  .fin-cta-row { text-align: center; margin-top: clamp(40px, 5vw, 64px); position: relative; z-index: 2; }
  .fin-cta-line { font-family: var(--sans); font-size: 15px; line-height: 1.6; color: rgba(255,255,255,.68); margin: 0 0 20px; }
  .fin-desktop { position: relative; border: 1px solid rgba(255,255,255,.14); border-radius: 12px; overflow: hidden; background: #05070c; box-shadow: 0 50px 120px rgba(0,0,0,.55), 0 0 0 1px rgba(255,255,255,.02) inset; }
  .fin-desktop-bg { position: relative; padding: clamp(40px,5vw,72px) clamp(44px,5.5vw,100px) clamp(112px,9.5vw,150px); min-height: 860px; display: flex; align-items: center; justify-content: center; overflow: hidden;
    background-color: #05070f;
    background-image:
      radial-gradient(1.6px 1.6px at 8% 14%, rgba(255,255,255,.9), transparent 60%),
      radial-gradient(1.2px 1.2px at 22% 30%, rgba(255,255,255,.7), transparent 60%),
      radial-gradient(1.4px 1.4px at 38% 9%, rgba(255,255,255,.8), transparent 60%),
      radial-gradient(1px 1px at 55% 24%, rgba(255,255,255,.6), transparent 60%),
      radial-gradient(1.6px 1.6px at 71% 15%, rgba(255,255,255,.85), transparent 60%),
      radial-gradient(1.2px 1.2px at 85% 28%, rgba(255,255,255,.65), transparent 60%),
      radial-gradient(1.4px 1.4px at 94% 11%, rgba(255,255,255,.75), transparent 60%),
      radial-gradient(1px 1px at 15% 42%, rgba(255,255,255,.5), transparent 60%),
      radial-gradient(1.3px 1.3px at 63% 38%, rgba(255,255,255,.55), transparent 60%),
      radial-gradient(1.1px 1.1px at 45% 46%, rgba(255,255,255,.45), transparent 60%),
      radial-gradient(ellipse 90% 55% at 50% 112%, rgba(78,143,247,.26), transparent 62%),
      radial-gradient(ellipse 60% 42% at 14% -4%, rgba(42,212,229,.16), transparent 60%),
      radial-gradient(ellipse 55% 40% at 90% -2%, rgba(120,116,255,.13), transparent 60%),
      linear-gradient(180deg, #05070f 0%, #0a1120 32%, #0e1729 58%, #0a0f1c 100%); }
  @media (max-width: 960px) { .fin-desktop-bg { min-height: 720px; padding: 20px; } }
  .fin-desktop .finance-sys { border: 1px solid var(--sys-border-2); box-shadow: 0 30px 90px rgba(0,0,0,.55); border-radius: 10px; width: 72%; max-width: 1040px; margin: 0 auto; overflow: hidden; }
  @media (max-width: 960px) { .fin-desktop .finance-sys { width: 100%; } }

  .fin-file-icon { position: absolute; top: 26px; right: 26px; display: flex; flex-direction: column; align-items: center; gap: 7px; width: 84px; opacity: 1; z-index: 15; transition: left .9s cubic-bezier(.4,.05,.2,1), top .9s cubic-bezier(.4,.05,.2,1), opacity .3s; }
  .fin-file-icon svg { width: 42px; height: 52px; filter: drop-shadow(0 6px 12px rgba(0,0,0,.55)); }
  .fin-file-icon .fin-file-label { font-family: var(--sans); font-size: 9.5px; line-height: 1.35; color: rgba(255,255,255,.85); text-align: center; word-break: break-word; text-shadow: 0 1px 4px rgba(0,0,0,.7); }
  .fin-file-icon.grabbed svg { transform: scale(.94); }
  .fin-file-icon.dropped { opacity: 0; }
  @media (max-width: 960px) { .fin-file-icon { top: 16px; right: 16px; } }

  .fin-desk-icon { position: absolute; display: flex; flex-direction: column; align-items: center; gap: 6px; width: 76px; z-index: 5; }
  .fin-desk-icon svg { width: 36px; height: 36px; filter: drop-shadow(0 5px 10px rgba(0,0,0,.5)); }
  .fin-desk-icon span { font-family: var(--sans); font-size: 9.5px; line-height: 1.3; color: rgba(255,255,255,.8); text-align: center; text-shadow: 0 1px 4px rgba(0,0,0,.7); }

  .fin-dock { position: absolute; left: 50%; bottom: 22px; transform: translateX(-50%); display: flex; align-items: flex-end; gap: 11px; padding: 9px 13px; background: rgba(255,255,255,.09); border: 1px solid rgba(255,255,255,.14); border-radius: 18px; -webkit-backdrop-filter: blur(16px); backdrop-filter: blur(16px); box-shadow: 0 20px 50px rgba(0,0,0,.45); z-index: 6; }
  .fin-dock-icon { width: 36px; height: 36px; border-radius: 9px; display: flex; align-items: center; justify-content: center; box-shadow: 0 4px 10px rgba(0,0,0,.35), 0 0 0 1px rgba(255,255,255,.06) inset; }
  .fin-dock-icon svg { width: 19px; height: 19px; }
  @media (max-width: 960px) { .fin-dock { display: none; } .fin-desk-icon { display: none; } }

  /* ── Slash command palette ─────────────────────────────────────── */
  .cmd-menu { position: absolute; left: 0; right: 0; bottom: calc(100% + 8px); background: #12151c; border: 1px solid rgba(255,255,255,.1); border-radius: 10px; padding: 6px; opacity: 0; transform: translateY(6px); pointer-events: none; transition: opacity .25s, transform .25s; box-shadow: 0 24px 60px rgba(0,0,0,.55); z-index: 12; }
  .cmd-menu.on { opacity: 1; transform: translateY(0); }
  .cmd-item { display: flex; align-items: center; gap: 16px; padding: 9px 12px; border-radius: 6px; transition: background .2s; }
  .cmd-item.hl { background: rgba(42,212,229,.13); }
  .cmd-k { font-family: var(--mono); font-size: 12px; color: var(--cyan); min-width: 128px; flex-shrink: 0; }
  .cmd-d { font-family: var(--sans); font-size: 11.5px; color: rgba(229,233,240,.55); }

  /* ── Sub-page nav stays legible over any tone ───────────────────── */
  .page nav#nav {
    background: rgba(10,12,18,0.94);
    -webkit-backdrop-filter: blur(20px);
    backdrop-filter: blur(20px);
    border-bottom: 1px solid rgba(255,255,255,0.06);
  }
  .page nav#nav .nav-link,
  .page nav#nav .logo-word { color: #ecedf1; }
  .page nav#nav .nav-link:hover { color: #fff; }
