3 Commits

Author SHA1 Message Date
de1b65d0c9 Reorganize homepage: two divisions, Projects section, Fullum partner, project images
- Hero reworked to "Model. Optimize. Validate." with both-fields messaging
- Nav: Simulation / Optical Science / Projects / About / Contact
- New Projects section with 4 cards (GigaBIT, folded Newtonian, interferometer, polisher) using real card images
- Optiques Fullum as a standalone partner/collaboration block (not a project), with logo
- Optical Science: 6 uniform capability cards; emerald/teal palette across the site
- Tools updated to current Siemens naming (Designcenter, Simcenter 3D)
- Company About + legal name; optimization CTA; French page mirrored
- OIQ-safe wording throughout; no em dashes

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-02 16:29:28 -04:00
6051f2db54 Merge branch 'main' of http://192.168.86.50:3000/Antoine/WEBtomaste into improvement/phase1-2-fixes 2026-01-29 09:10:09 -05:00
5b4a057a00 Add contact form, accessibility features, I→we changes 2026-01-13 22:18:45 -05:00
71 changed files with 2031 additions and 1514 deletions

30
.htaccess Normal file
View File

@@ -0,0 +1,30 @@
# Atomaste Static Site
Options -Indexes
# Redirect old broken URLs to homepage
RedirectMatch 301 ^/custom-telescope-mirror-support.*$ /
RedirectMatch 301 ^/product.*$ /
RedirectMatch 301 ^/shop.*$ /
# Redirect to index.html as default
DirectoryIndex index.html
# Enable GZIP compression
<IfModule mod_deflate.c>
AddOutputFilterByType DEFLATE text/html text/css application/javascript image/svg+xml
</IfModule>
# Cache static assets
<IfModule mod_expires.c>
ExpiresActive On
ExpiresByType image/png "access plus 1 month"
ExpiresByType image/svg+xml "access plus 1 month"
ExpiresByType text/css "access plus 1 week"
</IfModule>
# Security Headers
<IfModule mod_headers.c>
Header set X-Content-Type-Options "nosniff"
Header set X-Frame-Options "SAMEORIGIN"
Header set Referrer-Policy "strict-origin-when-cross-origin"
</IfModule>

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

18
Media/favicon.svg Normal file

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 58 KiB

BIN
Media/hero-image.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 MiB

58
Media/logo.svg Normal file

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 67 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 170 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 826 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 777 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 810 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 831 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 813 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 55 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.0 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 811 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 790 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 470 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 255 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.0 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.0 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 548 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 46 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 401 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.7 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.8 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.0 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.7 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 527 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 757 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.9 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 386 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 919 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 954 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 964 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 448 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 735 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 631 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.0 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 391 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 791 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 101 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 153 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 228 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 199 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 197 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 229 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 200 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 199 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 81 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 92 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 90 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 86 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 27 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 193 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 120 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 138 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 132 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 31 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 64 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 50 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 963 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 MiB

File diff suppressed because it is too large Load Diff

View File

