/* ───────────────────────────────────────── BRAND TOKENS — pulled from Kemistry logo Ke dark teal #1a7a8a (darkest square) mid teal #2aa0b0 (centre square) pale cyan #7dd0dc (lightest square) circle fill #a8e4ec (circle interior) ───────────────────────────────────────── */ :root { --teal-dk: #1a7a8a; --teal-mid: #2aa0b0; --teal-lt: #7dd0dc; --teal-pale: #a8e4ec; --bg: #0d1a1c; --surface: #111f22; --surface2: #162428; --rule: #1e3338; --rule-lt: #264044; --text: #ddeef0; --text-mid: #7aacb2; --text-dim: #3d6870; --white: #f0fafc; --ease: cubic-bezier(0.16, 1, 0.3, 1); --nav-h: 72px; } *, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; } html { scroll-behavior: smooth; } body { background: var(--bg); color: var(--text); font-family: 'Josefin Sans', sans-serif; font-weight: 300; -webkit-font-smoothing: antialiased; overflow-x: hidden; cursor: none; } /* ─── CURSOR ─── */ .cursor { position: fixed; width: 8px; height: 8px; background: var(--teal-lt); border-radius: 50%; pointer-events: none; z-index: 9999; transform: translate(-50%,-50%); transition: width .2s var(--ease), height .2s var(--ease); } .cursor-ring { position: fixed; width: 34px; height: 34px; border: 1px solid var(--teal-mid); border-radius: 50%; pointer-events: none; z-index: 9998; transform: translate(-50%,-50%); transition: width .3s var(--ease), height .3s var(--ease); opacity: .45; } body.hov .cursor { width: 13px; height: 13px; } body.hov .cursor-ring { width: 54px; height: 54px; opacity: .75; } /* ─── GRAIN ─── */ .grain { position: fixed; inset: -50%; width: 200%; height: 200%; background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E"); opacity: .022; pointer-events: none; z-index: 8000; animation: grain 8s steps(10) infinite; } @keyframes grain { 0%,100%{transform:translate(0,0)} 20%{transform:translate(3%,-2%)} 40%{transform:translate(-2%,3%)} 60%{transform:translate(2%,2%)} 80%{transform:translate(-3%,-1%)} } /* ─── STING INTRO SCREEN ─── */ #sting-screen { position: fixed; inset: 0; background: #000; z-index: 5000; display: flex; align-items: center; justify-content: center; transition: opacity .8s ease; } #sting-screen.hidden { opacity: 0; pointer-events: none; } #sting-video { width: min(720px, 90vw); height: auto; display: block; } .sting-skip { position: absolute; bottom: 32px; right: 36px; font-family: 'DM Mono', monospace; font-size: 9px; letter-spacing: .18em; text-transform: uppercase; color: rgba(255,255,255,.3); cursor: pointer; border: none; background: none; transition: color .2s; } .sting-skip:hover { color: rgba(255,255,255,.7); } /* ─── NAV ─── */ nav { position: fixed; top: 0; left: 0; right: 0; height: var(--nav-h); display: flex; align-items: center; justify-content: space-between; padding: 0 48px; z-index: 100; transition: background .4s, border-color .4s; } nav.scrolled { background: rgba(13,26,28,.92); border-bottom: 1px solid var(--rule); backdrop-filter: blur(14px); -webkit-backdrop-filter: blur(14px); } .nav-logo img { height: 38px; width: auto; display: block; filter: brightness(1.05); } .nav-links { display: flex; align-items: center; gap: 32px; list-style: none; } .nav-links a { font-size: 11px; font-weight: 300; letter-spacing: .12em; text-transform: uppercase; color: var(--text-mid); text-decoration: none; transition: color .2s; cursor: none; } .nav-links a:hover { color: var(--text); } .nav-cta { color: var(--bg) !important; background: var(--teal-mid) !important; padding: 8px 20px !important; border-radius: 1px; transition: background .2s !important; } .nav-cta:hover { background: var(--teal-dk) !important; color: var(--white) !important; } /* ─── HERO ─── */ .hero { position: relative; height: 100vh; min-height: 640px; display: flex; flex-direction: column; justify-content: flex-end; padding: 0 48px 80px; overflow: hidden; } .hero-bg { position: absolute; inset: 0; background: linear-gradient(135deg, #060e10 0%, #0d1e22 45%, #122428 60%, #060e10 100%); } .hero-glow { position: absolute; inset: 0; background: radial-gradient(ellipse 65% 55% at 65% 35%, rgba(42,160,176,.14) 0%, transparent 65%), radial-gradient(ellipse 45% 40% at 20% 75%, rgba(26,122,138,.1) 0%, transparent 55%); animation: glow-drift 14s ease-in-out infinite alternate; } @keyframes glow-drift { 0% { transform: scale(1) translate(0,0); opacity: .8; } 100% { transform: scale(1.06) translate(-2%,1%); opacity: 1; } } .hero-scanlines { position: absolute; inset: 0; background-image: repeating-linear-gradient(0deg, transparent, transparent 3px, rgba(0,0,0,.05) 3px, rgba(0,0,0,.05) 4px); pointer-events: none; } .hero-vignette { position: absolute; inset: 0; background: radial-gradient(ellipse 80% 60% at 50% 50%, transparent 40%, rgba(6,14,16,.75) 100%), linear-gradient(to top, rgba(6,14,16,.96) 0%, transparent 55%); } .reel-ticker { position: absolute; top: var(--nav-h); left: 0; right: 0; height: 1px; background: var(--rule); overflow: hidden; } .reel-ticker-bar { height: 1px; background: linear-gradient(90deg, transparent, var(--teal-lt), transparent); width: 28%; animation: ticker 9s linear infinite; } @keyframes ticker { 0%{transform:translateX(-100%)} 100%{transform:translateX(500%)} } .hero-content { position: relative; z-index: 2; max-width: 780px; } .hero-eyebrow { font-family: 'DM Mono', monospace; font-size: 9.5px; letter-spacing: .26em; text-transform: uppercase; color: var(--teal-lt); margin-bottom: 22px; opacity: 0; animation: fadeup .8s var(--ease) .3s forwards; display: flex; align-items: center; gap: 12px; } .hero-eyebrow::before { content: ''; display: inline-block; width: 28px; height: 1px; background: var(--teal-lt); } .hero-h1 { font-family: 'Cormorant Garamond', serif; font-size: clamp(3rem, 6.5vw, 5.6rem); font-weight: 300; line-height: 1.08; color: var(--white); letter-spacing: -.01em; opacity: 0; animation: fadeup .9s var(--ease) .5s forwards; } .hero-h1 em { font-style: italic; color: var(--teal-lt); } .hero-sub { margin-top: 22px; font-size: 14px; font-weight: 200; letter-spacing: .04em; color: var(--text-mid); max-width: 440px; line-height: 1.7; opacity: 0; animation: fadeup .9s var(--ease) .7s forwards; } .hero-actions { margin-top: 40px; display: flex; align-items: center; gap: 28px; opacity: 0; animation: fadeup .9s var(--ease) .9s forwards; } .btn-primary { display: inline-flex; align-items: center; gap: 10px; background: var(--teal-mid); color: var(--bg); font-family: 'Josefin Sans', sans-serif; font-size: 10.5px; font-weight: 400; letter-spacing: .18em; text-transform: uppercase; padding: 14px 28px; border-radius: 1px; text-decoration: none; transition: background .2s, transform .2s; cursor: none; } .btn-primary:hover { background: var(--teal-dk); transform: translateY(-1px); color: var(--white); } .btn-ghost { display: inline-flex; align-items: center; gap: 8px; font-size: 10.5px; font-weight: 200; letter-spacing: .18em; text-transform: uppercase; color: var(--text-mid); text-decoration: none; transition: color .2s; cursor: none; } .btn-ghost:hover { color: var(--teal-lt); } .btn-ghost svg { transition: transform .2s; } .btn-ghost:hover svg { transform: translateX(4px); } /* Ke logo motif — decorative, echoes the sting */ .hero-motif { position: absolute; top: 50%; right: 80px; transform: translateY(-50%); display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 3px; width: 180px; opacity: 0; z-index: 2; animation: fadein 1.2s var(--ease) 1s forwards; } .motif-cell { aspect-ratio: 1; border-radius: 2px; transition: opacity .3s; } .mc-1 { background: var(--teal-dk); display: flex; align-items: center; justify-content: center; } .mc-2 { background: var(--teal-mid); } .mc-3 { background: var(--teal-lt); display: flex; align-items: center; justify-content: center; flex-direction: column; gap: 4px; padding: 10px; } .mc-ke { font-family: 'Josefin Sans', sans-serif; font-size: 1.4rem; font-weight: 100; color: rgba(255,255,255,.9); letter-spacing: .05em; line-height: 1; } .mc-ke-sub { font-size: 7px; letter-spacing: .15em; text-transform: lowercase; color: rgba(255,255,255,.55); font-weight: 200; } .mc-circles { display: flex; flex-direction: column; align-items: center; gap: 4px; } .mc-circ { border-radius: 50%; background: var(--teal-pale); opacity: .75; } .mc-circ.lg { width: 22px; height: 22px; } .mc-circ.sm { width: 15px; height: 15px; } .scroll-hint { position: absolute; bottom: 28px; right: 48px; z-index: 2; display: flex; flex-direction: column; align-items: center; gap: 8px; opacity: 0; animation: fadein 1s var(--ease) 1.4s forwards; } .scroll-hint span { font-family: 'DM Mono', monospace; font-size: 7.5px; letter-spacing: .22em; text-transform: uppercase; color: var(--text-dim); writing-mode: vertical-rl; } .scroll-line { width: 1px; height: 38px; background: linear-gradient(to bottom, var(--teal-mid), transparent); animation: scroll-pulse 2.2s ease-in-out infinite; } @keyframes scroll-pulse { 0%,100%{opacity:.35} 50%{opacity:1} } /* Brand ticker */ .hero-brands { position: absolute; bottom: 0; left: 0; right: 0; height: 60px; border-top: 1px solid var(--rule); display: flex; align-items: center; padding: 0 48px; gap: 40px; z-index: 2; backdrop-filter: blur(8px); background: rgba(6,14,16,.65); overflow: hidden; } .brands-label { font-family: 'DM Mono', monospace; font-size: 8px; letter-spacing: .2em; text-transform: uppercase; color: var(--text-dim); white-space: nowrap; flex-shrink: 0; } .brands-divider { width: 1px; height: 22px; background: var(--rule); flex-shrink: 0; } .brands-track { display: flex; align-items: center; gap: 48px; animation: brands-scroll 22s linear infinite; white-space: nowrap; } .brands-track span { font-family: 'Josefin Sans', sans-serif; font-size: 11.5px; font-weight: 200; letter-spacing: .14em; text-transform: uppercase; color: var(--text-dim); transition: color .3s; } .brands-track span:hover { color: var(--teal-lt); } @keyframes brands-scroll { 0% { transform: translateX(0); } 100% { transform: translateX(-50%); } }
top of page

Nurturing creative ideas

 

Kemistry as a company focuses on nurturing creative ideas, combining the best of Indonesia with influences from around the world. Our greatest strength is our experienced team — people with a burning passion for the industry and the insight to make the best choices. With a rich pool of creative talent to draw upon, we build teams that deliver outstanding communications, crafted to engage and entertain audiences.

We use every tool in the box to bring ideas to life, new approaches to filmmaking like AI are a part of our workflow. For us, AI is not a gimmick but a practical accelerator — helping us explore directions faster, refine visual language earlier and streamline the path from concept to delivery. The creative decisions, however, always come from our people.

We work in close collaboration with agencies and clients from initial concept to final delivery, crafting ads which not only stand out and get noticed, but also engage and build the brands we work with. Our challenge is always achieving this with creativity and flair, supported by our global network of specialists who bring world‑class expertise to each project.

Production Service
WhatsApp Image 2026-05-11 at 16.40.56.jpeg
Contact

© 2014 by KEMISTRY created with Wix.com

bottom of page