9 Commits

Author SHA1 Message Date
4d4b343aa2 ok
Some checks failed
www2.ourworld.tf / Deploy (push) Has been cancelled
2025-09-11 14:48:18 +02:00
5da4b0bd39 ok
Some checks failed
www2.ourworld.tf / Deploy (push) Has been cancelled
2025-09-11 14:11:19 +02:00
a74ce7ea76 fix: remove duplicate logo from header navigation
Some checks failed
www2.ourworld.tf / Deploy (push) Has been cancelled
2025-09-11 14:03:10 +02:00
f3d275a5f9 ok
Some checks failed
www2.ourworld.tf / Deploy (push) Has been cancelled
2025-09-11 14:00:23 +02:00
4ecce08e9f ok
Some checks failed
www2.ourworld.tf / Deploy (push) Has been cancelled
2025-09-11 13:57:10 +02:00
634911f129 Merge branch 'development' of https://git.ourworld.tf/ourworld_web/www_ow_freezone into development
Some checks failed
www2.ourworld.tf / Deploy (push) Has been cancelled
2025-09-11 13:56:36 +02:00
f9c1e24abe ok 2025-09-11 13:55:36 +02:00
7f1e048e35 Updates to copy
Some checks failed
www2.ourworld.tf / Deploy (push) Has been cancelled
2025-09-11 12:23:29 +03:00
141151bcec ok
Some checks failed
www2.ourworld.tf / Deploy (push) Has been cancelled
2025-09-10 16:37:21 +02:00
21 changed files with 451 additions and 102 deletions

BIN
content/.DS_Store vendored

Binary file not shown.

View File

@@ -17,7 +17,7 @@ HOMEPAGE (layouts/index.html) contains:
1. Hero section: "partials/hero.html
2. About section: "partials/about1.html"
3. Why Choose a Digital Free Zone section: "partials/about.html"
3. Why Choose a Digital Free Zone section: "partials#contact.html"
4. Why ZNZ section: "partials/feature.html
5. Benefits section: "partials/benefits.html"
6. Blog section : "partials/blogs.html"

193
css/animations.css Normal file
View File

@@ -0,0 +1,193 @@
/* Animation Styles for Homepage Components */
/* Base animation classes */
.animate-fade-in {
opacity: 0;
transform: translateY(30px);
transition: opacity 0.8s ease-out, transform 0.8s ease-out;
}
.animate-fade-in.animate-visible {
opacity: 1;
transform: translateY(0);
}
/* Slide in from left */
.animate-slide-left {
opacity: 0;
transform: translateX(-50px);
transition: opacity 0.8s ease-out, transform 0.8s ease-out;
}
.animate-slide-left.animate-visible {
opacity: 1;
transform: translateX(0);
}
/* Slide in from right */
.animate-slide-right {
opacity: 0;
transform: translateX(50px);
transition: opacity 0.8s ease-out, transform 0.8s ease-out;
}
.animate-slide-right.animate-visible {
opacity: 1;
transform: translateX(0);
}
/* Scale up animation */
.animate-scale-up {
opacity: 0;
transform: scale(0.9);
transition: opacity 0.8s ease-out, transform 0.8s ease-out;
}
.animate-scale-up.animate-visible {
opacity: 1;
transform: scale(1);
}
/* Staggered animations for multiple elements */
.animate-stagger-1 {
transition-delay: 0.1s;
}
.animate-stagger-2 {
transition-delay: 0.2s;
}
.animate-stagger-3 {
transition-delay: 0.3s;
}
.animate-stagger-4 {
transition-delay: 0.4s;
}
.animate-stagger-5 {
transition-delay: 0.5s;
}
/* Hero section specific animations */
.hero-title {
opacity: 0;
transform: translateY(40px);
transition: opacity 1s ease-out, transform 1s ease-out;
}
.hero-title.animate-visible {
opacity: 1;
transform: translateY(0);
}
.hero-subtitle {
opacity: 0;
transform: translateY(30px);
transition: opacity 1s ease-out 0.3s, transform 1s ease-out 0.3s;
}
.hero-subtitle.animate-visible {
opacity: 1;
transform: translateY(0);
}
.hero-button {
opacity: 0;
transform: translateY(20px);
transition: opacity 0.8s ease-out 0.6s, transform 0.8s ease-out 0.6s;
}
.hero-button.animate-visible {
opacity: 1;
transform: translateY(0);
}
/* Image animations */
.animate-image {
opacity: 0;
transform: scale(1.1);
transition: opacity 1s ease-out, transform 1s ease-out;
}
.animate-image.animate-visible {
opacity: 1;
transform: scale(1);
}
/* Text content animations */
.animate-text-content h1,
.animate-text-content h2,
.animate-text-content h3,
.animate-text-content h4 {
opacity: 0;
transform: translateY(20px);
transition: opacity 0.8s ease-out, transform 0.8s ease-out;
}
.animate-text-content.animate-visible h1,
.animate-text-content.animate-visible h2,
.animate-text-content.animate-visible h3,
.animate-text-content.animate-visible h4 {
opacity: 1;
transform: translateY(0);
}
.animate-text-content p {
opacity: 0;
transform: translateY(15px);
transition: opacity 0.8s ease-out 0.2s, transform 0.8s ease-out 0.2s;
}
.animate-text-content.animate-visible p {
opacity: 1;
transform: translateY(0);
}
.animate-text-content button,
.animate-text-content a[href] {
opacity: 0;
transform: translateY(10px);
transition: opacity 0.8s ease-out 0.4s, transform 0.8s ease-out 0.4s;
}
.animate-text-content.animate-visible button,
.animate-text-content.animate-visible a[href] {
opacity: 1;
transform: translateY(0);
}
/* Reduced motion for accessibility */
@media (prefers-reduced-motion: reduce) {
.animate-fade-in,
.animate-slide-left,
.animate-slide-right,
.animate-scale-up,
.hero-title,
.hero-subtitle,
.hero-button,
.animate-image,
.animate-text-content h1,
.animate-text-content h2,
.animate-text-content h3,
.animate-text-content h4,
.animate-text-content p,
.animate-text-content button,
.animate-text-content a[href] {
transition: none;
opacity: 1;
transform: none;
}
}
/* Loading animation for initial page load */
.page-loading .animate-on-load {
opacity: 0;
transform: translateY(20px);
}
.page-loaded .animate-on-load {
opacity: 1;
transform: translateY(0);
transition: opacity 0.6s ease-out, transform 0.6s ease-out;
}