@@ -1,38 +1,31 @@
/* ══════════════════════════════════════════════
Atomaste Reveal.js Dark Theme (v2)
CDR Deck — GigaBIT M1 Primary Mirror
══════════════════════════════════════════════ */
/* Atomaste Reveal.js theme (v1)
Keep it minimal: reuse existing site look.
*/
:root {
--atomaste-bg: #0b0f14;
--atomaste-fg: #e8eef7;
--atomaste-muted: #a8b3c2;
--atomaste-accent: #7dd3fc; /* cyan */
--atomaste-accent-2: #a78bfa; /* violet */
--atomaste-green: #4ade80;
--atomaste-amber: #fbbf24;
--atomaste-red: #f87171;
--atomaste-surface: rgba(255,255,255,0.04);
--atomaste-border: rgba(232,238,247,0.10);
--atomaste-bg: #0b0f14;
--atomaste-fg: #e8eef7;
--atomaste-muted: #a8b3c2;
--atomaste-accent: #7dd3fc; /* light cyan */
--atomaste-accent-2: #a78bfa; /* violet */
}
/* ── Base ── */
.reveal {
font-family: ui-sans-serif, system-ui, -apple-system, 'Segoe UI', Roboto, Helvetica, Arial, "Apple Color Emoji", "Segoe UI Emoji", sans-serif;
font-family: ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, "Apple Color Emoji", "Segoe UI Emoji";
color: var(--atomaste-fg);
}
.reveal .slides { text-align: left; }
/* ── Background ── */
.reveal-viewport {
background:
radial-gradient(1200px 800px at 15% 10%, rgba(125,211,252,0.14), transparent 55%),
radial-gradient(900px 600px at 85% 30%, rgba(167,139,250,0.12), transparent 60%),
linear-gradient(180deg, #070a0f 0%, #0b0f14 100%);
.reveal .slides {
text-align: left;
}
/* subtle floating glow */
.reveal-viewport {
background: radial-gradient(1200px 800px at 15% 10%, rgba(125,211,252,0.14), transparent 55%),
radial-gradient(900px 600px at 85% 30%, rgba(167,139,250,0.12), transparent 60%),
linear-gradient(180deg, #070a0f 0%, #0b0f14 100%);
}
/* subtle moving sheen (keep it classy) */
.reveal-viewport::before {
content: "";
position: fixed;
@@ -42,6 +35,7 @@
radial-gradient(500px 320px at 10% 20%, rgba(125,211,252,0.10), transparent 60%),
radial-gradient(420px 280px at 90% 40%, rgba(167,139,250,0.08), transparent 62%),
radial-gradient(520px 360px at 40% 95%, rgba(125,211,252,0.06), transparent 65%);
filter: blur(0px);
opacity: 0.9;
transform: translate3d(0,0,0);
animation: atomasteFloat 18s ease-in-out infinite;
@@ -53,43 +47,28 @@
100% { transform: translate3d(0,0,0); }
}
/* ── Typography ── */
.reveal h1, .reveal h2, .reveal h3 {
font-weight: 700;
letter-spacing: -0.025em;
color: var(--atomaste-fg);
letter-spacing: -0.02em;
margin-bottom: 0.35em;
}
.reveal h1 { font-size: 2.25em; }
.reveal h2 { font-size: 1.65em; }
.reveal h3 { font-size: 1.15em; color: var(--atomaste-accent); font-weight: 600; }
.reveal h3 { font-size: 1.15em; color: var(--atomaste-muted); font-weight: 600; }
.reveal p, .reveal li {
font-size: 0.76em;
line-height: 1.55;
color: var(--atomaste-fg);
font-size: 0.95em;
line-height: 1.35;
}
.reveal a { color: var(--atomaste-accent); text-decoration: none; }
.reveal a:hover { text-decoration: underline; }
.reveal a { color: var(--atomaste-accent); }
/* ── Lists ── */
.reveal ul { margin-left: 1.1em; }
.reveal ol { margin-left: 1.1em; }
.reveal li { margin: 0.35em 0; }
/* ── Images ── */
.reveal img {
max-height: 62vh;
border-radius: 10px;
border: 1px solid var(--atomaste-border);
}
/* ── Footer ── */
/* footer */
.atomaste-footer {
position: absolute;
left: 36px; right: 36px; bottom: 22px;
left: 36px;
right: 36px;
bottom: 22px;
display: flex;
align-items: center;
justify-content: space-between;
@@ -99,30 +78,54 @@
pointer-events: none;
}
.atomaste-footer img { height: 22px; opacity: 0.9; }
.atomaste-footer img {
height: 22px;
opacity: 0.9;
}
.atomaste-chip {
display: inline-flex;
align-items: center;
gap: 8px;
padding: 6px 10px;
border: 1px solid var(--atomaste-border);
border: 1px solid rgba(232,238,247,0.14);
border-radius: 999px;
background: rgba(255,255,255,0.03);
}
/* ── Section dividers ── */
.section-divider { display: grid; gap: 18px; }
/* nicer lists */
.reveal ul { margin-left: 1.1em; }
.reveal li { margin: 0.35em 0; }
/* images */
.reveal img {
max-height: 62vh;
border-radius: 10px;
}
/* section divider style */
.section-divider {
display: grid;
gap: 18px;
}
.section-divider .kicker {
font-size: 0.9em;
color: var(--atomaste-muted);
text-transform: uppercase;
letter-spacing: 0.12em;
}
.section-divider .title { font-size: 2.1em; line-height: 1.1; }
/* ── Fragment animation ── */
.section-divider .title {
font-size: 2.1em;
line-height: 1.1;
}
/* fragments */
.reveal .fragment.fade-up { transform: translateY(6px); }
/* ── Code blocks ── */
.reveal pre code { font-size: 0.8em; line-height: 1.3; }
/* code blocks (if any) */
.reveal pre code {
font-size: 0.8em;
line-height: 1.3;
}

1097
fr.html

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff