:root{--zm-yellow:#f5c400;--zm-black:#070707;--zm-ease:cubic-bezier(.22,.8,.22,1)}
html.zm-loading,html.zm-loading body{overflow:hidden!important}
.zm-loader{position:fixed;inset:0;z-index:999999;display:grid;place-items:center;background:radial-gradient(circle at 50% 46%,rgba(245,196,0,.12),transparent 28%),linear-gradient(135deg,#030303,#111 52%,#050505);color:#fff;overflow:hidden;opacity:1;visibility:visible;transition:opacity .6s ease,visibility .6s ease}
.zm-loader::before{content:"";position:absolute;inset:-30%;background:repeating-linear-gradient(118deg,transparent 0 58px,rgba(255,255,255,.018) 59px 60px);animation:zmGrid 9s linear infinite}
.zm-loader.zm-hide{opacity:0;visibility:hidden;pointer-events:none}
.zm-loader.zm-exit{opacity:1;visibility:visible;pointer-events:auto}
.zm-loader-inner{position:relative;width:min(720px,92vw);text-align:center}
.zm-electric-line{position:absolute;left:-30vw;top:48%;width:calc(50% + 30vw);height:2px;opacity:0;background:linear-gradient(90deg,transparent,rgba(245,196,0,.3),var(--zm-yellow));box-shadow:0 0 10px rgba(245,196,0,.9),0 0 30px rgba(245,196,0,.45);animation:zmLine .72s .18s var(--zm-ease) forwards}
.zm-electric-line::after{content:"";position:absolute;right:-4px;top:50%;width:10px;height:10px;border-radius:50%;background:#fff9c5;box-shadow:0 0 10px #fff,0 0 22px var(--zm-yellow),0 0 48px var(--zm-yellow);transform:translateY(-50%);animation:zmImpact .8s .2s ease-out forwards}
.zm-logo-stage{position:relative;display:flex;justify-content:center;align-items:center;padding:30px;opacity:0;transform:scale(.96);animation:zmStage .18s .5s linear forwards}
.zm-loader-logo{display:block;width:min(430px,70vw);height:auto;filter:brightness(0) invert(1);opacity:0;transform:translateY(12px) scale(.98);animation:zmLogo 1s .7s var(--zm-ease) forwards}
.zm-logo-glow{position:absolute;left:50%;top:50%;width:1px;height:1px;border-radius:50%;box-shadow:0 0 28px 20px rgba(245,196,0,.55),0 0 85px 45px rgba(245,196,0,.17);opacity:0;animation:zmGlow 1.1s .65s ease-out forwards}
.zm-sweep{position:absolute;inset:22% 18%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.8),transparent);filter:blur(9px);opacity:0;transform:skewX(-18deg) translateX(-170%);animation:zmSweep .7s 1.35s ease-out forwards}
.zm-loader-label{margin-top:18px;font-size:10px;letter-spacing:4px;text-transform:uppercase;color:rgba(255,255,255,.55);opacity:0;animation:zmFade .35s 1.65s forwards}
.zm-progress{position:relative;width:min(250px,55vw);height:2px;margin:13px auto 0;background:rgba(255,255,255,.12);overflow:hidden;opacity:0;animation:zmFade .3s 1.65s forwards}
.zm-progress::after{content:"";position:absolute;inset:0;background:var(--zm-yellow);box-shadow:0 0 14px rgba(245,196,0,.9);transform:scaleX(0);transform-origin:left;animation:zmProgress .85s 1.7s var(--zm-ease) forwards}
.zm-page-flash{position:absolute;inset:0;background:var(--zm-yellow);transform:scaleX(0);transform-origin:left;opacity:.98}
.zm-loader.zm-exit .zm-page-flash{animation:zmPageFlash .72s var(--zm-ease) forwards}
.zm-loader.zm-exit .zm-loader-inner{opacity:0;transition:opacity .18s ease}
body.zm-ready main,body.zm-ready .neo-header,body.zm-ready .neo-footer,body.zm-ready .neo-whatsapp{opacity:1;transform:none}
body:not(.zm-ready) main,body:not(.zm-ready) .neo-header,body:not(.zm-ready) .neo-footer,body:not(.zm-ready) .neo-whatsapp{opacity:0;transform:translateY(14px)}
main,.neo-header,.neo-footer,.neo-whatsapp{transition:opacity .7s ease,transform .8s var(--zm-ease)}
.zm-reveal{opacity:0;transform:translateY(38px);transition:opacity .85s var(--zm-ease),transform .85s var(--zm-ease)}
.zm-reveal.zm-in{opacity:1;transform:translateY(0)}
.zm-reveal-left{opacity:0;transform:translateX(-42px);transition:opacity .9s var(--zm-ease),transform .9s var(--zm-ease)}
.zm-reveal-left.zm-in{opacity:1;transform:translateX(0)}
.zm-reveal-right{opacity:0;transform:translateX(42px);transition:opacity .9s var(--zm-ease),transform .9s var(--zm-ease)}
.zm-reveal-right.zm-in{opacity:1;transform:translateX(0)}
.route-panel,.showcase-card,.story-photo,.pill,.neo-nav a,.neo-cta a{transition:transform .35s var(--zm-ease),box-shadow .35s ease,filter .35s ease,background-color .35s ease,color .35s ease!important}
.route-panel:hover,.showcase-card:hover,.story-photo:hover{transform:translateY(-8px);box-shadow:0 24px 60px rgba(0,0,0,.16)}
.route-panel:hover,.showcase-card:hover{filter:drop-shadow(0 12px 26px rgba(245,196,0,.16))}
.showcase-card img,.story-photo img{transition:transform .8s var(--zm-ease),filter .5s ease}
.showcase-card:hover img,.story-photo:hover img{transform:scale(1.045);filter:contrast(1.04)}
.pill:hover,.neo-cta a:hover{transform:translateY(-3px);box-shadow:0 12px 34px rgba(245,196,0,.25)}
.neo-nav a{position:relative}
.neo-nav a::after{content:"";position:absolute;left:0;bottom:-6px;width:100%;height:2px;background:var(--zm-yellow);transform:scaleX(0);transform-origin:left;transition:transform .35s var(--zm-ease)}
.neo-nav a:hover::after,.neo-nav a.active::after{transform:scaleX(1)}
.neo-hero-media img{animation:zmHeroFloat 8s ease-in-out infinite}
.neo-bolt{animation:zmBoltPulse 3.8s ease-in-out infinite}
.zm-counter-pop{animation:zmCounterPop .45s var(--zm-ease)}
@keyframes zmGrid{to{transform:translate3d(95px,0,0)}}
@keyframes zmLine{from{opacity:0;transform:translateX(-30px)}to{opacity:1;transform:translateX(0)}}
@keyframes zmImpact{0%{transform:translate(-52vw,-50%) scale(.5);opacity:0}15%{opacity:1}85%{transform:translate(0,-50%) scale(1);opacity:1}100%{transform:translate(8px,-50%) scale(2.8);opacity:0}}
@keyframes zmStage{to{opacity:1}}
@keyframes zmLogo{0%{opacity:0;transform:translateY(12px) scale(.98);filter:brightness(0) invert(1) blur(5px)}55%{opacity:1;filter:brightness(0) saturate(100%) invert(82%) sepia(98%) saturate(1344%) hue-rotate(2deg) brightness(100%) contrast(104%) drop-shadow(0 0 18px rgba(245,196,0,.8))}100%{opacity:1;transform:none;filter:none}}
@keyframes zmGlow{0%{opacity:0;transform:scale(.2)}30%{opacity:1;transform:scale(1.2)}100%{opacity:.2;transform:scale(.75)}}
@keyframes zmSweep{0%{opacity:0;transform:skewX(-18deg) translateX(-170%)}30%{opacity:.85}100%{opacity:0;transform:skewX(-18deg) translateX(270%)}}
@keyframes zmFade{to{opacity:1}}
@keyframes zmProgress{to{transform:scaleX(1)}}
@keyframes zmPageFlash{0%{transform:scaleX(0)}55%{transform:scaleX(1);transform-origin:left}56%{transform-origin:right}100%{transform:scaleX(0);transform-origin:right}}
@keyframes zmHeroFloat{0%,100%{transform:scale(1.01) translate3d(0,0,0)}50%{transform:scale(1.035) translate3d(0,-8px,0)}}
@keyframes zmBoltPulse{0%,100%{filter:drop-shadow(0 0 0 rgba(245,196,0,0))}50%{filter:drop-shadow(0 0 18px rgba(245,196,0,.35))}}
@keyframes zmCounterPop{50%{transform:scale(1.06)}}
@media(max-width:700px){.zm-loader-logo{width:min(340px,76vw)}.zm-logo-stage{padding-inline:14px}.zm-loader-label{letter-spacing:3px}.zm-reveal-left,.zm-reveal-right{transform:translateY(26px)}.route-panel:hover,.showcase-card:hover,.story-photo:hover{transform:none}.neo-hero-media img{animation-duration:10s}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;animation-delay:0ms!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}
