.et_pb_module:has(#mvanim), .et_pb_code_inner:has(#mvanim), .elementor-widget:has(#mvanim), .elementor-widget-container:has(#mvanim){ flex:1 1 100%; width:100%; max-width:100%; min-width:0; }
#mvanim{ min-width:min(300px, 100vw - 40px); }
#mvanim{ display:block; width:100%; font-family:"Figtree", system-ui, -apple-system, "Segoe UI", sans-serif; line-height:normal; }
#mvanim *, #mvanim *::before, #mvanim *::after{ box-sizing:border-box; }
#mvanim .mv-vp{ container-type:inline-size; position:relative; width:min(100%,960px); height:420px; margin:0 auto; overflow:hidden; border-radius:18px; }
#mvanim .mv-stage{ position:absolute; left:0; top:0; width:960px; height:420px; transform-origin:0 0; }
#mvanim .mv-stage svg{ display:block; width:960px; height:420px; transition:opacity .5s; }
#mvanim .mv-stage.fade svg{ opacity:0; }
#mvanim .mv-cap{ position:absolute; left:50%; top:16px; padding:8px 18px; border-radius:999px; background:#141414; color:#FFC20E; font-size:15px; font-weight:600; white-space:nowrap; opacity:0; transform:translate(-50%,-6px); transition:opacity .35s, transform .35s; }
#mvanim .mv-cap.show{ opacity:1; transform:translate(-50%,0); }
/* End call to action */
#mvanim .mv-cta{ position:absolute; inset:0; display:grid; place-items:start center; padding-top:clamp(10px,4.5cqw,44px); background:rgba(20,20,20,.28); opacity:0; pointer-events:none; transition:opacity .5s; }
#mvanim .mv-cta.show{ opacity:1; pointer-events:auto; }
#mvanim .mv-card{ max-width:88%; padding:clamp(12px,3.4cqw,32px) clamp(16px,4.4cqw,44px); border-radius:18px; background:#141414; text-align:center; box-shadow:0 24px 48px -20px rgba(0,0,0,.6); transform:translateY(14px) scale(.96); transition:transform .55s cubic-bezier(.3,1.4,.5,1); }
#mvanim .mv-cta.show .mv-card{ transform:none; }
#mvanim .mv-ctah{ margin:0 0 clamp(8px,2cqw,20px); color:#fff; font-size:clamp(15px,3.3cqw,32px); font-weight:600; line-height:1.2; }
#mvanim .mv-ctah span{ color:#FFC20E; }
#mvanim a.mv-btn{ display:inline-block; padding:clamp(7px,1.4cqw,14px) clamp(16px,2.8cqw,30px); border-radius:999px; background:#FFC20E; color:#141414; font-size:clamp(13px,1.8cqw,17px); font-weight:600; text-decoration:none; transition:transform .15s, background-color .2s; }
#mvanim a.mv-btn:hover{ background:#FFD84D; transform:translateY(-1px); }
#mvanim a.mv-btn:focus-visible{ outline:3px solid #fff; outline-offset:3px; }
/* People */
#mvanim .leg{ transform-box:fill-box; transform-origin:50% 0; }
#mvanim .walking .legL{ animation:mv-leg .34s ease-in-out infinite alternate; }
#mvanim .walking .legR{ animation:mv-leg .34s ease-in-out infinite alternate-reverse; }
@keyframes mv-leg{ from{ transform:rotate(24deg); } to{ transform:rotate(-24deg); } }
#mvanim .walking .bob{ animation:mv-bob .17s ease-in-out infinite alternate; }
@keyframes mv-bob{ from{ transform:translateY(0); } to{ transform:translateY(-3px); } }
#mvanim .jumping .bob{ animation:mv-jump .6s ease-in-out infinite; }
@keyframes mv-jump{ 0%,100%{ transform:translateY(0); } 45%{ transform:translateY(-20px); } }
#mvanim .armFwd, #mvanim .cbox, #mvanim .armWave{ display:none; }
#mvanim .carry .armFwd, #mvanim .carry .cbox, #mvanim .hands .armFwd{ display:inline; }
#mvanim .carry .armDown, #mvanim .hands .armDown, #mvanim .waving .armDown{ display:none; }
#mvanim .waving .armWave{ display:inline; }
#mvanim .armWave{ transform-box:fill-box; transform-origin:50% 100%; animation:mv-wave .45s ease-in-out infinite alternate; }
@keyframes mv-wave{ from{ transform:rotate(-20deg); } to{ transform:rotate(24deg); } }
/* Truck */
#mvanim .slot{ opacity:0; transform-box:fill-box; transform-origin:50% 100%; transform:scale(.6); transition:opacity .25s, transform .4s cubic-bezier(.3,1.5,.5,1); }
#mvanim .slot.on{ opacity:1; transform:none; }
#mvanim .shutter{ transform-box:fill-box; transform-origin:50% 0; transform:scaleY(0); transition:transform .8s cubic-bezier(.5,0,.3,1); }
#mvanim .shutter.down{ transform:scaleY(1); }
#mvanim .spin{ transform-box:fill-box; transform-origin:center; animation:mv-spin .45s linear infinite; animation-play-state:paused; }
@keyframes mv-spin{ to{ transform:rotate(360deg); } }
#mvanim .moving .truckbody{ animation:mv-tbob .26s ease-in-out infinite alternate; }
@keyframes mv-tbob{ from{ transform:translateY(0); } to{ transform:translateY(-2.5px); } }
#mvanim .puffs{ opacity:0; transition:opacity .3s; }
#mvanim .moving .puffs{ opacity:1; }
#mvanim .puff{ transform-box:fill-box; transform-origin:center; animation:mv-puff 1s ease-out infinite; }
@keyframes mv-puff{ from{ transform:translate(0,0) scale(.6); opacity:.7; } to{ transform:translate(-56px,-16px) scale(2.3); opacity:0; } }
/* Scenery */
#mvanim .tile-hills{ animation:mv-h 6s linear infinite; animation-play-state:paused; }
#mvanim .tile-trees{ animation:mv-t 1.1s linear infinite; animation-play-state:paused; }
#mvanim .dashes{ animation:mv-d .26s linear infinite; animation-play-state:paused; }
#mvanim .moving .tile-hills, #mvanim .moving .tile-trees, #mvanim .moving .dashes, #mvanim .moving .spin{ animation-play-state:running; }
@keyframes mv-h{ to{ transform:translateX(-480px); } }
@keyframes mv-t{ to{ transform:translateX(-240px); } }
@keyframes mv-d{ to{ transform:translateX(-80px); } }
#mvanim .cloud{ animation:mv-cloud 46s linear infinite; }
@keyframes mv-cloud{ to{ transform:translateX(-1240px); } }
/* Weather */
#mvanim .mv-sun{ transition:opacity 1s; }
#mvanim .stormy .mv-sun{ opacity:0; }
#mvanim .mv-dark{ opacity:0; transition:opacity 1.2s; }
#mvanim .stormy .mv-dark{ opacity:.4; }
#mvanim .mv-storm{ opacity:0; transform:translateY(-40px); transition:opacity 1.2s, transform 1.2s; }
#mvanim .stormy .mv-storm{ opacity:1; transform:none; }
#mvanim .mv-rain{ opacity:0; transition:opacity .8s; }
#mvanim .raining .mv-rain{ opacity:1; }
#mvanim .mv-raintile{ animation:mv-rain .42s linear infinite; }
@keyframes mv-rain{ to{ transform:translateY(420px); } }
#mvanim .mv-wind{ opacity:0; transition:opacity .8s; }
#mvanim .windy .mv-wind{ opacity:1; }
#mvanim .streak{ animation:mv-streak 1.3s linear infinite; }
@keyframes mv-streak{ from{ transform:translateX(1000px); } to{ transform:translateX(-300px); } }
#mvanim .leaf{ transform-box:fill-box; transform-origin:center; animation:mv-leaf 1.7s linear infinite; }
@keyframes mv-leaf{ from{ transform:translate(1000px,0) rotate(0); } to{ transform:translate(-260px,70px) rotate(900deg); } }
#mvanim .sway{ transform-box:fill-box; transform-origin:50% 100%; }
#mvanim .windy .sway{ animation:mv-sway .5s ease-in-out infinite alternate; }
@keyframes mv-sway{ from{ transform:rotate(-5deg); } to{ transform:rotate(9deg); } }
/* Route map */
#mvanim .mv-map{ opacity:0; transform:translateY(-12px); transition:opacity .5s, transform .5s; }
#mvanim .mv-map.show{ opacity:1; transform:none; }
#mvanim .wx{ opacity:0; transform-box:fill-box; transform-origin:center; transform:scale(.4); transition:opacity .3s, transform .45s cubic-bezier(.3,1.6,.5,1); }
#mvanim .wx.on{ opacity:1; transform:none; }
/* Celebration */
#mvanim .star{ transform-box:fill-box; transform-origin:center; animation:mv-star 1.3s ease-out forwards; }
@keyframes mv-star{ 0%{ opacity:0; transform:translate(0,0) scale(.4); } 20%{ opacity:1; } 100%{ opacity:0; transform:translate(var(--dx),-48px) scale(1.15) rotate(var(--r)); } }
@media (prefers-reduced-motion: reduce){
  #mvanim *{ animation:none !important; transition:none !important; }
}
