@font-face{font-family:"FX";src:url("../fonts/fx-light.otf") format("opentype");font-weight:300;font-style:normal}
@font-face{font-family:"FX";src:url("../fonts/fx-regular-italic.otf") format("opentype");font-weight:400;font-style:italic}
@font-face{font-family:"FX";src:url("../fonts/fx-bold.otf") format("opentype");font-weight:700;font-style:normal}
@font-face{font-family:"FX";src:url("../fonts/fx-black.otf") format("opentype");font-weight:900;font-style:normal}
@font-face{font-family:"FXX";src:url("../fonts/fxx-regular.otf") format("opentype");font-weight:400;font-style:normal}
@font-face{font-family:"FXX";src:url("../fonts/fxx-bold.otf") format("opentype");font-weight:700;font-style:normal}
@font-face{font-family:"FXX";src:url("../fonts/fxx-black-italic.otf") format("opentype");font-weight:900;font-style:italic}
html{scroll-behavior:smooth}
@keyframes zg-blink{0%,49%{opacity:1}50%,100%{opacity:0}}
@keyframes zg-scan{0%{transform:translateY(-10%)}100%{transform:translateY(110%)}}
@keyframes zg-glow{0%,100%{opacity:.45;transform:translate(0,0) scale(1)}50%{opacity:.7;transform:translate(-4%,3%) scale(1.08)}}
@keyframes zg-rise{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
@keyframes zg-bar{from{width:0}to{width:var(--w)}}
@keyframes zg-marquee{from{transform:translateX(0)}to{transform:translateX(-50%)}}
::-webkit-scrollbar{display:none}
body{margin:0;background:#000;color:#E5E5E5;font-family:"FX","Helvetica Neue",Arial,sans-serif;font-weight:300;-webkit-font-smoothing:antialiased}
a{color:#42C148;text-decoration:none}a:hover{color:#E5E5E5}
input,textarea,select{font-family:inherit}
*{box-sizing:border-box}

/* Splash */
html.zg-splash-on,html.zg-splash-on body{overflow:hidden}
#zg-splash{position:fixed;inset:0;z-index:9999;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:26px;background:#000;overflow:hidden;transition:opacity .45s ease;animation:zg-splash-timeout .6s ease 6s forwards}
#zg-splash::before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 50% 46%,rgba(66,193,72,.18),transparent 55%);animation:zg-glow 4s ease-in-out infinite;pointer-events:none}
#zg-splash::after{content:"";position:absolute;left:0;right:0;top:0;height:140px;background:linear-gradient(180deg,transparent,rgba(66,193,72,.06),transparent);animation:zg-splash-scan 3.4s linear infinite;pointer-events:none}
#zg-splash.zg-splash-out{animation:none;opacity:0;pointer-events:none}
.zg-splash-logo{position:relative;width:min(220px,46vw);height:auto;display:block}
.zg-splash-bar{position:relative;width:min(240px,60vw);height:2px;background:#1a1a1a;overflow:hidden}
.zg-splash-bar::before{content:"";position:absolute;top:0;bottom:0;width:40%;background:#42C148;animation:zg-splash-load 1.2s cubic-bezier(.65,0,.35,1) infinite}
.zg-splash-label{position:relative;margin:0;font-family:monospace;font-size:12px;letter-spacing:.12em;color:#666}
.zg-splash-label b{display:inline-block;width:7px;height:12px;margin-left:6px;vertical-align:-1px;background:#42C148;animation:zg-blink 1.2s steps(1) infinite}
@keyframes zg-splash-scan{from{transform:translateY(-140px)}to{transform:translateY(100vh)}}
@keyframes zg-splash-load{from{transform:translateX(-100%)}to{transform:translateX(250%)}}
@keyframes zg-splash-timeout{to{opacity:0;visibility:hidden}}
@media (prefers-reduced-motion:reduce){#zg-splash::before,#zg-splash::after,.zg-splash-bar::before,.zg-splash-label b{animation:none}}

/* Responsive.
   The page layout lives in inline style attributes (dc-runtime template), and
   inline styles outrank any selector, so these overrides need !important. */
.zg-burger{display:none}

@media (max-width:900px){
  .zg-nav-bar{position:relative !important;gap:12px !important}
  .zg-burger{display:flex !important}
  .nav-links{
    display:none !important;
    position:absolute !important;
    top:100% !important;left:0 !important;right:0 !important;
    flex-direction:column !important;
    gap:0 !important;
    padding:4px 24px 16px !important;
    background:#000 !important;
    border-bottom:1px solid #1a1a1a !important;
  }
  .nav-links[data-open="true"]{display:flex !important}
  .nav-links a{padding:15px 0 !important;border-bottom:1px solid #141414 !important}
  .zg-hero-grid{grid-template-columns:1fr !important;gap:48px !important;padding-top:72px !important;padding-bottom:72px !important}
}

@media (max-width:700px){
  .zg-contact-grid{grid-template-columns:1fr !important}
}

@media (max-width:480px){
  /* Bubble is right-anchored inside a container offset 24px, then pushed 68px
     further left by its own margin — it must clear both, not just 72px. */
  .zg-chat-bubble{width:min(260px,calc(100vw - 116px)) !important}
  .zg-nav-cta{padding:10px 11px !important;font-size:11px !important;white-space:nowrap !important}
  .zg-nav-logo img{height:26px !important}
  .zg-burger{width:40px !important;height:40px !important}
  .zg-nav-bar{padding-left:16px !important;padding-right:16px !important;gap:8px !important}
  .nav-links{padding-left:16px !important;padding-right:16px !important}
}

/* Mobile browser chrome makes 100vh overshoot the visible area. */
@supports (height:100svh){
  .zg-chat-panel{max-height:min(560px,calc(100svh - 140px)) !important}
}
