rtik007 commited on
Commit
0398dc6
·
verified ·
1 Parent(s): 1dc9e2c

Goal: Create a visually engaging and logically organized infographic that summarizes and enhances understanding of the provided content.

Browse files

Instructions for the model:
You are an expert infographic designer skilled in information visualization, storytelling, and layout design. Based on the content provided below, do the following:

Understand the Essence: Identify the key message, structure, and relationships within the content.

Design Concept: Suggest a clear infographic theme (timeline, flowchart, layered diagram, circular infographic, pyramid, or data-driven layout) suited to the material.

Visual Hierarchy: Emphasize clarity, coherence, and storytelling—main ideas at the top or center, supporting points radiating or cascading logically.

Sections to Include:

Title: Short and striking.

Core Message: 1–2 sentences summarizing the takeaway.

Visual Blocks: Label each block with short, scannable text.

Flow or Relationship Arrows: Indicate direction or causality.

Optional Data Elements: Icons, mini-charts, or symbols if numerical data or categories are present.

Output Format:

Provide a text-based layout plan (bullet form or structured hierarchy)

Suggest color palette, fonts, and style keywords (e.g., “modern flat minimalism,” “corporate blue gradient,” or “educational chalkboard style”).

End with a concise caption or tagline summarizing the infographic’s message.

Content to visualize: Building an End‑to‑End AI Platform: From Data Ingestion to Model‐as‑a‑Service

Modern AI applications require more than just training a model – they need a complete ecosystem that handles data ingestion, preprocessing, model development, evaluation, deployment and ongoing monitoring. The handwritten notes provided outline a vision for such an ecosystem. This article organizes those ideas into a coherent blueprint for a scalable AI‑as‑a‑Service (AIaaS) platform that supports multiple ML tasks (NLP, anomaly detection, forecasting, risk modelling and more) while emphasizing reusability, governance and explainability.

1. Core Pipeline Design

At the heart of any ML platform is a reusable data pipeline that orchestrates how raw data is collected, transformed, modelled and delivered as predictions. The notes sketch out several reusable utilities:

Data ingestion and parsing – utilities to ingest data from logs (e.g., Splunk), databases or APIs, and chunk/parse them into structured formats.

Preprocessing and post‑processing – routines for cleaning data, handling missing values, scaling numeric features, text tokenization or embedding generation, and vector databases for document retrieval.

Feature engineering pipeline – modular processes that generate domain‑specific features for downstream tasks (see Section 4.1) and prepare data for model training and inference.

Model training and testing – components to select algorithms, perform hyper‑parameter tuning, run distributed training jobs and evaluate models.

Validation and synthetic data – utilities for data validation, creating synthetic clones and managing test datasets.

Inferencing – standardized services that expose trained models as APIs and support batch or real‑time predictions.

These utilities should be orchestrated via a workflow engine so that jobs can be scheduled or run on demand, with awareness of resource requirements (CPU vs. GPU). Governance mechanisms – such as data catalogues, access controls and lineage tracking – ensure that data and models remain trustworthy.

2. Forecasting as a Service (FaaS)

A recurring theme in the notes is the idea of Forecasting as a Service. Time‑series forecasting uses past values and patterns (e.g., trends, seasonality and cyclical fluctuations) to predict future trends
investopedia.com
. A FaaS module would:

Input: Receive historical time‑series data, such as sales figures or sensor readings.

Data ingestion and preprocessing: Handle missing values, scale features, and decompose series into trend and seasonality components.

Model training: Select appropriate algorithms (e.g., ARIMA, Prophet) and perform hyper‑parameter tuning and model testing.

Documentation: Capture model provenance, assumptions and performance metrics for auditability.

Deployment: Offer batch or real‑time forecasting APIs, support concurrent jobs and scenario generation, and manage storage and versioning.

By abstracting forecasting into a service, end‑users can obtain forecasts without dealing with the complexities of model selection and tuning.

3. NLP/Gen AI as a Service

