@keyframes fadeUp{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{from{opacity:0}to{opacity:1}}@keyframes fadeDown{from{opacity:0;transform:translateY(-12px)}to{opacity:1;transform:translateY(0)}}@keyframes shimmerTeal{0%{transform:translateX(-120%) skewX(-20deg)}100%{transform:translateX(220%) skewX(-20deg)}}@keyframes pulseTeal{0%{box-shadow:0 0 0 0 rgba(26,122,138,0.5);opacity:1}70%{box-shadow:0 0 0 18px rgba(26,122,138,0);opacity:0.8}100%{box-shadow:0 0 0 0 rgba(26,122,138,0);opacity:1}}@keyframes pulseGreen{0%{box-shadow:0 0 0 0 rgba(46,158,107,0.6);transform:scale(1)}50%{box-shadow:0 0 0 8px rgba(46,158,107,0);transform:scale(1.05)}100%{box-shadow:0 0 0 0 rgba(46,158,107,0);transform:scale(1)}}@keyframes drawLine{from{stroke-dashoffset:1000}to{stroke-dashoffset:0}}@keyframes countUp{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes cursorExpand{from{transform:translate(-50%,-50%) scale(1)}to{transform:translate(-50%,-50%) scale(2)}}@keyframes shimmerLoading{0%{background-position:-200% 0}100%{background-position:200% 0}}@keyframes float{0%,100%{transform:translateY(0)}50%{transform:translateY(-10px)}}@keyframes rotateSlow{from{transform:rotate(0deg)}to{transform:rotate(360deg)}}@keyframes scaleIn{from{opacity:0;transform:scale(0.95)}to{opacity:1;transform:scale(1)}}@keyframes slideInRight{from{opacity:0;transform:translateX(24px)}to{opacity:1;transform:translateX(0)}}@keyframes blink{0%,100%{opacity:1}50%{opacity:0.3}}.reveal{opacity:0;transform:translateY(24px);transition:opacity var(--transition-reveal),transform var(--transition-reveal);will-change:opacity,transform}.reveal.visible{opacity:1;transform:translateY(0)}.reveal-delay-1{transition-delay:0.08s}.reveal-delay-2{transition-delay:0.16s}.reveal-delay-3{transition-delay:0.24s}.reveal-delay-4{transition-delay:0.32s}.reveal-delay-5{transition-delay:0.40s}.reveal-delay-6{transition-delay:0.48s}.reveal-fade{opacity:0;transition:opacity var(--transition-reveal)}.reveal-fade.visible{opacity:1}.reveal-scale{opacity:0;transform:scale(0.96);transition:opacity var(--transition-reveal),transform var(--transition-reveal)}.reveal-scale.visible{opacity:1;transform:scale(1)}.reveal-left{opacity:0;transform:translateX(-32px);transition:opacity var(--transition-reveal),transform var(--transition-reveal)}.reveal-left.visible{opacity:1;transform:translateX(0)}.reveal-right{opacity:0;transform:translateX(32px);transition:opacity var(--transition-reveal),transform var(--transition-reveal)}.reveal-right.visible{opacity:1;transform:translateX(0)}[data-count]{display:inline-block;animation:countUp 0.5s ease forwards;opacity:0}[data-count].counted{opacity:1}[data-stagger] .char{display:inline-block;opacity:0;transform:translateY(16px);transition:opacity 0.4s ease,transform 0.4s ease}[data-stagger].visible .char{opacity:1;transform:translateY(0)}.skeleton{background:linear-gradient(90deg,var(--color-surface-alt) 25%,var(--color-border) 50%,var(--color-surface-alt) 75%);background-size:200% 100%;animation:shimmerLoading 1.5s infinite ease-in-out;border-radius:var(--radius-md)}.float-slow{animation:float 6s ease-in-out infinite}.float-medium{animation:float 4s ease-in-out infinite}.dot-available{display:inline-block;width:7px;height:7px;background:var(--color-success);border-radius:50%;animation:blink 2s ease-in-out infinite}.page-enter{animation:fadeIn 0.4s ease forwards}.hamburger-line{display:block;width:24px;height:2px;background:currentColor;border-radius:2px;transition:transform 0.3s ease,opacity 0.3s ease,width 0.3s ease;transform-origin:center;.hamburger-line{transition:background-color 0.25s ease}@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:0.01ms !important;animation-iteration-count:1 !important;transition-duration:0.01ms !important;scroll-behavior:auto !important}.reveal,.reveal-fade,.reveal-scale,.reveal-left,.reveal-right{opacity:1;transform:none;transition:none}[data-stagger] .char{opacity:1;transform:none;transition:none}[data-count]{opacity:1;animation:none}.float-slow,.float-medium{animation:none}.dot-available{animation:none}}