/* Realistic drone upgrade; scoped to existing animated photo heroes. */
.real-drone-layer{position:absolute;inset:0;z-index:2;pointer-events:none;overflow:hidden}
.drone-rig{position:absolute;left:68%;top:9%;width:27%;height:auto;max-width:none;transform-origin:center;animation:maison-flight 14s ease-in-out infinite;animation-play-state:paused;filter:drop-shadow(0 5px 7px rgba(0,0,0,.18))}.trail-anchor{position:absolute;left:68%;top:9%;width:27%;height:auto;max-width:none;transform-origin:center;animation:maison-flight 14s ease-in-out infinite;animation-play-state:paused;filter:drop-shadow(0 5px 7px rgba(0,0,0,.18))}
.photo-hero .drone-rig{left:64%;top:4%;width:32%;animation-duration:12s}.photo-hero .trail-anchor{left:64%;top:4%;width:32%;animation-duration:12s}
.flight-ready .drone-rig{animation-play-state:running}.flight-ready .trail-anchor{animation-play-state:running}
@keyframes maison-flight{0%,100%{transform:translate(0,0) rotate(0deg) scale(1)}25%{transform:translate(-10%,7%) rotate(-2deg) scale(.97)}50%{transform:translate(-20%,1%) rotate(1deg) scale(.93)}75%{transform:translate(-7%,5%) rotate(2deg) scale(.98)}}
.flight-toggle{position:absolute;z-index:5;top:18px;left:3vw;padding:9px 13px;min-height:44px;border:1px solid rgba(212,175,90,.7);border-radius:6px;background:rgba(5,5,5,.82);color:#f4dfad;font:500 12px/1.2 var(--font);cursor:pointer}
.flight-toggle:focus-visible{outline:3px solid #fff;outline-offset:3px}
.flight-toggle[hidden]{display:none}
.flight-paused .drone-rig{animation-play-state:paused}.flight-paused .trail-anchor{animation-play-state:paused}
.flight-paused .hud .rec::before{animation-play-state:paused;visibility:visible}
@media(max-width:900px){
  .real-drone-layer,.photo-hero .real-drone-layer{height:56.25vw}
  .drone-rig,.photo-hero .drone-rig{left:57%;top:5%;width:39%}.trail-anchor,.photo-hero .trail-anchor{left:57%;top:5%;width:39%}
  .flight-toggle{left:24px;top:16px;font-size:11px;padding:8px 10px}
  .photo-page-hero .hud,.photo-hero .hud{top:calc(56.25vw - 64px);bottom:auto;right:26px;gap:6px 10px;flex-wrap:wrap;max-width:calc(100% - 52px);justify-content:flex-end;font-size:10px;line-height:1.3}
  .photo-page-hero .hud span:last-child,.photo-hero .hud span:last-child{display:block;flex-basis:100%;text-align:right}
  .photo-hero .pph-frame{height:calc(56.25vw - 40px)}
}
@media(prefers-reduced-motion:reduce){.drone-rig,.flight-ready .drone-rig{animation:none}.trail-anchor,.flight-ready .trail-anchor{animation:none}.hud .rec::before{animation:none;visibility:visible}}

/* ---- Targeted corrections (Oct 2026 review) ---- */
/* Desktop homepage: keep the drone's full flight path clear of the headline ("Readiness") */
@media(min-width:901px){
  .photo-hero.home-full .drone-rig{left:67%;width:29%}.photo-hero.home-full .trail-anchor{left:67%;width:29%}
}
@media(max-width:900px){
  /* Interior headers: the photo sits below a 72px band, so align the flight area, frame and readout with the photo */
  .photo-page-hero .real-drone-layer{top:72px;height:56.25vw}
  .photo-page-hero .pph-frame{top:86px;height:calc(56.25vw - 40px)}
  .photo-page-hero .hud{top:calc(56.25vw + 8px)}
  /* Homepage: keep the frame corners and two-line readout clear of "People. Technology. Opportunity." */
  .photo-hero .pph-frame{height:calc(56.25vw - 64px)}
  .photo-hero .hud{top:calc(56.25vw - 92px)}
}
/* Soft gold dashed flight trail leading into the drone (restored from v66, re-routed through open sky) */
.flight-trail{position:absolute;inset:0;width:100%;height:100%;z-index:2;pointer-events:none;filter:drop-shadow(0 0 2px rgba(0,0,0,.55))}
@media(max-width:900px){
  .photo-hero .flight-trail{height:56.25vw}
  .photo-page-hero .flight-trail{top:72px;height:56.25vw}
}
/* Pause control: small HUD-style pill, kept off the photo subjects */
.flight-toggle{top:20px;left:max(24px,calc((100% - 1180px) / 2));display:inline-flex;align-items:center;gap:7px;min-height:30px;padding:0 12px 0 10px;border:1px solid rgba(212,175,90,.55);border-radius:999px;background:rgba(5,5,5,.38);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);color:#F4DFAD;font:600 10.5px/1 var(--font);letter-spacing:.12em;text-transform:uppercase;text-shadow:0 1px 4px rgba(0,0,0,.6);transition:background .2s,border-color .2s}
.flight-toggle::before{content:"";width:8px;height:9px;flex:none;background:linear-gradient(90deg,#D4AF5A 0 3px,transparent 3px 5px,#D4AF5A 5px 8px)}
.flight-toggle.is-paused::before{width:0;height:0;background:none;border-style:solid;border-width:5px 0 5px 8px;border-color:transparent transparent transparent #D4AF5A}
.flight-toggle:hover{background:rgba(5,5,5,.6);border-color:#D4AF5A}
@media(max-width:900px){
  .flight-toggle{top:21px;left:24px;font-size:10px;padding:0 11px 0 9px}
  .photo-hero .flight-toggle{top:26px;left:30px}
}
/* Oct 2026 refinement: slightly smaller drone on desktop, and a longer sky arc for the trail */
@media(min-width:901px){
  .photo-page-hero .drone-rig{left:62%;top:10%;width:21%}.photo-page-hero .trail-anchor{left:62%;top:10%;width:21%}
  .photo-hero.home-full .drone-rig{left:64.5%;top:6%;width:23%}.photo-hero.home-full .trail-anchor{left:64.5%;top:6%;width:23%}
  .flight-trail .trail-narrow{display:none}
}
@media(max-width:900px){
  .flight-trail .trail-wide{display:none}
}

/* Oct 2026: drone rig = photo + live spinning rotors + attached flight trail */
.drone-rig{display:block}/* Oct 2026: drone rig = photo + live spinning rotors + attached flight trail */
.trail-anchor{display:block}
.drone-rig .real-drone{position:relative;display:block;width:100%;height:auto;max-width:none;filter:drop-shadow(0 5px 7px rgba(0,0,0,.18))}
.drone-rig .rotor{position:absolute;left:calc(var(--x)*1%);top:calc(var(--y)*1%);width:calc(var(--w)*1%);aspect-ratio:1;transform:translate(-50%,-50%) rotate(var(--t)) scaleY(var(--k));pointer-events:none;z-index:1}
.drone-rig .rotor::before{content:"";position:absolute;inset:0;border-radius:50%;background:radial-gradient(circle,transparent 0 8%,rgba(28,28,32,.30) 13%,rgba(190,190,204,.24) 36%,rgba(190,190,204,.19) 76%,rgba(190,190,204,.08) 92%,transparent 100%)}
.drone-rig .rotor i{position:absolute;inset:0;border-radius:50%;
  background:conic-gradient(from 0deg,rgba(16,16,18,.55) 0deg,rgba(16,16,18,.36) 18deg,rgba(16,16,18,.18) 55deg,rgba(16,16,18,.08) 110deg,rgba(16,16,18,.04) 160deg,rgba(16,16,18,.55) 180deg,rgba(16,16,18,.36) 198deg,rgba(16,16,18,.18) 235deg,rgba(16,16,18,.08) 290deg,rgba(16,16,18,.04) 340deg,rgba(16,16,18,.55) 360deg);
  -webkit-mask:radial-gradient(circle,transparent 0 7%,#000 11% 86%,rgba(0,0,0,.4) 95%,transparent 100%);mask:radial-gradient(circle,transparent 0 7%,#000 11% 86%,rgba(0,0,0,.4) 95%,transparent 100%);
  filter:blur(1px);animation:rotor-spin .085s linear infinite}
.drone-rig .rotor.ccw i{animation-name:rotor-spin-ccw;animation-duration:.079s}
@keyframes rotor-spin{to{transform:rotate(360deg)}}
@keyframes rotor-spin-ccw{to{transform:rotate(-360deg)}}
.drone-rig .drone-trail{position:absolute;left:0;top:0;width:400%;height:400%;overflow:visible;pointer-events:none;filter:drop-shadow(0 0 1.5px rgba(0,0,0,.65))}
.drone-rig .drone-trail path{animation:none}
@keyframes trail-flow{to{stroke-dashoffset:36}}
.flight-paused .drone-rig .rotor i,.flight-paused .drone-rig .drone-trail path{animation-play-state:paused}
@media(prefers-reduced-motion:reduce){.drone-rig .rotor i,.drone-rig .drone-trail path{animation:none}}

/* Trail is fixed in the sky (does not move); the drone hovers at its end */
.trail-anchor{position:absolute;animation:none!important;filter:none!important;aspect-ratio:1000/429;pointer-events:none}
.trail-anchor .drone-trail{position:absolute;left:0;top:0;width:400%;height:400%;overflow:visible;pointer-events:none;filter:drop-shadow(0 0 1.5px rgba(0,0,0,.65))}

/* Mobile: invisible 44x44 minimum tap area for the Pause button (no visual change) */
@media(max-width:900px){.flight-toggle::after{content:"";position:absolute;left:50%;top:50%;width:max(100%,44px);height:max(100%,44px);transform:translate(-50%,-50%)}}