Natural Language Processing (NLP) has matured into a diverse field with tasks ranging from sentiment analysis to machine translation. According to deeplearning.ai, NLP models can perform sentiment analysis, toxicity classification, machine translation, named entity recognition and other tasks
deeplearning.ai
deeplearning.ai
. An NLP/Gen AI Service should therefore support:

3.1 Supported model types

Classification and summarization – identify categories of text or produce concise summaries.

Generative models – text generation, question answering or chatbot interactions.

Translation and semantic similarity – translate between languages and measure semantic closeness.

Topic modelling, entity recognition and sentiment analysis – extract themes and structured entities from documents, and gauge sentiment or tone.

3.2 Prompt engineering and templates

Large language models (LLMs) rely heavily on prompt design. The platform should include a prompt library containing reusable templates and code bundles along with guidelines for effective prompts. Fine‑tuning notebooks and evaluation metrics aid developers in customising LLMs for specific tasks. Red‑teaming utilities and vulnerability databases help surface harmful behaviours before deployment.

3.3 Workflow orchestration and governance

Pipeline orchestration manages training, evaluation and adversarial testing to ensure models behave reliably. Data governance components perform personally identifiable information (PII) masking, document classification and access management. Together, these ensure that NLP services comply with privacy regulations and ethical requirements.

4. Anomaly Detection as a Service

Anomaly detection identifies unusual patterns in data. Inputs include transactional records, user behaviour logs and time‑series streams. The service pipeline typically involves: ingestion from data sources; preprocessing; algorithm selection; model training/testing; and documentation. Outputs label each record as normal or anomalous. Deployment can be batch‑oriented or real‑time, depending on latency requirements. Data governance (PII masking, sensitive data protection and access management) underpins the service.

5. Model Optimisation and Operational Efficiency
5.1 Model Optimisation as a Service

Beyond initial model training, there is a need to optimise models for performance and cost. A Model Optimisation Service would provide automated hyper‑parameter tuning, quantisation and pruning to reduce model size, and performance tuning for deployment. Integrating these techniques can yield more efficient models without sacrificing accuracy.

5.2 Pipeline orchestration

Efficient job scheduling should allow users to run tasks on demand, selecting CPU or GPU resources based on workload. This orchestration layer supports numerous services and ensures optimal use of computational resources.

5.3 Computer Vision and Recommendation Services

Computer Vision as a Service: Computer vision enables machines to recognise and analyse visual data. Outsourcing computer vision tasks to third‑party services saves organisations from building and maintaining their own models. According to a guide on computer vision services, machine vision as a service involves outsourcing algorithms for tasks like face recognition, emotion recognition, video analytics and optical character recognition
datatobiz.com
datatobiz.com
.

Recommendation as a Service: Recommender systems suggest products or content to users. They are valuable in marketing and customer‑relationship management (CRM) contexts, leveraging user behaviour and product data to personalise recommendations.

6. Risk Modelling/Scoring as a Service

Financial institutions rely on models to assess creditworthiness, detect money‑laundering risks and stress‑test portfolios. Risk Modelling as a Service could offer:

Credit scoring: Credit scoring uses statistical analyses to assess a borrower’s creditworthiness
investopedia.com
. Models like FICO evaluate factors such as payment history, amounts owed and credit history length
investopedia.com
. Higher scores lead to better loan terms
investopedia.com
.

AML risk scoring: Anti‑money‑laundering (AML) risk scoring models estimate the risk of a customer being involved in money‑laundering or related crimes. An AML risk scoring model assesses customer, product, delivery and geographical risk factors
amlyze.com
. There is no one‑size‑fits‑all model; institutions must tailor risk scores based on business context and risk appetite
amlyze.com
.

Stress testing: Stress testing assesses how financial institutions or portfolios would fare under adverse scenarios. It uses simulations to evaluate resilience to economic shocks
investopedia.com
. Regulatory stress tests (e.g., those mandated by the Dodd‑Frank Act) help ensure banks maintain sufficient capital
investopedia.com
.

