-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathindex.html
More file actions
121 lines (120 loc) · 4.93 KB
/
Copy pathindex.html
File metadata and controls
121 lines (120 loc) · 4.93 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
<!DOCTYPE html>
<html lang="en" data-theme="dark">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Conduit Open Banking Intelligence</title>
<link rel="icon" type="image/png" href="/favicon.png">
<script src="https://cdn.tailwindcss.com"></script>
<script src="https://checkout.razorpay.com/v1/checkout.js"></script>
<link href="https://fonts.googleapis.com/css2?family=Roboto:wght@300;400;500;700;900&family=JetBrains+Mono:wght@400;500&display=swap" rel="stylesheet">
<script>
tailwind.config = {
darkMode: 'class',
theme: {
extend: {
fontFamily: {
sans: ['Roboto', 'sans-serif'],
mono: ['JetBrains Mono', 'monospace'],
},
colors: {
nexus: {
accent: 'var(--accent-primary)',
accentSoft: 'var(--accent-soft)',
bg: 'var(--bg-primary)',
bgSecondary: 'var(--bg-secondary)',
text: 'var(--text-primary)',
textSecondary: 'var(--text-secondary)',
border: 'var(--border-color)',
}
},
animation: {
'fade-in': 'fadeIn 0.6s ease-out forwards',
'slide-up': 'slideUp 0.8s cubic-bezier(0.16, 1, 0.3, 1) forwards',
'reveal': 'reveal 1s cubic-bezier(0.77, 0, 0.175, 1) forwards',
'pulse-soft': 'pulseSoft 3s ease-in-out infinite',
},
keyframes: {
fadeIn: { '0%': { opacity: '0' }, '100%': { opacity: '1' } },
slideUp: { '0%': { transform: 'translateY(30px)', opacity: '0' }, '100%': { transform: 'translateY(0)', opacity: '1' } },
reveal: { '0%': { filter: 'blur(15px)', opacity: '0' }, '100%': { filter: 'blur(0)', opacity: '1' } },
pulseSoft: { '0%, 100%': { opacity: '1' }, '50%': { opacity: '0.7' } },
}
}
}
}
</script>
<style>
:root[data-theme="dark"] {
--bg-primary: #0a0a0c;
--bg-secondary: #16161a;
--text-primary: #ffffff;
--text-secondary: #9ca3af;
--accent-primary: #00d09c;
--accent-soft: rgba(0, 208, 156, 0.1);
--border-color: rgba(255, 255, 255, 0.08);
--glass-bg: rgba(255, 255, 255, 0.03);
--card-shadow: 0 20px 50px rgba(0,0,0,0.5);
}
:root[data-theme="light"] {
--bg-primary: #f4f7f6;
--bg-secondary: #ffffff;
--text-primary: #1a1a1b;
--text-secondary: #5f6368;
--accent-primary: #00a87e;
--accent-soft: rgba(0, 168, 126, 0.08);
--border-color: rgba(0, 0, 0, 0.08);
--glass-bg: rgba(255, 255, 255, 0.8);
--card-shadow: 0 10px 30px rgba(0,0,0,0.05);
}
body {
background-color: var(--bg-primary);
color: var(--text-primary);
transition: background-color 0.4s ease, color 0.4s ease;
overflow-x: hidden;
}
.grain-overlay {
position: fixed;
top: 0; left: 0; width: 100%; height: 100%;
pointer-events: none;
z-index: 9999;
opacity: 0.02;
background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noiseFilter'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.65' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noiseFilter)'/%3E%3C/svg%3E");
}
.interactive-3d {
transition: transform 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275), box-shadow 0.4s ease;
transform-style: preserve-3d;
perspective: 1000px;
}
.interactive-3d:hover {
transform: translateY(-8px) rotateX(4deg) rotateY(4deg);
box-shadow: var(--card-shadow);
}
.glass {
background: var(--glass-bg);
backdrop-filter: blur(16px);
border: 1px solid var(--border-color);
}
::-webkit-scrollbar { width: 4px; }
::-webkit-scrollbar-thumb { background: var(--accent-primary); border-radius: 10px; }
/* Indian-centric UI fixes */
.rupee-symbol::before { content: "₹"; margin-right: 2px; }
</style>
<script type="importmap">
"imports": {
"react/": "https://esm.sh/react@^19.2.4/",
"react": "https://esm.sh/react@^19.2.4",
"react-dom/": "https://esm.sh/react-dom@^19.2.4/",
"recharts": "https://esm.sh/recharts@^3.7.0",
"d3": "https://esm.sh/d3@^7.9.0"
}
}
</script>
<link rel="stylesheet" href="/index.css">
</head>
<body class="antialiased font-sans selection:bg-nexus-accent selection:text-white">
<div class="grain-overlay"></div>
<div id="root"></div>
<script type="module" src="/index.tsx"></script>
</body>
</html>