diff --git a/coming_soon.css b/assets/coming_soon.css similarity index 100% rename from coming_soon.css rename to assets/coming_soon.css diff --git a/satoshi_complete/.DS_Store b/assets/fonts/satoshi_complete/.DS_Store similarity index 100% rename from satoshi_complete/.DS_Store rename to assets/fonts/satoshi_complete/.DS_Store diff --git a/satoshi_complete/Fonts/.DS_Store b/assets/fonts/satoshi_complete/Fonts/.DS_Store similarity index 100% rename from satoshi_complete/Fonts/.DS_Store rename to assets/fonts/satoshi_complete/Fonts/.DS_Store diff --git a/satoshi_complete/Fonts/OTF/Satoshi-Black.otf b/assets/fonts/satoshi_complete/Fonts/OTF/Satoshi-Black.otf similarity index 100% rename from satoshi_complete/Fonts/OTF/Satoshi-Black.otf rename to assets/fonts/satoshi_complete/Fonts/OTF/Satoshi-Black.otf diff --git a/satoshi_complete/Fonts/OTF/Satoshi-BlackItalic.otf b/assets/fonts/satoshi_complete/Fonts/OTF/Satoshi-BlackItalic.otf similarity index 100% rename from satoshi_complete/Fonts/OTF/Satoshi-BlackItalic.otf rename to assets/fonts/satoshi_complete/Fonts/OTF/Satoshi-BlackItalic.otf diff --git a/satoshi_complete/Fonts/OTF/Satoshi-Bold.otf b/assets/fonts/satoshi_complete/Fonts/OTF/Satoshi-Bold.otf similarity index 100% rename from satoshi_complete/Fonts/OTF/Satoshi-Bold.otf rename to assets/fonts/satoshi_complete/Fonts/OTF/Satoshi-Bold.otf diff --git a/satoshi_complete/Fonts/OTF/Satoshi-BoldItalic.otf b/assets/fonts/satoshi_complete/Fonts/OTF/Satoshi-BoldItalic.otf similarity index 100% rename from satoshi_complete/Fonts/OTF/Satoshi-BoldItalic.otf rename to assets/fonts/satoshi_complete/Fonts/OTF/Satoshi-BoldItalic.otf diff --git a/satoshi_complete/Fonts/OTF/Satoshi-Italic.otf b/assets/fonts/satoshi_complete/Fonts/OTF/Satoshi-Italic.otf similarity index 100% rename from satoshi_complete/Fonts/OTF/Satoshi-Italic.otf rename to assets/fonts/satoshi_complete/Fonts/OTF/Satoshi-Italic.otf diff --git a/satoshi_complete/Fonts/OTF/Satoshi-Light.otf b/assets/fonts/satoshi_complete/Fonts/OTF/Satoshi-Light.otf similarity index 100% rename from satoshi_complete/Fonts/OTF/Satoshi-Light.otf rename to assets/fonts/satoshi_complete/Fonts/OTF/Satoshi-Light.otf diff --git a/satoshi_complete/Fonts/OTF/Satoshi-LightItalic.otf b/assets/fonts/satoshi_complete/Fonts/OTF/Satoshi-LightItalic.otf similarity index 100% rename from satoshi_complete/Fonts/OTF/Satoshi-LightItalic.otf rename to assets/fonts/satoshi_complete/Fonts/OTF/Satoshi-LightItalic.otf diff --git a/satoshi_complete/Fonts/OTF/Satoshi-Medium.otf b/assets/fonts/satoshi_complete/Fonts/OTF/Satoshi-Medium.otf similarity index 100% rename from satoshi_complete/Fonts/OTF/Satoshi-Medium.otf rename to assets/fonts/satoshi_complete/Fonts/OTF/Satoshi-Medium.otf diff --git a/satoshi_complete/Fonts/OTF/Satoshi-MediumItalic.otf b/assets/fonts/satoshi_complete/Fonts/OTF/Satoshi-MediumItalic.otf similarity index 100% rename from satoshi_complete/Fonts/OTF/Satoshi-MediumItalic.otf rename to assets/fonts/satoshi_complete/Fonts/OTF/Satoshi-MediumItalic.otf diff --git a/satoshi_complete/Fonts/OTF/Satoshi-Regular.otf b/assets/fonts/satoshi_complete/Fonts/OTF/Satoshi-Regular.otf similarity index 100% rename from satoshi_complete/Fonts/OTF/Satoshi-Regular.otf rename to assets/fonts/satoshi_complete/Fonts/OTF/Satoshi-Regular.otf diff --git a/satoshi_complete/Fonts/TTF/Satoshi-Variable.ttf b/assets/fonts/satoshi_complete/Fonts/TTF/Satoshi-Variable.ttf similarity index 100% rename from satoshi_complete/Fonts/TTF/Satoshi-Variable.ttf rename to assets/fonts/satoshi_complete/Fonts/TTF/Satoshi-Variable.ttf diff --git a/satoshi_complete/Fonts/TTF/Satoshi-VariableItalic.ttf b/assets/fonts/satoshi_complete/Fonts/TTF/Satoshi-VariableItalic.ttf similarity index 100% rename from satoshi_complete/Fonts/TTF/Satoshi-VariableItalic.ttf rename to assets/fonts/satoshi_complete/Fonts/TTF/Satoshi-VariableItalic.ttf diff --git a/satoshi_complete/Fonts/WEB/.DS_Store b/assets/fonts/satoshi_complete/Fonts/WEB/.DS_Store similarity index 100% rename from satoshi_complete/Fonts/WEB/.DS_Store rename to assets/fonts/satoshi_complete/Fonts/WEB/.DS_Store diff --git a/satoshi_complete/Fonts/WEB/README.md b/assets/fonts/satoshi_complete/Fonts/WEB/README.md similarity index 100% rename from satoshi_complete/Fonts/WEB/README.md rename to assets/fonts/satoshi_complete/Fonts/WEB/README.md diff --git a/satoshi_complete/Fonts/WEB/css/satoshi.css b/assets/fonts/satoshi_complete/Fonts/WEB/css/satoshi.css similarity index 100% rename from satoshi_complete/Fonts/WEB/css/satoshi.css rename to assets/fonts/satoshi_complete/Fonts/WEB/css/satoshi.css diff --git a/satoshi_complete/Fonts/WEB/fonts/Satoshi-Black.eot b/assets/fonts/satoshi_complete/Fonts/WEB/fonts/Satoshi-Black.eot similarity index 100% rename from satoshi_complete/Fonts/WEB/fonts/Satoshi-Black.eot rename to assets/fonts/satoshi_complete/Fonts/WEB/fonts/Satoshi-Black.eot diff --git a/satoshi_complete/Fonts/WEB/fonts/Satoshi-Black.ttf b/assets/fonts/satoshi_complete/Fonts/WEB/fonts/Satoshi-Black.ttf similarity index 100% rename from satoshi_complete/Fonts/WEB/fonts/Satoshi-Black.ttf rename to assets/fonts/satoshi_complete/Fonts/WEB/fonts/Satoshi-Black.ttf diff --git a/satoshi_complete/Fonts/WEB/fonts/Satoshi-Black.woff b/assets/fonts/satoshi_complete/Fonts/WEB/fonts/Satoshi-Black.woff similarity index 100% rename from satoshi_complete/Fonts/WEB/fonts/Satoshi-Black.woff rename to assets/fonts/satoshi_complete/Fonts/WEB/fonts/Satoshi-Black.woff diff --git a/satoshi_complete/Fonts/WEB/fonts/Satoshi-Black.woff2 b/assets/fonts/satoshi_complete/Fonts/WEB/fonts/Satoshi-Black.woff2 similarity index 100% rename from satoshi_complete/Fonts/WEB/fonts/Satoshi-Black.woff2 rename to assets/fonts/satoshi_complete/Fonts/WEB/fonts/Satoshi-Black.woff2 diff --git a/satoshi_complete/Fonts/WEB/fonts/Satoshi-BlackItalic.eot b/assets/fonts/satoshi_complete/Fonts/WEB/fonts/Satoshi-BlackItalic.eot similarity index 100% rename from satoshi_complete/Fonts/WEB/fonts/Satoshi-BlackItalic.eot rename to assets/fonts/satoshi_complete/Fonts/WEB/fonts/Satoshi-BlackItalic.eot diff --git a/satoshi_complete/Fonts/WEB/fonts/Satoshi-BlackItalic.ttf b/assets/fonts/satoshi_complete/Fonts/WEB/fonts/Satoshi-BlackItalic.ttf similarity index 100% rename from satoshi_complete/Fonts/WEB/fonts/Satoshi-BlackItalic.ttf rename to assets/fonts/satoshi_complete/Fonts/WEB/fonts/Satoshi-BlackItalic.ttf diff --git a/satoshi_complete/Fonts/WEB/fonts/Satoshi-BlackItalic.woff b/assets/fonts/satoshi_complete/Fonts/WEB/fonts/Satoshi-BlackItalic.woff similarity index 100% rename from satoshi_complete/Fonts/WEB/fonts/Satoshi-BlackItalic.woff rename to assets/fonts/satoshi_complete/Fonts/WEB/fonts/Satoshi-BlackItalic.woff diff --git a/satoshi_complete/Fonts/WEB/fonts/Satoshi-BlackItalic.woff2 b/assets/fonts/satoshi_complete/Fonts/WEB/fonts/Satoshi-BlackItalic.woff2 similarity index 100% rename from satoshi_complete/Fonts/WEB/fonts/Satoshi-BlackItalic.woff2 rename to assets/fonts/satoshi_complete/Fonts/WEB/fonts/Satoshi-BlackItalic.woff2 diff --git a/satoshi_complete/Fonts/WEB/fonts/Satoshi-Bold.eot b/assets/fonts/satoshi_complete/Fonts/WEB/fonts/Satoshi-Bold.eot similarity index 100% rename from satoshi_complete/Fonts/WEB/fonts/Satoshi-Bold.eot rename to assets/fonts/satoshi_complete/Fonts/WEB/fonts/Satoshi-Bold.eot diff --git a/satoshi_complete/Fonts/WEB/fonts/Satoshi-Bold.ttf b/assets/fonts/satoshi_complete/Fonts/WEB/fonts/Satoshi-Bold.ttf similarity index 100% rename from satoshi_complete/Fonts/WEB/fonts/Satoshi-Bold.ttf rename to assets/fonts/satoshi_complete/Fonts/WEB/fonts/Satoshi-Bold.ttf diff --git a/satoshi_complete/Fonts/WEB/fonts/Satoshi-Bold.woff b/assets/fonts/satoshi_complete/Fonts/WEB/fonts/Satoshi-Bold.woff similarity index 100% rename from satoshi_complete/Fonts/WEB/fonts/Satoshi-Bold.woff rename to assets/fonts/satoshi_complete/Fonts/WEB/fonts/Satoshi-Bold.woff diff --git a/satoshi_complete/Fonts/WEB/fonts/Satoshi-Bold.woff2 b/assets/fonts/satoshi_complete/Fonts/WEB/fonts/Satoshi-Bold.woff2 similarity index 100% rename from satoshi_complete/Fonts/WEB/fonts/Satoshi-Bold.woff2 rename to assets/fonts/satoshi_complete/Fonts/WEB/fonts/Satoshi-Bold.woff2 diff --git a/satoshi_complete/Fonts/WEB/fonts/Satoshi-BoldItalic.eot b/assets/fonts/satoshi_complete/Fonts/WEB/fonts/Satoshi-BoldItalic.eot similarity index 100% rename from satoshi_complete/Fonts/WEB/fonts/Satoshi-BoldItalic.eot rename to assets/fonts/satoshi_complete/Fonts/WEB/fonts/Satoshi-BoldItalic.eot diff --git a/satoshi_complete/Fonts/WEB/fonts/Satoshi-BoldItalic.ttf b/assets/fonts/satoshi_complete/Fonts/WEB/fonts/Satoshi-BoldItalic.ttf similarity index 100% rename from satoshi_complete/Fonts/WEB/fonts/Satoshi-BoldItalic.ttf rename to assets/fonts/satoshi_complete/Fonts/WEB/fonts/Satoshi-BoldItalic.ttf diff --git a/satoshi_complete/Fonts/WEB/fonts/Satoshi-BoldItalic.woff b/assets/fonts/satoshi_complete/Fonts/WEB/fonts/Satoshi-BoldItalic.woff similarity index 100% rename from satoshi_complete/Fonts/WEB/fonts/Satoshi-BoldItalic.woff rename to assets/fonts/satoshi_complete/Fonts/WEB/fonts/Satoshi-BoldItalic.woff diff --git a/satoshi_complete/Fonts/WEB/fonts/Satoshi-BoldItalic.woff2 b/assets/fonts/satoshi_complete/Fonts/WEB/fonts/Satoshi-BoldItalic.woff2 similarity index 100% rename from satoshi_complete/Fonts/WEB/fonts/Satoshi-BoldItalic.woff2 rename to assets/fonts/satoshi_complete/Fonts/WEB/fonts/Satoshi-BoldItalic.woff2 diff --git a/satoshi_complete/Fonts/WEB/fonts/Satoshi-Italic.eot b/assets/fonts/satoshi_complete/Fonts/WEB/fonts/Satoshi-Italic.eot similarity index 100% rename from satoshi_complete/Fonts/WEB/fonts/Satoshi-Italic.eot rename to assets/fonts/satoshi_complete/Fonts/WEB/fonts/Satoshi-Italic.eot diff --git a/satoshi_complete/Fonts/WEB/fonts/Satoshi-Italic.ttf b/assets/fonts/satoshi_complete/Fonts/WEB/fonts/Satoshi-Italic.ttf similarity index 100% rename from satoshi_complete/Fonts/WEB/fonts/Satoshi-Italic.ttf rename to assets/fonts/satoshi_complete/Fonts/WEB/fonts/Satoshi-Italic.ttf diff --git a/satoshi_complete/Fonts/WEB/fonts/Satoshi-Italic.woff b/assets/fonts/satoshi_complete/Fonts/WEB/fonts/Satoshi-Italic.woff similarity index 100% rename from satoshi_complete/Fonts/WEB/fonts/Satoshi-Italic.woff rename to assets/fonts/satoshi_complete/Fonts/WEB/fonts/Satoshi-Italic.woff diff --git a/satoshi_complete/Fonts/WEB/fonts/Satoshi-Italic.woff2 b/assets/fonts/satoshi_complete/Fonts/WEB/fonts/Satoshi-Italic.woff2 similarity index 100% rename from satoshi_complete/Fonts/WEB/fonts/Satoshi-Italic.woff2 rename to assets/fonts/satoshi_complete/Fonts/WEB/fonts/Satoshi-Italic.woff2 diff --git a/satoshi_complete/Fonts/WEB/fonts/Satoshi-Light.eot b/assets/fonts/satoshi_complete/Fonts/WEB/fonts/Satoshi-Light.eot similarity index 100% rename from satoshi_complete/Fonts/WEB/fonts/Satoshi-Light.eot rename to assets/fonts/satoshi_complete/Fonts/WEB/fonts/Satoshi-Light.eot diff --git a/satoshi_complete/Fonts/WEB/fonts/Satoshi-Light.ttf b/assets/fonts/satoshi_complete/Fonts/WEB/fonts/Satoshi-Light.ttf similarity index 100% rename from satoshi_complete/Fonts/WEB/fonts/Satoshi-Light.ttf rename to assets/fonts/satoshi_complete/Fonts/WEB/fonts/Satoshi-Light.ttf diff --git a/satoshi_complete/Fonts/WEB/fonts/Satoshi-Light.woff b/assets/fonts/satoshi_complete/Fonts/WEB/fonts/Satoshi-Light.woff similarity index 100% rename from satoshi_complete/Fonts/WEB/fonts/Satoshi-Light.woff rename to assets/fonts/satoshi_complete/Fonts/WEB/fonts/Satoshi-Light.woff diff --git a/satoshi_complete/Fonts/WEB/fonts/Satoshi-Light.woff2 b/assets/fonts/satoshi_complete/Fonts/WEB/fonts/Satoshi-Light.woff2 similarity index 100% rename from satoshi_complete/Fonts/WEB/fonts/Satoshi-Light.woff2 rename to assets/fonts/satoshi_complete/Fonts/WEB/fonts/Satoshi-Light.woff2 diff --git a/satoshi_complete/Fonts/WEB/fonts/Satoshi-LightItalic.eot b/assets/fonts/satoshi_complete/Fonts/WEB/fonts/Satoshi-LightItalic.eot similarity index 100% rename from satoshi_complete/Fonts/WEB/fonts/Satoshi-LightItalic.eot rename to assets/fonts/satoshi_complete/Fonts/WEB/fonts/Satoshi-LightItalic.eot diff --git a/satoshi_complete/Fonts/WEB/fonts/Satoshi-LightItalic.ttf b/assets/fonts/satoshi_complete/Fonts/WEB/fonts/Satoshi-LightItalic.ttf similarity index 100% rename from satoshi_complete/Fonts/WEB/fonts/Satoshi-LightItalic.ttf rename to assets/fonts/satoshi_complete/Fonts/WEB/fonts/Satoshi-LightItalic.ttf diff --git a/satoshi_complete/Fonts/WEB/fonts/Satoshi-LightItalic.woff b/assets/fonts/satoshi_complete/Fonts/WEB/fonts/Satoshi-LightItalic.woff similarity index 100% rename from satoshi_complete/Fonts/WEB/fonts/Satoshi-LightItalic.woff rename to assets/fonts/satoshi_complete/Fonts/WEB/fonts/Satoshi-LightItalic.woff diff --git a/satoshi_complete/Fonts/WEB/fonts/Satoshi-LightItalic.woff2 b/assets/fonts/satoshi_complete/Fonts/WEB/fonts/Satoshi-LightItalic.woff2 similarity index 100% rename from satoshi_complete/Fonts/WEB/fonts/Satoshi-LightItalic.woff2 rename to assets/fonts/satoshi_complete/Fonts/WEB/fonts/Satoshi-LightItalic.woff2 diff --git a/satoshi_complete/Fonts/WEB/fonts/Satoshi-Medium.eot b/assets/fonts/satoshi_complete/Fonts/WEB/fonts/Satoshi-Medium.eot similarity index 100% rename from satoshi_complete/Fonts/WEB/fonts/Satoshi-Medium.eot rename to assets/fonts/satoshi_complete/Fonts/WEB/fonts/Satoshi-Medium.eot diff --git a/satoshi_complete/Fonts/WEB/fonts/Satoshi-Medium.ttf b/assets/fonts/satoshi_complete/Fonts/WEB/fonts/Satoshi-Medium.ttf similarity index 100% rename from satoshi_complete/Fonts/WEB/fonts/Satoshi-Medium.ttf rename to assets/fonts/satoshi_complete/Fonts/WEB/fonts/Satoshi-Medium.ttf diff --git a/satoshi_complete/Fonts/WEB/fonts/Satoshi-Medium.woff b/assets/fonts/satoshi_complete/Fonts/WEB/fonts/Satoshi-Medium.woff similarity index 100% rename from satoshi_complete/Fonts/WEB/fonts/Satoshi-Medium.woff rename to assets/fonts/satoshi_complete/Fonts/WEB/fonts/Satoshi-Medium.woff diff --git a/satoshi_complete/Fonts/WEB/fonts/Satoshi-Medium.woff2 b/assets/fonts/satoshi_complete/Fonts/WEB/fonts/Satoshi-Medium.woff2 similarity index 100% rename from satoshi_complete/Fonts/WEB/fonts/Satoshi-Medium.woff2 rename to assets/fonts/satoshi_complete/Fonts/WEB/fonts/Satoshi-Medium.woff2 diff --git a/satoshi_complete/Fonts/WEB/fonts/Satoshi-MediumItalic.eot b/assets/fonts/satoshi_complete/Fonts/WEB/fonts/Satoshi-MediumItalic.eot similarity index 100% rename from satoshi_complete/Fonts/WEB/fonts/Satoshi-MediumItalic.eot rename to assets/fonts/satoshi_complete/Fonts/WEB/fonts/Satoshi-MediumItalic.eot diff --git a/satoshi_complete/Fonts/WEB/fonts/Satoshi-MediumItalic.ttf b/assets/fonts/satoshi_complete/Fonts/WEB/fonts/Satoshi-MediumItalic.ttf similarity index 100% rename from satoshi_complete/Fonts/WEB/fonts/Satoshi-MediumItalic.ttf rename to assets/fonts/satoshi_complete/Fonts/WEB/fonts/Satoshi-MediumItalic.ttf diff --git a/satoshi_complete/Fonts/WEB/fonts/Satoshi-MediumItalic.woff b/assets/fonts/satoshi_complete/Fonts/WEB/fonts/Satoshi-MediumItalic.woff similarity index 100% rename from satoshi_complete/Fonts/WEB/fonts/Satoshi-MediumItalic.woff rename to assets/fonts/satoshi_complete/Fonts/WEB/fonts/Satoshi-MediumItalic.woff diff --git a/satoshi_complete/Fonts/WEB/fonts/Satoshi-MediumItalic.woff2 b/assets/fonts/satoshi_complete/Fonts/WEB/fonts/Satoshi-MediumItalic.woff2 similarity index 100% rename from satoshi_complete/Fonts/WEB/fonts/Satoshi-MediumItalic.woff2 rename to assets/fonts/satoshi_complete/Fonts/WEB/fonts/Satoshi-MediumItalic.woff2 diff --git a/satoshi_complete/Fonts/WEB/fonts/Satoshi-Regular.eot b/assets/fonts/satoshi_complete/Fonts/WEB/fonts/Satoshi-Regular.eot similarity index 100% rename from satoshi_complete/Fonts/WEB/fonts/Satoshi-Regular.eot rename to assets/fonts/satoshi_complete/Fonts/WEB/fonts/Satoshi-Regular.eot diff --git a/satoshi_complete/Fonts/WEB/fonts/Satoshi-Regular.ttf b/assets/fonts/satoshi_complete/Fonts/WEB/fonts/Satoshi-Regular.ttf similarity index 100% rename from satoshi_complete/Fonts/WEB/fonts/Satoshi-Regular.ttf rename to assets/fonts/satoshi_complete/Fonts/WEB/fonts/Satoshi-Regular.ttf diff --git a/satoshi_complete/Fonts/WEB/fonts/Satoshi-Regular.woff b/assets/fonts/satoshi_complete/Fonts/WEB/fonts/Satoshi-Regular.woff similarity index 100% rename from satoshi_complete/Fonts/WEB/fonts/Satoshi-Regular.woff rename to assets/fonts/satoshi_complete/Fonts/WEB/fonts/Satoshi-Regular.woff diff --git a/satoshi_complete/Fonts/WEB/fonts/Satoshi-Regular.woff2 b/assets/fonts/satoshi_complete/Fonts/WEB/fonts/Satoshi-Regular.woff2 similarity index 100% rename from satoshi_complete/Fonts/WEB/fonts/Satoshi-Regular.woff2 rename to assets/fonts/satoshi_complete/Fonts/WEB/fonts/Satoshi-Regular.woff2 diff --git a/satoshi_complete/Fonts/WEB/fonts/Satoshi-Variable.eot b/assets/fonts/satoshi_complete/Fonts/WEB/fonts/Satoshi-Variable.eot similarity index 100% rename from satoshi_complete/Fonts/WEB/fonts/Satoshi-Variable.eot rename to assets/fonts/satoshi_complete/Fonts/WEB/fonts/Satoshi-Variable.eot diff --git a/satoshi_complete/Fonts/WEB/fonts/Satoshi-Variable.ttf b/assets/fonts/satoshi_complete/Fonts/WEB/fonts/Satoshi-Variable.ttf similarity index 100% rename from satoshi_complete/Fonts/WEB/fonts/Satoshi-Variable.ttf rename to assets/fonts/satoshi_complete/Fonts/WEB/fonts/Satoshi-Variable.ttf diff --git a/satoshi_complete/Fonts/WEB/fonts/Satoshi-Variable.woff b/assets/fonts/satoshi_complete/Fonts/WEB/fonts/Satoshi-Variable.woff similarity index 100% rename from satoshi_complete/Fonts/WEB/fonts/Satoshi-Variable.woff rename to assets/fonts/satoshi_complete/Fonts/WEB/fonts/Satoshi-Variable.woff diff --git a/satoshi_complete/Fonts/WEB/fonts/Satoshi-Variable.woff2 b/assets/fonts/satoshi_complete/Fonts/WEB/fonts/Satoshi-Variable.woff2 similarity index 100% rename from satoshi_complete/Fonts/WEB/fonts/Satoshi-Variable.woff2 rename to assets/fonts/satoshi_complete/Fonts/WEB/fonts/Satoshi-Variable.woff2 diff --git a/satoshi_complete/Fonts/WEB/fonts/Satoshi-VariableItalic.eot b/assets/fonts/satoshi_complete/Fonts/WEB/fonts/Satoshi-VariableItalic.eot similarity index 100% rename from satoshi_complete/Fonts/WEB/fonts/Satoshi-VariableItalic.eot rename to assets/fonts/satoshi_complete/Fonts/WEB/fonts/Satoshi-VariableItalic.eot diff --git a/satoshi_complete/Fonts/WEB/fonts/Satoshi-VariableItalic.ttf b/assets/fonts/satoshi_complete/Fonts/WEB/fonts/Satoshi-VariableItalic.ttf similarity index 100% rename from satoshi_complete/Fonts/WEB/fonts/Satoshi-VariableItalic.ttf rename to assets/fonts/satoshi_complete/Fonts/WEB/fonts/Satoshi-VariableItalic.ttf diff --git a/satoshi_complete/Fonts/WEB/fonts/Satoshi-VariableItalic.woff b/assets/fonts/satoshi_complete/Fonts/WEB/fonts/Satoshi-VariableItalic.woff similarity index 100% rename from satoshi_complete/Fonts/WEB/fonts/Satoshi-VariableItalic.woff rename to assets/fonts/satoshi_complete/Fonts/WEB/fonts/Satoshi-VariableItalic.woff diff --git a/satoshi_complete/Fonts/WEB/fonts/Satoshi-VariableItalic.woff2 b/assets/fonts/satoshi_complete/Fonts/WEB/fonts/Satoshi-VariableItalic.woff2 similarity index 100% rename from satoshi_complete/Fonts/WEB/fonts/Satoshi-VariableItalic.woff2 rename to assets/fonts/satoshi_complete/Fonts/WEB/fonts/Satoshi-VariableItalic.woff2 diff --git a/satoshi_complete/License/FFL.txt b/assets/fonts/satoshi_complete/License/FFL.txt similarity index 100% rename from satoshi_complete/License/FFL.txt rename to assets/fonts/satoshi_complete/License/FFL.txt diff --git a/assets/homepage.css b/assets/homepage.css new file mode 100644 index 0000000..a14d590 --- /dev/null +++ b/assets/homepage.css @@ -0,0 +1,158 @@ +.main-hero { + background: url("images/hero_bg.png") center/cover no-repeat; + min-height: 90vh; + display: flex; + align-items: center; + position: relative; +} + +@media (max-width: 991px) { + .main-hero { + background: url('images/hero_bg.png') center/cover no-repeat !important; + } +} + +.hero-top-header { + text-transform: uppercase; + font-size: 1rem; + letter-spacing: 2px; + color: var(--octigen-blue); +} + +/* Improve Mobile Experience */ +@media (max-width: 991px) { + .main-hero { + text-align: center; + } +} + +.service-section { + background: radial-gradient(circle at top left, #1A1B31 40%, #010101 80%); + color: white; +} + +.service-box { + background-color: rgba(255,255,255,0.07); + border: 1px solid rgba(255, 255, 255, 0.1); + overflow: hidden; + transition: 0.4s ease-in-out; +} + +.service-box:hover { + border: 1px solid rgba(255, 255, 255, 0.7); + transition: 0.4s ease-in-out; + box-shadow: 0px 0px 20px rgba(255, 255, 255, 0.05); +} + +.service-box-title { + text-transform: uppercase; + font-size: 1rem; + line-height: 1.5; +} + +.data-sources-box { + background-image: url('images/data_sources.png'); + background-size: contain; + background-position: right; + background-repeat: no-repeat; +} + +.reporting-box-image { + max-width: 100%; /* Ensures it scales inside the container */ + height: auto; /* Maintains aspect ratio */ + display: block; /* Removes extra space under image */ + object-fit: contain; /* Ensures proper scaling */ + margin-left: 4rem; + margin-bottom: -2rem; + margin-top: -1.5rem; +} + +@media (max-width: 991px) { + .reporting-box-image { + margin-left: 0 !important; + margin-top: 0 !important; + } +} + +.quantitative-box { + background-image: url('images/quant_edge.png'); + background-size: contain; + background-position: bottom; + background-repeat: no-repeat; +} + +.ai-box-image { + max-width: 100%; /* Ensures it scales inside the container */ + height: auto; /* Maintains aspect ratio */ + display: block; /* Removes extra space under image */ + object-fit: contain; /* Ensures proper scaling */ + margin-left: -2rem; + margin-top: -2.5rem; + opacity: 0.7; +} + +@media (max-width: 991px) { + .ai-box-image { + margin-left: 0 !important; + margin-top: 0 !important; + margin-bottom: 2rem !important; + } +} + +.who-we-are-section { + background: radial-gradient(circle at top right, rgba(206, 226, 255, 0.5) 10%, #ffffff 40%); +} +.founder-image { + max-width: 8rem; +} + +.founder-container { + box-shadow: 0px 0px 50px rgba(221, 221, 221, 0.5); + border: 2px solid rgba(255, 255, 255, 1); + transition: box-shadow 0.4s ease-in-out; +} + +.founder-container:hover { + box-shadow: 0px 0px 50px rgba(30, 79, 226, 0.5); + transition: box-shadow 0.4s ease-in-out; +} + +.founder-container h5 { + text-transform: uppercase; + font-size: 0.8rem; + font-weight: 400; + color: var(--octigen-blue); +} + +.founder-container p { + text-align: justify; +} + +.contacts-section { + background: radial-gradient(circle at bottom right, #1A1B31 40%, #010101 80%); + color: white; +} + +.free-banner { + color: white; + margin-bottom: -2.2rem; +} + +h5.free-banner-text { + display: inline-block; + background-color: var(--octigen-blue); + margin-left: 30rem; + font-size: 14px; + padding: 2px; +} + +@media (max-width: 991px) { + h5.free-banner-text { + margin-left: 0 !important; + } + .free-banner { + margin-bottom: -1.5rem; + font-size: 12px; + margin-top: 1rem; + } +} \ No newline at end of file diff --git a/images/.DS_Store b/assets/images/.DS_Store similarity index 100% rename from images/.DS_Store rename to assets/images/.DS_Store diff --git a/images/ai_chat.png b/assets/images/ai_chat.png similarity index 100% rename from images/ai_chat.png rename to assets/images/ai_chat.png diff --git a/images/data_sources.png b/assets/images/data_sources.png similarity index 100% rename from images/data_sources.png rename to assets/images/data_sources.png diff --git a/favicon.png b/assets/images/favicon.png similarity index 100% rename from favicon.png rename to assets/images/favicon.png diff --git a/graph_blue.png b/assets/images/graph_blue.png similarity index 100% rename from graph_blue.png rename to assets/images/graph_blue.png diff --git a/images/hero_bg.png b/assets/images/hero_bg.png similarity index 100% rename from images/hero_bg.png rename to assets/images/hero_bg.png diff --git a/images/hero_bg_mobile.png b/assets/images/hero_bg_mobile.png similarity index 100% rename from images/hero_bg_mobile.png rename to assets/images/hero_bg_mobile.png diff --git a/images/kevin_graziani.png b/assets/images/kevin_graziani.png similarity index 100% rename from images/kevin_graziani.png rename to assets/images/kevin_graziani.png diff --git a/logo_octigen_black.png b/assets/images/logo_octigen_black.png similarity index 100% rename from logo_octigen_black.png rename to assets/images/logo_octigen_black.png diff --git a/logo_octigen_white.png b/assets/images/logo_octigen_white.png similarity index 100% rename from logo_octigen_white.png rename to assets/images/logo_octigen_white.png diff --git a/images/michel_muller.png b/assets/images/michel_muller.png similarity index 100% rename from images/michel_muller.png rename to assets/images/michel_muller.png diff --git a/images/quant_edge.png b/assets/images/quant_edge.png similarity index 100% rename from images/quant_edge.png rename to assets/images/quant_edge.png diff --git a/images/quant_edge.svg b/assets/images/quant_edge.svg similarity index 100% rename from images/quant_edge.svg rename to assets/images/quant_edge.svg diff --git a/images/reporting_cycle.png b/assets/images/reporting_cycle.png similarity index 100% rename from images/reporting_cycle.png rename to assets/images/reporting_cycle.png diff --git a/assets/main.css b/assets/main.css new file mode 100644 index 0000000..d9d958b --- /dev/null +++ b/assets/main.css @@ -0,0 +1,179 @@ +/* define colors */ +:root { + --octigen-blue: rgba(30, 79, 226, 1); + --octigen-highlighted: #1A1B31; +} + +section { + overflow-x: hidden; +} + +main { + font-family: 'Outfit', sans-serif; +} + +h1, h2, h3, h4, h5, h6 { + letter-spacing: 1px; + font-weight: 300; + line-height: 1.5; +} + +p { + line-height: 2; + font-weight: 300; + font-size: 1rem; + opacity: 0.7; +} + +.navbar { + position: absolute; + top: 0; + left: 0; + width: 100%; + z-index: 10; + padding: 20px 0; +} + +.nav-highlighted-link { + color: var(--octigen-blue); + border: 1px solid var(--octigen-blue); + padding: 7px; + border-radius: 4px; + transition: 0.2s ease-in-out; +} + +.nav-highlighted-link:hover { + color: var(--octigen-blue) !important; + transition: 0.2s ease-in-out; + border-radius: 18px; +} + +.lang-dropdown.show { + display: inline-flex !important; + margin-top: 5px !important; +} + +.dropdown-hamburger { + display: none; + position: absolute; + top: 100%; + left: 0; + min-width: 50px; + background: white; + box-shadow: 0px 4px 6px rgba(0, 0, 0, 0.1); + border-radius: 5px; +} + +.dropdown-hamburger-container:hover .hamburger-menu, +#hamburgerMenu.active + #menuDropdown { + padding: 20px; + margin-top: 5px; + position: absolute; + width: 200px !important; + right: -70px; + left: auto; + display: flex !important; + flex-direction: column; +} + +.hamb-item { + line-height: 1.5; +} + +.language-selector { + background-color: var(--octigen-blue); + padding: 5px 12px; + color: white; + border-radius: 3px; +} + +.line-height-1and5 { + line-height: 1.5; +} + +.btn-primary { + font-size: 0.9rem; + font-weight: 400; + padding: 10px 20px; + border: none; + border-radius: 5px; + text-decoration: none; + display: inline-block; + overflow: hidden; + background-color: var(--octigen-blue); + transition: background-color 0.2s ease-in-out; + box-shadow: 0px 0px 50px rgba(30, 79, 226, 0.5); + z-index: 1; + font-family: 'Outfit', sans-serif; +} + +.btn-primary:hover { + background-color: var(--octigen-highlighted); + transition: background-color 0.2s ease-in-out; +} + +.form-container { + font-size: 0.9rem; + font-weight: 300; + font-family: 'Outfit', sans-serif; +} + +.form-container input, .form-container textarea { + background-color: transparent; + border-radius: 0px; + border: 1px solid rgba(255, 255, 255, 0.7); + color: white; +} + +.form-container input::placeholder, .form-container textarea::placeholder { + color: rgba(255, 255, 255, 0.7); + font-size: 0.9rem; + font-weight: 300; +} + +.form-container textarea:focus, +.form-container input:focus, +.form-container textarea:active, +.form-container input:active, +.form-container textarea:hover, +.form-container input:hover { + border: 1px solid var(--octigen-blue); + background-color: transparent; + color: white; + box-shadow: none; +} + +.form-btn { + background-color: transparent; + border: 1px solid white; + border-radius: 0px; + transition: border 0.2s ease-in-out; + font-weight: 300; +} + +.form-btn:hover { + transition: border 0.2s ease-in-out; +} + +.form-control { + color: white; + font-weight: 300; + font-size: 0.9rem; +} + +.highlighted-header { + color: var(--octigen-blue); + text-transform: uppercase; + font-size: 1rem; + letter-spacing: 2px; +} + +.footer-container { + border-top: 1px solid rgba(255, 255, 255, 0.1); +} + +.footer-text { + font-size: 0.8rem; + font-weight: 300; + color: rgba(255, 255, 255, 0.7); +} \ No newline at end of file diff --git a/assets/reporting.css b/assets/reporting.css new file mode 100644 index 0000000..ef6fe6a --- /dev/null +++ b/assets/reporting.css @@ -0,0 +1,21 @@ +.main-hero { + background: radial-gradient(circle at center, #ffffff 20%, rgba(206, 226, 255, 0.5) 50%); + min-height: 80vh; + display: flex; + align-items: center; + position: relative; +} + +.hero-top-header { + text-transform: uppercase; + font-size: 1rem; + letter-spacing: 2px; + color: var(--octigen-blue); +} + +/* Improve Mobile Experience */ +@media (max-width: 991px) { + .main-hero { + text-align: center; + } +} \ No newline at end of file diff --git a/form.js b/form.js new file mode 100644 index 0000000..d9321bc --- /dev/null +++ b/form.js @@ -0,0 +1,30 @@ +var form = document.getElementById("contact-form"); + +async function handleSubmit(event) { + event.preventDefault(); + var status = document.getElementById("contact-form-status"); + var data = new FormData(event.target); + fetch(event.target.action, { + method: form.method, + body: data, + headers: { + 'Accept': 'application/json' + } + }).then(response => { + if (response.ok) { + status.innerHTML = "Thanks for your submission!"; + form.reset() + } else { + response.json().then(data => { + if (Object.hasOwn(data, 'errors')) { + status.innerHTML = data["errors"].map(error => error["message"]).join(", ") + } else { + status.innerHTML = "Oops! There was a problem submitting your form" + } + }) + } + }).catch(error => { + status.innerHTML = "Oops! There was a problem submitting your form" + }); +} +form.addEventListener("submit", handleSubmit) \ No newline at end of file diff --git a/homepage.css b/homepage.css deleted file mode 100644 index 1f3a087..0000000 --- a/homepage.css +++ /dev/null @@ -1,329 +0,0 @@ -/* define colors */ -:root { - --octigen-blue: rgba(30, 79, 226, 1); - --octigen-highlighted: #1A1B31; -} - -section { - overflow-x: hidden; -} - -main { - font-family: 'Outfit', sans-serif; -} - -h1, h2, h3, h4, h5, h6 { - letter-spacing: 1px; - font-weight: 300; - line-height: 1.5; -} - -p { - line-height: 2; - font-weight: 300; - font-size: 0.9rem; -} - -.navbar { - position: absolute; - top: 0; - left: 0; - width: 100%; - z-index: 10; - padding: 20px 0; -} - -.nav-highlighted-link { - color: var(--octigen-blue); - border: 1px solid var(--octigen-blue); - padding: 7px; -} - -.nav-highlighted-link:hover { - color: var(--octigen-blue) !important; - transition: background-color 0.2s ease-in-out; - border-radius: 3px; -} - -.dropdown-menu.show { - display: inline-flex !important; -} - -.dropdown-hamburger { - display: none; - position: absolute; - top: 100%; - left: 0; - min-width: 50px; - background: white; - box-shadow: 0px 4px 6px rgba(0, 0, 0, 0.1); - border-radius: 5px; -} - -.dropdown-hamburger-container:hover .hamburger-menu, -#hamburgerMenu.active + #menuDropdown { - display: block; - padding: 20px; - margin-top: 5px; -} - -.hamb-item { - line-height: 1.5; -} - -.language-selector { - background-color: var(--octigen-blue); - padding: 5px 12px; - color: white; - border-radius: 3px; -} - -.main-hero { - background: url('images/hero_bg.png') center/cover no-repeat; - min-height: 100vh; - display: flex; - align-items: center; - position: relative; -} - -@media (max-width: 991px) { - .main-hero { - background: url('images/hero_bg_mobile.png') center/cover no-repeat !important; - } -} - -.hero-top-header { - text-transform: uppercase; - font-size: 1rem; - letter-spacing: 2px; - color: var(--octigen-blue); -} - -.line-height-1and5 { - line-height: 1.5; -} - -/* Improve Mobile Experience */ -@media (max-width: 991px) { - .main-hero { - text-align: center; - } -} - -.btn-primary { - font-size: 0.9rem; - font-weight: 400; - padding: 10px 20px; - border: none; - border-radius: 5px; - text-decoration: none; - display: inline-block; - overflow: hidden; - background-color: var(--octigen-blue); - transition: background-color 0.2s ease-in-out; - box-shadow: 0px 0px 50px rgba(30, 79, 226, 0.5); - z-index: 1; - font-family: 'Outfit', sans-serif; -} - -.btn-primary:hover { - background-color: var(--octigen-highlighted); - transition: background-color 0.2s ease-in-out; -} - -.service-section { - background: radial-gradient(circle at top left, #1A1B31 40%, #010101 80%); - color: white; -} - -.service-box { - background-color: rgba(255,255,255,0.07); - border: 1px solid rgba(255, 255, 255, 0.1); - overflow: hidden; - transition: 0.4s ease-in-out; -} - -.service-box:hover { - border: 1px solid rgba(255, 255, 255, 0.7); - transition: 0.4s ease-in-out; - box-shadow: 0px 0px 20px rgba(255, 255, 255, 0.05); -} - -.service-box-title { - text-transform: uppercase; - font-size: 1rem; - line-height: 1.5; -} - -.data-sources-box { - background-image: url('images/data_sources.png'); - background-size: contain; - background-position: right; - background-repeat: no-repeat; -} - -.reporting-box-image { - max-width: 100%; /* Ensures it scales inside the container */ - height: auto; /* Maintains aspect ratio */ - display: block; /* Removes extra space under image */ - object-fit: contain; /* Ensures proper scaling */ - margin-left: 4rem; - margin-bottom: -2rem; - margin-top: -1.5rem; -} - -@media (max-width: 991px) { - .reporting-box-image { - margin-left: 0 !important; - margin-top: 0 !important; - } -} - -.quantitative-box { - background-image: url('images/quant_edge.png'); - background-size: contain; - background-position: bottom; - background-repeat: no-repeat; -} - -.ai-box-image { - max-width: 100%; /* Ensures it scales inside the container */ - height: auto; /* Maintains aspect ratio */ - display: block; /* Removes extra space under image */ - object-fit: contain; /* Ensures proper scaling */ - margin-left: -2rem; - margin-top: -2.5rem; - opacity: 0.7; -} - -@media (max-width: 991px) { - .ai-box-image { - margin-left: 0 !important; - margin-top: 0 !important; - margin-bottom: 2rem !important; - } -} - -.who-we-are-section { - background: radial-gradient(circle at top right, rgba(206, 226, 255, 0.5) 10%, #ffffff 40%); -} -.founder-image { - max-width: 8rem; -} - -.founder-container { - box-shadow: 0px 0px 50px rgba(221, 221, 221, 0.5); - border: 2px solid rgba(255, 255, 255, 1); - transition: box-shadow 0.4s ease-in-out; -} - -.founder-container:hover { - box-shadow: 0px 0px 50px rgba(30, 79, 226, 0.5); - transition: box-shadow 0.4s ease-in-out; -} - -.founder-container h5 { - text-transform: uppercase; - font-size: 0.8rem; - font-weight: 400; - color: var(--octigen-blue); -} - -.founder-container p { - text-align: justify; -} - -.contacts-section { - background: radial-gradient(circle at bottom right, #1A1B31 40%, #010101 80%); - color: white; -} - -.form-container { - font-size: 0.9rem; - font-weight: 300; - font-family: 'Outfit', sans-serif; -} - -.form-container input, .form-container textarea { - background-color: transparent; - border-radius: 0px; - border: 1px solid rgba(255, 255, 255, 0.7); - color: white; -} - -.form-container input::placeholder, .form-container textarea::placeholder { - color: rgba(255, 255, 255, 0.7); - font-size: 0.9rem; - font-weight: 300; -} - -.form-container textarea:focus, -.form-container input:focus, -.form-container textarea:active, -.form-container input:active, -.form-container textarea:hover, -.form-container input:hover { - border: 1px solid var(--octigen-blue); - background-color: transparent; - color: white; - box-shadow: none; -} - -.form-btn { - background-color: transparent; - border: 1px solid white; - border-radius: 0px; - transition: border 0.2s ease-in-out; - font-weight: 300; -} - -.form-btn:hover { - transition: border 0.2s ease-in-out; -} - -.form-control { - color: white; - font-weight: 300; - font-size: 0.9rem; -} - -.highlighted-header { - color: var(--octigen-blue); - text-transform: uppercase; - font-size: 1rem; - letter-spacing: 2px; -} - -.footer-container { - border-top: 1px solid rgba(255, 255, 255, 0.1); -} - -.footer-text { - font-size: 0.8rem; - font-weight: 300; - color: rgba(255, 255, 255, 0.7); -} - -.free-banner { - color: white; - margin-bottom: -2.2rem; -} - -h5.free-banner-text { - display: inline-block; - background-color: var(--octigen-blue); - margin-left: 30rem; - font-size: 14px; - padding: 2px; -} - -@media (max-width: 991px) { - h5.free-banner-text { - margin-left: 0 !important; - } - .free-banner { - margin-bottom: -1.5rem; - font-size: 12px; - margin-top: 1rem; - } -} \ No newline at end of file diff --git a/index.html b/index.html index 9b0bb09..d2b0249 100644 --- a/index.html +++ b/index.html @@ -1,14 +1,9 @@ - - - + Octigen - Data, AI & Reporting Automation - Octigen - Data, AI & Reporting Automation - - + + + + + + + +
@@ -26,7 +29,7 @@
- Octigen Logo + Octigen Logo @@ -36,7 +39,7 @@ -
diff --git a/main.js b/main.js index e3d8fae..ff2c780 100644 --- a/main.js +++ b/main.js @@ -1,34 +1,3 @@ -var form = document.getElementById("contact-form"); - - async function handleSubmit(event) { - event.preventDefault(); - var status = document.getElementById("contact-form-status"); - var data = new FormData(event.target); - fetch(event.target.action, { - method: form.method, - body: data, - headers: { - 'Accept': 'application/json' - } - }).then(response => { - if (response.ok) { - status.innerHTML = "Thanks for your submission!"; - form.reset() - } else { - response.json().then(data => { - if (Object.hasOwn(data, 'errors')) { - status.innerHTML = data["errors"].map(error => error["message"]).join(", ") - } else { - status.innerHTML = "Oops! There was a problem submitting your form" - } - }) - } - }).catch(error => { - status.innerHTML = "Oops! There was a problem submitting your form" - }); - } - form.addEventListener("submit", handleSubmit) - document.getElementById("hamburgerMenu").addEventListener("click", function () { this.classList.toggle("active"); document.getElementById("menuDropdown").classList.toggle("show"); diff --git a/reporting.html b/reporting.html new file mode 100644 index 0000000..45e852a --- /dev/null +++ b/reporting.html @@ -0,0 +1,130 @@ + + + + Octigen - Data, AI & Reporting Automation + + + + + + + + + + + + + + + + + +
+ + +
+
+
+
+
+

Reporting Services

+

Finally client reporting that works wonders.

+
+

Discover a solution that you can leverage from the first day. No need for intensive + trainings, lengthy on-boarding processes, or learning new software. All you need is Microsoft PowerPoint, and we take care of + the rest for you. +

+
+ What we can do for you +
+
+
+
+
+
+
+
+
+

It all starts from a template.

+

Here at Octigen, we've developed a state of the art templating system that leverages your knowledge of PowerPoint, + and nothing more is actually needed. You can design the perfect client reporting via PowerPoint: choose the fonts, the colors, how the graphs and + the tables should look like. With Octigen, connecting everything to your actual data sources is incredibly simple, fast, and pain free. +

+
+
+
+
+
+
+
+
+
+
+
+
+
+
+

Incredible flexibility to cover your needs.

+

Reporting should be smart, easy to navigate, but most importantly correct. Octigen provides flexible solutions for aggregation + of data, showing the right tables depending on different factors (such as scope of report, asset classes, account types etc...). Countless possibilities + come with every new report you will automate through Octigen. +

+
+
+
+
+ + \ No newline at end of file diff --git a/translations/homepage/de.yaml b/translations/homepage/de.yaml new file mode 100644 index 0000000..c7d315c --- /dev/null +++ b/translations/homepage/de.yaml @@ -0,0 +1,69 @@ +common: + title: Octigen - Daten, AI & Berichtsautomatisierung + og_title: Octigen - Daten, AI & Berichtsautomatisierung + description: "Die Octigen GmbH bietet erstklassige Beratung in den Bereichen Datenintegration, + Transformation, Künstliche Intelligenz und quantitative Analyse in der gesamten Schweiz, + mit besonderem Fokus auf Finanzdienstleistungen." + nav: + services: Unsere Dienstleistungen + who_we_are: Wer wir sind + contact_us: Kontakt + footer: + copyright: © 2025 Octigen GmbH. Alle Rechte vorbehalten. + +hero: + top_header: AI, Daten und Berichtsautomatisierung + main_header: Nutzen Sie die Kraft Ihrer Daten. + description: "Profitieren Sie von einem Partner, der Ihre Daten beherrscht, + AI nutzt, um Ihre Prozesse zu optimieren, und herausragende Kundenberichte erstellt, + während Sie weiterhin die Software verwenden, die Sie bereits besitzen. Das ist Octigen." + button: Was wir für Sie tun können +services: + title: Unsere Dienstleistungen + data_integration: + title: Ihre Datenquellen in einer kohärenten Landschaft + description: "Daten sind der Rohstoff Ihrer Geschäftsintelligenz. Octigen ist hochqualifiziert + darin, sie in eine wertvolle Ressource zu verwandeln, indem wir unsere Tools direkt zu Ihren Daten bringen." + reporting: + title: Automatisieren Sie Ihr Kundenreporting + description: "Octigen hilft Ihnen, sich auf das Wesentliche zu konzentrieren, anstatt unnötig Zeit + mit Berichten zu verbringen. Von Softwareentwicklung & Integration bis hin zu Reporting-as-a-Service + bieten wir maßgeschneiderte Lösungen für Ihre Bedürfnisse." + quant_analysis: + title: Steigern Sie Ihre quantitative Stärke + description: "Lassen Sie uns Ihre quantitativen Analysen mit unserer Expertise aufwerten, sei es in + den Bereichen Maschinelles Lernen, Datenqualität, Portfolio-Konstruktion oder Zeitreihenprognosen." + generative_ai: + title: Generative AI in der realen Welt + description: "Bei Octigen verfügen wir über umfangreiche Erfahrung darin, echten Geschäftswert durch + clevere Anwendungen von Large Language Models (LLMs) zu schaffen. Haben Sie Ideen für mögliche Anwendungsfälle? + Lassen Sie uns sprechen." +who_we_are: + title: Wer wir sind + description: "Wir haben Seite an Seite gearbeitet, um das Kundenreporting eines führenden + unabhängigen Vermögensverwalters in Zürich zu revolutionieren. Aufbauend auf dieser Erfahrung + haben wir Octigen gegründet. Unsere Mission? Die Art und Weise zu transformieren, wie Sie Daten + zur Kundenbindung nutzen können." + michel_muller: + title: Mitbegründer & CEO + description: "Mit über 15 Jahren Erfahrung als Softwarearchitekt und mehr als 6 Jahren in der Entwicklung + innovativer Datenlösungen für die Finanzbranche bringt Michel tiefgehende Expertise in allen Bereichen + der Computertechnologie mit. Er hat einen Doktortitel in Hochleistungsrechnen und einen MSc von der ETH Zürich." + kevin_graziani: + title: Mitbegründer & CFO + description: "Mit Erfahrung als Front-Office-Quant für einige der größten Finanzinstitute Europas ist Kevin + ein erfahrener Softwareentwickler und Marketingexperte. Er schloss sein Studium cum laude ab und hält + zwei MSc-Abschlüsse in Quantitativer Finanzwissenschaft und Unternehmensfinanzierung." +contact_us: + offer: Die erste Stunde kostenlos + title: Kontaktieren Sie uns noch heute + top_cta: DATENINTEGRATION, AI, REPORTING + cta: Bereit, Ihr nächstes Projekt mit uns zu starten? + cta_description: "Lassen Sie uns sprechen und herausfinden, wie wir einen Unterschied machen können — sei es + durch kleine Anpassungen oder eine vollständige Workflow-Transformation. Wir stehen Ihnen zur Seite!" + form: + name: Ihr Name + email: Ihre E-Mail + message: Ihre Nachricht + submit: Senden + privacy_policy: "Ich stimme der Datenschutzerklärung zu." diff --git a/translations/homepage/en.yaml b/translations/homepage/en.yaml new file mode 100644 index 0000000..351b6b5 --- /dev/null +++ b/translations/homepage/en.yaml @@ -0,0 +1,69 @@ +common: + title: Octigen - Data, AI & Reporting Automation + og_title: Octigen - Data, AI & Reporting Automation + description: "Octigen GmbH provides expert consulting in data integration, + transformation, AI, and quantitative analysis, + specializing in Financial Services." + nav: + services: Our Services + who_we_are: Who We Are + contact_us: Contact Us + footer: + copyright: © 2025 Octigen GmbH. All rights reserved. + +hero: + top_header: AI, Data and Reporting Services + main_header: Harness the Power of your Data. + description: "Take advantage of a partner that knows how to handle your data, + using AI to make your operations run smoothly, and create oustanding client + reporting while using the software you already have. This is Octigen." + button: What we can do for you +services: + title: Our Services + data_integration: + title: Your data sources in a coherent landscape + description: "Data is the raw ore of your business intelligence. Octigen is highly proficient + in refining it into a precious resource for you, by bringing our tools right to your data." + reporting: + title: Automate your client reporting + description: "Octigen helps you focus on the bottom line rather than spending unnecessary time + on reports. From software development & integration to reporting as a service, we offer + you à la carte solutions for your needs." + quant_analysis: + title: Elevate your quantitative edge + description: "Let us supercharge your quant analytics with our expertise, in topics like Machine + Learning, data quality, portfolio construction, and time series forecasting." + generative_ai: + title: Generative AI, in the real world + description: "At Octigen we have extensive experience in delivering real business value with clever + uses of Large Language Models (LLMs). Have some ideas of potential use cases? + Let's talk." +who_we_are: + title: Who We Are + description: "We've worked side by side to revolutionize the client reporting of a leading + independent asset manager in Zurich. Building on that expertise, we founded Octigen. + Our mission? To transform the way you can use data to engage with your clients." + michel_muller: + title: Co-Founder & CEO + description: "With over 15 years of experience as a software architect and more than 6 years + developing cutting-edge data solutions for the finance industry, Michel brings deep expertise + across all computing technology. He holds a PhD in High-performance computing and an MSc from + ETH Zurich." + kevin_graziani: + title: Co-Founder & CFO + description: "Bringing experience as front-office quant for some of Europe's largest financial + institutions, Kevin is a seasoned software engineer and marketing expert. He graduated cum laude + and holds two MSc degrees, in Quantitative Finance and in Corporate Finance." +contact_us: + offer: First 1 hour free of charge + title: Get in touch today + top_cta: DATA INTEGRATION, AI, REPORTING + cta: Ready to start your next project with us? + cta_description: "Let's talk and see how we can make a difference — whether it's small tweaks or a + total workflow transformation, we've got your back!" + form: + name: Your Name + email: Your Email + message: Your Message + submit: Send + privacy_policy: "I agree to the privacy policy" \ No newline at end of file diff --git a/translations/homepage/fr.yaml b/translations/homepage/fr.yaml new file mode 100644 index 0000000..7973f17 --- /dev/null +++ b/translations/homepage/fr.yaml @@ -0,0 +1,69 @@ +common: + title: Octigen - Automatisation des données, IA et reporting + og_title: Octigen - Automatisation des données, IA et reporting + description: "Octigen GmbH fournit des conseils d'experts en intégration de données, + transformation, IA et analyse quantitative en Suisse, + spécialisée dans les services financiers." + nav: + services: Nos Services + who_we_are: Qui Nous Sommes + contact_us: Contactez-nous + footer: + copyright: © 2025 Octigen GmbH. Tous droits réservés. + +hero: + top_header: Services d'IA, de données et de reporting + main_header: Exploitez la puissance de vos données. + description: "Profitez d'un partenaire qui sait comment gérer vos données, + en utilisant l'IA pour faire fonctionner vos opérations en douceur, et créer un + reporting client exceptionnel tout en utilisant le logiciel que vous avez déjà. C'est Octigen." + button: Ce que nous pouvons faire pour vous +services: + title: Nos Services + data_integration: + title: Vos sources de données dans un contexte cohérent + description: "Les données sont le minerai brut de votre intelligence d'affaires. Octigen est très compétent + pour le raffiner en une ressource précieuse pour vous, en apportant nos outils directement à vos données." + reporting: + title: Automatisez votre reporting client + description: "Octigen vous aide à vous concentrer sur le résultat net plutôt que de passer du temps inutile + sur des rapports. Du développement et de l'intégration de logiciels au reporting en tant que service, nous offrons + des solutions à la carte pour vos besoins." + quant_analysis: + title: Élevez votre avantage quantitatif + description: "Laissez-nous booster votre analyse quant avec notre expertise, dans des sujets comme le Machine + Learning, la qualité des données, la construction de portefeuille et la prévision de séries temporelles." + generative_ai: + title: IA générative, dans le monde réel + description: "Chez Octigen, nous avons une vaste expérience dans la fourniture de valeur commerciale réelle avec des utilisations intelligentes + des grands modèles de langage (LLMs). Vous avez des idées de cas d'utilisation potentiels? + Parlons-en." +who_we_are: + title: Qui Nous Sommes + description: "Nous avons travaillé côte à côte pour révolutionner le reporting client d'un important + gestionnaire de fortune indépendant à Zurich. Forts de cette expertise, nous avons fondé Octigen. + Notre mission? Transformer la façon dont vous pouvez utiliser les données pour engager vos clients." + michel_muller: + title: Co-Fondateur & PDG + description: "Avec plus de 15 ans d'expérience en tant qu'architecte logiciel et plus de 6 ans + à développer des solutions de données de pointe pour l'industrie financière, Michel apporte une expertise approfondie + dans toutes les technologies informatiques. Il est titulaire d'un doctorat en informatique haute performance et d'un MSc de + l'ETH Zurich." + kevin_graziani: + title: Co-Fondateur & CFO + description: "Apportant une expérience de quant front-office pour certaines des plus grandes institutions financières d'Europe, + Kevin est un ingénieur logiciel chevronné et un expert en marketing. Il est diplômé cum laude + et détient deux MSc, en Finance Quantitative et en Finance d'Entreprise." +contact_us: + offer: Première heure gratuite + title: Contactez-nous aujourd'hui + top_cta: "DATA INTEGRATION, IA, REPORTING" + cta: Pret à commencer votre nouveau project avec nous? + cta_description: "Discutons et voyons comment nous pouvons faire une différence — que ce soit de petits ajustements ou une + transformation totale du flux de travail, nous sommes là pour vous!" + form: + name: Votre Nom + email: Votre Email + message: Votre Message + submit: Envoyer + privacy_policy: "J'accepte la politique de confidentialité" \ No newline at end of file diff --git a/translations/homepage/it.yaml b/translations/homepage/it.yaml new file mode 100644 index 0000000..1735d41 --- /dev/null +++ b/translations/homepage/it.yaml @@ -0,0 +1,70 @@ +common: + title: Octigen - Automazione dei dati, AI e Reporting + og_title: Octigen - Automazione dei dati, AI e Reporting + description: "Octigen GmbH fornisce consulenza esperta in integrazione dei dati, + trasformazione, IA e analisi quantitativa, + specializzandosi nei servizi finanziari." + nav: + services: I nostri servizi + who_we_are: Chi siamo + contact_us: Contattaci + footer: + copyright: © 2025 Octigen GmbH. Tutti i diritti riservati. + +hero: + top_header: Servizi di AI, Dati e Reporting + main_header: Sfruttate il potere dei vostri dati. + description: "Approfittate di un partner che sa come gestire i vostri dati, + utilizzando l'Intelligenza Artificiale per far decollare le vostre operazioni e creare + report clienti eccezionali senza dover imparare nuovi software. Questo è Octigen." + button: Cosa possiamo fare per voi +services: + title: I nostri servizi + data_integration: + title: Le vostre fonti di dati in un contesto coerente + description: "I dati sono l'oro grezzo della vostra business intelligence. Octigen è in grado + nel raffinarlo in una risorsa preziosa, portando i nostri strumenti direttamente ai vostri dati." + reporting: + title: Automatizza il vostro reporting clienti + description: "Octigen vi aiuta a concentrarvi sul risultato finale piuttosto che spendere tempo + inutile sui report. Dallo sviluppo e integrazione del software al reporting as a service, offriamo + soluzioni à la carte per le vostre esigenze." + quant_analysis: + title: Elevate il vostro vantaggio quantitativo + description: "Facciamo decollare la vostra analisi quantitativa con la nostra esperienza, in Machine + Learning come in data quality, portfolio construction e previsione delle timeseries." + generative_ai: + title: Generative AI, nel mondo reale + description: "Da Octigen abbiamo un'ampia esperienza nella creazione di valore commerciale reale con utilizzi intelligenti + dei Large Language Models (LLM). Avete alcune idee di possibili casi d'uso? + Parliamone." +who_we_are: + title: Chi siamo + description: "Abbiamo lavorato fianco a fianco per rivoluzionare il reporting clienti di un importante + asset manager indipendente a Zurigo. Basandoci su questa esperienza, abbiamo fondato Octigen. + La nostra missione? Trasformare il modo in cui potete utilizzare i dati per coinvolgere i vostri clienti." + michel_muller: + title: Co-Fondatore & CEO + description: "Con oltre 15 anni di esperienza come software architect e più di 6 anni + nello sviluppo di soluzioni dati all'avanguardia per l'industria finanziaria, Michel porta una profonda esperienza + in tutte le tecnologie informatiche. Ha conseguito un dottorato in High-performance computing e un MSc da + ETH Zurich." + kevin_graziani: + title: Co-Fondatore & CFO + description: "Oltre alla sua esperienza come quant front-office per alcune delle più grandi istituzioni finanziarie + europee, Kevin è anche un abile software engineer ed esperto di marketing. Si è laureato cum laude + e possiede due Master, in Finanza Quantitativa e in Corporate Finance." +contact_us: + offer: Prima ora gratuita + title: Parliamone oggi stesso + top_cta: INTEGRAZIONE DEI DATI, AI, REPORTING + cta: Pronti a cominciare il vostro prossimo progetto con noi? + cta_description: "Parliamo e scropiamo insieme come possiamo fare la differenza — + che si tratti di piccoli aggiustamenti o di una trasformazione totale del flusso + di lavoro, siamo al vostro fianco!" + form: + name: Nome + email: Email + message: Messaggio + submit: Invia + privacy_policy: "Accetto la privacy policy" \ No newline at end of file diff --git a/translations/de.yaml b/translations/reporting/de.yaml similarity index 100% rename from translations/de.yaml rename to translations/reporting/de.yaml diff --git a/translations/en.yaml b/translations/reporting/en.yaml similarity index 100% rename from translations/en.yaml rename to translations/reporting/en.yaml diff --git a/translations/fr.yaml b/translations/reporting/fr.yaml similarity index 100% rename from translations/fr.yaml rename to translations/reporting/fr.yaml diff --git a/translations/it.yaml b/translations/reporting/it.yaml similarity index 100% rename from translations/it.yaml rename to translations/reporting/it.yaml diff --git a/translator.js b/translator.js index 58ffee6..467c78d 100644 --- a/translator.js +++ b/translator.js @@ -16,9 +16,9 @@ async function loadLanguage(lang) { if (typeof jsyaml === "undefined") { await loadScript("https://cdn.jsdelivr.net/npm/js-yaml@4.1.0/dist/js-yaml.min.js"); } - const response = await fetch(`/translations/${lang}.yaml`); + const response = await fetch(`/translations/homepage/${lang}.yaml`); const yamlText = await response.text(); - const translations = jsyaml.load(yamlText); // Parse YAML to JS object + const translations = jsyaml.load(yamlText); applyTranslations(translations); } catch (error) { console.error("Error loading translations:", error); @@ -41,12 +41,11 @@ function applyTranslations(translations) { }); } - document.addEventListener("DOMContentLoaded", () => { const lang = localStorage.getItem("lang") || "en"; loadLanguage(lang); document.getElementById("currentLang").innerText = lang.toUpperCase(); - + document.querySelectorAll(".lang-select").forEach(item => { item.addEventListener("click", (event) => { event.preventDefault(); @@ -55,4 +54,4 @@ document.addEventListener("DOMContentLoaded", () => { document.getElementById("currentLang").innerText = selectedLang.toUpperCase(); }); }); -}); \ No newline at end of file + }); \ No newline at end of file