6.1 Supporting components

To support risk modelling, the platform needs:

Feature‑engineering templates – libraries tailored for financial datasets (e.g., payment forecasting) and cyber‑security datasets (threat detection).

Model monitoring and drift detection – tools to track model performance over time and detect data or concept drift.

Validation and testing pipelines – data validation pipelines; bias and fairness tests; model quality checks; adversarial testing/red‑teaming; integration tests. These ensure models are robust, fair and compliant.

7. Reusable Utilities and Accelerators

Beyond core services, the notes emphasise the creation of reusable components and tools that accelerate development and ens

Files changed (6) hide show
  1. README.md +8 -5
  2. components/infographic-card.js +73 -0
  3. components/navbar.js +71 -0
  4. index.html +204 -19
  5. script.js +28 -0
  6. style.css +62 -18
README.md CHANGED
@@ -1,10 +1,13 @@
1
  ---
2
- title: Aiaas Visualizer Pro
3
- emoji: 🏢
4
- colorFrom: red
5
- colorTo: gray
6
  sdk: static
7
  pinned: false
 
 
8
  ---
9
 
10
- Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference
 
 
1
  ---
2
+ title: AIaaS Visualizer Pro 🚀
3
+ colorFrom: gray
4
+ colorTo: blue
5
+ emoji: 🐳
6
  sdk: static
7
  pinned: false
8
+ tags:
9
+ - deepsite-v3
10
  ---
11
 
