/*gd-theme-start*/
:root,[data-theme="dark"]{color-scheme:dark;--bg:#050506;--bg-rgb:5,5,6;--panel:#0A0B0D;--panel-2:#0B0C0E;--card:#0F1012;--raise:#131417;--tab-on:#1A1B1E;--stage:#0D0F0F;--avatar:#16231F;--fg:#F4F5F7;--fg-rgb:244,245,247;--fg-strong:#FFFFFF;--fg-3:rgba(244,245,247,.42);--fg-55:rgba(244,245,247,.55);--ink:255,255,255;--sh:0,0,0;--sh-90:rgba(0,0,0,.9);--sh-80:rgba(0,0,0,.8);--glow:29,107,82;--glow-2:18,26,25;--glow-3:42,59,54;--glow-4:26,77,63;--glow-solid:#1D6B52;--glow-mid:#121A19;--t2:#2A3B36;--t3:#1A4D3F;--t4:#24302E;--btn-bg:rgba(255,255,255,.92);--btn-fg:#0A0A0B;--accent:#47FF8C;--accent-ink:#47FF8C;--logo-hover:#A9C4B7;--head:#FFFFFF;--glass:none}
[data-theme="light"]{color-scheme:light;--bg:#F4F5F1;--bg-rgb:244,245,241;--panel:#FFFFFF;--panel-2:#FFFFFF;--card:#F3F4F0;--raise:#E9EBE6;--tab-on:#E9EBE6;--stage:#EDF4EF;--avatar:#DDEDE4;--fg:#0B0C0E;--fg-rgb:11,12,14;--fg-strong:#000000;--fg-3:rgba(11,12,14,.52);--fg-55:rgba(11,12,14,.62);--ink:11,12,14;--sh:38,52,45;--sh-90:rgba(38,52,45,.30);--sh-80:rgba(38,52,45,.26);--glow:96,226,150;--glow-2:222,243,231;--glow-3:196,232,211;--glow-4:150,226,184;--glow-solid:#A9EDC6;--glow-mid:#E2F3E9;--t2:#D7E9DF;--t3:#BFE7CF;--t4:#DCE6E0;--btn-bg:#0B0C0E;--btn-fg:#F7F8F5;--accent:#2BE07A;--accent-ink:#0B7D3E;--logo-hover:#2E6B51;--head:#0B7D3E;--glass:drop-shadow(0 18px 22px rgba(38,52,45,.22))}
body{background:var(--bg)}
.gd-theming,.gd-theming *{transition:none !important}
[data-theme="light"] [stroke="#47FF8C"],[data-theme="light"][stroke="#47FF8C"]{stroke:var(--accent-ink)}
[data-theme="light"] [fill="#47FF8C"]{fill:var(--accent-ink)}
[data-theme="light"] :focus-visible{outline-color:var(--accent-ink)}
[data-theme="light"] img.gd-float,[data-theme="light"] img.gd-float-b,[data-theme="light"] img.gd-float-c{filter:var(--glass)}
::view-transition-old(root),::view-transition-new(root){animation:none;mix-blend-mode:normal}
.gd-theme{-webkit-appearance:none;appearance:none;border:0;padding:0;margin:0;background:none;cursor:pointer;display:inline-flex;align-items:center;flex-shrink:0;border-radius:999px;color:inherit;font:inherit}
.gd-theme-track{position:relative;display:block;width:64px;height:36px;border-radius:999px;background:rgba(var(--ink),.06);border:1px solid rgba(var(--ink),.14);transition:background-color .4s cubic-bezier(.22,1,.36,1),border-color .4s cubic-bezier(.22,1,.36,1)}
.gd-theme:hover .gd-theme-track{border-color:rgba(var(--ink),.26)}
.gd-theme-hint{position:absolute;top:50%;width:14px;height:14px;margin-top:-7px;color:rgba(var(--fg-rgb),.5);transition:opacity .35s}
.gd-theme-hint.is-sun{right:9px}
.gd-theme-hint.is-moon{left:9px;opacity:0}
.gd-theme-knob{position:absolute;top:3px;left:3px;width:28px;height:28px;border-radius:50%;background:var(--fg);box-shadow:0 2px 10px rgba(var(--sh),.35);display:flex;align-items:center;justify-content:center;transition:transform .55s cubic-bezier(.22,1,.36,1),background-color .4s}
.gd-theme-knob svg{position:absolute;width:15px;height:15px;transition:opacity .35s,transform .55s cubic-bezier(.22,1,.36,1)}
.gd-theme-knob .is-moon{color:var(--bg)}
.gd-theme-knob .is-sun{color:#47FF8C;opacity:0;transform:rotate(-90deg) scale(.6)}
[data-theme="light"] .gd-theme-knob{transform:translateX(28px)}
[data-theme="light"] .gd-theme-knob .is-moon{opacity:0;transform:rotate(90deg) scale(.6)}
[data-theme="light"] .gd-theme-knob .is-sun{opacity:1;transform:none}
[data-theme="light"] .gd-theme-hint.is-sun{opacity:0}
[data-theme="light"] .gd-theme-hint.is-moon{opacity:1}
@media (prefers-reduced-motion:reduce){.gd-theme-track,.gd-theme-knob,.gd-theme-knob svg{transition:none}}
[data-theme="light"] select.gd-input{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%230B7D3E' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E")}
[data-theme="light"] .gd-status.is-ok{color:#0B5C2F;background:rgba(43,224,122,.12);border-color:rgba(11,125,62,.35)}
[data-theme="light"] .gd-status.is-err{color:#8C1D1D;background:rgba(220,60,60,.07);border-color:rgba(200,60,60,.35)}
/*gd-theme-end*/
body{margin:0;background:var(--bg)}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth}
a{color:var(--fg);text-decoration:none}
a:hover{color:var(--fg-strong)}
::selection{background:#47FF8C;color:#04130B}
:focus-visible{outline:2px solid #47FF8C;outline-offset:3px;border-radius:8px}
@keyframes gdRoll{to{transform:translate3d(-50%,0,0)}}
@keyframes gdFloat{0%,100%{transform:translate3d(0,0,0) rotate(0deg)}50%{transform:translate3d(0,-16px,0) rotate(5deg)}}
@keyframes gdFill{from{transform:scaleX(0)}to{transform:scaleX(1)}}
@keyframes gdRise{from{opacity:0;transform:translate3d(0,18px,0)}to{opacity:1;transform:none}}
@keyframes gdPop{from{opacity:0;transform:scale(.8) translate3d(0,24px,0)}to{opacity:1;transform:none}}
@keyframes gdPulse{0%,100%{opacity:1}50%{opacity:.35}}
@keyframes gdPar{to{transform:translate3d(0,var(--py,-90px),0)}}
.gd-roll{animation:gdRoll 46s linear infinite}
.gd-roll-slow{animation:gdRoll 64s linear infinite}
.gd-roll-rev{animation:gdRoll 58s linear infinite reverse}
.gd-rail:hover .gd-roll-slow,.gd-rail:hover .gd-roll-rev{animation-play-state:paused}
.gd-float{animation:gdFloat 7s ease-in-out infinite}
.gd-float-b{animation:gdFloat 9s ease-in-out -2s infinite reverse}
.gd-float-c{animation:gdFloat 8s ease-in-out -4s infinite}
.gd-pulse{animation:gdPulse 2.4s ease-in-out infinite}
.gd-pop{animation:gdPop 1.3s cubic-bezier(.22,1,.36,1) both}
.gd-in{animation:gdRise 1s cubic-bezier(.22,1,.36,1) .05s both}
.gd-in-3{animation:gdRise 1s cubic-bezier(.22,1,.36,1) .6s both}
.gd-in-4{animation:gdRise 1s cubic-bezier(.22,1,.36,1) .75s both}
.gd-in-st > *{animation:gdRise 1s cubic-bezier(.22,1,.36,1) both}
.gd-in-st > :nth-child(1){animation-delay:.95s}
.gd-in-st > :nth-child(2){animation-delay:1.05s}
.gd-in-st > :nth-child(3){animation-delay:1.15s}
.gd-in-st > :nth-child(4){animation-delay:1.25s}
@supports (animation-timeline: scroll()){.gd-par{animation:gdPar linear both;animation-timeline:scroll(root);animation-range:0 100vh}}
.js .gd-rv{opacity:0;transform:translate3d(0,18px,0);transition:opacity 1s cubic-bezier(.22,1,.36,1),transform 1s cubic-bezier(.22,1,.36,1)}
.gd-rv.is-in{opacity:1;transform:none}
.js .gd-st > *{opacity:0;transform:translate3d(0,18px,0);transition:opacity 1s cubic-bezier(.22,1,.36,1),transform 1s cubic-bezier(.22,1,.36,1)}
.gd-st.is-in > *{opacity:1;transform:none}
.gd-st.is-in > :nth-child(2){transition-delay:.07s}
.gd-st.is-in > :nth-child(3){transition-delay:.14s}
.gd-st.is-in > :nth-child(4){transition-delay:.21s}
.gd-st.is-in > :nth-child(5){transition-delay:.28s}
.gd-st.is-in > :nth-child(6){transition-delay:.35s}
.gd-st.is-in > :nth-child(7){transition-delay:.42s}
.gd-st.is-in > :nth-child(n+8){transition-delay:.49s}
.gd-rv:focus-within,.gd-st > :focus-within{opacity:1;transform:none}
.gd-line{display:block;overflow:hidden;padding-bottom:.1em;margin-bottom:-.1em}
.gd-line > span{display:block}
.js .gd-line > span{transform:translateY(110%);transition:transform 1.1s cubic-bezier(.22,1,.36,1)}
.is-in .gd-line > span{transform:none}
.is-in .gd-line + .gd-line > span{transition-delay:.08s}
.js .gd-clip{clip-path:inset(12% 9% 12% 9% round 20px);transition:clip-path 1.3s cubic-bezier(.22,1,.36,1)}
.js .gd-clip img{transform:scale(1.12);transition:transform 1.6s cubic-bezier(.22,1,.36,1)}
.is-in .js .gd-clip{clip-path:inset(0 0 0 0 round 20px)}
.is-in .gd-clip img{transform:none}
.gd-lg{position:relative;display:block}
.gd-lg img{opacity:0}
.gd-mk{position:absolute;inset:0;display:block;background-color:rgba(var(--fg-rgb),.8);transition:background-color .45s ease}
.gd-logo:hover .gd-mk{background-color:var(--logo-hover)}
.gd-m1{-webkit-mask:url(../img/partners/stake.png) center/contain no-repeat;mask:url(../img/partners/stake.png) center/contain no-repeat}
.gd-m2{-webkit-mask:url(../img/partners/google-developers.png) center/contain no-repeat;mask:url(../img/partners/google-developers.png) center/contain no-repeat}
.gd-m3{-webkit-mask:url(../img/partners/wardah.png) center/contain no-repeat;mask:url(../img/partners/wardah.png) center/contain no-repeat}
.gd-m4{-webkit-mask:url(../img/partners/vivo.png) center/contain no-repeat;mask:url(../img/partners/vivo.png) center/contain no-repeat}
.gd-m5{-webkit-mask:url(../img/partners/10pm-curfew.png) center/contain no-repeat;mask:url(../img/partners/10pm-curfew.png) center/contain no-repeat}
.gd-m6{-webkit-mask:url(../img/partners/hot-ones.png) center/contain no-repeat;mask:url(../img/partners/hot-ones.png) center/contain no-repeat}
.js .gd-grow{transform-origin:top center;transform:scaleY(0);transition:transform 1.6s cubic-bezier(.22,1,.36,1) .2s}
.is-in .gd-grow{transform:none}
.gd-fill{transform-origin:left center;animation:gdFill 7s linear both}
.gd-fill-hl{transform-origin:left center;animation:gdFill 5.5s linear both}
.gd-btn{transition:transform .3s cubic-bezier(.22,1,.36,1),background-color .3s,box-shadow .3s}
.gd-btn:hover{transform:translateY(-1px);box-shadow:0 0 0 1px rgba(var(--ink),.2),0 10px 30px -10px rgba(71,255,140,.6)}
.gd-btn:active{transform:translateY(1px) scale(.985)}
.gd-ghost{transition:background-color .3s}
.gd-ghost:hover{background-color:rgba(var(--ink),.1)}
.gd-link{color:rgba(var(--fg-rgb),.66);transition:color .2s}
.gd-link:hover{color:var(--fg)}
.gd-tab{transition:background-color .3s,color .3s}
.gd-tab:hover{color:var(--fg)}
.gd-row{transition:background-color .3s}
.gd-row:hover{background-color:rgba(var(--ink),.03)}
.gd-card{transition:transform .45s cubic-bezier(.22,1,.36,1),border-color .3s}
.gd-card:hover{transform:translateY(-4px);border-color:rgba(var(--ink),.18)}
.gd-zoom img{transition:transform .9s cubic-bezier(.22,1,.36,1)}
.gd-zoom:hover img{transform:scale(1.04)}
.gd-desk{display:flex}
.gd-mob{display:none}
@media (max-width:900px){.gd-desk{display:none}.gd-mob{display:inline-flex}.gd-hide-sm{display:none}}
summary{list-style:none;cursor:pointer}
summary::-webkit-details-marker{display:none}
.gd-plus{transition:transform .3s cubic-bezier(.22,1,.36,1)}
details[open] .gd-plus{transform:rotate(45deg)}
@media (prefers-reduced-motion:reduce){.gd-roll,.gd-roll-slow,.gd-roll-rev,.gd-float,.gd-float-b,.gd-float-c,.gd-pulse,.gd-pop,.gd-in,.gd-in-3,.gd-in-4,.gd-in-st > *,.gd-par,.gd-fill,.gd-fill-hl{animation:none}.gd-rv,.gd-st > *{opacity:1;transform:none;transition:none}.gd-line > span{transform:none;transition:none}.js .gd-clip{clip-path:none;transition:none}.gd-clip img{transform:none}html{scroll-behavior:auto}.gd-mk{transition:none}}
/* ---- Static-site additions ---- */
[hidden]{display:none !important}
img{max-width:100%}
.gd-skip{position:absolute;left:12px;top:-64px;z-index:100;padding:10px 18px;border-radius:999px;background:#47FF8C;color:#04130B;font-weight:600;font-size:14px;transition:top .2s}
.gd-skip:focus,.gd-skip:hover{top:12px;color:#04130B}

/* Header */
.gd-header{position:sticky;top:0;z-index:60;background-color:transparent;border-bottom:1px solid rgba(var(--ink),0);transition:background-color .4s cubic-bezier(.22,1,.36,1),border-color .4s cubic-bezier(.22,1,.36,1)}
.gd-header.is-solid{background-color:rgba(var(--bg-rgb),.78);-webkit-backdrop-filter:blur(16px) saturate(140%);backdrop-filter:blur(16px) saturate(140%);border-bottom-color:rgba(var(--ink),.07)}
.gd-desk a[aria-current="page"]{color:var(--fg)}

/* Typed headings */
.js [data-gd-type]:not(.is-split){visibility:hidden}
.gd-w{display:inline-block;white-space:nowrap}
.gd-ch{display:inline-block;opacity:0;filter:blur(6px);transform:translateY(4px)}
.is-typed .gd-ch{opacity:1;filter:blur(0);transform:none;transition:opacity .32s cubic-bezier(.22,1,.36,1),filter .5s cubic-bezier(.22,1,.36,1),transform .5s cubic-bezier(.22,1,.36,1)}

/* Services tab stage */
.gd-tab{flex:1 1 130px;height:46px;padding:0 16px;border-radius:999px;border:0;cursor:pointer;font-family:inherit;font-size:15px;white-space:nowrap;background-color:transparent;color:rgba(var(--fg-rgb),.66);font-weight:400}
.gd-tab[aria-pressed="true"]{background-color:var(--tab-on);color:var(--fg);font-weight:500;box-shadow:inset 0 1px 0 rgba(var(--ink),.06)}
.gd-slide{grid-area:1/1;position:relative;z-index:1;display:flex;flex-wrap:wrap;align-items:center;gap:clamp(16px,2.4vw,28px);padding:clamp(16px,3.4vw,44px);opacity:0;visibility:hidden;transform:translateY(14px) scale(.98);pointer-events:none;transition:opacity .7s cubic-bezier(.22,1,.36,1),transform .7s cubic-bezier(.22,1,.36,1),visibility 0s linear .7s}
.gd-slide.is-on{opacity:1;visibility:visible;transform:none;pointer-events:auto;transition-delay:0s}
.gd-seg .gd-fill{position:absolute;inset:0;display:block;background:#47FF8C}

/* Client highlights */
.gd-shot{grid-area:1/1;position:relative;display:flex;align-items:center;justify-content:center;padding:48px 32px 76px;opacity:0;visibility:hidden;transform:scale(.985);pointer-events:none;transition:opacity .55s cubic-bezier(.22,1,.36,1),transform .7s cubic-bezier(.22,1,.36,1),visibility 0s linear .55s}
.gd-shot.is-on{opacity:1;visibility:visible;transform:none;pointer-events:auto;transition-delay:0s}
[data-gd-hl]{position:relative;display:block;width:100%;text-align:left;padding:14px 14px 16px;border:0;border-bottom:1px solid rgba(var(--ink),.06);border-radius:14px;color:var(--fg);font-family:inherit;cursor:pointer;background-color:transparent}
[data-gd-hl][aria-pressed="true"]{background-color:var(--raise)}
.gd-hlbar{position:absolute;left:0;top:18px;bottom:20px;width:2px;border-radius:2px;background:#47FF8C;box-shadow:0 0 10px #47FF8C;display:block;opacity:0;transform:scaleY(.4);transition:opacity .3s,transform .4s cubic-bezier(.22,1,.36,1)}
[aria-pressed="true"] > .gd-hlbar{opacity:1;transform:none}
.gd-hltrack{position:absolute;left:14px;right:14px;bottom:6px;height:2px;border-radius:2px;background:rgba(var(--ink),.08);overflow:hidden;display:block}
.gd-hltrack .gd-fill-hl{position:absolute;inset:0;display:block;background:#47FF8C}

/* Contact form */
.gd-field{display:flex;flex-direction:column;gap:8px;min-width:0}
.gd-field label{font-size:13.5px;font-weight:500;color:rgba(var(--fg-rgb),.8)}
.gd-input{width:100%;height:52px;padding:0 16px;border-radius:14px;background:var(--panel);border:1px solid rgba(var(--ink),.1);color:var(--fg);font-family:inherit;font-size:16px;transition:border-color .2s,box-shadow .2s}
.gd-input::placeholder{color:rgba(var(--fg-rgb),.35)}
.gd-input:hover{border-color:rgba(var(--ink),.18)}
.gd-input:focus{outline:none;border-color:rgba(71,255,140,.6);box-shadow:0 0 0 4px rgba(71,255,140,.12)}
textarea.gd-input{height:auto;min-height:160px;padding:14px 16px;line-height:1.55;resize:vertical}
select.gd-input{-webkit-appearance:none;appearance:none;padding-right:44px;cursor:pointer;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%2347FF8C' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 16px center}
select.gd-input option{background:var(--card);color:var(--fg)}
.gd-hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.gd-status{margin-top:22px;padding:16px 18px;border-radius:14px;font-size:15px;line-height:1.55}
.gd-status.is-ok{background:rgba(71,255,140,.08);border:1px solid rgba(71,255,140,.35);color:#DCFFE9}
.gd-status.is-err{background:rgba(255,120,120,.08);border:1px solid rgba(255,120,120,.35);color:#FFE1E1}
button.gd-btn[disabled]{opacity:.6;cursor:progress;transform:none}

/* Legal pages */
.gd-toc{flex:0 1 270px;min-width:0;position:sticky;top:96px;display:flex;flex-direction:column;padding:22px;border-radius:22px;background:var(--panel-2);border:1px solid rgba(var(--ink),.08);font-size:14.5px}
.gd-toc a{min-height:34px;display:flex;align-items:center}
.gd-prose{flex:1 1 560px;min-width:0;padding:clamp(24px,4.4vw,56px);border-radius:28px;background:var(--panel);border:1px solid rgba(var(--ink),.08);box-shadow:0 0 0 6px rgba(var(--ink),.02)}
.gd-prose h2{margin:44px 0 0;padding-top:28px;border-top:1px solid rgba(var(--ink),.08);font-size:clamp(22px,2.2vw,28px);line-height:1.2;letter-spacing:-.03em;font-weight:600;scroll-margin-top:96px}
.gd-prose h3{margin:28px 0 0;font-size:18px;letter-spacing:-.02em;font-weight:600}
.gd-prose p{margin:14px 0 0;max-width:720px;font-size:15.5px;line-height:1.75;color:rgba(var(--fg-rgb),.7)}
.gd-prose > p:first-child{margin-top:0}
.gd-prose strong{color:var(--fg);font-weight:600}
.gd-prose a{color: var(--accent-ink);text-decoration:underline;text-underline-offset:3px}

@media (prefers-reduced-motion:reduce){
  .js .gd-rv,.js .gd-st > *{opacity:1;transform:none;transition:none}
  .js .gd-line > span{transform:none;transition:none}
  .js .gd-clip{clip-path:none;transition:none}
  .js .gd-clip img{transform:none}
  .js .gd-grow{transform:none;transition:none}
  .gd-ch{opacity:1;filter:none;transform:none;transition:none}
  .gd-slide,.gd-shot,.gd-header,.gd-hlbar{transition:none}
  .gd-fill,.gd-fill-hl{animation:none;transform:none}
}

/* Local preview (opened from disk): browsers block CSS masks on file://, so show the logos plainly */
.gd-local .gd-lg img{opacity:.8}
.gd-local .gd-mk{display:none}

