/* Deferred, non-critical CSS extracted from globals */

/* Loader */
.loader{width:var(--loader-size,56px);height:var(--loader-size,56px);position:relative}
.loader::before,.loader::after{content:"";position:absolute;top:50%;left:50%;width:var(--loader-dot,14px);height:var(--loader-dot,14px);margin-left:calc(-1 * var(--loader-dot,14px)/2);margin-top:calc(-1 * var(--loader-dot,14px)/2);border-radius:50%;will-change:transform}
.loader::before{background:var(--loader-left-color,#3877a6);transform-origin:center;animation:orbit-cw var(--loader-speed,.4s) linear infinite}
.loader::after{background:var(--loader-right-color,#12988e);transform-origin:center;animation:orbit-ccw var(--loader-speed,.4s) linear infinite}
@keyframes orbit-cw{from{transform:rotate(0) translateX(calc(var(--loader-size,56px)/2 - var(--loader-dot,14px)/2))}to{transform:rotate(360deg) translateX(calc(var(--loader-size,56px)/2 - var(--loader-dot,14px)/2))}}
@keyframes orbit-ccw{from{transform:rotate(180deg) translateX(calc(var(--loader-size,56px)/2 - var(--loader-dot,14px)/2))}to{transform:rotate(-180deg) translateX(calc(var(--loader-size,56px)/2 - var(--loader-dot,14px)/2))}}

/* Navbar glow and tab styles (mobile) */
@media (max-width:1023px){.navbar-glow{box-shadow:0 0 20px rgba(56,119,166,.3),0 0 40px rgba(56,119,166,.15),inset 0 1px 0 rgba(255,255,255,.2)}.navbar-tab-inactive{position:relative;box-shadow:0 3px 12px rgba(255,255,255,.6),0 6px 24px rgba(56,119,166,.15),inset 0 1px 3px rgba(255,255,255,.8),0 0 0 1px rgba(56,119,166,.12);border:1px solid rgba(56,119,166,.15)}.navbar-tab-inactive:hover{animation:none}.navbar-tab-breathe{animation:enhancedTabPulse 3.5s ease-in-out infinite}}
@keyframes enhancedTabPulse{0%,100%{box-shadow:0 3px 12px rgba(255,255,255,.6),0 6px 24px rgba(56,119,166,.15),inset 0 1px 3px rgba(255,255,255,.8),0 0 0 1px rgba(56,119,166,.12);border-color:rgba(56,119,166,.15)}50%{box-shadow:0 4px 16px rgba(255,255,255,.8),0 8px 32px rgba(56,119,166,.25),inset 0 2px 4px rgba(255,255,255,.9),0 0 0 2px rgba(56,119,166,.2);border-color:rgba(56,119,166,.25)}}

/* Logo smoothing */
img[src*="logo-finagl-07"]{image-rendering:-webkit-optimize-contrast;image-rendering:auto;shape-rendering:geometricPrecision;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;transform:translateZ(0);backface-visibility:hidden}
@media (max-width:768px){img[src*="logo-finagl-07"]{image-rendering:-webkit-optimize-contrast;image-rendering:auto;-webkit-transform:translateZ(0);transform:translateZ(0);will-change:transform}}
@media (-webkit-min-device-pixel-ratio:2),(min-resolution:192dpi){img[src*="logo-finagl-07"]{image-rendering:-webkit-optimize-contrast;image-rendering:auto}}

/* Hamburger */
.hamburger{display:flex;flex-direction:column;justify-content:space-between;width:24px;height:18px;cursor:pointer}
.hamburger span{display:block;width:100%;height:2.5px;background:linear-gradient(90deg,#3877a6 0%,#12988e 100%);border-radius:3px;transition:all .3s cubic-bezier(.4,0,.2,1);transform-origin:center}
.hamburger span:nth-child(2){width:85%;margin:0 auto}
.hamburger span:nth-child(3){width:70%;margin-right:auto}
.hamburger.active span:nth-child(1){transform:translateY(7.75px) rotate(45deg);width:100%}
.hamburger.active span:nth-child(2){opacity:0;transform:scaleX(0)}
.hamburger.active span:nth-child(3){transform:translateY(-7.75px) rotate(-45deg);width:100%}

/* Mobile menu animations */
@keyframes slideDown{from{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}
@keyframes slideUp{from{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-20px)}}
.mobile-menu-enter{animation:slideDown .3s cubic-bezier(.4,0,.2,1) forwards}
.mobile-menu-exit{animation:slideUp .3s cubic-bezier(.4,0,.2,1) forwards}