View File

@@ -104,6 +104,31 @@ function toggleFilter() {
filterMenu.className = filterMenu.className + " hidden"
}
}
// Smooth scrolling function for anchor links
function smoothScrollToElement(targetId) {
const element = document.getElementById(targetId);
if (element) {
const headerHeight = document.getElementById('header-container') ?
document.getElementById('header-container').offsetHeight : 80;
const elementPosition = element.offsetTop - headerHeight - 20;
window.scrollTo({
top: elementPosition,
behavior: 'smooth'
});
}
}
// Handle anchor link clicks
function handleAnchorClick(event, link) {
const href = link.getAttribute('href');
if (href && href.startsWith('#')) {
event.preventDefault();
const targetId = href.substring(1);
smoothScrollToElement(targetId);
}
}
window.onload = function () {
let elements = document.getElementsByTagName("button");
let buttons = [...elements]
@@ -119,6 +144,8 @@ window.onload = function () {
'www.ourworld.tf',
'ourworld.tf',
'www2.ourworld.tf',
'www2.freezone.ourworld.tf',
'freezone.ourworld.tf',
'localhost',
'127.0.0.1'
]
@@ -126,11 +153,178 @@ window.onload = function () {
if (!internal_hosts.includes(links[i].hostname)) {
links[i].target = '_blank';
}
// Add smooth scrolling for anchor links
if (links[i].getAttribute('href') && links[i].getAttribute('href').startsWith('#')) {
links[i].addEventListener('click', function(event) {
handleAnchorClick(event, this);
});
}
}
// Add smooth scrolling behavior to html element
document.documentElement.style.scrollBehavior = 'smooth';
document.getElementById("filter-btn").addEventListener('click', toggleFilter);
}
function openInNewTab(url) {
window.open(url, '_blank').focus()
}
// Animation System for Homepage Components
class AnimationController {
constructor() {
this.observer = null;
this.isPageLoaded = false;
this.init();
}
init() {
// Set up intersection observer for scroll animations
this.setupIntersectionObserver();
// Handle initial page load animations
this.handlePageLoad();
// Initialize animations when DOM is ready
if (document.readyState === 'loading') {
document.addEventListener('DOMContentLoaded', () => this.initializeAnimations());
} else {
this.initializeAnimations();
}
}
setupIntersectionObserver() {
const options = {
root: null,
rootMargin: '0px 0px -10% 0px', // Trigger when element is 10% visible
threshold: 0.1
};
this.observer = new IntersectionObserver((entries) => {
entries.forEach(entry => {
if (entry.isIntersecting) {
this.animateElement(entry.target);
}
});
}, options);
}
animateElement(element) {
// Add visible class to trigger CSS animations
element.classList.add('animate-visible');
// Animate child elements with stagger effect
const children = element.querySelectorAll('.animate-stagger-1, .animate-stagger-2, .animate-stagger-3, .animate-stagger-4, .animate-stagger-5');
children.forEach((child, index) => {
setTimeout(() => {
child.classList.add('animate-visible');
}, index * 100);
});
// Stop observing this element once animated
this.observer.unobserve(element);
}
handlePageLoad() {
// Add loading class initially
document.body.classList.add('page-loading');
window.addEventListener('load', () => {
this.isPageLoaded = true;
document.body.classList.remove('page-loading');
document.body.classList.add('page-loaded');
// Animate hero section immediately on load
this.animateHeroSection();
});
}
animateHeroSection() {
const heroElements = document.querySelectorAll('.hero-title, .hero-subtitle, .hero-button');
heroElements.forEach(element => {
element.classList.add('animate-visible');
});
}
initializeAnimations() {
// Find all elements that should be animated
const animatedElements = document.querySelectorAll(
'.animate-fade-in, .animate-slide-left, .animate-slide-right, .animate-scale-up, .animate-text-content, .animate-image'
);
// Start observing each element
animatedElements.forEach(element => {
this.observer.observe(element);
});
// Add animation classes to row containers
this.addAnimationClassesToRows();
}
addAnimationClassesToRows() {
// Get all row containers from the homepage
const rows = document.querySelectorAll('[id*="row"], .relative.justify-center.flex.overflow-hidden');
rows.forEach((row, index) => {
// Add different animation types based on position
const animationType = this.getAnimationTypeForRow(index);
row.classList.add(animationType);
// Add text content animation to text columns
const textColumns = row.querySelectorAll('div[class*="flex-1"]');
textColumns.forEach(column => {
if (this.hasTextContent(column)) {
column.classList.add('animate-text-content');
}
// Add image animation to image containers
const images = column.querySelectorAll('img');
images.forEach(img => {
img.parentElement.classList.add('animate-image');
});
});
});
}
getAnimationTypeForRow(index) {
const animations = ['animate-fade-in', 'animate-slide-left', 'animate-slide-right', 'animate-scale-up'];
return animations[index % animations.length];
}
hasTextContent(element) {
const textElements = element.querySelectorAll('h1, h2, h3, h4, p, button, a');
return textElements.length > 0;
}
// Method to trigger animations on scroll direction change
handleScrollDirection() {
let lastScrollTop = 0;
window.addEventListener('scroll', () => {
const scrollTop = window.pageYOffset || document.documentElement.scrollTop;
const scrollDirection = scrollTop > lastScrollTop ? 'down' : 'up';
// You can add specific animations based on scroll direction here
document.body.setAttribute('data-scroll-direction', scrollDirection);
lastScrollTop = scrollTop <= 0 ? 0 : scrollTop;
}, false);
}
}
// Initialize animation system
let animationController;
// Enhanced window.onload to include animations
const originalWindowOnload = window.onload;
window.onload = function() {
// Call original onload function
if (originalWindowOnload) {
originalWindowOnload();
}
// Initialize animation controller
animationController = new AnimationController();
}

