@keyframes glGlowMove{0%,to{transform:translate(-50%,-50%) scale(1)}50%{transform:translate(-50%,-50%) scale(1.15)}}@keyframes glLiveBlink{0%,to{opacity:1}50%{opacity:.25}}.gl-live-dot{animation:glLiveBlink 1.4s ease-in-out infinite}@keyframes glSceneIn{0%{opacity:0;transform:translateY(10px) scale(.985)}to{opacity:1;transform:translateY(0) scale(1)}}.gl-scene{animation:glSceneIn .5s cubic-bezier(.22,.68,0,1.1) both}@keyframes glRise{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}.gl-rise{animation:glRise .7s cubic-bezier(.22,.68,0,1.1) both}@keyframes glWordIn{0%{opacity:0;transform:translateY(.45em)}to{opacity:1;transform:translateY(0)}}.gl-word{display:inline-block;animation:glWordIn .45s cubic-bezier(.22,.68,0,1.2) both}@keyframes glCursorMove{0%{left:30%;top:62%;opacity:0}8%{opacity:1}45%{left:50%;top:46%}60%{left:50%;top:46%;opacity:1}68%{opacity:0}to{opacity:0}}.gl-cursor{animation:glCursorMove 3.6s ease-in-out infinite}@keyframes glWobble{0%,to{transform:rotate(var(--rot,0deg)) translateY(0)}50%{transform:rotate(calc(var(--rot,0deg) * -1)) translateY(-10px)}}.gl-sticker{animation:glWobble 4.5s ease-in-out infinite}@keyframes glToastIn{0%{opacity:0;transform:translateY(10px) translateX(0)}to{opacity:1;transform:translateY(0)}}.gl-toast{animation:glToastIn .4s cubic-bezier(.22,.68,0,1.2) both}@keyframes glCounterPulse{0%,to{opacity:1}50%{opacity:.5}}.gl-counter-pulse{animation:glCounterPulse 2s ease-in-out infinite}.gl-cta-primary:hover{transform:translateY(-3px) scale(1.02);box-shadow:0 22px 46px var(--primary)55,0 0 0 1px #ffffff20 inset}.gl-cta-primary:active{transform:translateY(-1px) scale(.99)}.gl-cta-arrow{transition:transform .3s cubic-bezier(.22,.68,0,1.1)}.gl-cta-primary:hover .gl-cta-arrow{transform:translateX(4px)}.gl-cta-secondary:hover{border-color:var(--primary)88;background:rgba(255,255,255,.08);transform:translateY(-3px)}@keyframes glMeshDrift{0%,to{transform:translate(-50%,-50%) rotate(0deg) scale(1)}50%{transform:translate(-48%,-52%) rotate(6deg) scale(1.08)}}.gl-mesh{animation:glMeshDrift 14s ease-in-out infinite}@keyframes glBorderSpin{to{--gl-angle:360deg}}.gl-gradient-border{position:relative}.gl-gradient-border:before{content:"";position:absolute;inset:-1.5px;border-radius:inherit;padding:1.5px;background:linear-gradient(120deg,var(--primary),var(--secondary),var(--accent-2),var(--primary));background-size:300% 300%;-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;animation:glGradientShift 6s ease infinite;pointer-events:none;opacity:.55}@keyframes glGradientShift{0%{background-position:0 50%}50%{background-position:100% 50%}to{background-position:0 50%}}@keyframes glFloatY{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}.gl-float{animation:glFloatY 5s ease-in-out infinite}@keyframes glBadgePop{0%{opacity:0;transform:scale(.7) translateY(8px)}to{opacity:1;transform:scale(1) translateY(0)}}.gl-badge-pop{animation:glBadgePop .5s cubic-bezier(.22,.68,0,1.2) both}@media (prefers-reduced-motion:reduce){.gl-badge-pop,.gl-counter-pulse,.gl-cursor,.gl-float,.gl-gradient-border:before,.gl-live-dot,.gl-mesh,.gl-rise,.gl-scene,.gl-sticker,.gl-toast,.gl-word{animation:none}}.gl-tk-card{transition:transform .3s cubic-bezier(.2,.8,.2,1),box-shadow .3s ease,border-color .3s ease}.gl-tk-card:hover{transform:translateY(-8px) scale(1.015);border-color:var(--gl-acc);box-shadow:0 20px 38px -10px color-mix(in srgb,var(--gl-acc) 40%,transparent)}.gl-tk-media{overflow:hidden}.gl-tk-img{transition:transform .4s ease}.gl-tk-card:hover .gl-tk-img{transform:scale(1.08)}.gl-tk-stat{transition:transform .25s ease,background .25s ease}.gl-tk-card:hover .gl-tk-stat{transform:translateY(-3px)}.gl-tk-card:hover .gl-tk-stat:nth-child(2){transition-delay:.04s}.gl-tk-card:hover .gl-tk-stat:nth-child(3){transition-delay:.08s}.gl-tk-cta-arrow{transition:transform .25s ease}.gl-tk-card:hover .gl-tk-cta-arrow{transform:translateX(-4px)}.gl-tk-card:hover .gl-teach-cursor-glow{opacity:1}@media (prefers-reduced-motion:reduce){.gl-tk-card,.gl-tk-cta-arrow,.gl-tk-img,.gl-tk-stat{transition:none}}.gl-feat-card:hover .gl-feat-glow{opacity:1}.gl-feat-card:hover .gl-feat-icon{transform:scale(1.1) rotate(-4deg)}@media (prefers-reduced-motion:reduce){.gl-feat-card:hover .gl-feat-icon{transform:none}}.gl-teach-track::-webkit-scrollbar{display:none}.gl-teach-track--dragging{scroll-snap-type:none!important}.gl-teach-track--dragging,.gl-teach-track--dragging *{cursor:-webkit-grabbing!important;cursor:grabbing!important}.gl-teach-track--dragging *{-webkit-user-select:none;-moz-user-select:none;user-select:none}@keyframes glTeachRingSpin{to{transform:rotate(1turn)}}@keyframes glTeachUnderline{0%{width:0}to{width:64px}}.gl-teach-underline{animation:glTeachUnderline .7s cubic-bezier(.2,.8,.2,1) .3s both}.gl-teach-card{will-change:transform}.gl-teach-card:hover .gl-teach-img{transform:scale(1.08);filter:saturate(1.08)}.gl-teach-img{transition:transform .5s cubic-bezier(.2,.8,.2,1),filter .5s}.gl-teach-card:hover .gl-teach-cursor-glow{opacity:1}@media (prefers-reduced-motion:reduce){.gl-teach-card,.gl-teach-img{transition:none!important;animation:none!important}}@keyframes glHeroIconFloat{0%,to{transform:translateY(0) rotate(var(--gl-rot,0deg))}50%{transform:translateY(-16px) rotate(calc(var(--gl-rot,0deg) * -1))}}.gl-hero-icon{animation:glHeroIconFloat 7s ease-in-out infinite;will-change:transform}@media (prefers-reduced-motion:reduce){.gl-hero-icon{animation:none}}@keyframes glCtaFloat{0%,to{transform:translateY(0) rotate(0deg)}50%{transform:translateY(-14px) rotate(6deg)}}.gl-cta-deco{animation:glCtaFloat 6s ease-in-out infinite}@media (prefers-reduced-motion:reduce){.gl-cta-deco{animation:none}}@keyframes glAssistantIn{0%{opacity:0;transform:translateY(14px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes glTypingDot{0%,60%,to{opacity:.3}30%{opacity:1}}.gl-typing span{animation:glTypingDot 1.2s infinite}.gl-typing span:nth-child(2){animation-delay:.15s}.gl-typing span:nth-child(3){animation-delay:.3s}.gl-qa-btn{transition:border-color .2s,background .2s,transform .2s}.gl-qa-btn:hover{border-color:var(--primary)88;background:rgba(255,255,255,.08);transform:translateY(-1px)}