From b7e27d910f9797689b30d05d32c024e1cb26de55 Mon Sep 17 00:00:00 2001
From: "google-labs-jules[bot]"
<161369871+google-labs-jules[bot]@users.noreply.github.com>
Date: Tue, 21 Apr 2026 09:28:36 +0000
Subject: [PATCH] feat: add our apps page and update navigation
- Converted TwoAxis Finance app icon to WebP.
- Created apps.css and apps.html to display the "Our Apps" page.
- Added "Our Apps" link to the navigation bar across all HTML pages.
Co-authored-by: Salint <41103301+Salint@users.noreply.github.com>
---
public/about.html | 1 +
public/approach.html | 1 +
public/apps.html | 84 +++++++++++++++++++
public/clients.html | 1 +
public/contact.html | 1 +
public/index.html | 1 +
public/services.html | 1 +
public/static/img/apps/finance.webp | Bin 0 -> 2340 bytes
public/static/style/apps.css | 124 ++++++++++++++++++++++++++++
9 files changed, 214 insertions(+)
create mode 100644 public/apps.html
create mode 100644 public/static/img/apps/finance.webp
create mode 100644 public/static/style/apps.css
diff --git a/public/about.html b/public/about.html
index a74ff0d..07c7b60 100644
--- a/public/about.html
+++ b/public/about.html
@@ -28,6 +28,7 @@
Services
Our Process
Clients
+ Our Apps
Let's Talk
diff --git a/public/apps.html b/public/apps.html
new file mode 100644
index 0000000..88be9a6
--- /dev/null
+++ b/public/apps.html
@@ -0,0 +1,84 @@
+
+
+
+
+
+
+
TwoAxis | Our Apps
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/public/clients.html b/public/clients.html
index e6d20fa..2e06376 100644
--- a/public/clients.html
+++ b/public/clients.html
@@ -28,6 +28,7 @@
Services
Our Process
Clients
+
Our Apps
Let's Talk
diff --git a/public/static/img/apps/finance.webp b/public/static/img/apps/finance.webp
new file mode 100644
index 0000000000000000000000000000000000000000..f16e5cd92de54aacf79c6ebe28adcae9f4aa9dd3
GIT binary patch
literal 2340
zcmbVMX*kq<7yerYHI{~uOh(xmL|L=Uqp`+diXoN4L@8UyZn8GkY&F*GitHjpqer$;
zJ+ftnDQk9
VD$AYtS!_<4}Hr$
zt^?UjvH&x{taDqHU@R_nBJcRRv;~d}@9Z}2%LGY*Ej8DwM5j(er+9c)!LWn{dfIIG
zT0@o8yuF#Z609Mof=UQ|w;jHZn@6o3SzX-lV!UVcY@`oj^W{4ZDQpn4wiL309-(y3
zmB1wW6O-pUyS*o;nmku8tN$Mb`5;Kd1)ERU=Zj;!j&69R1|(sKDA7G*JzVQ;9N#3~
zF~;lQr$efnY5AW2Xz}rsmbdahox5HtBHTRw+}hjX5Oz6X|MxWQPIi@R5j5rOk(q!-
zLAuPQvp?)7T~*|?)*40Kvehq0Y)^82?Ca?VI@~09@vV@zeUhrP$t{#MUv-fRak+){
zKC9kGRJ3zqLGZ)^`X+4(J@k
zj2qe;kmOIOv--2g$#<3e@)MF4|}(Ts2*e
z+3L+q<6v?~4eVlMena(1x*5^6AK5L8J`-4&Dn2L>dq`;f*Dhnc&f6%R2V516gfKin`7Zu%
zZ~j+d1Oe>rH#z`69!NXmrTDH)@Lh-|ZLU@A#Kg5odSgWjLY;Qa&+p-%?7r#v9dRl0
zOSEdV!6_344Unt6q)Ox+Z*o|fhfwlAmb6V`WH~nVj5`N}N`>N=;u#+$U6yRC4uE?j
z28h=rjQj7EOydf5`z6tT-0f$CYlF`{^&
zqg0>ibM?-QvIk;R4GbREOt@oV$KmOOy!vfJf;
zz$(LGL&q|3+*K%+J}djCjgO_%@07A$Ij-x2vkQzVMzJ{Li%9ViD6$9_%=ys42z
zM9q`2;P&CvXVETZV~NeN=HB9>sD_kIoyNT6fm*`_bhUuKh
z9i>_+)d%lER9089+1M&f^?WHYR1}n$?V}eE+c6&+*Rv~61u&!dYZ&4zC8aO?sp3{C
z+xf27o-cW;8sRh++ts5kQ?)Xgy3kWLYFH=YQHLS4bcUq|#PxQ+bSGW%U`XW!mIBeI
zqHq4BTgyoJ0@JowP42YGA!jv@|@eD1oOffI=?F)ny5hVa(oR-d$Nsp2uSS^WLl
zQVx5-N^Ft(F1vpK;go&tjt)Z(Tk0?zS5T^M}wX5=y}fohgE9d0ZkBUE?k
z39>{Z|MA00lXY6YgBQmOX7*ic0j!DXxD+|fzp~){YyB1dAAP4GBJc)nWp!l=dsMfi|9NGVea{GL>b&PL$8A77sT>}i
zLy+%r<3l@n*TU(;d$+>wciREyf&C+I%XXfGEe7{Flq;Y`I$sR%$@QWn866tkj?Vf<
zoALR|!PA2H5XU5sDXQmQ>C>;^St`_j_qhZU@XF2ILy+ub(HRE^ngI12I
zRPF|<7ik=g#;}`-vf6j)jXl-LP&B$8S-{WT)j1StDQANqedeaxmN^0J6|!i68SI~Z
ZxgF|01|a%zt)rl;6kV{=&rkeY_zyETbpHSV
literal 0
HcmV?d00001
diff --git a/public/static/style/apps.css b/public/static/style/apps.css
new file mode 100644
index 0000000..8d13481
--- /dev/null
+++ b/public/static/style/apps.css
@@ -0,0 +1,124 @@
+.page-header {
+ background: var(--bg-light);
+ padding: 100px 20px 60px;
+ border-bottom: 1px solid var(--border-color);
+}
+.page-header h1 {
+ font-size: 56px;
+ font-weight: 800;
+ margin-bottom: 20px;
+}
+.page-header .subtitle {
+ font-size: 20px;
+ color: var(--text-muted);
+ max-width: 700px;
+ margin: 0 auto;
+}
+
+.apps-section {
+ padding: 100px 0;
+ background: var(--bg-white);
+}
+
+.apps-grid {
+ display: grid;
+ grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
+ gap: 40px;
+}
+
+.app-card {
+ display: flex;
+ flex-direction: column;
+ text-decoration: none;
+ color: var(--text-main);
+ background: var(--bg-white);
+ border: 1px solid var(--border-color);
+ border-radius: 16px;
+ overflow: hidden;
+ transition: transform 0.3s ease, box-shadow 0.3s ease, border-color 0.3s ease;
+ box-shadow: 0 4px 15px rgba(0,0,0,0.02);
+}
+
+.app-card:hover {
+ transform: translateY(-8px);
+ box-shadow: 0 15px 35px rgba(0,0,0,0.08);
+ border-color: var(--primary);
+}
+
+.app-logo-wrapper {
+ height: 200px;
+ background: var(--bg-light);
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ padding: 40px;
+ border-bottom: 1px solid var(--border-color);
+}
+
+.app-logo-wrapper img {
+ max-width: 100%;
+ max-height: 100%;
+ object-fit: contain;
+ border-radius: 20px;
+}
+
+.app-info {
+ padding: 25px;
+ text-align: center;
+}
+
+.app-info h3 {
+ font-size: 20px;
+ font-weight: 700;
+ margin-bottom: 10px;
+}
+
+.app-info p {
+ font-size: 15px;
+ color: var(--text-muted);
+ margin-bottom: 20px;
+}
+
+.app-info .store-link {
+ display: inline-flex;
+ align-items: center;
+ justify-content: center;
+ gap: 8px;
+ background: var(--primary);
+ color: white;
+ padding: 10px 20px;
+ border-radius: 8px;
+ font-weight: 600;
+ text-decoration: none;
+ transition: background 0.3s ease;
+}
+
+.app-info .store-link:hover {
+ background: var(--secondary);
+}
+
+#cta {
+ background: linear-gradient(135deg, var(--primary), var(--secondary));
+ color: white;
+ text-align: center;
+ padding: 100px 20px;
+}
+#cta h1 {
+ font-size: 48px;
+ font-weight: 800;
+ margin-bottom: 20px;
+}
+#cta p {
+ font-size: 20px;
+ opacity: 0.9;
+ margin-bottom: 40px;
+ max-width: 600px;
+ margin-left: auto;
+ margin-right: auto;
+}
+
+@media (max-width: 768px) {
+ .page-header h1 {
+ font-size: 40px;
+ }
+}