Binary file not shown.

BIN
static/videos/zanzibar.mp4 Normal file

Binary file not shown.

View File

@@ -2,14 +2,14 @@
<div class="mx-auto max-w-7xl px-6 bg-white">
<div class="mx-auto max-w-2xl lg:mx-0">
<h2 class="text-base font-semibold leading-8 text-blue-600">FEATURES</h2>
<p class="mt-2 text-2xl font-bold tracking-tight text-black sm:text-4xl">🌍 Why Choose a Digital Free Zone</p>
<p class="mt-8 text-base font-light lg:text-xl text-gray-600">Our automated onboarding process, will ensure compliance with KYC and AML regulations at ease and efficiency.</p>
<p class="mt-2 text-2xl font-bold tracking-tight text-black sm:text-4xl">Why Choose Our Digital Free Zone</p>
<p class="mt-8 text-base font-light lg:text-xl text-gray-600">From simplicity to autonomy, there are many reasons to take part:</p>
</div>
<dl class="mt-6 lg:mt-6 grid grid-cols-1 gap-8 sm:mt-16 sm:grid-cols-2 lg:grid-cols-2">
<div class="flex flex-col-reverse px-6 py-2">
<dt class="text-base font-light leading-tight mt-4 lg:mt-2 text-gray-600">A digital free zone fosters effortless collaboration among individuals and organizations by eliminating intermediaries.</dt>
<dd class="text-xl font-semibold leading-9 tracking-tight flex items-center gap-4"> <!-- Increased gap here -->
<span class="leading-6">🔹Fully Automated Onboarding</span>
<span class="leading-6">🔹 Fully Automated Onboarding</span>
</dd>
</div>
<div class="flex flex-col-reverse px-6 py-2">

