.mapping-hero.has-ortho{grid-template-columns:minmax(0,1fr) minmax(340px,.82fr);align-items:center;gap:3vw}
.mapping-hero.has-ortho>div:first-child{max-width:820px}
.ortho-float{position:relative;z-index:2;display:grid;place-items:center;align-self:stretch;min-height:430px;pointer-events:none}
.ortho-float:before{content:"ORTHOMOSAIC · REALITY CAPTURE";position:absolute;right:5%;top:12%;color:#57ddf5;font-size:8px;font-weight:900;letter-spacing:.17em}
.ortho-float img{display:block;width:min(48vw,680px);max-height:64vh;object-fit:contain;filter:drop-shadow(0 32px 34px rgba(0,0,0,.48)) drop-shadow(0 0 24px rgba(87,221,245,.2));animation:orthoFloat 7s ease-in-out infinite;transform:rotate(4deg);transform-origin:50% 55%}
@keyframes orthoFloat{0%,100%{transform:translate3d(0,4px,0) rotate(4deg)}50%{transform:translate3d(0,-16px,0) rotate(2.7deg)}}
@media(max-width:900px){.mapping-hero.has-ortho{grid-template-columns:1fr;padding-bottom:40px}.ortho-float{min-height:330px}.ortho-float img{width:min(82vw,620px);max-height:50vh}}
@media(max-width:520px){.mapping-hero.has-ortho{gap:12px}.ortho-float{min-height:280px}.ortho-float:before{top:3%;right:0}.ortho-float img{width:96vw;max-height:42vh}}
@media(prefers-reduced-motion:reduce){.ortho-float img{animation:none;transform:rotate(3deg)}}
