:root { --ink:#0E1116; --sub:#5A6472; --line:#E7E9F0; --coral:#FF6A3D; --sky:#3B82F6; --mint:#10B98A; --violet:#7C5CFF; --pink:#FF5FA2; --amber:#F5A623; }
* { box-sizing:border-box; margin:0; padding:0; }
html { scroll-behavior:smooth; background:#FFFFFF; }
body { background:#FFFFFF; -webkit-font-smoothing:antialiased; overflow-x:hidden; font-family:'IBM Plex Sans',system-ui,sans-serif; color:#0E1116; line-height:1.6; text-wrap:pretty; }
img { display:block; max-width:100%; }
a { color:var(--violet); text-decoration:none; }
a:hover { color:#5B3FE0; }
::selection { background:var(--violet); color:#fff; }

.nav-link:hover { color:#0E1116; }
.btn-quote:hover { background:#000; transform:translateY(-1px); }
.btn-started:hover { background:#000; transform:translateY(-2px); }
.btn-outline:hover { border-color:#0E1116; transform:translateY(-2px); }
.link-outline:hover { border-color:#0E1116; }
.btn-wa:hover { transform:translateY(-2px); }
.footer-link:hover { color:var(--violet); }

@keyframes gbRise { from { opacity:0; transform:translateY(24px); } to { opacity:1; transform:none; } }
@keyframes gbSweep { from { transform:translateX(-40%); } to { transform:translateX(150%); } }
@keyframes gbFloat { 0%,100% { transform:translateY(0); } 50% { transform:translateY(-9px); } }
@keyframes gbBlob { 0%,100% { transform:translate(0,0) scale(1); } 50% { transform:translate(20px,-16px) scale(1.08); } }
@keyframes gbGlow { 0%,100% { box-shadow:0 2px 10px rgba(20,30,60,0.05); border-color:#E7E9F0; transform:translateY(0); } 50% { box-shadow:0 8px 22px rgba(124,92,255,0.20); border-color:#C9BEF6; transform:translateY(-3px); } }
@keyframes gbWordIn { 0% { opacity:0; transform:translateY(14px) rotateX(-40deg); } 60% { opacity:1; } 100% { opacity:1; transform:translateY(0) rotateX(0); } }
@keyframes gbUnderline { from { transform:scaleX(0); } to { transform:scaleX(1); } }
@keyframes gbBlink { 0%,100% { opacity:1; } 50% { opacity:0; } }
@keyframes gbPop { 0%,12% { opacity:0; transform:translateY(8px) scale(0.9); } 24%,86% { opacity:1; transform:translateY(0) scale(1); } 100% { opacity:1; transform:translateY(0) scale(1); } }
@keyframes gbDots { 0%,100% { opacity:0.3; transform:translateY(0); } 50% { opacity:1; transform:translateY(-3px); } }
@keyframes gbFloat2 { 0%,100% { transform:translate(0,0); } 50% { transform:translate(6px,-4px); } }
@keyframes gbOrb1 { 0%,100% { transform:translate(0,0) scale(1); } 50% { transform:translate(60px,40px) scale(1.15); } }
@keyframes gbOrb2 { 0%,100% { transform:translate(0,0) scale(1); } 50% { transform:translate(-50px,50px) scale(1.1); } }
@keyframes gbOrb3 { 0%,100% { transform:translate(0,0) scale(1); } 50% { transform:translate(40px,-30px) scale(1.2); } }
@keyframes gbHalo { 0%,4% { opacity:0; transform:scale(0.6); } 10%,18% { opacity:0.9; transform:scale(2.2); } 26%,100% { opacity:0; transform:scale(0.6); } }
@keyframes gbCardGlow { 0%,4% { box-shadow:0 12px 28px rgba(20,30,60,0.05); border-color:var(--line); } 10%,18% { box-shadow:0 20px 44px var(--glowc,rgba(124,92,255,0.28)); border-color:var(--glowc,rgba(124,92,255,0.5)); } 24%,100% { box-shadow:0 12px 28px rgba(20,30,60,0.05); border-color:var(--line); } }
@keyframes gbRelay { 0%,4% { transform:scale(1); filter:drop-shadow(0 0 0 transparent); } 10%,18% { transform:scale(1.07); filter:drop-shadow(0 12px 22px rgba(124,92,255,0.3)); } 24%,100% { transform:scale(1); filter:drop-shadow(0 0 0 transparent); } }
@keyframes gbCometH { 0% { left:0%; background:var(--coral); box-shadow:0 0 12px 3px var(--coral); } 33% { background:var(--sky); box-shadow:0 0 12px 3px var(--sky); } 66% { background:var(--mint); box-shadow:0 0 12px 3px var(--mint); } 100% { left:100%; background:var(--violet); box-shadow:0 0 12px 3px var(--violet); } }
@keyframes gbCometV { 0% { top:0%; background:var(--coral); box-shadow:0 0 12px 3px var(--coral); } 33% { background:var(--sky); box-shadow:0 0 12px 3px var(--sky); } 66% { background:var(--mint); box-shadow:0 0 12px 3px var(--mint); } 100% { top:100%; background:var(--violet); box-shadow:0 0 12px 3px var(--violet); } }
@keyframes gbScanX { 0%,8% { left:-30%; opacity:0; } 12% { opacity:1; } 40% { left:110%; opacity:1; } 44%,100% { opacity:0; left:110%; } }
@keyframes gbCursorBlink { 0%,50% { opacity:1; } 51%,100% { opacity:0; } }
@keyframes gbBadgePop { 0%,50% { opacity:0; transform:scale(0.4); } 58% { opacity:1; transform:scale(1.18); } 66%,92% { opacity:1; transform:scale(1); } 100% { opacity:0; transform:scale(0.4); } }
@keyframes gbShimmer { 0%,100% { background-position:0% 50%; } 50% { background-position:100% 50%; } }
@keyframes gbRingPulse { 0% { transform:scale(1); opacity:0.55; } 100% { transform:scale(1.8); opacity:0; } }
@keyframes gbStopFloat { 0%,100% { transform:translateY(0); } 50% { transform:translateY(-6px); } }
@keyframes gbChatMsg1 { 0%,4% { opacity:0; transform:translateY(14px); } 8%,88% { opacity:1; transform:translateY(0); } 96%,100% { opacity:0; transform:translateY(14px); } }
@keyframes gbChatMsg2 { 0%,14% { opacity:0; transform:translateY(14px); } 18%,88% { opacity:1; transform:translateY(0); } 96%,100% { opacity:0; transform:translateY(14px); } }
@keyframes gbChatMsg3 { 0%,24% { opacity:0; transform:translateY(14px); } 28%,88% { opacity:1; transform:translateY(0); } 96%,100% { opacity:0; transform:translateY(14px); } }
@keyframes gbChatMsg4 { 0%,34% { opacity:0; transform:translateY(14px); } 38%,88% { opacity:1; transform:translateY(0); } 96%,100% { opacity:0; transform:translateY(14px); } }
@keyframes gbTyping1 { 0%,9% { opacity:0; } 12%,16% { opacity:1; } 18%,100% { opacity:0; } }
@keyframes gbTyping2 { 0%,29% { opacity:0; } 31%,36% { opacity:1; } 38%,100% { opacity:0; } }
@keyframes gbDotBounce { 0%,60%,100% { transform:translateY(0); opacity:0.5; } 30% { transform:translateY(-3px); opacity:1; } }
@keyframes gbIndCycle { 0%,1% { opacity:0; transform:translateY(10px); } 3%,15% { opacity:1; transform:translateY(0); } 16.5%,100% { opacity:0; transform:translateY(-10px); } }
@keyframes gbCrossOut { 0%,42% { opacity:1; transform:translateY(0); } 50%,100% { opacity:0; transform:translateY(-10px); } }
@keyframes gbCrossIn { 0%,42% { opacity:0; transform:translateY(10px); } 50%,100% { opacity:1; transform:translateY(0); } }
@keyframes gbRingSpin { 0%,8% { border-color:var(--coral); transform:rotate(0deg); } 50%,58% { border-color:var(--mint); transform:rotate(300deg); } 92%,100% { border-color:var(--coral); transform:rotate(0deg); } }
@keyframes gbCardCycle { 0% { opacity:0; transform:translateY(12px) scale(0.95) rotateX(8deg); } 3%,22% { opacity:1; transform:translateY(0) scale(1) rotateX(0deg); } 25%,100% { opacity:0; transform:translateY(-12px) scale(0.95) rotateX(-8deg); } }

[data-gb-track] { --gb-dir:row; --gb-stopdir:column; --gb-stopalign:center; --gb-stopw:240px; --gb-showh:block; --gb-showv:none; --gb-texta:center; --gb-showrow:block; --gb-showcarousel:none; }
@media (max-width:720px) {
  [data-gb-track] { --gb-dir:column; --gb-stopdir:row; --gb-stopalign:flex-start; --gb-stopw:100%; --gb-showh:none; --gb-showv:block; --gb-texta:left; --gb-showrow:none; --gb-showcarousel:flex; }
}
[data-gb-hero] { --gb-heroratio:1.85; --gb-cardw:72%; --gb-cardtop:50%; }
@media (max-width:720px) {
  [data-gb-hero] { --gb-heroratio:0.85; --gb-cardw:88%; --gb-cardtop:38%; }
}
[data-gb-resp] { --gb-cpad-a:70px; --gb-cfoot-pt:44px; --gb-cfoot-pb:30px; --gb-cgap:32px; --gb-wordfs:clamp(1.9rem,5.2vw,3.4rem); --gb-cloud1:block; --gb-cloud2:none; }
@media (max-width:720px) {
  [data-gb-resp] { --gb-cpad-a:40px; --gb-cfoot-pt:26px; --gb-cfoot-pb:18px; --gb-cgap:12px; --gb-wordfs:clamp(1.3rem,8.5vw,2.1rem); --gb-cloud1:none; --gb-cloud2:flex; }
}

.tpl-card { position:absolute; border-radius:16px; overflow:hidden; border:1px solid rgba(14,17,22,0.08); background:#FFFFFF; box-shadow:0 30px 70px rgba(20,30,60,0.18); transition:transform .9s cubic-bezier(.2,.7,.2,1), opacity .9s ease, filter .9s ease; pointer-events:none; }
.ask-panel { position:absolute; right:1%; bottom:2%; width:min(54%,238px); z-index:8; border:1px solid var(--line); border-radius:14px; background:#FFFFFF; box-shadow:0 20px 50px rgba(20,30,60,0.18); padding:12px 13px; text-align:left; animation:gbFloat 6s ease-in-out infinite; }
.ask-hd { display:flex; align-items:center; justify-content:space-between; margin-bottom:9px; }
.ask-hd span:first-child { font-family:'IBM Plex Mono',monospace; font-size:9.5px; letter-spacing:0.12em; color:#0E1116; }
.ask-x { width:12px; height:12px; border-radius:4px; border:1px solid #CBD1DD; }
.ask-msg { font-size:12px; line-height:1.5; color:#241653; background:#F4F1FF; border:1px solid #E4DCFF; border-radius:10px; padding:10px 11px; margin-bottom:10px; }
.ask-in { display:flex; align-items:center; gap:8px; background:#F5F6FA; border:1px solid var(--line); border-radius:999px; padding:6px 6px 6px 13px; }
.ask-ph { flex:1; font-family:'IBM Plex Mono',monospace; font-size:9.5px; color:#9AA3B2; }
.ask-send { width:24px; height:24px; border-radius:50%; background:linear-gradient(135deg,#FF6A3D,#7C5CFF); display:grid; place-items:center; color:#fff; font-size:12px; font-weight:700; }

.word-anim { animation:gbWordIn .6s cubic-bezier(.2,.7,.2,1); }
.underline-anim { animation:gbUnderline .6s cubic-bezier(.2,.7,.2,1) both; }