View File

@@ -1,8 +1,8 @@
<div id="about" class="relative isolate overflow-hidden py-12 bg-blue-100 mx-auto">
<div class="flex flex-col justify-center items-center max-w-2xl mx-auto py-16 px-4 lg:px-0 text-center h-full">
<div class="text-center">
<h1 class="mt-4 text-3xl lg:text-4xl font-bold leading-8 tracking-tight text-black mb-4">🏛️ About ZDFZ</h1>
<p class="mt-6 text-lg lg:text-xl mx-2 leading-8 text-gray-600 font-light"><span class="font-semibold">Zanzibar Digital Free Zone</span> offer cutting-edge digital infrastructure, simplified financial transactions, and competitive tax structures to foster innovation and economic growth. With a clear regulatory framework and robust dispute resolution, we ensure a stable environment for businesses to thrive, removing complexity and enabling effortless global expansion.</p>
<h1 class="mt-4 text-3xl lg:text-4xl font-bold leading-8 tracking-tight text-black mb-4">About ZDFZ</h1>
<p class="mt-6 text-lg lg:text-xl mx-2 leading-8 text-gray-600 font-light"><span class="font-semibold">Zanzibar Digital Free Zone</span> offers cutting-edge digital infrastructure, simplified financial transactions, and competitive tax structures to foster innovation and economic growth. With a clear regulatory framework and robust dispute resolution, we ensure a stable environment for businesses to thrive, removing complexity and enabling effortless global expansion.</p>
</div>
</div>
</div>

View File

@@ -12,20 +12,14 @@
<div class="relative sm:py-24 lg:py-12 lg:px-8 px-4">
<div class="max-w-xl mx-auto">
<h2 class="text-base font-semibold leading-7 text-blue-600">SERVICES</h2>
<p class="mt-2 text-3xl font-bold tracking-tight text-black sm:text-4xl">Simple. Streamlined.</p>
<p class="mt-2 text-3xl font-bold tracking-tight text-black sm:text-4xl">Simple. Streamlined. Secure.</p>
<div class="mt-4 font-light text-lg leading-7 tracking-tight text-gray-600">
<p class="text-base font-light lg:text-xl text-gray-600 mb-10 mt-6">For the entrepreneur, the digital nomad, or any company, we provide a revolutionary platform where you can obtain a digital company license, a bank account supporting both fiat and cryptocurrencies, and handle your legal requirements and taxes, all within a single, streamlined platform. <br><br>
Say goodbye to complexities and hello to a new era of simplicity and efficiency, empowering your business to thrive like never before.
</p>
</div>
<div class="mt-10 flex lg:gap-x-6 gap-x-3">
<a href="/about" class="rounded-xl bg-blue-700 px-4 py-2.5 lg:text-base text-sm font-semibold text-white shadow-sm hover:bg-blue-800 hover:text-blue-200 transition-colors duration-300">
Get Started
</a>
<a href="/about" class="rounded-xl border border-gray-800 border-r-2 px-4 py-2.5 font-medium text-gray-900 bg-transparent hover:bg-white hover:text-blue-700 transition-all duration-300">
Learn More &#8594;
</a>
</div>
</div>
</div>

View File

@@ -11,18 +11,9 @@
<!-- Placeholder for decorative SVG or background -->
</div>
<h2 class="text-base font-semibold leading-7 text-blue-600">CONTACT US</h2>
<h2 class="mt-2 text-3xl font-bold tracking-tight text-blac">📬 Get in touch</h2>
<p class="mt-6 text-lg leading-8 text-gray-600">At Zanzibar Digital Free Zone (ZDFZ), we are eager to hear from you! Whether you have questions about our innovative platform and programs, need assistance with onboarding, or are interested in exploring collaboration opportunities, we are here to help. .</p>
<h2 class="mt-2 text-3xl font-bold tracking-tight text-blac">Get in touch</h2>
<p class="mt-6 text-lg leading-8 text-gray-600">The Zanzibar Digital Free Zone (ZDFZ) platform is coming alive. In the meantime, we invite you to get in touch with any comments, questions, or collaboration opportunities. We are here to help!</p>
<dl class="mt-10 space-y-4 text-base leading-7 text-gray-600">
<div class="flex gap-x-4">
<dt class="flex-none">
<span class="sr-only">Address</span>
<svg class="h-7 w-6 text-gray-600" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" aria-hidden="true">
<path stroke-linecap="round" stroke-linejoin="round" d="M2.25 21h19.5m-18-18v18m10.5-18v18m6-13.5V21M6.75 6.75h.75m-.75 3h.75m-.75 3h.75m3-6h.75m-.75 3h.75m-.75 3h.75M6.75 21v-3.375c0-.621.504-1.125 1.125-1.125h2.25c.621 0 1.125.504 1.125 1.125V21M3 3h12m-.75 4.5H21m-3.75 3.75h.008v.008h-.008v-.008zm0 3h.008v.008h-.008v-.008zm0 3h.008v.008h-.008v-.008z" />
</svg>
</dt>
<dd>Nexus Global Financial Services Limited,<br>Ebene, Mauritius.</dd>
</div>
<div class="flex gap-x-4">
<dt class="flex-none">
<span class="sr-only">Email</span>