12
+ # Welcome to your new DeepSite project!
13
+ This project was created with [DeepSite](https://huggingface.co/deepsite).
components/infographic-card.js ADDED
@@ -0,0 +1,73 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ class InfographicCard extends HTMLElement {
2
+ static get observedAttributes() {
3
+ return ['icon', 'title', 'content', 'color'];
4
+ }
5
+
6
+ constructor() {
7
+ super();
8
+ this.attachShadow({ mode: 'open' });
9
+ }
10
+
11
+ connectedCallback() {
12
+ this.render();
13
+ }
14
+
15
+ attributeChangedCallback() {
16
+ this.render();
17
+ }
18
+
19
+ render() {
20
+ const icon = this.getAttribute('icon') || 'box';
21
+ const title = this.getAttribute('title') || 'Untitled';
22
+ const content = this.getAttribute('content') || 'No content provided';
23
+ const color = this.getAttribute('color') || 'bg-gray-100';
24
+
25
+ this.shadowRoot.innerHTML = `
26
+ <style>
27
+ .card {
28
+ border-radius: 0.75rem;
29
+ padding: 1.5rem;
30
+ transition: all 0.3s ease;
31
+ box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1);
32
+ height: 100%;
33
+ display: flex;
34
+ flex-direction: column;
35
+ }
36
+ .card:hover {
37
+ transform: translateY(-5px);
38
+ box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1);
39
+ }
40
+ .icon-container {
41
+ width: 3rem;
42
+ height: 3rem;
43
+ border-radius: 0.5rem;
44
+ display: flex;
45
+ align-items: center;
46
+ justify-content: center;
47
+ margin-bottom: 1rem;
48
+ }
49
+ .card-title {
50
+ font-size: 1.125rem;
51
+ font-weight: 600;
52
+ margin-bottom: 0.5rem;
53
+ color: #1f2937;
54
+ }
55
+ .card-content {
56
+ color: #4b5563;
57
+ font-size: 0.875rem;
58
+ line-height: 1.5;
59
+ }
60
+ </style>
61
+ <div class="card ${color}">
62
+ <div class="icon-container bg-white">
63
+ <i data-feather="${icon}"></i>
64
+ </div>
65
+ <h3 class="card-title">${title}</h3>
66
+ <p class="card-content">${content}</p>
67
+ </div>
68
+ `;
69
+ feather.replace();
70
+ }
71
+ }
72
+
73
+ customElements.define('infographic-card', InfographicCard);
components/navbar.js ADDED
@@ -0,0 +1,71 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ class CustomNavbar extends HTMLElement {
2
+ connectedCallback() {
3
+ this.attachShadow({ mode: 'open' });
4
+ this.shadowRoot.innerHTML = `
5
+ <style>
6
+ nav {
7
+ background-color: white;
8
+ box-shadow: 0 2px 10px rgba(0,0,0,0.1);
9
+ padding: 1rem 2rem;
10
+ }
11
+ .nav-container {
12
+ display: flex;
13
+ justify-content: space-between;
14
+ align-items: center;
15
+ max-width: 1200px;
16
+ margin: 0 auto;
17
+ }
18
+ .logo {
19
+ font-size: 1.5rem;
20
+ font-weight: bold;
21
+ color: #4f46e5;
22
+ text-decoration: none;
23
+ display: flex;
24
+ align-items: center;
25
+ }
26
+ .logo i {
27
+ margin-right: 0.5rem;
28
+ }
29
+ .nav-links {
30
+ display: flex;
31
+ gap: 2rem;
32
+ }
33
+ .nav-links a {
34
+ color: #4b5563;
35
+ text-decoration: none;
36
+ font-weight: 500;
37
+ transition: color 0.3s;
38
+ }
39
+ .nav-links a:hover {
40
+ color: #4f46e5;
41
+ }
42
+ @media (max-width: 768px) {
43
+ .nav-container {
44
+ flex-direction: column;
45
+ gap: 1rem;
46
+ }
47
+ .nav-links {
48
+ width: 100%;
49
+ justify-content: space-around;
50
+ gap: 0;
51
+ }
52
+ }
53
+ </style>
54
+ <nav>
55
+ <div class="nav-container">
56
+ <a href="#" class="logo">
57
+ <i data-feather="cpu"></i>
58
+ AIaaS Platform
59
+ </a>
60
+ <div class="nav-links">
61
+ <a href="#">Features</a>
62
+ <a href="#">Services</a>
63
+ <a href="#">Governance</a>
64
+ <a href="#">Documentation</a>
65
+ </div>
66
+ </div>
67
+ </nav>
68
+ `;
69
+ }
70
+ }
71
+ customElements.define('custom-navbar', CustomNavbar);
index.html CHANGED
@@ -1,19 +1,204 @@
1
- <!doctype html>
2
- <html>
3
- <head>
4
- <meta charset="utf-8" />
5
- <meta name="viewport" content="width=device-width" />
6
- <title>My static Space</title>
7
- <link rel="stylesheet" href="style.css" />
8
- </head>
9
- <body>
10
- <div class="card">
11
- <h1>Welcome to your static Space!</h1>
12
- <p>You can modify this app directly by editing <i>index.html</i> in the Files and versions tab.</p>
13
- <p>
14
- Also don't forget to check the
15
- <a href="https://huggingface.co/docs/hub/spaces" target="_blank">Spaces documentation</a>.
16
- </p>
17
- </div>
18
- </body>
19
- </html>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="UTF-8">
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
+ <title>AIaaS Platform - Infographic</title>
7
+ <link rel="stylesheet" href="style.css">
8
+ <script src="https://cdn.tailwindcss.com"></script>
9
+ <script src="https://cdn.jsdelivr.net/npm/feather-icons/dist/feather.min.js"></script>
10
+ <script src="https://unpkg.com/feather-icons"></script>
11
+ <script src="components/navbar.js"></script>
12
+ <script src="components/infographic-card.js"></script>
13
+ </head>
14
+ <body class="bg-gray-50">
15
+ <custom-navbar></custom-navbar>
16
+
17
+ <main class="container mx-auto px-4 py-8">
18
+ <section class="text-center mb-16">
19
+ <h1 class="text-5xl font-bold text-indigo-800 mb-4">End-to-End AI Platform</h1>
20
+ <p class="text-xl text-gray-600 max-w-3xl mx-auto">
21
+ A visual journey from data ingestion to Model-as-a-Service
22
+ </p>
23
+ </section>
24
+
25
+ <!-- Core Pipeline Section -->
26
+ <section class="mb-20">
27
+ <h2 class="text-3xl font-semibold text-indigo-700 mb-8 text-center">Core Pipeline Design</h2>
28
+ <div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6">
29
+ <infographic-card
30
+ icon="database"
31
+ title="Data Ingestion"
32
+ content="Utilities to ingest data from logs, databases or APIs"
33
+ color="bg-blue-100"
34
+ ></infographic-card>
35
+
36
+ <infographic-card
37
+ icon="cpu"
38
+ title="Preprocessing"
39
+ content="Routines for cleaning data, handling missing values, and feature generation"
40
+ color="bg-purple-100"
41
+ ></infographic-card>
42
+
43
+ <infographic-card
44
+ icon="activity"
45
+ title="Model Training"
46
+ content="Components for algorithm selection, hyperparameter tuning and evaluation"
47
+ color="bg-green-100"
48
+ ></infographic-card>
49
+
50
+ <infographic-card
51
+ icon="check-circle"
52
+ title="Validation"
53
+ content="Utilities for data validation and synthetic data generation"
54
+ color="bg-yellow-100"
55
+ ></infographic-card>
56
+
57
+ <infographic-card
58
+ icon="share-2"
59
+ title="Inferencing"
60
+ content="Standardized services that expose trained models as APIs"
61
+ color="bg-red-100"
62
+ ></infographic-card>
63
+
64
+ <infographic-card
65
+ icon="shield"
66
+ title="Governance"
67
+ content="Mechanisms like data catalogues and lineage tracking"
68
+ color="bg-indigo-100"
69
+ ></infographic-card>
70
+ </div>
71
+ </section>
72
+
73
+ <!-- Services Section -->
74
+ <section class="mb-20">
75
+ <h2 class="text-3xl font-semibold text-indigo-700 mb-8 text-center">AI Services Ecosystem</h2>
76
+ <div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-4 gap-6">
77
+ <div class="service-card bg-gradient-to-br from-blue-500 to-indigo-600">
78
+ <i data-feather="clock" class="text-white"></i>
79
+ <h3>Forecasting</h3>
80
+ <p>Time-series prediction with ARIMA, Prophet</p>
81
+ </div>
82
+
83
+ <div class="service-card bg-gradient-to-br from-purple-500 to-pink-600">
84
+ <i data-feather="message-square" class="text-white"></i>
85
+ <h3>NLP/Gen AI</h3>
86
+ <p>Classification, generation, translation</p>
87
+ </div>
88
+
89
+ <div class="service-card bg-gradient-to-br from-green-500 to-teal-600">
90
+ <i data-feather="alert-triangle" class="text-white"></i>
91
+ <h3>Anomaly Detection</h3>
92
+ <p>Identify unusual patterns in data</p>
93
+ </div>
94
+
95
+ <div class="service-card bg-gradient-to-br from-red-500 to-orange-600">
96
+ <i data-feather="eye" class="text-white"></i>
97
+ <h3>Computer Vision</h3>
98
+ <p>Face recognition, video analytics</p>
99
+ </div>
100
+ </div>
101
+ </section>
102
+
103
+ <!-- Governance Section -->
104
+ <section class="mb-20">
105
+ <h2 class="text-3xl font-semibold text-indigo-700 mb-8 text-center">Governance Framework</h2>
106
+ <div class="bg-white rounded-xl shadow-lg p-8">
107
+ <div class="flex flex-col md:flex-row gap-8">
108
+ <div class="flex-1">
109
+ <h3 class="text-xl font-semibold text-gray-800 mb-4">Key Components</h3>
110
+ <ul class="space-y-3">
111
+ <li class="flex items-start">
112
+ <i data-feather="lock" class="text-indigo-600 mr-3 mt-1"></i>
113
+ <span>PII Masking & Data Protection</span>
114
+ </li>
115
+ <li class="flex items-start">
116
+ <i data-feather="clipboard" class="text-indigo-600 mr-3 mt-1"></i>
117
+ <span>Model Documentation & Provenance</span>
118
+ </li>
119
+ <li class="flex items-start">
120
+ <i data-feather="shield" class="text-indigo-600 mr-3 mt-1"></i>
121
+ <span>Access Controls & Lineage Tracking</span>
122
+ </li>
123
+ </ul>
124
+ </div>
125
+ <div class="flex-1">
126
+ <h3 class="text-xl font-semibold text-gray-800 mb-4">Explainability Tools</h3>
127
+ <ul class="space-y-3">
128
+ <li class="flex items-start">
129
+ <i data-feather="bar-chart-2" class="text-indigo-600 mr-3 mt-1"></i>
130
+ <span>SHAP & LIME Analysis</span>
131
+ </li>
132
+ <li class="flex items-start">
133
+ <i data-feather="pie-chart" class="text-indigo-600 mr-3 mt-1"></i>
134
+ <span>Feature Importance Charts</span>
135
+ </li>
136
+ <li class="flex items-start">
137
+ <i data-feather="file-text" class="text-indigo-600 mr-3 mt-1"></i>
138
+ <span>Model Card Generation</span>
139
+ </li>
140
+ </ul>
141
+ </div>
142
+ </div>
143
+ </div>
144
+ </section>
145
+
146
+ <!-- Flow Diagram Section -->
147
+ <section class="mb-20">
148
+ <h2 class="text-3xl font-semibold text-indigo-700 mb-8 text-center">End-to-End Flow</h2>
149
+ <div class="bg-white p-8 rounded-xl shadow-lg">
150
+ <div class="flow-diagram">
151
+ <div class="flow-step">
152
+ <div class="flow-icon">
153
+ <i data-feather="download"></i>
154
+ </div>
155
+ <h4>Data Ingestion</h4>
156
+ </div>
157
+ <div class="flow-arrow">
158
+ <i data-feather="arrow-right"></i>
159
+ </div>
160
+ <div class="flow-step">
161
+ <div class="flow-icon">
162
+ <i data-feather="filter"></i>
163
+ </div>
164
+ <h4>Preprocessing</h4>
165
+ </div>
166
+ <div class="flow-arrow">
167
+ <i data-feather="arrow-right"></i>
168
+ </div>
169
+ <div class="flow-step">
170
+ <div class="flow-icon">
171
+ <i data-feather="cpu"></i>
172
+ </div>
173
+ <h4>Model Training</h4>
174
+ </div>
175
+ <div class="flow-arrow">
176
+ <i data-feather="arrow-right"></i>
177
+ </div>
178
+ <div class="flow-step">
179
+ <div class="flow-icon">
180
+ <i data-feather="share-2"></i>
181
+ </div>
182
+ <h4>Deployment</h4>
183
+ </div>
184
+ <div class="flow-arrow">
185
+ <i data-feather="arrow-right"></i>
186
+ </div>
187
+ <div class="flow-step">
188
+ <div class="flow-icon">
189
+ <i data-feather="monitor"></i>
190
+ </div>
191
+ <h4>Monitoring</h4>
192
+ </div>
193
+ </div>
194
+ </div>
195
+ </section>
196
+ </main>
197
+
198
+ <script>
199
+ feather.replace();
200
+ </script>
201
+ <script src="script.js"></script>
202
+ <script src="https://huggingface.co/deepsite/deepsite-badge.js"></script>
203
+ </body>
204
+ </html>
script.js ADDED
@@ -0,0 +1,28 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ document.addEventListener('DOMContentLoaded', () => {
2
+ // Animate cards on scroll
3
+ const observer = new IntersectionObserver((entries) => {
4
+ entries.forEach(entry => {
5
+ if (entry.isIntersecting) {
6
+ entry.target.classList.add('animate-fade-in');
7
+ }
8
+ });
9
+ }, { threshold: 0.1 });
10
+
11
+ document.querySelectorAll('.service-card, infographic-card').forEach(card => {
12
+ observer.observe(card);
13
+ });
14
+
15
+ // Feather icons replacement
16
+ feather.replace();
17
+ });
18
+
19
+ // Helper function for dynamic content
20
+ function toggleAccordion(element) {
21
+ element.classList.toggle('active');
22
+ const content = element.nextElementSibling;
23
+ if (content.style.maxHeight) {
24
+ content.style.maxHeight = null;
25
+ } else {
26
+ content.style.maxHeight = content.scrollHeight + "px";
27
+ }
28
+ }
style.css CHANGED
@@ -1,28 +1,72 @@
 
1
  body {
2
- padding: 2rem;
3
- font-family: -apple-system, BlinkMacSystemFont, "Arial", sans-serif;
4
  }
5
 
6
- h1 {
7
- font-size: 16px;
8
- margin-top: 0;
9
  }
10
 
11
- p {
12
- color: rgb(107, 114, 128);
13
- font-size: 15px;
14
- margin-bottom: 10px;
15
- margin-top: 5px;
16
  }
17
 
18
- .card {
19
- max-width: 620px;
20
- margin: 0 auto;
21
- padding: 16px;
22
- border: 1px solid lightgray;
23
- border-radius: 16px;
24
  }
25
 
26
- .card p:last-child {
27
- margin-bottom: 0;
28
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /* Base Styles */
2
  body {
3
+ font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
4
+ line-height: 1.6;
5
  }
6
 
7
+ /* Card Styles */
8
+ .service-card {
9
+ @apply rounded-xl p-6 text-white shadow-md transition-all duration-300 hover:shadow-lg;
10
  }
11
 
12
+ .service-card i {
13
+ @apply w-12 h-12 p-3 bg-white bg-opacity-20 rounded-full mb-4;
 
 
 
14
  }
15
 
16
+ .service-card h3 {
17
+ @apply text-xl font-bold mb-2;
 
 
 
 
18
  }
19
 
20
+ .service-card p {
21
+ @apply text-white text-opacity-80;
22
  }
23
+
24
+ /* Flow Diagram */
25
+ .flow-diagram {
26
+ @apply flex flex-wrap justify-center items-center;
27
+ }
28
+
29
+ .flow-step {
30
+ @apply flex flex-col items-center px-4 py-6 rounded-lg bg-indigo-50 mx-2 my-2;
31
+ min-width: 150px;
32
+ }
33
+
34
+ .flow-icon {
35
+ @apply w-12 h-12 bg-indigo-100 rounded-full flex items-center justify-center text-indigo-600 mb-3;
36
+ }
37
+
38
+ .flow-arrow {
39
+ @apply text-gray-400 mx-2;
40
+ display: none;
41
+ }
42
+
43
+ @media (min-width: 768px) {
44
+ .flow-diagram {
45
+ @apply flex-nowrap;
46
+ }
47
+ .flow-arrow {
48
+ display: block;
49
+ }
50
+ }
51
+
52
+ /* Custom infographic elements */
53
+ .highlight-box {
54
+ @apply border-l-4 border-indigo-500 bg-indigo-50 pl-4 py-2 my-4;
55
+ }
56
+
57
+ /* Animations */
58
+ @keyframes fadeIn {
59
+ from { opacity: 0; transform: translateY(20px); }
60
+ to { opacity: 1; transform: translateY(0); }
61
+ }
62
+
63
+ .animate-fade-in {
64
+ animation: fadeIn 0.6s ease-out forwards;
65
+ }
66
+
67
+ /* Responsive adjustments */
68
+ @media (max-width: 640px) {
69
+ .service-card {
70
+ @apply p-4;
71
+ }
72
+ }