/* Motion choreography follows the supplied landing-page showreel: frame zoom,
   staggered hero, blue ribbon reveal, route drawing, and directional sections. */
.page-shell{transform-origin:top center;animation:site-zoom 1.05s cubic-bezier(.19,1,.22,1) both}
.site-header{animation:header-drop .85s .2s cubic-bezier(.19,1,.22,1) both}
.hero h1.hero-enter{animation:none}
.hero-line{display:block;overflow:hidden;line-height:1.13;padding-bottom:.035em;margin-bottom:-.035em}
.hero-line>span{display:block;transform:translateY(112%);animation:line-rise .92s cubic-bezier(.16,1,.3,1) both}
.hero-line:nth-child(1)>span{animation-delay:.35s}
.hero-line:nth-child(2)>span{animation-delay:.49s}
.hero-line:nth-child(3)>span{animation-delay:.63s}
.hero-copy .eyebrow.hero-enter{animation:hero-in .75s .32s both}
.hero-copy .hero-description.hero-enter{animation:hero-in .82s .91s both}
.hero-copy .hero-actions.hero-enter{animation:hero-in .82s 1.08s both}
.hero-copy .hero-footnote.hero-enter{animation:hero-in .82s 1.23s both}
.hero-visual.hero-enter{--hero-shift:0px;--tilt-x:0deg;--tilt-y:0deg;animation:hero-stage-in 1.18s .48s cubic-bezier(.16,1,.3,1) backwards;transform:translateY(var(--hero-shift)) rotateX(var(--tilt-x)) rotateY(var(--tilt-y));transition:transform .48s cubic-bezier(.2,.8,.2,1)}
.parcel-motion{width:100%;min-width:0;animation:parcel-arrive 1.3s .62s cubic-bezier(.16,1,.3,1) both}
.parcel-motion img{animation:hero-float 6.5s 1.95s ease-in-out infinite}
.floating-note-top{animation:note-pop .62s 1.28s cubic-bezier(.2,1.4,.35,1) both,note-float 5.6s 1.9s ease-in-out infinite}
.floating-note-bottom{animation:note-pop .62s 1.48s cubic-bezier(.2,1.4,.35,1) both,note-float 6.1s 2.1s ease-in-out infinite}
.hero-stamp{animation:stamp-arrive .95s 1.36s cubic-bezier(.18,1.3,.3,1) both}
.motion-ready .motion-band{clip-path:inset(0 100% 0 0);transition:clip-path 1.12s cubic-bezier(.18,1,.3,1)}
.motion-ready .motion-band.is-visible{clip-path:inset(0 0 0 0)}
.motion-band strong,.motion-band>span:first-child{transition:opacity .55s,transform .65s cubic-bezier(.18,1,.3,1)}
.motion-ready .motion-band:not(.is-visible) strong,.motion-ready .motion-band:not(.is-visible)>span:first-child{opacity:0;transform:translateY(28px)}
.motion-band strong:nth-of-type(1){transition-delay:.32s}.motion-band strong:nth-of-type(2){transition-delay:.43s}.motion-band strong:nth-of-type(3){transition-delay:.54s}.motion-band strong:nth-of-type(4){transition-delay:.65s}
.motion-ready .section-heading.reveal{transform:translateY(70px) scale(.96)}
.motion-ready .section-heading.reveal.is-visible{transform:none}
.motion-ready .services-grid .service-card.reveal:nth-child(odd){transform:translate(-80px,70px) rotate(-2deg) scale(.94);opacity:0}
.motion-ready .services-grid .service-card.reveal:nth-child(even){transform:translate(80px,70px) rotate(2deg) scale(.94);opacity:0}
.motion-ready .services-grid .service-card.reveal.is-visible{transform:none;opacity:1}
.service-card.is-visible .service-icon{animation:icon-arrive .8s .22s cubic-bezier(.16,1,.3,1) backwards}
.service-card:hover .service-icon{animation:none}
.journey-section{display:grid;grid-template-columns:1.1fr .9fr;align-items:center;gap:clamp(45px,6vw,95px);padding-top:120px}
.journey-visual{height:430px;border:1px solid #e1ecfa;border-radius:34px;background:radial-gradient(circle at 36% 45%,#fff 0,#f4f9ff 51%,#e9f3ff 100%);position:relative;overflow:hidden;box-shadow:0 25px 52px #1b5dac12}
.journey-map-grid{position:absolute;inset:0;background-image:radial-gradient(#82b4f25e 1.2px,transparent 1.2px);background-size:21px 21px;mask-image:radial-gradient(ellipse at 55% 50%,#000 18%,transparent 72%);opacity:.7}
.journey-route{position:absolute;inset:0;width:100%;height:100%;overflow:visible}
.route-shadow{stroke-dasharray:7 13;opacity:.8}
.route-path{stroke-dasharray:1;stroke-dashoffset:1;filter:drop-shadow(0 0 4px #70b3ff)}
.journey-visual.is-visible .route-path{animation:draw-route 1.65s .23s cubic-bezier(.23,.7,.3,1) forwards}
.journey-pin{position:absolute;z-index:2;display:flex;flex-direction:column;align-items:center;gap:7px;opacity:0;transform:translateY(22px) scale(.6)}
.journey-pin-one{left:5%;top:65%}.journey-pin-two{left:44%;top:34%}.journey-pin-three{right:4%;top:10%}
.pin-icon{display:grid;place-items:center;width:58px;height:58px;border-radius:50%;background:#1262d9;color:#fff;font-weight:800;box-shadow:0 11px 25px #1262d957;border:5px solid #fff}
.journey-pin strong{padding:6px 11px;background:white;border-radius:999px;box-shadow:0 8px 18px #1c4c8d18;font-size:12px;color:#234065}
.journey-visual.is-visible .journey-pin{animation:pin-arrive .7s cubic-bezier(.2,1.5,.35,1) both}
.journey-visual.is-visible .journey-pin-one{animation-delay:.48s}.journey-visual.is-visible .journey-pin-two{animation-delay:.95s}.journey-visual.is-visible .journey-pin-three{animation-delay:1.49s}
.route-packet{position:absolute;z-index:3;left:65%;top:57%;width:62px;height:62px;display:grid;place-items:center;background:#fff;color:#1262d9;border-radius:18px;box-shadow:0 15px 35px #1254ad30;opacity:0}
.route-packet svg{width:35px}
.journey-visual.is-visible .route-packet{animation:packet-arrive .65s 1.08s cubic-bezier(.2,1.5,.35,1) both,packet-bob 5s 1.74s ease-in-out infinite}
.map-spark{position:absolute;color:#2b7ee8;font-size:32px;opacity:.7}.map-spark-one{left:25%;top:19%}.map-spark-two{right:26%;bottom:15%;font-size:22px}
.journey-copy .eyebrow{margin-bottom:20px}
.journey-copy h2{font-size:clamp(38px,3.8vw,56px);font-weight:800;letter-spacing:-.07em;line-height:1.17;margin:0 0 21px}
.journey-copy h2 span{color:#1261d8}
.journey-copy>p:not(.eyebrow){font-size:17px;line-height:1.7;color:#63738b;max-width:460px;margin-bottom:26px}
.motion-ready .journey-visual.reveal{opacity:0;transform:translateX(-95px) scale(.88)}
.motion-ready .journey-copy.reveal{opacity:0;transform:translateX(95px)}
.motion-ready .journey-visual.reveal.is-visible,.motion-ready .journey-copy.reveal.is-visible{opacity:1;transform:none}
.motion-ready .callout.reveal{opacity:0;transform:translateY(95px) scale(.89);transition-duration:1s}
.motion-ready .callout.reveal.is-visible{opacity:1;transform:none}
.motion-ready .process-panel .process-item.reveal:nth-child(odd){opacity:0;transform:translateX(-68px) translateY(24px)}
.motion-ready .process-panel .process-item.reveal:nth-child(even){opacity:0;transform:translateX(68px) translateY(24px)}
.motion-ready .process-panel .process-item.reveal.is-visible{opacity:1;transform:none}
.process-panel{position:relative}
.process-panel::before{content:"";position:absolute;left:50px;right:50px;top:29px;height:2px;background:#a8cbf9;transform:scaleX(0);transform-origin:left;transition:transform 1.15s .15s cubic-bezier(.18,1,.3,1)}
.process-panel.is-visible::before{transform:scaleX(1)}
.motion-ready .contact-copy.reveal{opacity:0;transform:translateX(-95px)}
.motion-ready .contact-form.reveal{opacity:0;transform:translateX(95px) scale(.96)}
.motion-ready .contact-copy.reveal.is-visible,.motion-ready .contact-form.reveal.is-visible{opacity:1;transform:none}
.button{position:relative;isolation:isolate;overflow:hidden}
.button::before{content:"";position:absolute;inset:-1px;background:linear-gradient(110deg,transparent 25%,#ffffff42 50%,transparent 75%);transform:translateX(-130%);transition:transform .7s ease;pointer-events:none;z-index:-1}
.button:hover::before{transform:translateX(130%)}
@keyframes site-zoom{from{opacity:.6;transform:translateY(24px) scale(.945)}to{opacity:1;transform:translateY(0) scale(1)}}
@keyframes header-drop{from{opacity:0;transform:translateY(-38px)}to{opacity:1;transform:translateY(0)}}
@keyframes line-rise{from{opacity:.15;transform:translateY(112%)}to{opacity:1;transform:translateY(0)}}
@keyframes hero-stage-in{from{opacity:0;transform:translate(95px,42px) rotate(5deg) scale(.84)}to{opacity:1;transform:translateY(0) rotate(0) scale(1)}}
@keyframes parcel-arrive{from{opacity:0;transform:translate(75px,32px) rotate(-9deg) scale(.75)}to{opacity:1;transform:translate(0) rotate(0) scale(1)}}
@keyframes note-pop{from{opacity:0;transform:translateY(23px) scale(.5)}to{opacity:1;transform:translateY(0) scale(1)}}
@keyframes stamp-arrive{from{opacity:0;transform:rotate(-65deg) scale(.25)}to{opacity:1;transform:rotate(9deg) scale(1)}}
@keyframes icon-arrive{from{opacity:0;transform:translateY(38px) rotate(-14deg) scale(.55)}to{opacity:.88;transform:none}}
@keyframes draw-route{to{stroke-dashoffset:0}}
@keyframes pin-arrive{to{opacity:1;transform:translateY(0) scale(1)}}
@keyframes packet-arrive{from{opacity:0;transform:translate(-50%,-30%) rotate(-22deg) scale(.25)}to{opacity:1;transform:translate(-50%,-50%) rotate(0) scale(1)}}
@keyframes packet-bob{0%,100%{transform:translate(-50%,-50%)}50%{transform:translate(-50%,-59%)}}
@media(max-width:760px){
  .page-shell{animation:none}.site-header{animation:header-drop .7s .06s both}
  .hero-line>span{animation-duration:.78s}
  .hero-visual.hero-enter{animation-duration:.98s;animation-delay:.36s;transform:none!important}
  .parcel-motion{animation-duration:1s}
  .motion-ready .services-grid .service-card.reveal:nth-child(odd),.motion-ready .services-grid .service-card.reveal:nth-child(even){transform:translateY(65px) scale(.92)}
  .motion-ready .services-grid .service-card.reveal.is-visible{transform:none}
  .journey-section{grid-template-columns:1fr;gap:34px;padding-top:87px}
  .journey-visual{height:320px;border-radius:27px}
  .journey-copy{order:-1}.journey-copy h2{font-size:42px}
  .journey-copy>p:not(.eyebrow){font-size:16px}
  .pin-icon{width:44px;height:44px;border-width:4px;font-size:12px}
  .journey-pin strong{font-size:10px;padding:5px 8px}
  .route-packet{width:47px;height:47px;border-radius:14px}.route-packet svg{width:26px}
  .map-spark{font-size:20px}
  .process-panel::before{left:28px;right:auto;top:35px;bottom:35px;width:2px;height:auto;transform:scaleY(0);transform-origin:top}
  .process-panel.is-visible::before{transform:scaleY(1)}
  .motion-ready .process-panel .process-item.reveal:nth-child(odd),.motion-ready .process-panel .process-item.reveal:nth-child(even){transform:translateY(55px)}
  .motion-ready .process-panel .process-item.reveal.is-visible{transform:none}
  .motion-ready .contact-copy.reveal,.motion-ready .contact-form.reveal{transform:translateY(65px)}
  .motion-ready .contact-copy.reveal.is-visible,.motion-ready .contact-form.reveal.is-visible{transform:none}
}
@media(prefers-reduced-motion:reduce){
  .page-shell,.site-header,.hero-line>span,.hero-visual.hero-enter,.parcel-motion,.parcel-motion img,.floating-note,.hero-stamp,.service-card.is-visible .service-icon,.journey-visual.is-visible .route-path,.journey-visual.is-visible .journey-pin,.journey-visual.is-visible .route-packet{animation:none!important}
  .hero-line>span{transform:none}
  .route-path{stroke-dashoffset:0}.journey-pin,.route-packet{opacity:1;transform:none}
  .motion-ready .motion-band{clip-path:none;transition:none}
  .motion-ready .motion-band:not(.is-visible) strong,.motion-ready .motion-band:not(.is-visible)>span:first-child{opacity:1;transform:none}
  .motion-ready .reveal,.motion-ready .section-heading.reveal,.motion-ready .services-grid .service-card.reveal,.motion-ready .journey-visual.reveal,.motion-ready .journey-copy.reveal,.motion-ready .callout.reveal,.motion-ready .process-panel .process-item.reveal,.motion-ready .contact-copy.reveal,.motion-ready .contact-form.reveal{opacity:1!important;transform:none!important;transition:none!important}
  .process-panel::before{transform:none}
}
