PageSourceSearch

https://www.oursky.com/contact/

html oursky.com collected 2026-09-24 18:07:23 UTC 38,115 bytes, 81 lines download raw bytes

1<!DOCTYPE html><html lang="en"> <head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1"><meta name="astro-view-transitions-enabled" content="true"><meta name="astro-view-transitions-fallback" content="animate">
1<script type="module" src="/_astro/ClientRouter.astro_astro_type_script_index_0_lang.j56hQv-j.js"></script>
1<!-- Primary SEO --><title>Oursky - Contact us</title><meta name="description" content="Work with us - Let's build it!"><link rel="canonical" href="https://www.oursky.com/contact/"><!-- Open Graph --><meta property="og:type" content="website"><meta property="og:title" content="Oursky - Contact us"><meta property="og:description" content="Work with us - Let's build it!"><meta property="og:url" content="https://www.oursky.com/contact/"><meta property="og:image" content="https://www.oursky.com/images/og-default.png"><meta property="og:site_name" content="Oursky"><!-- Twitter Card --><meta name="twitter:card" content="summary_large_image"><meta name="twitter:title" content="Oursky - Contact us"><meta name="twitter:description" content="Work with us - Let's build it!"><meta name="twitter:image" content="https://www.oursky.com/images/og-default.png"><!-- Favicon --><link rel="icon" type="image/png" href="/favicon.png"><link rel="apple-touch-icon" href="/apple-touch-icon.png"><!-- Borna Webfont is self-hosted via @font-face in global.css --><!-- Preload the most-used weights for faster LCP --><link rel="preload" href="/fonts/borna-regular.woff2" as="font" type="font/woff2" crossorigin><link rel="preload" href="/fonts/borna-medium.woff2" as="font" type="font/woff2" crossorigin><!-- Structured data -->
1<script type="application/ld+json">{"@context":"https://schema.org","@type":"Organization","@id":"https://www.oursky.com/#organization","name":"Oursky","url":"https://www.oursky.com/","logo":"https://www.oursky.com/images/og-default.png","sameAs":["https://www.linkedin.com/company/oursky-limited/","https://www.facebook.com/oursky.hk","https://www.instagram.com/oursky.hk/","https://twitter.com/oursky","https://github.com/oursky"]}</script>
1<script type="application/ld+json">{"@context":"https://schema.org","@type":"WebSite","@id":"https://www.oursky.com/#website","url":"https://www.oursky.com/","name":"Oursky","publisher":{"@id":"https://www.oursky.com/#organization"},"inLanguage":"en"}</script>
1<script async src="https://plausible.io/js/pa-wM4pfvIYRQVuIgaXue7ry.js"></script>
1<script>
2          window.plausible=window.plausible||function(){(plausible.q=plausible.q||[]).push(arguments)},plausible.init=plausible.init||function(i){plausible.o=i||{}};
3          plausible.init()
4        </script>
4<link rel="stylesheet" href="/_astro/BaseLayout.9rkPZlJE.css">
5<style>.sib-hide-loader-icon[data-astro-cid-y7zmneqf],.sib-form-message-panel[data-astro-cid-y7zmneqf]{display:none}.sib-form-message-panel[data-astro-cid-y7zmneqf].sib-form-message-panel--active{display:block}
6</style></head> <body> <div id="site-header" class="header-wrapper" data-astro-cid-qlfjksao> <header class="header relative flex w-full max-w-full items-center justify-between gap-1 max-md:justify-center max-md:gap-2 sm:gap-2 md:max-w-none mx-auto pointer-events-auto" data-astro-cid-qlfjksao> <!-- Logo pill (tablet+ — Webflow hides separate header icon below md) --> <!-- data-astro-reload: home page loads Brevo's main.js (is:inline) to wire
7         the newsletter form; ClientRouter swaps would skip that bootstrap. --> <a href="/" data-astro-reload class="pill logo-pill relative z-[2] mr-2 hidden flex-none items-center justify-center no-underline sm:mr-4 md:flex lg:mr-5" aria-label="Oursky home" data-astro-cid-qlfjksao> <img src="/images/oursky-logo.svg" alt="Oursky" width="80" height="36" class="block h-6 w-auto max-w-full object-contain sm:h-7 lg:h-8" onerror="this.style.display='none';this.nextElementSibling.style.display='block'" data-astro-cid-qlfjksao> <span class="text-lg font-bold text-black" style="display:none" data-astro-cid-qlfjksao>Oursky</span> </a> <!-- Nav: centered in remaining space <md; absolutely centered md+ (tablet + desktop). Retracts on scroll down at md+. --> <div class="header__nav-center header__nav-center--desktop relative z-[1] flex min-w-0 flex-1 justify-center px-0.5 max-md:max-w-[min(100%,26rem)] max-md:flex-none md:pointer-events-none md:absolute md:inset-x-0 md:top-1/2 md:z-[1] md:flex md:w-full md:max-w-none md:flex-none md:-translate-y-1/2 md:justify-center md:px-0" data-astro-cid-qlfjksao> <nav class="pill nav-pill flex max-w-full flex-none gap-0.5 overflow-x-auto px-1.5 py-0.5 max-md:gap-1 sm:gap-1 sm:px-1.5 sm:py-1 md:pointer-events-auto lg:gap-1 lg:px-3 lg:py-2" aria-label="Main navigation" data-astro-cid-qlfjksao> <!-- Phone: logo inside nav bar replaces Home (ref: Webflow .navbar__icon) --> <a href="/" data-astro-reload class="nav-pill__brand md:hidden mr-0.5 flex shrink-0 items-center justify-center rounded-full no-underline transition-transform duration-300" aria-label="Oursky home" data-astro-cid-qlfjksao> <img src="/images/oursky-logo.svg" alt="" width="50" height="11" class="nav-pill__brand-img pointer-events-none block h-[0.68rem] w-auto max-w-[3.4rem] object-contain" aria-hidden="true" data-astro-cid-qlfjksao> </a> <a href="/" data-astro-reload class="nav-link flex h-full shrink-0 items-center rounded-full px-1.5 py-0.5 text-xs font-medium leading-tight text-black no-underline whitespace-nowrap transition-transform duration-300 sm:px-2 sm:text-sm sm:leading-snug lg:px-3 lg:text-lg lg:leading-9 nav-link--hide-below-md" data-astro-cid-qlfjksao> Home </a><a href="/about/" class="nav-link flex h-full shrink-0 items-center rounded-full px-1.5 py-0.5 text-xs font-medium leading-tight text-black no-underline whitespace-nowrap transition-transform duration-300 sm:px-2 sm:text-sm sm:leading-snug lg:px-3 lg:text-lg lg:leading-9" data-astro-cid-qlfjksao> About </a><a href="/services/" class="nav-link flex h-full shrink-0 items-center rounded-full px-1.5 py-0.5 text-xs font-medium leading-tight text-black no-underline whitespace-nowrap transition-transform duration-300 sm:px-2 sm:text-sm sm:leading-snug lg:px-3 lg:text-lg lg:leading-9" data-astro-cid-qlfjksao> Services </a><a href="/blog/" class="nav-link flex h-full shrink-0 items-center rounded-full px-1.5 py-0.5 text-xs font-medium leading-tight text-black no-underline whitespace-nowrap transition-transform duration-300 sm:px-2 sm:text-sm sm:leading-snug lg:px-3 lg:text-lg lg:leading-9 nav-link--hide-below-md" data-astro-cid-qlfjksao> Blog </a><a href="/works/" class="nav-link flex h-full shrink-0 items-center rounded-full px-1.5 py-0.5 text-xs font-medium leading-tight text-black no-underline whitespace-nowrap transition-transform duration-300 sm:px-2 sm:text-sm sm:leading-snug lg:px-3 lg:text-lg lg:leading-9" data-astro-cid-qlfjksao> Works </a> </nav> </div> <!-- Contact: icon-only <lg; label lg+ --> <a href="/contact/" class="pill contact-pill relative z-[2] flex flex-none items-center justify-center rounded-full no-underline text-black lg:min-h-[4.25rem] lg:px-[3.125rem] lg:py-4 lg:text-lg lg:font-semibold" aria-label="Contact" data-astro-cid-qlfjksao> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 16" fill="none" class="h-3.5 w-4 shrink-0 sm:h-4 sm:w-5 lg:hidden" aria-hidden="true" data-astro-cid-qlfjksao> <path d="M2.5 2.64011C2.14844 2.64011 1.875 2.95261 1.875 3.26511V4.16354L8.59375 9.67136C9.41406 10.3354 10.5469 10.3354 11.3672 9.67136L18.125 4.16354V3.26511C18.125 2.95261 17.8125 2.64011 17.5 2.64011H2.5ZM1.875 6.58542V13.2651C1.875 13.6167 2.14844 13.8901 2.5 13.8901H17.5C17.8125 13.8901 18.125 13.6167 18.125 13.2651V6.58542L12.5781 11.
71167C11.0547 12.3667 8.90625 12.3667 7.42188 11.1167L1.875 6.58542ZM0 3.26511C0 1.89792 1.09375 0.765106 2.5 0.765106H17.5C18.8672 0.765106 20 1.89792 20 3.26511V13.2651C20 14.6714 18.8672 15.7651 17.5 15.7651H2.5C1.09375 15.7651 0 14.6714 0 13.2651V3.26511Z" fill="currentColor" data-astro-cid-qlfjksao></path> </svg> <span class="hidden lg:inline" data-astro-cid-qlfjksao>Contact</span> </a> </header> </div> 
7<script type="module">(()=>{const s=document.getElementById("site-header");if(!(s instanceof HTMLElement))return;const r=s.querySelector(".header__nav-center--desktop");if(!(r instanceof HTMLElement))return;const l=s,c=r,o=window.matchMedia("(min-width: 768px)"),a=window.matchMedia("(prefers-reduced-motion: reduce)");let n=window.scrollY;const h=10,f=6,u=40;function t(e){l.classList.toggle("site-header--nav-retracted",e),e?c.setAttribute("aria-hidden","true"):c.removeAttribute("aria-hidden")}function i(){if(!o.matches||a.matches){t(!1),n=window.scrollY;return}const e=window.scrollY;e<=u?t(!1):e>n+h?t(!0):e<n-f&&t(!1),n=e}function d(){(!o.matches||a.matches)&&t(!1)}window.addEventListener("scroll",i,{passive:!0}),o.addEventListener("change",d),a.addEventListener("change",d),i()})();</script>
7 <main class="min-w-0 max-w-full">  <div class="contact-page"> <div class="flex flex-col gap-[3.94rem] w-full max-w-[var(--home-rail-max)] mx-auto pt-page-top px-[var(--home-rail-gutter)] pb-16 box-border max-lg:pt-page-top-tablet max-lg:gap-12 max-md:pb-12"> <section class="scroll-reveal-group w-full" aria-label="Contact us"> <div class="flex flex-col gap-[3.94rem] px-[7.5rem] max-md:px-0"> <h1 class="scroll-reveal-item text-3xl font-black text-center text-black leading-section m-0" style="--sr-delay: 0ms"> Work with us </h1> <p class="scroll-reveal-item text-2xl font-normal text-center text-text leading-10 m-0" style="--sr-delay: 60ms"> Let&#39;s build it! </p> <div class="scroll-reveal-item" style="--sr-delay: 120ms"> <div class="contact-form-wrapper"> <form action='/' class='contact-form flex flex-col gap-3.5' method='post' name='oursky-contact'>  <input type="hidden" name="form-name" value="oursky-contact">  <p class="hidden" aria-hidden="true"> <label>
8Don't fill this out if you're human:
9<input name="bot-field" tabindex="-1" autocomplete="off"> </label> </p>  <div class="grid grid-cols-2 max-[599px]:grid-cols-1 gap-3"> <div class="flex flex-col"> <label for="contact-name" class="sr-only">Name</label> <input id="contact-name" type="text" name="name" class="w-full px-4 py-[1.1rem] rounded-md bg-black/5 text-base text-text outline-none transition-colors focus:bg-black/10 box-border placeholder:text-text-muted" placeholder="Name" autocomplete="name"> </div> <div class="flex flex-col"> <label for="contact-company" class="sr-only">Company</label> <input id="contact-company" type="text" name="company" class="w-full px-4 py-[1.1rem] rounded-md bg-black/5 text-base text-text outline-none transition-colors focus:bg-black/10 box-border placeholder:text-text-muted" placeholder="Company" autocomplete="organization"> </div> </div> <div class="flex flex-col"> <label for="contact-email" class="sr-only">Email</label> <input id="contact-email" type="email" name="email" class="w-full px-4 py-[1.1rem] rounded-md bg-black/5 text-base text-text outline-none transition-colors focus:bg-black/10 box-border placeholder:text-text-muted" placeholder="Email" autocomplete="email" required> </div> <div class="flex flex-col"> <label for="contact-message" class="sr-only">Message</label> <textarea id="contact-message" name="message" class="w-full px-4 py-[1.1rem] rounded-md bg-black/5 text-base text-text outline-none transition-colors focus:bg-black/10 box-border resize-y min-h-[11rem] placeholder:text-text-muted" rows="4" placeholder="Your Message"></textarea> </div> <button type="submit" class="inline-flex items-center justify-center whitespace-nowrap no-underline cursor-pointer rounded-full transition-all duration-300 h-[4.25rem] px-[3.125rem] text-lg font-black bg-primary-dark text-black hover:scale-105 hover:shadow-[0_4px_16px_rgba(226,159,52,0.4)] self-start">Let&#39;s Talk</button> </form> <div class="contact-form-status mt-4 text-base hidden" role="status" aria-live="polite"></div> <div class="contact-form-success hidden flex-col items-center gap-6 py-10 text-center" role="status" aria-live="polite"> <div class="flex items-center justify-center w-16 h-16 rounded-full bg-primary-dark/20"> <svg width="32" height="32" viewBox="0 0 32 32" fill="none" aria-hidden="true"> <path d="M6 16.5L12.5 23L26 9" stroke="#c8830a" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"></path> </svg> </div> <h3 class="text-2xl font-black text-black m-0">Message received!</h3> <p class="text-base text-text m-0 max-w-md leading-relaxed">
10Thanks for reaching out — we aim to get back to you within 2 business days.
11</p> </div> </div> 
11<script type="module">const i='form.contact-form[name="oursky-contact"]';function r(){document.querySelectorAll(i).forEach(e=>{e.dataset.listenerAttached||(e.dataset.listenerAttached="true",e.addEventListener("submit",async c=>{c.preventDefault();const a=e.closest(".contact-form-wrapper"),t=a?.querySelector(".contact-form-status")??null,n=a?.querySelector(".contact-form-success")??null,s=e.querySelector('button[type="submit"]');s&&(s.disabled=!0),t&&(t.hidden=!1,t.classList.remove("hidden","text-red-600"),t.classList.add("text-text-muted"),t.textContent="Sending…");try{const d=new URLSearchParams(new FormData(e)),o=await fetch("/",{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:d.toString()});if(!o.ok)throw new Error(`HTTP ${o.status}`);e.hidden=!0,t&&(t.hidden=!0),n&&(n.classList.remove("hidden"),n.classList.add("flex"))}catch{t&&(t.classList.remove("text-text-muted"),t.classList.add("text-red-600"),t.textContent="Something went wrong. Please try again, or email [email protected]."),s&&(s.disabled=!1)}}))})}r();document.addEventListener("astro:page-load",r);</script>
11 </div> <p class="scroll-reveal-item text-lg font-normal text-center text-black leading-9 m-0" style="--sr-delay: 180ms">
12or contact us via <a href="mailto:[email protected]" class="text-primary hover:underline">[email protected]</a>.<br>
13❤️ We aim to get back to you in about 2 business days.
14</p> </div> </section> <hr class="bg-accent border-none w-full h-px m-0" aria-hidden="true"> <section class="w-full scroll-reveal-group" aria-label="Find us"> <div class="flex flex-row gap-5 max-md:flex-col max-md:gap-12"> <div class="basis-1/3 max-w-[27.313rem] shrink-0"> <h2 class="scroll-reveal-item text-2xl font-black leading-9 m-0" style="--sr-delay: 0ms">Find us</h2> </div> <div class="flex-1 flex flex-col gap-[3.94rem] max-md:gap-12"> <!-- Oursky offices --> <div class="flex flex-col scroll-reveal-item" style="--sr-delay: 60ms"> <h2 class="text-2xl font-black leading-9 m-0">Oursky</h2> <div class="flex flex-row gap-5 mt-[3.94rem] max-md:flex-col max-md:gap-12 max-md:mt-12"> <div class="flex-1"> <h3 class="text-2xl font-medium leading-9 mt-0 mb-0">Hong Kong</h3> <p class="text-lg font-normal leading-10 text-black mt-5 mb-0"> <a href="https://goo.gl/maps/mV8zNAqgUNt" target="_blank" rel="noopener noreferrer" class="text-newsletter-blue underline">
15Rm B, 10/F, Great Wall Factory Bldg, 11 Cheung Shun St, Cheung Sha Wan, Hong Kong (Lai Chi Kok MTR Exit D2)
16</a><br>
17+852 2155 9299 (Office)<br>
18+852 3020 0215 (Fax)
19</p> </div> <div class="flex-1"> <h3 class="text-2xl font-medium leading-9 mt-0 mb-0">Taipei</h3> <p class="text-lg font-normal leading-10 text-black mt-5 mb-0"> <a href="https://maps.app.goo.gl/u4wCsGMiP7RrbqFR9" target="_blank" rel="noopener noreferrer" class="text-newsletter-blue underline">
206F.-2, No. 666, Sec. 4, Bade Rd., Songshan Dist., Taipei City 105057, Taiwan
21</a><br><br>
22+886 2 2712 0059 (Office)
23</p> </div> </div> </div> <!-- SkyMakers offices --> <div class="flex flex-col scroll-reveal-item" style="--sr-delay: 120ms"> <h3 class="text-2xl font-black leading-9 m-0">SkyMakers (Strategic Partner)</h3> <div class="flex flex-row gap-5 mt-[3.94rem] max-md:flex-col max-md:gap-12 max-md:mt-12"> <div class="flex-1"> <h3 class="text-2xl font-medium leading-9 mt-0 mb-0">Greater Manchester</h3> <p class="text-lg font-normal leading-10 text-black mt-5 mb-0">
24SkyMakers Digital Limited,<br>
25Bank Chambers, St. Petersgate, Stockport, SK1 1AR, United Kingdom<br><br>
26+44 16 1818 8339 (Office)
27</p> </div> <div class="flex-1"> <h3 class="text-2xl font-medium leading-9 mt-0 mb-0">Tokyo</h3> <p class="text-lg font-normal leading-10 text-black mt-5 mb-0">
28東京都渋谷区神宮前六丁目23番4号桑野ビル2階<br>
29SkyMakers LLC スカイクリエーター合同会社
30</p> </div> </div> </div> </div> </div> </section> <hr class="bg-accent border-none w-full h-px m-0 max-md:hidden" aria-hidden="true"> <div class="scroll-reveal-group grid grid-cols-2 max-md:grid-cols-1 gap-5 pt-10 max-md:pt-6 w-full" data-astro-cid-y7zmneqf> <!-- Left card: Newsletter --> <!-- id="sib-form-container" required — Brevo's main.js looks up #success-message and #error-message from this root --> <div id="sib-form-container" class="rounded-lg p-10 max-md:px-5 max-md:pt-8 max-md:pb-10 flex flex-col gap-10 max-md:gap-6 bg-newsletter-blue" data-astro-cid-y7zmneqf> <p class="scroll-reveal-item text-2xl font-medium leading-footer text-white m-0" style="--sr-delay: 0ms" data-astro-cid-y7zmneqf>Get updates and tips from the team</p>  <div id="sib-container" data-astro-cid-y7zmneqf> <form id="sib-form" class="scroll-reveal-item flex gap-3 flex-wrap" style="--sr-delay: 55ms" action="https://4a0d91fc.sibforms.com/serve/MUIFAIowdRP4zK82ouLpuOrhMjyuJtzS-Bh8ngJDLMBUXA-Tb0k_aiT4-ilcGSVee--J4ws5ZVLwMMvkHgvSRRhsVz25wvZkt0IHsWQYFCV6E5JCA7ahj-AmGsCfv_FkbYe1Bi2xY0eVcVwWLK9_nOZuJaK1kYWHZtok--IVfi1YAY5VK1yHasCKS8o1fNtlrm9KuE4tMZjwGE_03g==" method="post" data-type="subscription" data-astro-cid-y7zmneqf> <label for="EMAIL" class="sr-only" data-astro-cid-y7zmneqf>Your Email</label> <input id="EMAIL" type="email" name="EMAIL" class="flex-1 min-w-32 lg:min-w-40 px-5 py-3 max-lg:py-2.5 rounded-full bg-white/20 text-white text-sm lg:text-base border-0 outline-none placeholder:text-white/65 focus:bg-white/30 transition-colors" placeholder="Your Email" autocomplete="email" required data-astro-cid-y7zmneqf>  <input type="text" name="email_address_check" value="" tabindex="-1" autocomplete="off" aria-hidden="true" class="absolute -left-[5000px]" data-astro-cid-y7zmneqf> <input type="hidden" name="locale" value="en" data-astro-cid-y7zmneqf>  <button type="submit" class="inline-flex items-center justify-center gap-2 whitespace-nowrap cursor-pointer rounded-full transition-all duration-300 h-[4.25rem] px-[3.125rem] text-lg font-medium border-[1.5px] border-white/85 text-white bg-transparent hover:bg-white/15 flex-none max-lg:!h-11 max-lg:!px-6 max-lg:!text-sm disabled:opacity-60 disabled:cursor-not-allowed" data-astro-cid-y7zmneqf>
30 <svg class="sib-hide-loader-icon w-4 h-4 animate-spin" viewBox="0 0 512 512" fill="currentColor" aria-hidden="true" data-astro-cid-y7zmneqf> <path d="M460.116 373.846l-20.823-12.022c-5.541-3.199-7.54-10.159-4.663-15.874 30.137-59.886 28.343-131.652-5.386-189.946-33.641-58.394-94.896-95.833-161.827-99.676C261.028 55.961 256 50.751 256 44.352V20.309c0-6.904 5.808-12.337 12.703-11.982 83.556 4.306 160.163 50.864 202.11 123.677 42.063 72.696 44.079 162.316 6.031 236.832-3.14 6.148-10.75 8.461-16.728 5.01z" data-astro-cid-y7zmneqf></path> </svg>
31Subscribe
32</button> </form> </div> <div id="error-message" class="sib-form-message-panel text-sm text-amber-200 m-0" role="status" aria-live="polite" data-astro-cid-y7zmneqf> <span class="sib-form-message-panel__inner-text" data-astro-cid-y7zmneqf></span> </div> <div id="success-message" class="sib-form-message-panel text-sm text-white/90 m-0" role="status" aria-live="polite" data-astro-cid-y7zmneqf> <span class="sib-form-message-panel__inner-text" data-astro-cid-y7zmneqf></span> </div> </div> <!-- Right card: Follow Us --> <div class="rounded-lg p-10 max-md:px-5 max-md:pt-8 max-md:pb-10 flex flex-col gap-10 max-md:gap-6 bg-social-
32dark" data-astro-cid-y7zmneqf> <p class="scroll-reveal-item text-2xl font-medium leading-footer text-white m-0" style="--sr-delay: 110ms" data-astro-cid-y7zmneqf>Follow Us</p> <div class="scroll-reveal-item flex gap-5 items-center flex-wrap" style="--sr-delay: 175ms" aria-label="Social media links" data-astro-cid-y7zmneqf> <a href="https://www.facebook.com/oursky.hk" class="flex items-center justify-center w-7 h-7 text-white no-underline transition-all hover:opacity-75 hover:scale-110 [&_svg]:w-full [&_svg]:h-full [&_svg]:fill-current" target="_blank" rel="noopener noreferrer" aria-label="Facebook" data-astro-cid-y7zmneqf> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" aria-hidden="true" data-astro-cid-y7zmneqf><path d="M24 12.073c0-6.627-5.373-12-12-12s-12 5.373-12 12c0 5.99 4.388 10.954 10.125 11.854v-8.385H7.078v-3.47h3.047V9.43c0-3.007 1.792-4.669 4.533-4.669 1.312 0 2.686.235 2.686.235v2.953H15.83c-1.491 0-1.956.925-1.956 1.874v2.25h3.328l-.532 3.47h-2.796v8.385C19.612 23.027 24 18.062 24 12.073z" data-astro-cid-y7zmneqf></path></svg>       </a><a href="https://www.linkedin.com/company/oursky-limited/" class="flex items-center justify-center w-7 h-7 text-white no-underline transition-all hover:opacity-75 hover:scale-110 [&_svg]:w-full [&_svg]:h-full [&_svg]:fill-current" target="_blank" rel="noopener noreferrer" aria-label="LinkedIn" data-astro-cid-y7zmneqf>  <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" aria-hidden="true" data-astro-cid-y7zmneqf><path d="M20.447 20.452h-3.554v-5.569c0-1.328-.027-3.037-1.852-3.037-1.853 0-2.136 1.445-2.136 2.939v5.667H9.351V9h3.414v1.561h.046c.477-.9 1.637-1.85 3.37-1.85 3.601 0 4.267 2.37 4.267 5.455v6.286zM5.337 7.433a2.062 2.062 0 01-2.063-2.065 2.064 2.064 0 112.063 2.065zm1.782 13.019H3.555V9h3.564v11.452zM22.225 0H1.771C.792 0 0 .774 0 1.729v20.542C0 23.227.792 24 1.771 24h20.451C23.2 24 24 23.227 24 22.271V1.729C24 .774 23.2 0 22.222 0h.003z" data-astro-cid-y7zmneqf></path></svg>      </a><a href="https://www.instagram.com/oursky.hk/" class="flex items-center justify-center w-7 h-7 text-white no-underline transition-all hover:opacity-75 hover:scale-110 [&_svg]:w-full [&_svg]:h-full [&_svg]:fill-current" target="_blank" rel="noopener noreferrer" aria-label="Instagram" data-astro-cid-y7zmneqf>   <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" aria-hidden="true" data-astro-cid-y7zmneqf><path d="M12 2.163c3.204 0 3.584.012 4.85.07 3.252.148 4.771 1.691 4.919 4.919.058 1.265.069 1.645.069 4.849 0 3.205-.012 3.584-.069 4.849-.149 3.225-1.664 4.771-4.919 4.919-1.266.058-1.644.07-4.85.07-3.204 0-3.584-.012-4.849-.07-3.26-.149-4.771-1.699-4.919-4.92-.058-1.265-.07-1.644-.07-4.849 0-3.204.013-3.583.07-4.849.149-3.227 1.664-4.771 4.919-4.919 1.266-.057 1.645-.069 4.849-.069zm0-2.163c-3.259 0-3.667.014-4.947.072-4.358.2-6.78 2.618-6.98 6.98-.059 1.281-.073 1.689-.073 4.948 0 3.259.014 3.668.072 4.948.2 4.358 2.618 6.78 6.98 6.98 1.281.058 1.689.072 4.948.072 3.259 0 3.668-.014 4.948-.072 4.354-.2 6.782-2.618 6.979-6.98.059-1.28.073-1.689.073-4.948 0-3.259-.014-3.667-.072-4.947-.196-4.354-2.617-6.78-6.979-6.98-1.281-.059-1.69-.073-4.949-.073zm0 5.838a6.162 6.162 0 100 12.324 6.162 6.162 0 000-12.324zM12 16a4 4 0 110-8 4 4 0 010 8zm6.406-11.845a1.44 1.44 0 100 2.881 1.44 1.44 0 000-2.881z" data-astro-cid-y7zmneqf></path></svg>     </a><a href="https://x.com/oursky" class="flex items-center justify-center w-7 h-7 text-white no-underline transition-all hover:opacity-75 hover:scale-110 [&_svg]:w-full [&_svg]:h-full [&_svg]:fill-current" target="_blank" rel="noopener noreferrer" aria-label="X (Twitter)" data-astro-cid-y7zmneqf>    <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" aria-hidden="true" data-astro-cid-y7zmneqf><path d="M18.244 2.25h3.308l-7.227 8.26 8.502 11.24H16.17l-4.714-6.231-5.401 6.231H2.744l7.73-8.835L1.254 2.25H8.08l4.253 5.622zm-1.161 17.52h1.833L7.084 4.126H5.117z" data-astro-cid-y7zmneqf></path></svg>    </a><a href="https://mastodon.social/@[email protected]" class="flex items-center justify-center w-7 h-7 text-white no-underline transition-all hover:opacity-75 hover:scale-110 [&_svg]:w-full [&_svg]:h-full [&_svg]:fill-current" target="_blank" rel="noopener noreferrer" aria-label="Mastodon" data-astro-cid-y7zmneqf>     <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" aria-hidden="true" data-astro-cid-y7zmneqf><path d="M23.268 5.313c-.35-2.578-2.617-4.61-5.304-5.004C17.51.242 15.792 0 11.813 0h-.03c-3.98 0-4.835.242-5.288.309C3.882.692 1.496 2.518.917 5.127.64 6.412.61 7.837.661 9.143c.074 1.874.088 3.745.26 5.611.118 1.24.325 2.47.62 3.68.55 2.237 2.777 4.098 4.96 4.857 2.336.792 4.849.923 7.256.38.265-.061.527-.132.786-.213.585-.184 1.27-.39 1.774-.753a.057.057 0 00.023-.043v-1.809a.052.052 0 00-.02-.041.053.053 0 00-.046-.01 20.282 20.282 0 01-4.709.545c-2.73 0-3.463-1.284-3.674-1.818a5.593 5.593 0 01-.319-1.433.053.053 0 01.066-.054c1.517.363 3.072.546 4.632.546.376 0 .75 0 1.125-.01 1.57-.044 3.224-.124 4.768-.422.038-.008.077-.015.11-.024 2.435-.464 4.753-1.92 4.989-5.604.008-.145.03-1.52.03-1.67.002-.512.167-3.63-.024-5.545zm-3.748 9.195h-2.561V8.29c0-1.309-.55-1.976-1.67-1.976-1.23 0-1.846.79-1.846 2.35v3.403h-2.546V8.663c0-1.56-.617-2.35-1.848-2.35-1.112 0-1.668.668-1.67 1.977v6.218H4.822V8.102c0-1.31.337-2.35 1.011-3.12.696-.77 1.608-1.164 2.74-1.164 1.311 0 2.302.5 2.962 1.498l.638 1.06.638-1.06c.66-.999 1.65-1.498 2.96-1.498 1.13 0 2.043.395 2.74 1.164.675.77 1.012 1.81 1.012 3.12z" data-astro-cid-y7zmneqf></path></svg>   </a><a href="https://github.com/oursky" class="flex items-center justify-center w-7 h-7 text-white no-underline transition-all hover:opacity-75 hover:scale-110 [&_svg]:w-full [&_svg]:h-full [&_svg]:fill-current" target="_blank" rel="noopener noreferrer" aria-label="GitHub" data-astro-cid-y7zmneqf>      <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" aria-hidden="true" data-astro-cid-y7zmneqf><path d="M12 .297c-6.63 0-12 5.373-12 12 0 5.303 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729 1.205.084 1.838 1.236 1.838 1.236 1.07 1.835 2.809 1.305 3.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.466-1.332-5.466-5.93 0-1.31.465-2.38 1.235-3.22-.135-.303-.54-1.523.105-3.176 0 0 1.005-.322 3.3 1.23.96-.267 1.98-.399 3-.405 1.02.006 2.04.138 3 .405 2.28-1.552 3.285-1.23 3.285-1.23.645 1.653.24 2.873.12 3.176.765.84 1.23 1.91 1.23 3.22 0 4.61-2.805 5.625-5.475 5.92.42.36.81 1.096.81 2.22 0 1.606-.015 2.896-.015 3.286 0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12" data-astro-cid-y7zmneqf></path></svg>  </a><a href="/blog/" class="flex items-center justify-center w-7 h-7 text-white no-underline transition-all hover:opacity-75 hover:scale-110 [&_svg]:w-full [&_svg]:h-full [&_svg]:fill-current" aria-label="Oursky Blog" data-astro-cid-y7zmneqf>       <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 41 36" aria-hidden="true" data-astro-cid-y7zmneqf><path d="M13.7734 4.25C12.6797 4.25 11.8984 5.10938 11.8984 6.125V29.875C11.8984 30.5781 11.7422 31.2031 11.5078 31.75H35.0234C36.0391 31.75 36.8984 30.9688 36.8984 29.875V6.125C36.8984 5.10938 36.0391 4.25 35.0234 4.25H13.7734ZM6.27344 35.5C3.14844 35.5 0.648438 33 0.648438 29.875V6.75C0.648438 5.73438 1.42969 4.875 2.52344 4.875C3.53906 4.875 4.39844 5.73438 4.39844 6.75V29.875C4.39844 30.9688 5.17969 31.75 6.27344 31.75C7.28906 31.75 8.14844 30.9688 8.14844 29.875V6.125C8.14844 3.07812 10.6484 0.5 13.7734 0.5H35.0234C38.0703 0.5 40.6484 3.07812 40.6484 6.125V29.875C40.6484 33 38.0703 35.5 35.0234 35.5H6.27344ZM14.3984 8.625C14.3984 7.60938 15.1797 6.75 16.2734 6.75H23.7734C24.7891 6.75 25.6484 7.60938 25.6484 8.625V14.875C25.6484 15.9688 24.7891 16.75 23.7734 16.75H16.2734C15.1797 16.75 14.3984 15.9688 14.3984 14.875V8.625ZM30.0234 6.75H32.5234C33.5391 6.75 34.3984 7.60938 34.3984 8.625C34.3984 9.71875 33.5391 10.5 32.5234 10.5H30.0234C28.9297 10.5 28.1484 9.71875 28.1484 8.625C28.1484 7.60938 28.9297 6.75 30.0234 6.75ZM30.0234 13H32.5234C33.5391 13 34.3984 13.8594 34.3984 14.875C34.3984 15.9688 33.5391 16.75 32.5234 16.75H30.0234C28.9297 16.75 28.1484 15.9688 28.1484 14.875C28.1484 13.8594 28.9297 13 30.0234 13ZM16.2734 19.25H32.5234C33.5391 19.25 34.3984 20.1094 34.3984 21.125C34.3984 22.2188 33.5391 23 32.5234 23H16.2734C15.1797 23 14.3984 22.2188 14.3984 21.125C14.3984 20.1094 15.1797 19.25 16.2734 19.25ZM16.2734 25.5H32.5234C33.5391 25.5 34.3984 26.3594 34.3984 27.375C34.3984 28.4688 33.5391 29.25 32.5234 29.25H16.2734C15.1797 29.25 14.3984 28.4688 14.3984 27.375C14.3984 26.3594 15.1797 25.5 16.2734 25.5Z" data-astro-cid-y7zmneqf></path></svg> </a> </div> </div> </div> 
32<script>
33  window.REQUIRED_CODE_ERROR_MESSAGE = 'Please choose a country code';
34  window.LOCALE = 'en';
35  window.EMAIL_INVALID_MESSAGE = window.SMS_INVALID_MESSAGE = "The information provided is invalid. Please review the field format and try again.";
36  window.REQUIRED_ERROR_MESSAGE = "This field cannot be left blank. ";
37  window.GENERIC_INVALID_MESSAGE = "The information provided is invalid. Please review the field format and try again.";
38  window.translation = {
39    common: {
40      selectedList: '{quantity} list selected',
41      selectedLists: '{quantity} lists selected',
42      selectedOption: '{quantity} selected',
43      selectedOptions: '{quantity} selected',
44    }
45  };
46  window.AUTOHIDE = false;
47</script>
47 
47<script defer src="https://sibforms.com/forms/end-form/build/main.js"></script>
47 </div> </div>  </main> <footer class="site-footer w-full bg-bg"> <div class="w-full max-w-[1360px] mx-auto px-10 pb-10 box-border max-md:px-5 max-md:pb-5"> <!-- Dark card: logo + clocks --> <div class="bg-black rounded-lg flex justify-between items-center px-10 py-20 gap-8 mb-8 max-lg:flex-col max-lg:items-start max-lg:px-8 max-lg:py-16 max-md:px-6 max-md:py-12 max-md:mb-6"> <!-- Left: OURSKY logo + "We are hiring!" --> <div class="flex flex-col gap-3 justify-between shrink-0"> <div class="flex items-center gap-2 pr-10"> <a id="footer-logo-link" href="/" data-astro-reload class="inline-flex items-center gap-2 no-underline" aria-label="Oursky home"> <div id="footer-logo-lottie" class="w-20 h-20 shrink-0" aria-hidden="true"></div> <img src="/images/oursky-logo-footer.svg" alt="Oursky" width="141" height="30" class="block h-auto" style="width: 10rem"> </a> </div> <a href="https://jobs.oursky.com" target="_blank" rel="noopener noreferrer" class="inline-flex items-center gap-1 text-primary-dark text-lg font-bold leading-footer no-underline transition-opacity hover:opacity-60">
48We are hiring!
49<span class="font-bold" aria-hidden="true">→</span> </a> </div> <!-- Right: two live clocks --> <div class="flex gap-12 items-start max-lg:gap-8 max-md:flex-col max-md:gap-6"> <!-- HK clock --> <div class="flex gap-8 flex-wrap items-start max-md:gap-5"> <div id="clock-container--hk" class="flex flex-col items-center justify-center"> <div class="flex justify-center items-center w-[6.3762rem] h-[6.3762rem] relative"> <svg class="w-full h-full" width="103" height="103" viewBox="0 0 103 103" fill="none" xmlns="http://www.w3.org/2000/svg"> 
50  <path d="M54.5098 0H48.7708L51.5862 4.40147L54.5098 0Z" fill="#D9D9D9"/>
51  <path d="M54.5098 102.017H48.7708L51.5862 97.6151L54.5098 102.017Z" fill="#D9D9D9"/>
52  <path d="M28.621 5.39904L23.6509 8.26855L28.2899 10.6726L28.621 5.39904Z" fill="#D9D9D9"/>
53  <path d="M79.6293 93.7482L74.6592 96.6177L74.8967 91.3982L79.6293 93.7482Z" fill="#D9D9D9"/>
54  <path d="M102.648 53.8777L102.648 48.1387L98.247 50.9541L102.648 53.8777Z" fill="#D9D9D9"/>
55  <path d="M0.631836 53.8777L0.631836 48.1387L5.03331 50.9541L0.631836 53.8777Z" fill="#D9D9D9"/>
56  <path d="M97.2494 27.9892L94.3799 23.019L91.9758 27.658L97.2494 27.9892Z" fill="#D9D9D9"/>
57  <path d="M8.90052 78.9975L6.03101 74.0273L11.2505 74.2649L8.90052 78.9975Z" fill="#D9D9D9"/>
58  <path d="M79.6293 8.26844L74.6592 5.39893L74.8967 10.6184L79.6293 8.26844Z" fill="#D9D9D9"/>
59  <path d="M28.621 96.6176L23.6509 93.748L28.2899 91.344L28.621 96.6176Z" fill="#D9D9D9"/>
60  <path d="M94.38 78.9975L97.2495 74.0273L92.03 74.2649L94.38 78.9975Z" fill="#D9D9D9"/>
61  <path d="M6.03088 27.9892L8.90039 23.019L11.3045 27.658L6.03088 27.9892Z" fill="#D9D9D9"/>
62  <circle cx="51.6928" cy="51.0082" r="2.86951" fill="white"/>
63  <path class="clock__hand--hour" d="M49.1198 32.6873L51.7019 51.0098L54.1075 32.6741C52.5607 30.4796 51.6389 27.2997 51.6389 27.2997C51.6389 27.2997 50.6561 30.4053 49.1198 32.6873Z" fill="white"/>
64  <path class="clock__hand--minute" d="M49.0737 16.8969L51.7007 51.0147L54.0613 16.8832C52.5143 14.6888 51.5794 6.81542 51.5794 6.81542C51.5794 6.81542 50.6098 14.6147 49.0737 16.8969Z" fill="white"/>
65 </svg> </div> <p class="text-white mt-3 mb-0 text-lg leading-footer max-md:text-base">--:--</p> </div> <div class="flex flex-col gap-0"> <h3 class="text-white m-0 text-lg font-semibold leading-footer max-md:text-base max-md:leading-[1.8rem]">Oursky</h3> <p class="text-white m-0 text-lg leading-footer opacity-80 max-md:text-base max-md:leading-[1.8rem]">Hong Kong</p> <p class="text-white m-0 text-lg leading-footer opacity-80 max-md:text-base max-md:leading-[1.8rem]">Taipei</p> </div> </div> <!-- London clock --> <div class="flex gap-8 flex-wrap items-start max-md:gap-5"> <div id="clock-container--london" class="flex flex-col items-center justify-center"> <div class="flex justify-center items-center w-[6.3762rem] h-[6.3762rem] relative"> <svg class="w-full h-full" width="103" height="103" viewBox="0 0 103 103" fill="none" xmlns="http://www.w3.org/2000/svg"> 
66  <path d="M54.5098 0H48.7708L51.5862 4.40147L54.5098 0Z" fill="#D9D9D9"/>
67  <path d="M54.5098 102.017H48.7708L51.5862 97.6151L54.5098 102.017Z" fill="#D9D9D9"/>
68  <path d="M28.621 5.39904L23.6509 8.26855L28.2899 10.6726L28.621 5.39904Z" fill="#D9D9D9"/>
69  <path d="M79.6293 93.7482L74.6592 96.6177L74.8967 91.3982L79.6293 93.7482Z" fill="#D9D9D9"/>
70  <path d="M102.648 53.8777L102.648 48.1387L98.247 50.9541L102.648 53.8777Z" fill="#D9D9D9"/>
71  <path d="M0.631836 53.8777L0.631836 48.1387L5.03331 50.9541L0.631836 53.8777Z" fill="#D9D9D9"/>
72  <path d="M97.2494 27.9892L94.3799 23.019L91.9758 27.658L97.2494 27.9892Z" fill="#D9D9D9"/>
73  <path d="M8.90052 78.9975L6.03101 74.0273L11.2505 74.2649L8.90052 78.9975Z" fill="#D9D9D9"/>
74  <path d="M79.6293 8.26844L74.6592 5.39893L74.8967 10.6184L79.6293 8.26844Z" fill="#D9D9D9"/>
75  <path d="M28.621 96.6176L23.6509 93.748L28.2899 91.344L28.621 96.6176Z" fill="#D9D9D9"/>
76  <path d="M94.38 78.9975L97.2495 74.0273L92.03 74.2649L94.38 78.9975Z" fill="#D9D9D9"/>
77  <path d="M6.03088 27.9892L8.90039 23.019L11.3045 27.658L6.03088 27.9892Z" fill="#D9D9D9"/>
78  <circle cx="51.6928" cy="51.0082" r="2.86951" fill="white"/>
79  <path class="clock__hand--hour" d="M49.1198 32.6873L51.7019 51.0098L54.1075 32.6741C52.5607 30.4796 51.6389 27.2997 51.6389 27.2997C51.6389 27.2997 50.6561 30.4053 49.1198 32.6873Z" fill="white"/>
80  <path class="clock__hand--minute" d="M49.0737 16.8969L51.7007 51.0147L54.0613 16.8832C52.5143 14.6888 51.5794 6.81542 51.5794 6.81542C51.5794 6.81542 50.6098 14.6147 49.0737 16.8969Z" fill="white"/>
81 </svg> </div> <p class="text-white mt-3 mb-0 text-lg leading-footer max-md:text-base">--:--</p> </div> <div class="flex flex-col gap-0"> <h3 class="text-white m-0 text-lg font-semibold leading-footer max-md:text-base max-md:leading-[1.8rem]">Skymakers</h3> <p class="text-white m-0 text-lg leading-footer opacity-80 max-md:text-base max-md:leading-[1.8rem]">London</p> <p class="text-white m-0 text-lg leading-footer opacity-80 max-md:text-base max-md:leading-[1.8rem]">Manchester</p> </div> </div> </div> </div> <!-- Open Source bar --> <div class="bg-footer-opensource rounded-lg px-8 py-5 max-md:px-6 max-md:py-4"> <a href="/open-source/" class="flex items-center justify-between no-underline transition-opacity hover:opacity-60"> <span class="text-black text-lg font-bold max-md:text-base">We 😻 Open Source!</span> <span class="text-black text-lg font-bold max-md:text-base" aria-hidden="true">→</span> </a> </div> <!-- Copyright --> <p class="text-center text-black/60 text-sm mt-3 mb-0">Oursky Ltd. © 2026</p> </div> </footer> 
81<script type="module">const h="Asia/Hong_Kong",g="Europe/London";function r(t,c,e){if(!t)return;const n=new Intl.DateTimeFormat("en-HK",{hour:"numeric",minute:"numeric",hour12:!0,timeZone:e}).formatToParts(c),o={};n.forEach(f=>o[f.type]=f.value);const i=t.querySelector(".clock__hand--minute"),s=t.querySelector(".clock__hand--hour"),u=t.querySelector("p"),d=parseInt(o.minute??"0"),m=parseInt(o.hour??"0"),I=o.dayPeriod??"",l=d/60,k=(l+m)/12;u&&(u.textContent=`${m}:${String(d).padStart(2,"0")}${I}`),i&&i.setAttribute("transform",`rotate(${l*360}, 51.6928, 51.0082)`),s&&s.setAttribute("transform",`rotate(${k*360}, 51.6928, 51.0082)`)}let y;function p(){clearInterval(y);const t=document.getElementById("clock-container--hk"),c=document.getElementById("clock-container--london"),e=new Date;r(t,e,h),r(c,e,g);let a=e.getUTCMinutes();y=setInterval(()=>{const n=new Date;n.getUTCMinutes()!==a&&(a=n.getUTCMinutes(),r(document.getElementById("clock-container--hk"),n,h),r(document.getElementById("clock-container--london"),n,g))},1e3)}document.addEventListener("astro:page-load",p);</script>
81 
81<script type="module" src="/_astro/Footer.astro_astro_type_script_index_1_lang.BMosPksR.js"></script>
81 </body></html> 
81<script type="module">function c(){const o=document.querySelectorAll(".contact-page .scroll-reveal"),s=document.querySelectorAll(".contact-page .scroll-reveal-group");if(!o.length&&!s.length)return;if(window.matchMedia("(prefers-reduced-motion: reduce)").matches){o.forEach(e=>e.classList.add("scroll-reveal--visible")),s.forEach(e=>e.classList.add("scroll-reveal-group--visible"));return}const l=new IntersectionObserver((e,n)=>{for(const t of e){if(!t.isIntersecting)continue;const r=t.target;r.classList.contains("scroll-reveal-group")?r.classList.add("scroll-reveal-group--visible"):r.classList.add("scroll-reveal--visible"),n.unobserve(r)}},{root:null,rootMargin:"0px 0px -5% 0px",threshold:.05});o.forEach(e=>l.observe(e)),s.forEach(e=>l.observe(e))}c();document.addEventListener("astro:page-load",c);</script>

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.