<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Science &amp; Data on QFT - Quantitative Financial Technology</title><link>https://qft-analytics.com/science/</link><description>Recent content in Science &amp; Data on QFT - Quantitative Financial Technology</description><generator>Hugo</generator><language>de</language><atom:link href="https://qft-analytics.com/science/index.xml" rel="self" type="application/rss+xml"/><item><title>AI Assistant</title><link>https://qft-analytics.com/science/ai-assistant/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://qft-analytics.com/science/ai-assistant/</guid><description>&lt;style&gt;
 /* ─── PAGE WRAPPER ─── */
 .ai {
 font-family: "Inter", sans-serif;
 color: #1e293b;
 background: #f8fafc;
 }

 /* ─── HERO (DARK, FULL VIEWPORT — matches Rating / Valuation / Workflow) ─── */
 .hero {
 position: relative;
 min-height: 60vh;
 padding: 6rem 0 4rem;
 background: linear-gradient(180deg, #04060a 0%, #0b1220 55%, #0f172a 100%);
 color: #f8fafc;
 overflow: hidden;
 display: flex;
 align-items: center;
 }
 .hero-inner {
 position: relative;
 z-index: 2;
 max-width: var(--page-shell-max-width);
 width: 100%;
 margin: 0 auto;
 padding-left: var(--page-shell-gutter-mobile);
 padding-right: var(--page-shell-gutter-mobile);
 box-sizing: border-box;
 }
 .hero-copy {
 max-width: 720px;
 }
 .hero-header {
 margin-bottom: 1.5rem;
 }
 .hero-header h1 {
 font-family: "Inter", sans-serif;
 font-size: clamp(1.65rem, 3.6vw, 3.15rem);
 font-weight: 700;
 letter-spacing: -0.03em;
 line-height: 1.1;
 color: #f8fafc;
 }
 .hero-sub {
 font-size: 1.05rem;
 color: #94a3b8;
 font-weight: 300;
 line-height: 1.65;
 max-width: 640px;
 margin-bottom: 2.25rem;
 }
 .hero-ctas {
 display: flex;
 gap: 0.75rem;
 flex-wrap: wrap;
 }
 .hero-scroll {
 position: absolute;
 bottom: 2rem;
 left: 50%;
 transform: translateX(-50%);
 z-index: 2;
 color: #64748b;
 animation: heroScrollBob 2.5s ease-in-out infinite;
 }
 .hero-scroll-inner {
 display: flex;
 flex-direction: column;
 align-items: center;
 gap: 0.25rem;
 }
 .hero-scroll-inner svg {
 width: 20px;
 height: 20px;
 }
 @keyframes heroScrollBob {
 0%,
 100% {
 transform: translateX(-50%) translateY(0);
 }
 50% {
 transform: translateX(-50%) translateY(6px);
 }
 }

 @media (max-width: 480px) {
 .hero {
 padding: 5rem 0 3rem;
 }
 .hero-ctas {
 flex-direction: column;
 align-items: stretch;
 }
 }
 @media (min-width: 1024px) {
 .hero-inner {
 padding-left: var(--page-shell-gutter-desktop);
 padding-right: var(--page-shell-gutter-desktop);
 }
 }

 /* ─── REDESIGNED SECTIONS (aia- prefix) ─── */

 /* Shared section wrapper */
 .aia-section {
 max-width: 1140px;
 margin: 0 auto;
 padding: 4rem 2.5rem;
 }

 /* Intro */
 .aia-intro {
 max-width: 680px;
 margin: 0 auto;
 text-align: center;
 padding: 3rem 2.5rem 2rem;
 }
 .aia-section-label {
 display: inline-block;
 font-size: 0.65rem;
 font-weight: 600;
 letter-spacing: 0.14em;
 text-transform: uppercase;
 color: #0b5a54;
 margin-bottom: 0.75rem;
 }
 .aia-h2 {
 font-family: "Inter", sans-serif;
 font-size: clamp(1.3rem, 2.6vw, 1.75rem);
 font-weight: 700;
 color: #0f172a;
 letter-spacing: -0.02em;
 line-height: 1.2;
 margin-bottom: 0.75rem;
 }
 .aia-p {
 font-size: 0.92rem;
 color: #475569;
 line-height: 1.75;
 font-weight: 300;
 }
 .aia-p strong {
 color: #0b1f3b;
 font-weight: 600;
 }
 .aia-divider {
 border: none;
 border-top: 1px solid #e2e8f0;
 max-width: 1140px;
 margin: 0 auto;
 }

 /* Two-column row */
 .aia-row {
 display: grid;
 grid-template-columns: 1fr 1fr;
 gap: 3.5rem;
 align-items: center;
 }
 .aia-row--reverse {
 direction: rtl;
 }
 .aia-row--reverse &gt; * {
 direction: ltr;
 }

 /* Text column */
 .aia-text {
 display: flex;
 flex-direction: column;
 gap: 0.5rem;
 }
 .aia-text .aia-h2 {
 text-align: left;
 }
 .aia-text .aia-p {
 margin-bottom: 0.25rem;
 }

 /* ─── DARK CARD (matches landing page .ps-card aesthetic) ─── */
 .aia-card {
 position: relative;
 border-radius: 20px;
 background:
 radial-gradient(120% 80% at 100% 0%, rgba(96, 165, 250, 0.12) 0%, rgba(15, 23, 42, 0) 60%),
 linear-gradient(180deg, rgba(20, 24, 38, 0.9) 0%, rgba(12, 16, 28, 0.9) 100%);
 border: 1px solid rgba(255, 255, 255, 0.08);
 overflow: hidden;
 padding: 1.5rem;
 }
 .aia-card-header {
 display: flex;
 align-items: center;
 gap: 0.45rem;
 padding-bottom: 0.75rem;
 border-bottom: 1px solid rgba(255, 255, 255, 0.06);
 margin-bottom: 0.85rem;
 }
 .aia-card-dot {
 width: 7px;
 height: 7px;
 border-radius: 50%;
 background: #0b5a54;
 }
 .aia-card-title {
 font-size: 0.65rem;
 font-weight: 600;
 letter-spacing: 0.08em;
 text-transform: uppercase;
 color: #0b5a54;
 }
 .aia-card-badge {
 margin-left: auto;
 padding: 2px 8px;
 border-radius: 4px;
 background: rgba(5, 150, 105, 0.12);
 color: #34d399;
 font-weight: 600;
 font-size: 0.55rem;
 }

 /* ─── EXTRACTION FLOW (horizontal: Source → Arrow → Structured) ─── */
 .aia-extract-flow {
 display: flex;
 align-items: stretch;
 gap: 0.75rem;
 opacity: 0;
 transform: translateY(20px);
 transition:
 opacity 600ms ease,
 transform 600ms ease;
 }
 .aia-card.is-visible .aia-extract-flow {
 opacity: 1;
 transform: translateY(0);
 }
 .aia-extract-box {
 flex: 1;
 padding: 0.75rem;
 border-radius: 10px;
 background: rgba(255, 255, 255, 0.03);
 border: 1px solid rgba(255, 255, 255, 0.06);
 }
 .aia-extract-box-head {
 display: flex;
 align-items: center;
 gap: 0.4rem;
 margin-bottom: 0.5rem;
 }
 .aia-extract-box-label {
 font-size: 0.62rem;
 font-weight: 600;
 color: #94a3b8;
 }
 .aia-extract-box-label--green {
 color: #34d399;
 }
 .aia-extract-files {
 display: flex;
 flex-direction: column;
 gap: 0.2rem;
 font-size: 0.55rem;
 color: #64748b;
 line-height: 1.5;
 }
 .aia-extract-arrow {
 display: flex;
 flex-direction: column;
 align-items: center;
 justify-content: center;
 gap: 0.2rem;
 flex-shrink: 0;
 padding: 0 0.25rem;
 opacity: 0;
 transition: opacity 500ms ease 400ms;
 }
 .aia-card.is-visible .aia-extract-arrow {
 opacity: 1;
 }
 .aia-extract-arrow-label {
 font-size: 0.45rem;
 font-weight: 600;
 color: #0b5a54;
 text-transform: uppercase;
 letter-spacing: 0.06em;
 }
 .aia-extract-row {
 display: flex;
 justify-content: space-between;
 font-size: 0.5rem;
 padding: 0.15rem 0;
 }
 .aia-extract-row-name {
 color: #64748b;
 }
 .aia-extract-row-val {
 font-weight: 600;
 color: #e2e8f0;
 font-family: "SF Mono", "Fira Code", monospace;
 }
 .aia-extract-row--warn .aia-extract-row-name {
 color: #fbbf24;
 }
 .aia-extract-row--warn .aia-extract-row-val {
 color: #fbbf24;
 }

 /* Staggered structured rows */
 .aia-extract-box--result .aia-extract-row {
 opacity: 0;
 transform: translateX(10px);
 transition:
 opacity 400ms ease,
 transform 400ms ease;
 }
 .aia-card.is-visible .aia-extract-box--result .aia-extract-row:nth-child(1) {
 opacity: 1;
 transform: translateX(0);
 transition-delay: 600ms;
 }
 .aia-card.is-visible .aia-extract-box--result .aia-extract-row:nth-child(2) {
 opacity: 1;
 transform: translateX(0);
 transition-delay: 750ms;
 }
 .aia-card.is-visible .aia-extract-box--result .aia-extract-row:nth-child(3) {
 opacity: 1;
 transform: translateX(0);
 transition-delay: 900ms;
 }
 .aia-card.is-visible .aia-extract-box--result .aia-extract-row:nth-child(4) {
 opacity: 1;
 transform: translateX(0);
 transition-delay: 1050ms;
 }

 /* ─── CHAT CARD ─── */
 .aia-chat-exchange {
 padding: 0.65rem 0;
 border-bottom: 1px solid rgba(255, 255, 255, 0.05);
 opacity: 0;
 transform: translateY(16px);
 transition:
 opacity 500ms ease,
 transform 500ms ease;
 }
 .aia-chat-exchange:last-child {
 border-bottom: none;
 padding-bottom: 0;
 }
 .aia-card.is-visible .aia-chat-exchange:nth-child(1) {
 opacity: 1;
 transform: translateY(0);
 transition-delay: 200ms;
 }
 .aia-card.is-visible .aia-chat-exchange:nth-child(2) {
 opacity: 1;
 transform: translateY(0);
 transition-delay: 600ms;
 }
 .aia-card.is-visible .aia-chat-exchange:nth-child(3) {
 opacity: 1;
 transform: translateY(0);
 transition-delay: 1000ms;
 }
 .aia-chat-msg {
 display: flex;
 align-items: flex-start;
 gap: 0.5rem;
 margin-bottom: 0.3rem;
 }
 .aia-chat-msg:last-child {
 margin-bottom: 0;
 }
 .aia-chat-icon {
 width: 20px;
 height: 20px;
 border-radius: 5px;
 display: flex;
 align-items: center;
 justify-content: center;
 flex-shrink: 0;
 margin-top: 1px;
 }
 .aia-chat-icon--user {
 background: rgba(255, 255, 255, 0.08);
 }
 .aia-chat-icon--ai {
 background: rgba(11, 90, 84, 0.2);
 }
 .aia-chat-q {
 font-size: 0.73rem;
 color: #cbd5e1;
 font-weight: 500;
 line-height: 1.5;
 }
 .aia-chat-a {
 font-size: 0.7rem;
 color: #0b5a54;
 line-height: 1.55;
 font-weight: 400;
 }

 /* ─── MEMO CARD ─── */
 .aia-memo-rows {
 display: flex;
 flex-direction: column;
 gap: 0.5rem;
 }
 .aia-memo-row {
 display: flex;
 align-items: center;
 gap: 0.65rem;
 padding: 0.55rem 0.7rem;
 border-radius: 8px;
 background: rgba(255, 255, 255, 0.03);
 border: 1px solid rgba(255, 255, 255, 0.05);
 opacity: 0;
 transform: translateY(12px);
 transition:
 opacity 500ms ease,
 transform 500ms ease;
 }
 .aia-card.is-visible .aia-memo-row:nth-child(1) {
 opacity: 1;
 transform: translateY(0);
 transition-delay: 250ms;
 }
 .aia-card.is-visible .aia-memo-row:nth-child(2) {
 opacity: 1;
 transform: translateY(0);
 transition-delay: 450ms;
 }
 .aia-card.is-visible .aia-memo-row:nth-child(3) {
 opacity: 1;
 transform: translateY(0);
 transition-delay: 650ms;
 }
 .aia-card.is-visible .aia-memo-row:nth-child(4) {
 opacity: 1;
 transform: translateY(0);
 transition-delay: 850ms;
 }
 .aia-memo-bar {
 width: 4px;
 height: 28px;
 border-radius: 2px;
 flex-shrink: 0;
 }
 .aia-memo-bar--blue {
 background: #0b1f3b;
 }
 .aia-memo-bar--red {
 background: #dc2626;
 }
 .aia-memo-bar--teal {
 background: #0b5a54;
 }
 .aia-memo-bar--amber {
 background: #b45309;
 }
 .aia-memo-label {
 font-size: 0.68rem;
 font-weight: 600;
 color: #e2e8f0;
 line-height: 1.3;
 }
 .aia-memo-label span {
 display: block;
 font-size: 0.58rem;
 font-weight: 400;
 color: #64748b;
 margin-top: 1px;
 }
 .aia-memo-footer {
 display: flex;
 justify-content: space-between;
 align-items: center;
 padding-top: 0.75rem;
 margin-top: 0.5rem;
 border-top: 1px solid rgba(255, 255, 255, 0.06);
 }
 .aia-memo-footer-text {
 font-size: 0.58rem;
 color: #64748b;
 }
 .aia-memo-footer-link {
 font-size: 0.58rem;
 color: #0b5a54;
 font-weight: 600;
 text-decoration: none;
 }

 /* ─── NOT SECTION (bordered card treatment) ─── */
 .aia-not {
 max-width: 780px;
 margin: 0 auto;
 padding: 2.5rem;
 background: #ffffff;
 border: 1px solid #e2e8f0;
 border-radius: 16px;
 box-shadow:
 0 1px 2px rgba(15, 23, 42, 0.04),
 0 8px 24px rgba(15, 23, 42, 0.06);
 }
 .aia-not .aia-h2 {
 text-align: left;
 }
 .aia-not .aia-p {
 margin-bottom: 0.5rem;
 }

 /* ─── DATA HANDLING (full-width dark card, 3 columns) ─── */
 .aia-data {
 border-radius: 20px;
 background:
 radial-gradient(120% 80% at 100% 0%, rgba(96, 165, 250, 0.12) 0%, rgba(15, 23, 42, 0) 60%),
 linear-gradient(180deg, rgba(20, 24, 38, 0.9) 0%, rgba(12, 16, 28, 0.9) 100%);
 border: 1px solid rgba(255, 255, 255, 0.08);
 padding: 2.5rem;
 }
 .aia-data-header {
 margin-bottom: 2rem;
 }
 .aia-data-header .aia-section-label {
 color: var(--ci-ice);
 }
 .aia-data-header .aia-h2 {
 color: #ffffff;
 text-align: left;
 }
 .aia-data-cols {
 display: grid;
 grid-template-columns: repeat(3, 1fr);
 gap: 2rem;
 }
 .aia-data-col-icon {
 width: 36px;
 height: 36px;
 border-radius: 10px;
 background: rgba(255, 255, 255, 0.06);
 border: 1px solid rgba(255, 255, 255, 0.08);
 display: flex;
 align-items: center;
 justify-content: center;
 margin-bottom: 0.75rem;
 }
 .aia-data-col-title {
 font-size: 0.85rem;
 font-weight: 600;
 color: #ffffff;
 margin-bottom: 0.4rem;
 }
 .aia-data-col-text {
 font-size: 0.8rem;
 color: #94a3b8;
 line-height: 1.6;
 font-weight: 300;
 }
 .aia-data-col-link {
 display: inline-block;
 margin-top: 0.6rem;
 font-size: 0.78rem;
 color: #0b5a54;
 font-weight: 600;
 text-decoration: none;
 }
 .aia-data-col-link:hover {
 text-decoration: underline;
 }

 /* ─── SCROLL ANIMATIONS ─── */
 .aia-reveal {
 opacity: 0;
 transform: translateY(40px);
 transition:
 opacity 700ms ease,
 transform 700ms ease;
 }
 .aia-reveal.is-visible {
 opacity: 1;
 transform: translateY(0);
 }
 .aia-reveal--d1.is-visible {
 transition-delay: 100ms;
 }
 .aia-reveal--d2.is-visible {
 transition-delay: 200ms;
 }

 /* ─── RESPONSIVE ─── */
 @media (max-width: 860px) {
 .aia-row {
 grid-template-columns: 1fr;
 gap: 2rem;
 }
 .aia-row--reverse {
 direction: ltr;
 }
 .aia-section {
 padding: 2.5rem 1.5rem;
 }
 .aia-intro {
 padding: 2rem 1.5rem 1rem;
 }
 .aia-data-cols {
 grid-template-columns: 1fr;
 gap: 1.5rem;
 }
 .aia-data {
 padding: 1.75rem 1.5rem;
 }
 .aia-not {
 padding: 1.75rem 1.5rem;
 }
 .aia-card {
 padding: 1.25rem;
 }
 .aia-extract-flow {
 flex-direction: column;
 }
 }
&lt;/style&gt;

&lt;!-- ═══ HERO (dark, full viewport — consistent with all product pages) ═══ --&gt;
&lt;section class="hero"&gt;
 &lt;div class="hero-inner"&gt;
 &lt;div class="hero-copy"&gt;
 &lt;div class="hero-header"&gt;
 &lt;h1&gt;The AI Analyst&lt;/h1&gt;
 &lt;/div&gt;
 &lt;p class="hero-sub"&gt;
 AI on the QFT platform does not make investment decisions and does not provide investment
 recommendations. It is a modern interface for interacting with data and analytics. The same way you
 would ask a colleague to pull a number, summarize a finding, or draft a memo.
 &lt;/p&gt;</description></item><item><title>Data &amp; Security</title><link>https://qft-analytics.com/science/data-security/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://qft-analytics.com/science/data-security/</guid><description>&lt;style&gt;
 .ds {
 font-family: "Inter", sans-serif;
 color: #1e293b;
 background: #f8fafc;
 }
 .ds-hero {
 padding: 5.5rem var(--page-shell-gutter-mobile) 2.5rem;
 width: 100%;
 max-width: var(--page-shell-max-width);
 margin: 0 auto;
 box-sizing: border-box;
 }
 .ds-label {
 font-size: 0.7rem;
 font-weight: 600;
 letter-spacing: 0.12em;
 text-transform: uppercase;
 color: #64748b;
 margin-bottom: 0.35rem;
 }
 .ds-h1 {
 font-size: clamp(1.6rem, 3vw, 2.2rem);
 font-weight: 700;
 color: #0f172a;
 letter-spacing: -0.03em;
 line-height: 1.15;
 margin-bottom: 0.75rem;
 }
 .ds-lead {
 font-size: 1rem;
 color: #64748b;
 line-height: 1.7;
 font-weight: 300;
 margin-bottom: 1.5rem;
 }
 .ds-section {
 padding: 0 var(--page-shell-gutter-mobile) 2.5rem;
 width: 100%;
 max-width: var(--page-shell-max-width);
 margin: 0 auto;
 box-sizing: border-box;
 }
 .ds-hero &gt; *,
 .ds-section &gt; * {
 width: 100%;
 max-width: 800px;
 }
 .ds-h2 {
 font-size: 1.25rem;
 font-weight: 700;
 color: #0f172a;
 margin-bottom: 0.6rem;
 letter-spacing: -0.01em;
 }
 .ds-h3 {
 font-size: 0.95rem;
 font-weight: 600;
 color: #1e293b;
 margin-bottom: 0.4rem;
 margin-top: 1.25rem;
 }
 .ds-p {
 font-size: 0.88rem;
 color: #475569;
 line-height: 1.75;
 font-weight: 300;
 margin-bottom: 0.75rem;
 }
 .ds-strong {
 color: #0b1f3b;
 font-weight: 600;
 }
 .ds-divider {
 border-top: 1px solid #e2e8f0;
 width: calc(100% - (var(--page-shell-gutter-mobile) * 2));
 max-width: calc(var(--page-shell-max-width) - (var(--page-shell-gutter-mobile) * 2));
 margin: 0 auto 2rem;
 }
 .ds-highlight {
 background: #fff;
 border-left: 3px solid #0b1f3b;
 border-radius: 0 8px 8px 0;
 padding: 1rem 1.25rem;
 margin: 1.25rem 0;
 }
 .ds-highlight-label {
 font-size: 0.55rem;
 font-weight: 600;
 text-transform: uppercase;
 letter-spacing: 0.1em;
 color: #0b1f3b;
 margin-bottom: 0.3rem;
 }
 .ds-highlight p {
 font-size: 0.85rem;
 color: #475569;
 line-height: 1.6;
 font-weight: 300;
 }
 .ds-grid {
 display: grid;
 grid-template-columns: 1fr 1fr;
 gap: 1rem;
 margin: 1.25rem 0;
 }
 .ds-card {
 background: #fff;
 border: 1px solid #e2e8f0;
 border-radius: 10px;
 padding: 1.25rem;
 }
 .ds-card-label {
 font-size: 0.55rem;
 font-weight: 600;
 text-transform: uppercase;
 letter-spacing: 0.1em;
 color: #0b1f3b;
 margin-bottom: 0.35rem;
 }
 .ds-card-title {
 font-size: 0.9rem;
 font-weight: 600;
 color: #1e293b;
 margin-bottom: 0.25rem;
 }
 .ds-card-text {
 font-size: 0.8rem;
 color: #64748b;
 line-height: 1.6;
 font-weight: 300;
 }
 .ds-cta {
 padding: 3rem 2.5rem;
 background: #0b1f3b;
 color: #fff;
 text-align: center;
 }
 .ds-cta h2 {
 font-size: 1.5rem;
 font-weight: 700;
 margin-bottom: 0.5rem;
 color: #fff;
 }
 .ds-cta p {
 font-size: 0.9rem;
 color: #94a3b8;
 font-weight: 300;
 margin-bottom: 1.25rem;
 max-width: 500px;
 margin-left: auto;
 margin-right: auto;
 }
 @media (max-width: 768px) {
 .ds-grid {
 grid-template-columns: 1fr;
 }
 }
 @media (min-width: 1024px) {
 .ds-hero,
 .ds-section {
 padding-left: var(--page-shell-gutter-desktop);
 padding-right: var(--page-shell-gutter-desktop);
 }
 .ds-divider {
 width: calc(100% - (var(--page-shell-gutter-desktop) * 2));
 max-width: calc(var(--page-shell-max-width) - (var(--page-shell-gutter-desktop) * 2));
 }
 }
&lt;/style&gt;

&lt;div class="ds"&gt;
 &lt;div class="ds-hero"&gt;
 &lt;p class="ds-label"&gt;Science &amp; Data&lt;/p&gt;</description></item><item><title>Data Extraction</title><link>https://qft-analytics.com/science/data-extraction/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://qft-analytics.com/science/data-extraction/</guid><description>&lt;style&gt;
 /* ─── PAGE WRAPPER ─── */
 .dx {
 font-family: "Inter", sans-serif;
 color: #1e293b;
 background: #f8fafc;
 }

 /* ─── HERO (DARK, FULL VIEWPORT — no animation, horizontal stretch) ─── */
 .hero {
 position: relative;
 min-height: 60vh;
 padding: 6rem 0 4rem;
 background: linear-gradient(180deg, #04060a 0%, #0b1220 55%, #0f172a 100%);
 color: #f8fafc;
 overflow: hidden;
 display: flex;
 align-items: center;
 }
 .hero-inner {
 position: relative;
 z-index: 2;
 max-width: var(--page-shell-max-width);
 width: 100%;
 margin: 0 auto;
 padding-left: var(--page-shell-gutter-mobile);
 padding-right: var(--page-shell-gutter-mobile);
 box-sizing: border-box;
 }
 .hero-copy {
 max-width: 720px;
 }
 .hero-header {
 margin-bottom: 1.5rem;
 }
 .hero-header h1 {
 font-family: "Inter", sans-serif;
 font-size: clamp(1.65rem, 3.6vw, 3.15rem);
 font-weight: 700;
 letter-spacing: -0.03em;
 line-height: 1.1;
 color: #f8fafc;
 }
 .hero-sub {
 font-size: 1.05rem;
 color: #94a3b8;
 font-weight: 300;
 line-height: 1.65;
 max-width: 640px;
 margin-bottom: 2.25rem;
 }
 .hero-ctas {
 display: flex;
 gap: 0.75rem;
 flex-wrap: wrap;
 }
 .hero-scroll {
 position: absolute;
 bottom: 2rem;
 left: 50%;
 transform: translateX(-50%);
 z-index: 2;
 color: #64748b;
 animation: heroScrollBob 2.5s ease-in-out infinite;
 }
 .hero-scroll-inner {
 display: flex;
 flex-direction: column;
 align-items: center;
 gap: 0.25rem;
 }
 .hero-scroll-inner svg {
 width: 20px;
 height: 20px;
 }
 @keyframes heroScrollBob {
 0%,
 100% {
 transform: translateX(-50%) translateY(0);
 }
 50% {
 transform: translateX(-50%) translateY(6px);
 }
 }
 @media (max-width: 480px) {
 .hero {
 padding: 5rem 0 3rem;
 }
 .hero-ctas {
 flex-direction: column;
 align-items: stretch;
 }
 }
 @media (min-width: 1024px) {
 .hero-inner {
 padding-left: var(--page-shell-gutter-desktop);
 padding-right: var(--page-shell-gutter-desktop);
 }
 }

 /* ─── BODY SECTIONS (dxn- prefix) ─── */

 .dxn-section {
 max-width: 1140px;
 margin: 0 auto;
 padding: 4rem 2.5rem;
 }
 .dxn-intro {
 max-width: 680px;
 margin: 0 auto;
 text-align: center;
 padding: 3rem 2.5rem 2rem;
 }
 .dxn-section-label {
 display: inline-block;
 font-size: 0.65rem;
 font-weight: 600;
 letter-spacing: 0.14em;
 text-transform: uppercase;
 color: #0b5a54;
 margin-bottom: 0.75rem;
 }
 .dxn-h2 {
 font-family: "Inter", sans-serif;
 font-size: clamp(1.3rem, 2.6vw, 1.75rem);
 font-weight: 700;
 color: #0f172a;
 letter-spacing: -0.02em;
 line-height: 1.2;
 margin-bottom: 0.75rem;
 }
 .dxn-p {
 font-size: 0.92rem;
 color: #475569;
 line-height: 1.75;
 font-weight: 300;
 }
 .dxn-p strong {
 color: #0b1f3b;
 font-weight: 600;
 }
 .dxn-p a {
 color: #0b5a54;
 font-weight: 600;
 text-decoration: none;
 }
 .dxn-p a:hover {
 text-decoration: underline;
 }
 .dxn-divider {
 border: none;
 border-top: 1px solid #e2e8f0;
 max-width: 1140px;
 margin: 0 auto;
 }

 /* Two-column row */
 .dxn-row {
 display: grid;
 grid-template-columns: 1fr 1fr;
 gap: 3.5rem;
 align-items: center;
 }
 .dxn-row--reverse {
 direction: rtl;
 }
 .dxn-row--reverse &gt; * {
 direction: ltr;
 }

 .dxn-text {
 display: flex;
 flex-direction: column;
 gap: 0.5rem;
 }
 .dxn-text .dxn-h2 {
 text-align: left;
 }
 .dxn-text .dxn-p {
 margin-bottom: 0.25rem;
 }

 /* ─── DARK CARD ─── */
 .dxn-card {
 position: relative;
 border-radius: 20px;
 background:
 radial-gradient(120% 80% at 100% 0%, rgba(96, 165, 250, 0.12) 0%, rgba(15, 23, 42, 0) 60%),
 linear-gradient(180deg, rgba(20, 24, 38, 0.9) 0%, rgba(12, 16, 28, 0.9) 100%);
 border: 1px solid rgba(255, 255, 255, 0.08);
 overflow: hidden;
 padding: 1.5rem;
 }
 .dxn-card-header {
 display: flex;
 align-items: center;
 gap: 0.45rem;
 padding-bottom: 0.75rem;
 border-bottom: 1px solid rgba(255, 255, 255, 0.06);
 margin-bottom: 0.85rem;
 }
 .dxn-card-dot {
 width: 7px;
 height: 7px;
 border-radius: 50%;
 background: #0b5a54;
 }
 .dxn-card-title {
 font-size: 0.65rem;
 font-weight: 600;
 letter-spacing: 0.08em;
 text-transform: uppercase;
 color: #0b5a54;
 }

 /* ─── INPUTS CARD: upload → extract → structured flow ─── */
 .dxn-flow {
 display: flex;
 align-items: stretch;
 gap: 0.6rem;
 }
 .dxn-flow-col {
 flex: 1;
 min-width: 0;
 }
 .dxn-flow-col--arrow {
 flex: 0 0 auto;
 display: flex;
 flex-direction: column;
 align-items: center;
 justify-content: center;
 gap: 0.2rem;
 padding: 0 0.15rem;
 opacity: 0;
 transition: opacity 500ms ease;
 }
 .dxn-card.is-visible .dxn-flow-col--arrow {
 opacity: 1;
 transition-delay: 900ms;
 }
 .dxn-flow-arrow-label {
 font-size: 0.42rem;
 font-weight: 600;
 color: #0b5a54;
 text-transform: uppercase;
 letter-spacing: 0.06em;
 }
 .dxn-flow-col-label {
 font-size: 0.55rem;
 font-weight: 600;
 color: #64748b;
 text-transform: uppercase;
 letter-spacing: 0.08em;
 margin-bottom: 0.45rem;
 display: flex;
 align-items: center;
 gap: 0.35rem;
 }
 .dxn-flow-col-label--green {
 color: #34d399;
 }

 /* Upload file chips */
 .dxn-upload-list {
 display: flex;
 flex-direction: column;
 gap: 0.35rem;
 }
 .dxn-upload-chip {
 display: flex;
 align-items: center;
 gap: 0.45rem;
 padding: 0.35rem 0.5rem;
 border-radius: 6px;
 background: rgba(255, 255, 255, 0.03);
 border: 1px solid rgba(255, 255, 255, 0.06);
 opacity: 0;
 transform: translateY(12px) scale(0.95);
 transition:
 opacity 400ms ease,
 transform 400ms ease;
 }
 .dxn-card.is-visible .dxn-upload-chip {
 opacity: 1;
 transform: translateY(0) scale(1);
 }
 .dxn-card.is-visible .dxn-upload-chip:nth-child(1) {
 transition-delay: 100ms;
 }
 .dxn-card.is-visible .dxn-upload-chip:nth-child(2) {
 transition-delay: 250ms;
 }
 .dxn-card.is-visible .dxn-upload-chip:nth-child(3) {
 transition-delay: 400ms;
 }
 .dxn-card.is-visible .dxn-upload-chip:nth-child(4) {
 transition-delay: 550ms;
 }
 .dxn-card.is-visible .dxn-upload-chip:nth-child(5) {
 transition-delay: 700ms;
 }
 .dxn-upload-badge {
 font-size: 0.42rem;
 font-weight: 700;
 letter-spacing: 0.04em;
 padding: 2px 5px;
 border-radius: 4px;
 flex-shrink: 0;
 }
 .dxn-upload-badge--pdf {
 background: rgba(239, 68, 68, 0.15);
 color: #f87171;
 }
 .dxn-upload-badge--xls {
 background: rgba(34, 197, 94, 0.15);
 color: #4ade80;
 }
 .dxn-upload-badge--csv {
 background: rgba(219, 234, 254, 0.18);
 color: var(--ci-ice);
 }
 .dxn-upload-badge--dr {
 background: rgba(251, 191, 36, 0.15);
 color: #fbbf24;
 }
 .dxn-upload-name {
 font-size: 0.55rem;
 color: #94a3b8;
 white-space: nowrap;
 overflow: hidden;
 text-overflow: ellipsis;
 }
 .dxn-upload-check {
 margin-left: auto;
 color: #34d399;
 opacity: 0;
 transition: opacity 300ms ease;
 }
 .dxn-card.is-visible .dxn-upload-chip:nth-child(1) .dxn-upload-check {
 opacity: 1;
 transition-delay: 500ms;
 }
 .dxn-card.is-visible .dxn-upload-chip:nth-child(2) .dxn-upload-check {
 opacity: 1;
 transition-delay: 650ms;
 }
 .dxn-card.is-visible .dxn-upload-chip:nth-child(3) .dxn-upload-check {
 opacity: 1;
 transition-delay: 800ms;
 }
 .dxn-card.is-visible .dxn-upload-chip:nth-child(4) .dxn-upload-check {
 opacity: 1;
 transition-delay: 950ms;
 }
 .dxn-card.is-visible .dxn-upload-chip:nth-child(5) .dxn-upload-check {
 opacity: 1;
 transition-delay: 1100ms;
 }

 /* Structured output rows (right side of flow) */
 .dxn-struct-list {
 display: flex;
 flex-direction: column;
 gap: 0.35rem;
 }
 .dxn-struct-row {
 display: flex;
 justify-content: space-between;
 align-items: center;
 padding: 0.35rem 0.5rem;
 border-radius: 6px;
 background: rgba(255, 255, 255, 0.03);
 border: 1px solid rgba(255, 255, 255, 0.06);
 opacity: 0;
 transform: translateX(12px);
 transition:
 opacity 400ms ease,
 transform 400ms ease;
 }
 .dxn-card.is-visible .dxn-struct-row {
 opacity: 1;
 transform: translateX(0);
 }
 .dxn-card.is-visible .dxn-struct-row:nth-child(1) {
 transition-delay: 1100ms;
 }
 .dxn-card.is-visible .dxn-struct-row:nth-child(2) {
 transition-delay: 1250ms;
 }
 .dxn-card.is-visible .dxn-struct-row:nth-child(3) {
 transition-delay: 1400ms;
 }
 .dxn-card.is-visible .dxn-struct-row:nth-child(4) {
 transition-delay: 1550ms;
 }
 .dxn-card.is-visible .dxn-struct-row:nth-child(5) {
 transition-delay: 1700ms;
 }
 .dxn-struct-name {
 font-size: 0.52rem;
 color: #94a3b8;
 }
 .dxn-struct-val {
 font-size: 0.52rem;
 font-weight: 600;
 color: #e2e8f0;
 font-family: "SF Mono", "Fira Code", monospace;
 }
 .dxn-struct-val--warn {
 color: #fbbf24;
 }

 /* ─── PROCESS CARD: schema mapping flow ─── */
 .dxn-process-flow {
 display: flex;
 flex-direction: column;
 gap: 0.5rem;
 }
 .dxn-process-step {
 display: flex;
 align-items: center;
 gap: 0.65rem;
 padding: 0.55rem 0.65rem;
 border-radius: 8px;
 background: rgba(255, 255, 255, 0.03);
 border: 1px solid rgba(255, 255, 255, 0.06);
 opacity: 0;
 transform: translateY(12px);
 transition:
 opacity 450ms ease,
 transform 450ms ease;
 }
 .dxn-card.is-visible .dxn-process-step {
 opacity: 1;
 transform: translateY(0);
 }
 .dxn-card.is-visible .dxn-process-step:nth-child(1) {
 transition-delay: 200ms;
 }
 .dxn-card.is-visible .dxn-process-step:nth-child(2) {
 transition-delay: 400ms;
 }
 .dxn-card.is-visible .dxn-process-step:nth-child(3) {
 transition-delay: 600ms;
 }
 .dxn-card.is-visible .dxn-process-step:nth-child(4) {
 transition-delay: 800ms;
 }
 .dxn-process-num {
 width: 24px;
 height: 24px;
 border-radius: 6px;
 background: rgba(11, 90, 84, 0.2);
 color: #0b5a54;
 display: flex;
 align-items: center;
 justify-content: center;
 font-size: 0.6rem;
 font-weight: 700;
 flex-shrink: 0;
 }
 .dxn-process-label {
 font-size: 0.72rem;
 font-weight: 500;
 color: #e2e8f0;
 line-height: 1.3;
 }
 .dxn-process-label span {
 display: block;
 font-size: 0.58rem;
 font-weight: 400;
 color: #64748b;
 margin-top: 1px;
 }
 .dxn-process-status {
 margin-left: auto;
 font-size: 0.55rem;
 font-weight: 600;
 white-space: nowrap;
 }
 .dxn-process-status--ok {
 color: #34d399;
 }
 .dxn-process-status--review {
 color: #fbbf24;
 }

 /* ─── OUTPUT CARD: structured data preview ─── */
 .dxn-output-rows {
 display: flex;
 flex-direction: column;
 gap: 0.4rem;
 }
 .dxn-output-row {
 display: flex;
 align-items: center;
 gap: 0.65rem;
 padding: 0.45rem 0.65rem;
 border-radius: 8px;
 background: rgba(255, 255, 255, 0.03);
 border: 1px solid rgba(255, 255, 255, 0.06);
 opacity: 0;
 transform: translateY(10px);
 transition:
 opacity 400ms ease,
 transform 400ms ease;
 }
 .dxn-card.is-visible .dxn-output-row {
 opacity: 1;
 transform: translateY(0);
 }
 .dxn-card.is-visible .dxn-output-row:nth-child(1) {
 transition-delay: 200ms;
 }
 .dxn-card.is-visible .dxn-output-row:nth-child(2) {
 transition-delay: 350ms;
 }
 .dxn-card.is-visible .dxn-output-row:nth-child(3) {
 transition-delay: 500ms;
 }
 .dxn-card.is-visible .dxn-output-row:nth-child(4) {
 transition-delay: 650ms;
 }
 .dxn-card.is-visible .dxn-output-row:nth-child(5) {
 transition-delay: 800ms;
 }
 .dxn-output-bar {
 width: 4px;
 height: 24px;
 border-radius: 2px;
 flex-shrink: 0;
 }
 .dxn-output-bar--blue {
 background: #1d4ed8;
 }
 .dxn-output-bar--teal {
 background: #0b5a54;
 }
 .dxn-output-bar--cyan {
 background: var(--ci-ice);
 }
 .dxn-output-bar--amber {
 background: #b45309;
 }
 .dxn-output-bar--green {
 background: #059669;
 }
 .dxn-output-label {
 font-size: 0.68rem;
 font-weight: 600;
 color: #e2e8f0;
 line-height: 1.3;
 }
 .dxn-output-label span {
 display: block;
 font-size: 0.55rem;
 font-weight: 400;
 color: #64748b;
 margin-top: 1px;
 }
 .dxn-output-val {
 margin-left: auto;
 font-size: 0.6rem;
 font-weight: 600;
 color: #34d399;
 font-family: "SF Mono", "Fira Code", monospace;
 white-space: nowrap;
 }

 /* ─── HIGHLIGHT (bordered card treatment) ─── */
 .dxn-highlight {
 max-width: 780px;
 margin: 0 auto;
 padding: 2.5rem;
 background: #ffffff;
 border: 1px solid #e2e8f0;
 border-radius: 16px;
 box-shadow:
 0 1px 2px rgba(15, 23, 42, 0.04),
 0 8px 24px rgba(15, 23, 42, 0.06);
 }
 .dxn-highlight .dxn-h2 {
 text-align: left;
 }
 .dxn-highlight .dxn-p {
 margin-bottom: 0.5rem;
 }
 .dxn-highlight-accent {
 display: flex;
 align-items: center;
 gap: 0.75rem;
 padding: 1rem 1.25rem;
 border-left: 3px solid #0b5a54;
 border-radius: 0 8px 8px 0;
 background: rgba(11, 90, 84, 0.04);
 margin-bottom: 1.5rem;
 }
 .dxn-highlight-accent p {
 font-size: 0.88rem;
 color: #475569;
 line-height: 1.65;
 font-weight: 300;
 }

 /* ─── SCROLL ANIMATIONS ─── */
 .dxn-reveal {
 opacity: 0;
 transform: translateY(40px);
 transition:
 opacity 700ms ease,
 transform 700ms ease;
 }
 .dxn-reveal.is-visible {
 opacity: 1;
 transform: translateY(0);
 }
 .dxn-reveal--d1.is-visible {
 transition-delay: 100ms;
 }

 /* ─── RESPONSIVE ─── */
 @media (max-width: 860px) {
 .dxn-row {
 grid-template-columns: 1fr;
 gap: 2rem;
 }
 .dxn-row--reverse {
 direction: ltr;
 }
 .dxn-section {
 padding: 2.5rem 1.5rem;
 }
 .dxn-intro {
 padding: 2rem 1.5rem 1rem;
 }
 .dxn-highlight {
 padding: 1.75rem 1.5rem;
 }
 .dxn-card {
 padding: 1.25rem;
 }
 .dxn-flow {
 flex-direction: column;
 }
 .dxn-flow-col--arrow {
 flex-direction: row;
 padding: 0.25rem 0;
 }
 .dxn-flow-col--arrow svg {
 transform: rotate(90deg);
 }
 }
&lt;/style&gt;

&lt;!-- ═══ HERO ═══ --&gt;
&lt;section class="hero"&gt;
 &lt;div class="hero-inner"&gt;
 &lt;div class="hero-copy"&gt;
 &lt;div class="hero-header"&gt;
 &lt;h1&gt;Data Extraction&lt;/h1&gt;
 &lt;/div&gt;
 &lt;p class="hero-sub"&gt;
 QFT turns unstructured private market documents, such as GP reports, track records, and data rooms, into
 structured, queryable data. Schema-enforced, human-verified, and ready for analytics.
 &lt;/p&gt;</description></item></channel></rss>