View File

@@ -2,7 +2,7 @@
<div class="mx-auto max-w-7xl px-4 sm:px-6 lg:px-8">
<div class="text-center">
<h2 class="text-base font-semibold leading-7 text-blue-600">BENEFITS</h2>
<h2 class="text-2xl sm:text-3xl lg:text-4xl font-bold tracking-tight text-gray-900 lg:mb-2">🇹🇿 Why Zanzibar?</h2>
<h2 class="text-2xl sm:text-3xl lg:text-4xl font-bold tracking-tight text-gray-900 lg:mb-2">Why Zanzibar?</h2>
<p class="text-base font-light lg:text-xl text-gray-600 mb-10 mt-6">With proactive business-friendly policies and Tanzania's robust economic growth, <br>Zanzibar emerges as a promising hub for innovation and investment in East Africa.</p>
</div>
<div class="mt-2 grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-4 bg-white border border-gray-200 rounded-lg overflow-hidden">

View File

@@ -5,13 +5,8 @@
<footer>
<div class="max-w-screen-2xl mx-auto lg:py-5 py-2 sm:px-6 lg:px-8">
<div class="flex flex-col xl:flex-row xl:gap-4 items-center">
<div class="space-y-8 lg:max-w-sm xl:max-w-sm lg:mr-8 mb-4 xl:col-span-1 text-center xl:text-left">
<a href="/">
<img class="lg:w-60 h-auto w-20 mx-auto" src="./images/zdfz.svg" alt="logo" />
</a>
</div>
<p data-v-14efe4a7="" class="text-base leading-6 text-gray-400 mb-4">
© 2024 OurWorld Holdings, All rights reserved.
© 2025 OurWorld Holdings, All rights reserved.
<a target="_blank" href="https://docs.threefold.io/docs/legal/terms_and_conditions" class="leading-6 text-gray-500 hover:text-gray-900">Terms &amp; Conditions |
</a><a target="_blank" href="https://docs.threefold.io/docs/legal/privacy_policy" class="leading-6 text-gray-500 hover:text-gray-900">Privacy Policy
</a>

View File

@@ -66,6 +66,7 @@
<!-- CSS/SCSS -->
<link rel="stylesheet" href="{{ get_url(path="css/index.css", trailing_slash=false, cachebust=true) | safe }}" />
<link rel="stylesheet" href="{{ get_url(path="css/animations.css", trailing_slash=false, cachebust=true) | safe }}" />
<style>
.space-x-10>:not([hidden])~:not([hidden]){
margin-left: calc(1.5rem*calc(1 - var(--tw-space-x-reverse)))!important;

View File

@@ -12,32 +12,15 @@
{% set header_class = config.extra.header_class | default(value='') %}
<div class="{{'z-10 bg-white fixed w-screen ' ~ header_class}}">
<div class="relative z-50 shadow">
<div class="mx-auto flex z-50 shadow justify-between items-center pl-6 pr-2 md:pr-0 lg:py-5 md:px-12 py-2 lg:px-20 lg:justify-start lg:space-x-20">
<div>
<a href="/" class="flex">
<img class="w-56 h-auto sm:w-15" src="{{logo_path}}" alt="FreeFlow Logo" />
</a>
</div>
<div class="-mr-2 -my-2 lg:hidden">
<button id="hamburger-btn" class="menu-mobile inline-flex items-center justify-center p-2 rounded-md text-gray-400 hover:text-gray-500 hover:bg-gray-100 focus:outline-none focus:bg-gray-100 focus:text-gray-500 transition duration-150 ease-in-out my-2">
<!-- Heroicon name: menu -->
<svg class="h-6 w-6" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke="currentColor">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M4 6h16M4 12h16M4 18h16" />
</svg>
</button>
<button id="close-hamburger-btn" class="menu-mobile lg:hidden inline-flex items-center justify-center p-2 rounded-md text-gray-400 hover:text-gray-500 hover:bg-gray-100 focus:outline-none focus:bg-gray-100 focus:text-gray-500 transition duration-150 ease-in-out my-2">
<!-- Heroicon name: x -->
<svg class="h-6 w-6" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke="currentColor">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M6 18L18 6M6 6l12 12" />
</svg>
</button>
</div>
<div class="hidden lg:flex-1 lg:flex lg:items-center lg:justify-end lg:space-x-12">
<div class="mx-auto flex items-center justify-between pl-6 pr-2 md:pr-0 lg:py-5 md:px-12 py-2 lg:px-20">
<!-- Spacer for left side on desktop -->
<div class="hidden lg:flex-1 lg:flex"></div>
<div class="hidden lg:flex lg:items-center lg:justify-center">
<nav class="flex space-x-10">
{% for page in section.pages %}
{% if page.extra.menu %} {% continue %} {% endif %}
<a href="{{page.permalink}}" class="text-lg leading-6 text-gray-900 focus:outline-none focus:text-gray-900 transition ease-in-out duration-150 mt-0">
{{page.title}}test
<a href="/#{{ page.title | lower }}" class="text-lg leading-6 text-gray-900 focus:outline-none focus:text-gray-900 transition ease-in-out duration-150 mt-0">
{{page.title}}
</a>
<div class="relative">
</div>
@@ -54,6 +37,23 @@
{% endfor %}
</nav>
</div>
<!-- Spacer for right side on desktop, and container for mobile menu button -->
<div class="flex-1 flex justify-end">
<div class="-mr-2 -my-2 lg:hidden">
<button id="hamburger-btn" class="menu-mobile inline-flex items-center justify-center p-2 rounded-md text-gray-400 hover:text-gray-500 hover:bg-gray-100 focus:outline-none focus:bg-gray-100 focus:text-gray-500 transition duration-150 ease-in-out my-2">
<!-- Heroicon name: menu -->
<svg class="h-6 w-6" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke="currentColor">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M4 6h16M4 12h16M4 18h16" />
</svg>
</button>
<button id="close-hamburger-btn" class="menu-mobile hidden inline-flex items-center justify-center p-2 rounded-md text-gray-400 hover:text-gray-500 hover:bg-gray-100 focus:outline-none focus:bg-gray-100 focus:text-gray-500 transition duration-150 ease-in-out my-2">
<!-- Heroicon name: x -->
<svg class="h-6 w-6" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke="currentColor">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M6 18L18 6M6 6l12 12" />
</svg>
</button>
</div>
</div>
</div>
</div>
{% for subsection in section.subsections %}
@@ -117,7 +117,6 @@
{% set section = get_section(path="footer/_index.md")%}
<div class="mx-8 mt-8">
<div class="space-y-8 lg:max-w-lg xl:max-w-lg lg:mr-8 lg:mb-8 xl:col-span-1">
<img class="w-48 h-auto" src="{{logo_path}}" alt="Company name" />
<p class="text-gray-500 text-base leading-6 ">
{{section.description}}
</p>

View File

@@ -9,13 +9,10 @@
<header id="header-container">
<div class="z-10 bg-white fixed w-screen">
<div class="relative z-50 shadow">
<div class="mx-auto grid grid-cols-3 items-center pl-6 pr-2 md:pl-0 md:pr-0 lg:py-5 sm:px-8 md:px-12 py-2 lg:px-20">
<div>
<a href="/" class="flex">
<img class="w-48 h-auto sm:w-15" src="{{section.extra.logoPath}}" alt="ODFZ Logo" />
</a>
</div>
<div class="hidden lg:flex lg:items-center lg:justify-center lg:space-x-12">
<div class="mx-auto flex items-center justify-between pl-6 pr-2 md:pl-0 md:pr-0 lg:py-5 sm:px-8 md:px-12 py-2 lg:px-20">
<!-- Spacer for left side on desktop -->
<div class="hidden lg:flex-1 lg:flex"></div>
<div class="hidden lg:flex lg:items-center lg:justify-center">
<nav class="flex space-x-10">
{% for header_item in header_items %}
@@ -41,10 +38,10 @@
{% endif %}
{% endfor %}
</nav>
</div>
<div class="-mr-2 -my-2 lg:hidden">
<!-- Spacer for right side on desktop, and container for mobile menu button -->
<div class="flex-1 flex items-center justify-end">
<div class="-mr-2 -my-2 lg:hidden">
<button id="hamburger-btn" class="menu-mobile inline-flex items-center justify-center p-2 rounded-md text-gray-400 hover:text-gray-500 hover:bg-gray-100 focus:outline-none focus:bg-gray-100 focus:text-gray-500 transition duration-150 ease-in-out my-2">
<!-- Heroicon name: menu -->
<svg class="h-6 w-6" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke="currentColor">
@@ -59,6 +56,7 @@
</button>
</div>
</div>
</div>
{% for header_item in header_items %}
{% if not loop.first %}
{% set header_arr = header_item | split(pat="</li>") %}

View File

@@ -1,26 +1,21 @@
<div class="relative isolate overflow-hidden h-screen bg-white">
<div class="flex flex-col justify-center items-center mx-auto max-w-2xl py-32 text-center h-full">
<div class="relative isolate overflow-hidden h-screen">
<video autoplay loop muted playsinline class="absolute z-0 w-full h-full object-cover">
<source src="/videos/zanzibar.mp4" type="video/mp4">
Your browser does not support the video tag.
</video>
<div class="absolute inset-0 bg-black opacity-40 z-0"></div>
<div class="flex flex-col justify-center items-center mx-auto max-w-2xl py-32 text-center h-full relative z-10">
<div class="text-center">
<img src="./images/logo.svg"
alt="Hero Image"
width="210"
height="210"
class="mx-auto rounded-md">
<p class="text-base font-semibold leading-7 text-blue-600">WELCOME TO</p>
<p class="text-base font-semibold leading-7 text-blue-600 hero-subtitle">WELCOME TO</p>
<div class="max-w-4xl">
<h1 class="mt-4 text-3xl lg:text-5xl font-bold leading-8 tracking-tight text-black mb-4">Zanzibar Digital Free Zone</h1>
<h1 class="mt-4 text-3xl lg:text-5xl font-bold leading-8 tracking-tight text-white mb-4 hero-title">Zanzibar Digital Free Zone</h1>
</div>
<p class="mt-6 text-lg sm:text-xl leading-7 sm:leading-8 text-gray-600 font-light mx-4 sm:mx-0">Zanzibar Digital Free Zone is a collaboration between the Government of Zanzibar and OurWorld Venture Creator. We are the world's first 100% digital free zone, accessible and affordable for all. Removing complexity from doing business.</p>
<div class="mt-10 flex items-center justify-center gap-x-6">
<a href="/about" class="rounded-xl bg-blue-700 px-4 py-2.5 font-semibold text-white shadow-sm hover:bg-blue-800 hover:text-blue-200 transition-colors duration-300">
<p class="mt-6 text-lg sm:text-xl leading-7 sm:leading-8 text-gray-200 font-light mx-4 sm:mx-0">The Zanzibar Digital Free Zone is a collaboration between the Revolutionary Government of Zanzibar (through ZICTIA) and OurWorld Venture Creator. We are the world's first 100% digital free zone, accessible and affordable for all. Removing complexity from doing business.<br/><br/>Launching Soon.</p>
<div class="mt-10 flex items-center justify-center">
<a href="#contact" class="rounded-xl bg-blue-700 px-4 py-2.5 font-semibold text-white shadow-sm hover:bg-blue-800 hover:text-blue-200 transition-colors duration-300 hero-button">
Get Started
</a>
<a href="/about" class="rounded-xl border border-gray-800 px-4 py-2.5 font-medium text-gray-900 bg-transparent shadow-sm hover:bg-blue-700 hover:text-blue-700 transition-all duration-300">
Learn More &#8594;
</a>
</div>
</div>
</div>
</div>
</div>

View File

@@ -17,9 +17,6 @@
<div class="mt-4 text-base leading-7 text-gray-300">
<p>OurWorld presents an innovative approach to obtaining global citizenship through strategic investment. <b>SAFE: Safe Investment for Future equity</b> offers a unique pathway for global investors to obtain residency and, eventually, citizenship in multiple countries.</p>
</div>
<div class="mt-8">
<a href="#" class="inline-flex rounded-md bg-white/10 px-3.5 py-2.5 text-sm font-semibold text-white shadow-sm hover:bg-white/20 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-white">Learn More</a>
</div>
</div>
</div>
</div>

View File

@@ -8,7 +8,6 @@
<p class="mt-6 text-lg leading-8 text-gray-600">Take the first step towards becoming a truly global citizen with SAFE. Our team is ready to guide you through every aspect of the Passport By Investment program, ensuring a clear and straightforward path to personal sovereignty.</p>
<div class="mt-10 flex items-center justify-center gap-x-6">
<a href="/contact" class="rounded-md bg-indigo-600 px-3.5 py-2.5 text-sm font-semibold text-white shadow-sm hover:bg-indigo-500 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-indigo-600">Contact Us</a>
<a href="#" class="text-sm font-semibold leading-6 text-gray-900">Learn more <span aria-hidden="true"></span></a>
</div>
</div>
</div>

View File

@@ -10,9 +10,6 @@
<p class="mt-2 text-3xl font-bold tracking-tight text-gray-900 sm:text-4xl">Introducing SAFE</p>
<p class="mt-2 text-xl leading-8 text-gray-900">A Unique Approach to Global Citizenship</p>
<p class="mt-6 text-lg leading-8 text-gray-600">OurWorld presents SAFE: an innovative approach to obtaining global citizenship through strategic investment. The Venture Creator Passport Program offers a unique pathway for global investors to obtain residency and, eventually, citizenship in multiple countries.</p>
<div class="mt-8 flex items-center gap-x-6">
<a href="/invest" class="rounded-md main-button px-3.5 py-2.5 text-sm font-semibold text-white shadow-sm hover:bg-indigo-500 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-indigo-600">Learn More</a>
</div>
</div>
</div>
</div>

View File

@@ -5,22 +5,13 @@
<div class="relative sm:py-24 lg:py-12 lg:px-8 px-4">
<div class="max-w-xl mx-auto">
<h2 class="text-base font-semibold leading-7 text-blue-600">CONTACT</h2>
<p class="mt-2 text-3xl font-bold tracking-tight text-black sm:text-4xl">🚀 Get in Touch</p>
<p class="mt-2 text-3xl font-bold tracking-tight text-black sm:text-4xl">Get in Touch</p>
<div class="mt-4 font-light text-lg leading-7 tracking-tight text-gray-600">
<p class="text-base font-light lg:text-xl text-gray-600 mb-10 mt-6">At Zanzibar Digital Free Zone (ZDFZ), we are eager to hear from you! Whether you have questions about our innovative platform and programs, need assistance with onboarding, or are interested in exploring collaboration opportunities, we are here to help.
<p class="text-base font-light lg:text-xl text-gray-600 mb-10 mt-6">The Zanzibar Digital Free Zone (ZDFZ) platform is coming alive. In the meantime, we invite you to get in touch with any comments, questions, or collaboration opportunities. We are here to help!
</p>
</div>
<div class="mt-10 flex lg:gap-x-6 gap-x-3">
<dl class=" space-y-4 text-base leading-7 text-gray-600">
<div class="flex gap-x-4">
<dt class="flex-none">
<span class="sr-only">Address</span>
<svg class="h-7 w-6 text-gray-600" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" aria-hidden="true">
<path stroke-linecap="round" stroke-linejoin="round" d="M2.25 21h19.5m-18-18v18m10.5-18v18m6-13.5V21M6.75 6.75h.75m-.75 3h.75m-.75 3h.75m3-6h.75m-.75 3h.75m-.75 3h.75M6.75 21v-3.375c0-.621.504-1.125 1.125-1.125h2.25c.621 0 1.125.504 1.125 1.125V21M3 3h12m-.75 4.5H21m-3.75 3.75h.008v.008h-.008v-.008zm0 3h.008v.008h-.008v-.008zm0 3h.008v.008h-.008v-.008z" />
</svg>
</dt>
<dd>Nexus Global Financial Services Limited,<br>Ebene, Mauritius.</dd>
</div>
<div class="flex gap-x-4">
<dt class="flex-none">
<span class="sr-only">Email</span>

View File

@@ -48,6 +48,11 @@ Parameters:
{% set row_id = '' %}
{% if columns | length > 0 %}
{% set first_column = columns[0] | striptags | trim %}
{% set first_line = first_column | split(pat='\n') | first %}
{% set row_id = first_line | lower | slugify %}
{% endif %}
{% if id %}
{% set row_id = id %}
@@ -228,7 +233,7 @@ Parameters:
{% set no_margins = " -mx-8 md:-mx-12 lg:-mx-16 xl:-mx-20" %}
<div id="{{anchor_link}}" class="{{'relative justify-center flex overflow-hidden ' ~ div_class }}" style="{{styles}}">
<div id="{{anchor_link}}" class="{{'relative justify-center flex overflow-hidden animate-fade-in ' ~ div_class }}" style="{{styles}}">
<div id="{{row_id}}" class="{{row_class}}" style="min-width: -webkit-fill-available; min-width: -moz-available">
{% for column in columns%}