/* "How we inspect": the isometric flight (option A, chosen 7 Oct 2026).
   Loaded only on pages that render droneSection() (lib.mjs). The markup is
   scripts/inspect-stage.mjs; the stage, rings, labels and every movement are
   here. Each lap is one set of CSS animations keyed to .is-lap1/2/3 on the
   section, so switching the class restarts the lap and the picture can never
   drift from the lap buttons; drone.js only moves the class along.
   - .is-held pauses everything in place (off screen, pointer on the stage).
   - .is-rep (keyboard focus on the laps, reduced motion, no JS) shows a
     still of the lap at a representative moment (--rep) instead.
   The keyframes are generated by _work/anim/genFinalA.mjs. */

/* ---------- Section and lap buttons ---------- */
.iso-sec { overflow-x: clip; }
.drone-wrap { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.08fr); gap: clamp(2rem, 1rem + 4vw, 4.5rem); align-items: center; }
/* Stacked (1024 and under), the picture comes straight after the heading
   and above the lap buttons, so pressing a lap changes something in view
   rather than a screen further down. */
@media (max-width: 1024px) {
  .drone-wrap { grid-template-columns: minmax(0, 1fr); row-gap: 0; }
  .drone-wrap > div:first-child { display: contents; }
  .iso-stage { order: 1; margin-bottom: clamp(1.6rem, 1rem + 2vw, 2.4rem); }
  .drone-wrap > div:first-child > :not(.sec-head) { order: 2; }
}
.lap-list { display: grid; gap: .7rem; }
.lap-item {
  position: relative;
  overflow: hidden;
  display: flex;
  gap: 1.05rem;
  padding: 1.15rem 1.3rem;
  border-radius: var(--r);
  border: 1.5px solid var(--line-dark);
  transition: .4s var(--ease-out);
  text-align: left;
  width: 100%;
  align-items: flex-start;
}
.lap-item:hover { border-color: var(--line-dark-2); }
.lap-item.is-live { background: rgba(226, 36, 37, .1); border-color: var(--red); }
.lap-num {
  font-family: var(--font-display);
  font-weight: 800;
  font-size: .8rem;
  letter-spacing: .1em;
  color: var(--gold);
  flex: none;
  padding-top: .18rem;
  font-stretch: 112%;
}
.lap-item.is-live .lap-num { color: var(--red-soft); }
/* Spans, not h4 and p: a button may only hold phrasing content. */
.lap-title { display: block; font-family: var(--font-display); font-weight: 700; font-stretch: 112%; line-height: 1.03; letter-spacing: -.015em; text-wrap: balance; font-size: 1.02rem; color: #fff; margin-bottom: .3rem; }
.lap-text { display: block; font-size: .89rem; color: rgba(255, 255, 255, .62); text-wrap: pretty; }
/* The live lap's clock: when its line fills, drone.js moves to the next lap. */
.lap-bar { position: absolute; left: 0; bottom: 0; height: 2px; width: 100%; background: linear-gradient(90deg, var(--red-deep), var(--red-soft)); transform: scaleX(0); transform-origin: 0 50%; opacity: 0; transition: opacity .3s; }
.lap-i1 { --d: 10s; } .lap-i2 { --d: 11s; } .lap-i3 { --d: 11s; }
.lap-item.is-live .lap-bar { opacity: .9; animation: isoBar var(--d) linear forwards; }
@keyframes isoBar { to { transform: scaleX(1); } }
.drone-note { margin-top: 1.6rem; font-size: .95rem; color: rgba(255, 255, 255, .6); }

/* ---------- Stage ---------- */
.iso-stage{width:100%;max-width:640px;margin-inline:auto}
.iso-hud{display:flex;align-items:center;gap:.6rem;width:max-content;max-width:100%;padding:.42rem .8rem .42rem .5rem;margin-bottom:.4rem;border-radius:999px;background:rgba(25,19,19,.82);border:1px solid var(--line-dark);font-size:.74rem;color:rgba(255,255,255,.78);white-space:nowrap}
.iso-hud b{font-family:var(--font-display);font-weight:800;font-stretch:112%;letter-spacing:.12em;text-transform:uppercase;font-size:.66rem;color:var(--ink);background:var(--red-soft);border-radius:999px;padding:.22rem .5rem;transition:background .4s}
.is-lap3 .iso-hud b{background:var(--gold-soft)}
.iso-hud span{display:none}
.is-lap1 .iso-t1,.is-lap2 .iso-t2,.is-lap3 .iso-t3{display:inline}
.iso-canvas{position:relative;width:100%;aspect-ratio:440/392}
.iso-canvas>svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible}
.iso-ui{position:absolute;inset:0;pointer-events:none}
.iso-sec .fx{opacity:0}
.iso-ring{fill:none;stroke-width:1.2;stroke-dasharray:3 6;opacity:0;transition:opacity .6s}
.iso-r1{stroke:var(--red)}.iso-r2{stroke:var(--red-soft)}.iso-r3{stroke:var(--gold);transition:none}
.is-lap1 .iso-r1,.is-lap2 .iso-r2{opacity:.6}
.is-lap1 .iso-r2,.is-lap2 .iso-r1{opacity:.14}
.iso-trail{fill:none;stroke:var(--gold-soft);stroke-width:2.2;stroke-linecap:round;stroke-dasharray:.1 5.5}
.iso-trailm{stroke-dasharray:100 100;stroke-dashoffset:100}
.iso-pin{color:var(--red-soft);fill:none;stroke:currentColor}.iso-pd{fill:currentColor;stroke:none}.iso-pr{stroke-opacity:.55}.iso-pg{color:var(--gold-soft)}
.iso-hls{fill:none;stroke:var(--gold-soft);stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round}
.iso-mark{fill:#fff;fill-opacity:.12;stroke:#fff;stroke-opacity:.6;stroke-width:.8}.iso-mp{fill:none;stroke:#fff}
.iso-e{fill:none;stroke:#fff;stroke-opacity:.3}.iso-h{stroke:#fff;stroke-opacity:.2;stroke-width:.6}
.iso-disc{fill:#fff;fill-opacity:.07;stroke:#fff;stroke-opacity:.28;stroke-width:.6}
.iso-blur{opacity:0}
.is-lap1 .iso-rot,.is-lap2 .iso-rot{animation:isoSpin .16s linear infinite}
.is-lap1 .iso-rev,.is-lap2 .iso-rev{animation-direction:reverse}
@keyframes isoSpin{to{transform:rotate(360deg)}}
.iso-sight{fill:none;stroke:#fff;stroke-opacity:.5;stroke-width:.8;stroke-dasharray:2 3}
.iso-lab{position:absolute;padding:.24rem .55rem;border-radius:999px;background:rgba(16,12,12,.92);border:1px solid rgba(240,96,95,.6);font-family:var(--font-display);font-stretch:112%;font-weight:700;font-size:clamp(.62rem,.54rem + .3vw,.72rem);letter-spacing:.06em;text-transform:uppercase;color:#fff;white-space:nowrap}
.iso-au{transform:translate(-50%,-100%)}.iso-ad{transform:translate(-50%,0)}.iso-al{transform:translate(-100%,-50%)}.iso-ar{transform:translate(0,-50%)}
.iso-lg{border-color:rgba(217,188,121,.7)}
.iso-report{position:absolute;left:50%;top:17.35%;transform:translate(-50%,-50%);display:flex;align-items:center;gap:.65rem;padding:.55rem .9rem .55rem .55rem;border-radius:14px;background:rgba(36,28,28,.96);border:1px solid var(--line-dark-2);box-shadow:0 16px 40px rgba(0,0,0,.45);white-space:nowrap}
.iso-report i{display:grid;place-items:center;width:30px;height:30px;border-radius:9px;background:var(--red);color:#fff}
.iso-report i svg{width:17px;height:17px}
.iso-report b{display:block;font-family:var(--font-display);font-stretch:112%;font-size:.8rem;color:#fff;letter-spacing:.01em}
.iso-report small{display:block;font-size:.7rem;color:rgba(255,255,255,.64);line-height:1.3}

/* ---------- Lap timelines (generated) ---------- */
@keyframes isoK0{0%{transform:translate(-164.5px,55px)}4.5%{transform:translate(-164.5px,55px)}7.38%{transform:translate(-163.5px,22.2px)}10.25%{transform:translate(-156.5px,-39.6px)}13.13%{transform:translate(-149.4px,-75.9px)}16%{transform:translate(-148.4px,-80.4px)}19.5%{transform:translate(-165.6px,-104.3px)}23%{transform:translate(-171.5px,-129.9px)}26.5%{transform:translate(-165.7px,-155.5px)}30%{transform:translate(-148.6px,-179.4px)}33.5%{transform:translate(-121.4px,-199.9px)}37%{transform:translate(-85.9px,-215.7px)}40.5%{transform:translate(-44.6px,-225.6px)}44%{transform:translate(-.2px,-229px)}47.5%{transform:translate(44.2px,-225.7px)}51%{transform:translate(85.6px,-215.8px)}54.5%{transform:translate(121.1px,-200.1px)}58%{transform:translate(148.4px,-179.6px)}61.5%{transform:translate(165.6px,-155.7px)}65%{transform:translate(171.5px,-130.1px)}68.5%{transform:translate(165.7px,-104.5px)}72%{transform:translate(148.6px,-80.6px)}75.5%{transform:translate(121.4px,-60.1px)}79%{transform:translate(85.9px,-44.3px)}82.5%{transform:translate(44.6px,-34.4px)}86%{transform:translate(.2px,-31px)}89.5%{transform:translate(-44.2px,-34.3px)}93%{transform:translate(-85.6px,-44.2px)}96.5%{transform:translate(-121.1px,-59.9px)}100%{transform:translate(-148.4px,-80.4px)}}
@keyframes isoK1{0%{transform:translate(-165px,55px) scale(1);opacity:1}4.5%{transform:translate(-165px,55px) scale(1);opacity:1}7.38%{transform:translate(-164px,55px) scale(.9);opacity:.92}10.25%{transform:translate(-156px,52px) scale(.71);opacity:.78}13.13%{transform:translate(-149px,50px) scale(.61);opacity:.7}16%{transform:translate(-148px,50px) scale(.59)}19.5%{transform:translate(-166px,26px) scale(.59)}23%{transform:translate(-171px,0px) scale(.59)}26.5%{transform:translate(-166px,-26px) scale(.59)}30%{transform:translate(-149px,-49px) scale(.59)}33.5%{transform:translate(-121px,-70px) scale(.59)}37%{transform:translate(-86px,-86px) scale(.59)}40.5%{transform:translate(-45px,-96px) scale(.59)}44%{transform:translate(0px,-99px) scale(.59)}47.5%{transform:translate(44px,-96px) scale(.59)}51%{transform:translate(86px,-86px) scale(.59)}54.5%{transform:translate(121px,-70px) scale(.59)}58%{transform:translate(148px,-50px) scale(.59)}61.5%{transform:translate(166px,-26px) scale(.59)}65%{transform:translate(171px,0px) scale(.59)}68.5%{transform:translate(166px,26px) scale(.59)}72%{transform:translate(149px,49px) scale(.59)}75.5%{transform:translate(121px,70px) scale(.59)}79%{transform:translate(86px,86px) scale(.59)}82.5%{transform:translate(45px,96px) scale(.59)}86%{transform:translate(0px,99px) scale(.59)}89.5%{transform:translate(-44px,96px) scale(.59)}93%{transform:translate(-86px,86px) scale(.59)}96.5%{transform:translate(-121px,70px) scale(.59)}100%{transform:translate(-148px,50px) scale(.59);opacity:.7}}
@keyframes isoK2{0%{transform:translate(-165px,56px) rotate(-39deg) scale(136,23.6);opacity:0}4.5%{transform:translate(-165px,56px) rotate(-39deg) scale(136,23.6)}7.38%{transform:translate(-164px,23px) rotate(-27deg) scale(117,21.2)}10.25%{transform:translate(-156px,-39px) rotate(5deg) scale(98,18.7)}13.13%{transform:translate(-149px,-75px) rotate(27deg) scale(101,19.1)}16%{transform:translate(-148px,-79px) rotate(29deg) scale(102,19.3);opacity:0}19.5%{transform:translate(-166px,-103px) rotate(32deg) scale(117,21.2);opacity:.38}23%{transform:translate(-171px,-129px) rotate(35deg) scale(125,22.3);opacity:.75}26.5%{transform:translate(-166px,-155px) rotate(39deg) scale(128,22.6);opacity:1}30%{transform:translate(-149px,-178px) rotate(47deg) scale(130,22.9)}33.5%{transform:translate(-121px,-199px) rotate(56deg) scale(130,23)}37%{transform:translate(-86px,-215px) rotate(66deg) scale(127,22.6)}40.5%{transform:translate(-45px,-225px) rotate(78deg) scale(125,22.3)}44%{transform:translate(0px,-228px) rotate(90deg) scale(131,23)}47.5%{transform:translate(44px,-225px) rotate(101deg) scale(137,23.7)}51%{transform:translate(86px,-215px) rotate(111deg) scale(141,24.3)}54.5%{transform:translate(121px,-199px) rotate(121deg) scale(143,24.6)}58%{transform:translate(148px,-179px) rotate(129deg) scale(141,24.3)}61.5%{transform:translate(166px,-155px) rotate(137deg) scale(135,23.6)}65%{transform:translate(171px,-129px) rotate(145deg) scale(125,22.3)}68.5%{transform:translate(166px,-103px) rotate(153deg) scale(111,20.5)}72%{transform:translate(149px,-80px) rotate(158deg) scale(96,18.5)}75.5%{transform:translate(121px,-59px) rotate(162deg) scale(77,16)}79%{transform:translate(86px,-43px) rotate(165deg) scale(53,12.9)}82.5%{transform:translate(45px,-33px) rotate(164deg) scale(28,9.6)}86%{transform:translate(0px,-30px) rotate(91deg) scale(12,7.6)}89.5%{transform:translate(-44px,-33px) rotate(36deg) scale(33,10.3)}93%{transform:translate(-86px,-43px) rotate(29deg) scale(59,13.6)}96.5%{transform:translate(-121px,-59px) rotate(28deg) scale(82,16.7)}100%{transform:translate(-148px,-79px) rotate(29deg) scale(102,19.3);opacity:1}}
@keyframes isoK3{0%{transform:translate(-59px,-29px);opacity:0}16%{transform:translate(-59px,-29px);opacity:0}19.5%{transform:translate(-66px,-42px);opacity:.38}23%{transform:translate(-69px,-57px);opacity:.75}26.5%{transform:translate(-66px,-74px);opacity:1}30%{transform:translate(-59px,-84px)}33.5%{transform:translate(-49px,-91px)}37%{transform:translate(-34px,-98px)}40.5%{transform:translate(-18px,-102px)}44%{transform:translate(0px,-97px)}47.5%{transform:translate(18px,-91px)}51%{transform:translate(34px,-84px)}54.5%{transform:translate(48px,-76px)}58%{transform:translate(59px,-69px)}61.5%{transform:translate(66px,-63px)}65%{transform:translate(69px,-57px)}68.5%{transform:translate(66px,-54px)}72%{transform:translate(59px,-44px)}75.5%{transform:translate(49px,-35px)}79%{transform:translate(34px,-30px)}82.5%{transform:translate(18px,-26px)}86%{transform:translate(0px,-18px)}89.5%{transform:translate(-18px,-14px)}93%{transform:translate(-34px,-15px)}96.5%{transform:translate(-48px,-20px)}100%{transform:translate(-59px,-29px);opacity:1}}
@keyframes isoK4{0%{transform:translate(-148.4px,-80.4px)}2.45%{transform:translate(-148.9px,-82.1px)}4.91%{transform:translate(-149.7px,-93.6px)}7.36%{transform:translate(-135px,-114.1px)}9.82%{transform:translate(-122.3px,-120.5px)}12.27%{transform:translate(-120.3px,-121.2px)}17.5%{transform:translate(-120.3px,-123.2px)}22.73%{transform:translate(-120.3px,-121.2px)}24.64%{transform:translate(-119.1px,-124.4px)}26.55%{transform:translate(-103.9px,-145.4px)}28.45%{transform:translate(-37.2px,-175.4px)}30.36%{transform:translate(1.8px,-178.7px)}32.27%{transform:translate(7.5px,-178.6px)}37.5%{transform:translate(7.5px,-180.6px)}42.73%{transform:translate(7.5px,-178.6px)}45.09%{transform:translate(16.2px,-178.1px)}47.45%{transform:translate(72.3px,-165.1px)}49.82%{transform:translate(121.1px,-97.6px)}52.18%{transform:translate(97.8px,-65.4px)}54.55%{transform:translate(92.3px,-61.5px)}59.77%{transform:translate(92.3px,-63.5px)}65%{transform:translate(92.3px,-61.5px)}66.82%{transform:translate(88.9px,-59.4px)}68.64%{transform:translate(61.5px,-46.9px)}70.45%{transform:translate(-11.8px,-37.6px)}72.27%{transform:translate(-45.7px,-42.4px)}74.09%{transform:translate(-50.3px,-43.5px)}79.32%{transform:translate(-50.3px,-45.5px)}84.55%{transform:translate(-50.3px,-43.5px)}86.36%{transform:translate(-106px,-26.5px)}88.18%{transform:translate(-139.9px,-7.8px)}90%{transform:translate(-157.2px,12.4px)}91.82%{transform:translate(-163.6px,33.5px)}93.64%{transform:translate(-164.5px,55px)}100%{transform:translate(-164.5px,55px)}}
@keyframes isoK5{0%{transform:translate(-148px,50px) scale(.59);opacity:.7}2.45%{transform:translate(-149px,47px) scale(.6);opacity:.7}4.91%{transform:translate(-150px,31px) scale(.61);opacity:.71}7.36%{transform:translate(-135px,0px) scale(.64);opacity:.73}9.82%{transform:translate(-122px,-12px) scale(.66);opacity:.75}12.27%{transform:translate(-120px,-13px) scale(.66);opacity:.75}17.5%{opacity:.74}22.73%{transform:translate(-120px,-13px) scale(.66);opacity:.75}24.64%{transform:translate(-119px,-16px) scale(.66)}26.55%{transform:translate(-104px,-37px) scale(.66)}28.45%{transform:translate(-37px,-67px) scale(.66)}30.36%{transform:translate(2px,-71px) scale(.66)}32.27%{transform:translate(7px,-71px) scale(.66);opacity:.75}37.5%{opacity:.74}42.73%{transform:translate(7px,-71px) scale(.66);opacity:.75}45.09%{transform:translate(16px,-70px) scale(.66)}47.45%{transform:translate(72px,-57px) scale(.66)}49.82%{transform:translate(121px,10px) scale(.66)}52.18%{transform:translate(98px,43px) scale(.66)}54.55%{transform:translate(92px,47px) scale(.66);opacity:.75}59.77%{opacity:.74}65%{transform:translate(92px,47px) scale(.66);opacity:.75}66.82%{transform:translate(89px,49px) scale(.66)}68.64%{transform:translate(62px,61px) scale(.66)}70.45%{transform:translate(-12px,70px) scale(.66)}72.27%{transform:translate(-46px,66px) scale(.66)}74.09%{transform:translate(-50px,64px) scale(.66);opacity:.75}79.32%{opacity:.74}84.55%{transform:translate(-50px,64px) scale(.66);opacity:.75}86.36%{transform:translate(-106px,60px) scale(.73);opacity:.8}88.18%{transform:translate(-140px,57px) scale(.8);opacity:.85}90%{transform:translate(-157px,56px) scale(.86);opacity:.9}91.82%{transform:translate(-164px,55px) scale(.93);opacity:.95}93.64%{transform:translate(-165px,55px) scale(1);opacity:1}100%{transform:translate(-165px,55px) scale(1);opacity:1}}
@keyframes isoK6{0%{transform:translate(-148px,-79px) rotate(29deg) scale(102,19.3);opacity:1}2.45%{transform:translate(-149px,-81px) rotate(29deg) scale(102,19.3)}4.91%{transform:translate(-150px,-93px) rotate(31deg) scale(101,19.1)}7.36%{transform:translate(-135px,-113px) rotate(37deg) scale(83,16.7)}9.82%{transform:translate(-122px,-119px) rotate(43deg) scale(68,14.9)}12.27%{transform:translate(-120px,-120px) rotate(44deg) scale(66,14.6)}17.5%{transform:translate(-120px,-122px) rotate(45deg) scale(67,14.8)}22.73%{transform:translate(-120px,-120px) rotate(44deg) scale(66,14.6)}24.64%{transform:translate(-119px,-123px) rotate(44deg) scale(68,14.8)}26.55%{transform:translate(-104px,-144px) rotate(49deg) scale(77,16)}28.45%{transform:translate(-37px,-174px) rotate(73deg) scale(68,14.9)}30.36%{transform:translate(2px,-178px) rotate(92deg) scale(58,13.6)}32.27%{transform:translate(7px,-178px) rotate(95deg) scale(57,13.4)}37.5%{transform:translate(7px,-180px) rotate(95deg) scale(59,13.6)}42.73%{transform:translate(7px,-178px) rotate(95deg) scale(57,13.4)}45.09%{transform:translate(16px,-177px) rotate(101deg) scale(60,13.8)}47.45%{transform:translate(72px,-164px) rotate(131deg) scale(86,17.2)}49.82%{transform:translate(121px,-97px) rotate(153deg) scale(89,17.6)}52.18%{transform:translate(98px,-64px) rotate(149deg) scale(52,12.8)}54.55%{transform:translate(92px,-60px) rotate(146deg) scale(46,11.9)}59.77%{transform:translate(92px,-62px) rotate(144deg) scale(47,12.1)}65%{transform:translate(92px,-60px) rotate(146deg) scale(46,11.9)}66.82%{transform:translate(89px,-58px) rotate(147deg) scale(44,11.7)}68.64%{transform:translate(62px,-46px) rotate(153deg) scale(30,9.9)}70.45%{transform:translate(-12px,-37px) rotate(47deg) scale(12,7.6)}72.27%{transform:translate(-46px,-41px) rotate(33deg) scale(29,9.8)}74.09%{transform:translate(-50px,-43px) rotate(33deg) scale(32,10.2)}79.32%{transform:translate(-50px,-45px) rotate(36deg) scale(33,10.3)}84.55%{transform:translate(-50px,-43px) rotate(33deg) scale(32,10.2);opacity:1}86.36%{transform:translate(-106px,-26px) rotate(0deg) scale(83,16.7);opacity:.3}88.18%{transform:translate(-140px,-7px) rotate(-9deg) scale(118,21.3);opacity:0}90%{transform:translate(-157px,13px) rotate(-16deg) scale(139,24.1)}91.82%{transform:translate(-164px,34px) rotate(-23deg) scale(152,25.8)}93.64%{transform:translate(-165px,56px) rotate(-30deg) scale(163,27.2)}100%{transform:translate(-165px,56px) rotate(-30deg) scale(163,27.2);opacity:0}}
@keyframes isoK7{0%{transform:translate(-59px,-29px);opacity:1}2.45%{transform:translate(-60px,-31px)}4.91%{transform:translate(-63px,-41px)}7.36%{transform:translate(-69px,-63px)}9.82%{transform:translate(-72px,-73px)}12.27%{transform:translate(-73px,-75px)}22.73%{transform:translate(-73px,-75px)}24.64%{transform:translate(-70px,-76px)}26.55%{transform:translate(-53px,-86px)}28.45%{transform:translate(-17px,-109px)}30.36%{transform:translate(0px,-120px)}32.27%{transform:translate(3px,-121px)}42.73%{transform:translate(3px,-121px)}45.09%{transform:translate(4px,-118px)}47.45%{transform:translate(16px,-99px)}49.82%{transform:translate(41px,-57px)}52.18%{transform:translate(53px,-37px)}54.55%{transform:translate(55px,-35px)}65%{transform:translate(55px,-35px)}66.82%{transform:translate(52px,-34px)}68.64%{transform:translate(35px,-32px)}70.45%{transform:translate(-3px,-28px)}72.27%{transform:translate(-21px,-26px)}74.09%{transform:translate(-23px,-25px)}84.55%{opacity:1}86.36%{opacity:.3}88.18%{opacity:0}100%{transform:translate(-23px,-25px);opacity:0}}
@keyframes isoK8{0%{opacity:0}1%{opacity:0}4.5%{opacity:1}100%{opacity:1}}
@keyframes isoK9{0%{opacity:1}1%{opacity:1}4.5%{opacity:0}100%{opacity:0}}
@keyframes isoKA{0%{opacity:1}92.27%{opacity:1}96.36%{opacity:0}100%{opacity:0}}
@keyframes isoKB{0%{opacity:0}92.27%{opacity:0}96.36%{opacity:1}100%{opacity:1}}
@keyframes isoKC{0%{opacity:0}26.84%{opacity:0}29.34%{opacity:1}95.5%{opacity:1}98%{opacity:0}100%{opacity:0}}
@keyframes isoKD{0%{transform:scale(1);opacity:0}26.84%{opacity:0}26.94%{transform:scale(1);opacity:.9}35.84%{transform:scale(3.2);opacity:0}100%{transform:scale(3.2);opacity:0}}
@keyframes isoKE{0%{opacity:0}91%{opacity:0}93.5%{opacity:1}95.5%{opacity:1}98%{opacity:0}100%{opacity:0}}
@keyframes isoKF{0%{transform:scale(1);opacity:0}91%{opacity:0}91.1%{transform:scale(1);opacity:.9}100%{transform:scale(3.2);opacity:0}}
@keyframes isoKG{0%{opacity:0}82.24%{opacity:0}84.74%{opacity:1}95.5%{opacity:1}98%{opacity:0}100%{opacity:0}}
@keyframes isoKH{0%{transform:scale(1);opacity:0}82.24%{opacity:0}82.34%{transform:scale(1);opacity:.9}91.24%{transform:scale(3.2);opacity:0}100%{transform:scale(3.2);opacity:0}}
@keyframes isoKI{0%{opacity:0}69.49%{opacity:0}71.99%{opacity:1}95.5%{opacity:1}98%{opacity:0}100%{opacity:0}}
@keyframes isoKJ{0%{transform:scale(1);opacity:0}69.49%{opacity:0}69.59%{transform:scale(1);opacity:.9}78.49%{transform:scale(3.2);opacity:0}100%{transform:scale(3.2);opacity:0}}
@keyframes isoKK{0%{opacity:0}43.67%{opacity:0}46.17%{opacity:1}95.5%{opacity:1}98%{opacity:0}100%{opacity:0}}
@keyframes isoKL{0%{transform:scale(1);opacity:0}43.67%{opacity:0}43.77%{transform:scale(1);opacity:.9}52.67%{transform:scale(3.2);opacity:0}100%{transform:scale(3.2);opacity:0}}
@keyframes isoKM{0%{opacity:0}32.04%{opacity:0}34.54%{opacity:1}95.5%{opacity:1}98%{opacity:0}100%{opacity:0}}
@keyframes isoKN{0%{transform:scale(1);opacity:0}32.04%{opacity:0}32.14%{transform:scale(1);opacity:.9}41.04%{transform:scale(3.2);opacity:0}100%{transform:scale(3.2);opacity:0}}
@keyframes isoKO{0%{opacity:0}60.22%{opacity:0}62.72%{opacity:1}95.5%{opacity:1}98%{opacity:0}100%{opacity:0}}
@keyframes isoKP{0%{transform:scale(1);opacity:0}60.22%{opacity:0}60.32%{transform:scale(1);opacity:.9}69.22%{transform:scale(3.2);opacity:0}100%{transform:scale(3.2);opacity:0}}
@keyframes isoKQ{0%{opacity:0}13.18%{opacity:0}15.91%{opacity:1}22.27%{opacity:1}25%{opacity:0}100%{opacity:0}}
@keyframes isoKR{0%{opacity:0}13.18%{opacity:0}15.91%{opacity:1}85%{opacity:1}87.73%{opacity:0}100%{opacity:0}}
@keyframes isoKS{0%{opacity:0}33.18%{opacity:0}35.91%{opacity:1}42.27%{opacity:1}45%{opacity:0}100%{opacity:0}}
@keyframes isoKT{0%{opacity:0}33.18%{opacity:0}35.91%{opacity:1}85%{opacity:1}87.73%{opacity:0}100%{opacity:0}}
@keyframes isoKU{0%{opacity:0}55.45%{opacity:0}58.18%{opacity:1}64.55%{opacity:1}67.27%{opacity:0}100%{opacity:0}}
@keyframes isoKV{0%{opacity:0}55.45%{opacity:0}58.18%{opacity:1}85%{opacity:1}87.73%{opacity:0}100%{opacity:0}}
@keyframes isoKW{0%{opacity:0}75%{opacity:0}77.73%{opacity:1}84.09%{opacity:1}86.82%{opacity:0}100%{opacity:0}}
@keyframes isoKX{0%{opacity:0}75%{opacity:0}77.73%{opacity:1}85%{opacity:1}87.73%{opacity:0}100%{opacity:0}}
@keyframes isoKY{0%{opacity:0}11.42%{opacity:0}12.79%{opacity:.8}16.88%{opacity:.8}18.24%{opacity:0}100%{opacity:0}}
@keyframes isoKZ{0%{opacity:0;transform:scale(.3)}12.33%{opacity:0;transform:scale(.3)}13.06%{opacity:1;transform:scale(1)}17.79%{opacity:0;transform:scale(1.6)}100%{opacity:0;transform:scale(1.6)}}
@keyframes isoK10{0%{opacity:0}12.79%{opacity:0}15.52%{opacity:1}21.42%{opacity:1}24.15%{opacity:0}100%{opacity:0}}
@keyframes isoK11{0%{opacity:0}12.79%{opacity:0}15.52%{opacity:1}75%{opacity:1}77.73%{opacity:0}100%{opacity:0}}
@keyframes isoK12{0%{opacity:0}35.3%{opacity:0}36.67%{opacity:.8}40.76%{opacity:.8}42.12%{opacity:0}100%{opacity:0}}
@keyframes isoK13{0%{opacity:0;transform:scale(.3)}36.21%{opacity:0;transform:scale(.3)}36.94%{opacity:1;transform:scale(1)}41.67%{opacity:0;transform:scale(1.6)}100%{opacity:0;transform:scale(1.6)}}
@keyframes isoK14{0%{opacity:0}36.67%{opacity:0}39.39%{opacity:1}45.3%{opacity:1}48.03%{opacity:0}100%{opacity:0}}
@keyframes isoK15{0%{opacity:0}36.67%{opacity:0}39.39%{opacity:1}75%{opacity:1}77.73%{opacity:0}100%{opacity:0}}
@keyframes isoK16{0%{opacity:0}51.67%{opacity:0}53.03%{opacity:.8}57.12%{opacity:.8}58.48%{opacity:0}100%{opacity:0}}
@keyframes isoK17{0%{opacity:0;transform:scale(.3)}52.58%{opacity:0;transform:scale(.3)}53.3%{opacity:1;transform:scale(1)}58.03%{opacity:0;transform:scale(1.6)}100%{opacity:0;transform:scale(1.6)}}
@keyframes isoK18{0%{opacity:0}53.03%{opacity:0}55.76%{opacity:1}61.67%{opacity:1}64.39%{opacity:0}100%{opacity:0}}
@keyframes isoK19{0%{opacity:0}53.03%{opacity:0}55.76%{opacity:1}75%{opacity:1}77.73%{opacity:0}100%{opacity:0}}
@keyframes isoK1A{0%{opacity:0}64.15%{opacity:0}65.52%{opacity:.8}69.61%{opacity:.8}70.97%{opacity:0}100%{opacity:0}}
@keyframes isoK1B{0%{opacity:0;transform:scale(.3)}65.06%{opacity:0;transform:scale(.3)}65.79%{opacity:1;transform:scale(1)}70.52%{opacity:0;transform:scale(1.6)}100%{opacity:0;transform:scale(1.6)}}
@keyframes isoK1C{0%{opacity:0}65.52%{opacity:0}68.24%{opacity:1}74.15%{opacity:1}76.88%{opacity:0}100%{opacity:0}}
@keyframes isoK1D{0%{opacity:0}65.52%{opacity:0}68.24%{opacity:1}75%{opacity:1}77.73%{opacity:0}100%{opacity:0}}
@keyframes isoK1E{0%{transform:translate(-195.7px,7px)}4.55%{transform:translate(-195.7px,7px)}9.15%{transform:translate(-129.9px,45px)}20.06%{transform:translate(-129.9px,45px)}28.18%{transform:translate(-13.9px,112px)}33.03%{transform:translate(55.4px,72px)}43.94%{transform:translate(55.4px,72px)}49.39%{transform:translate(133.4px,27px)}60.3%{transform:translate(133.4px,27px)}61.88%{transform:translate(155.9px,14px)}72.79%{transform:translate(155.9px,14px)}73.03%{transform:translate(159.3px,12px)}100%{transform:translate(159.3px,12px)}}
@keyframes isoK1F{0%{opacity:0}2.73%{opacity:0}5.45%{opacity:1}72.58%{opacity:1}75.3%{opacity:0}100%{opacity:0}}
@keyframes isoK1G{0%{opacity:0}9.61%{opacity:0}11.42%{opacity:1}18.24%{opacity:1}19.61%{opacity:0}33.48%{opacity:0}35.3%{opacity:1}42.12%{opacity:1}43.48%{opacity:0}49.85%{opacity:0}51.67%{opacity:1}58.48%{opacity:1}59.85%{opacity:0}62.33%{opacity:0}64.15%{opacity:1}70.97%{opacity:1}72.33%{opacity:0}100%{opacity:0}}
@keyframes isoK1H{0%{transform:scaleX(1)}49.39%{transform:scaleX(1)}50.48%{transform:scaleX(-1)}59.21%{transform:scaleX(-1)}60.3%{transform:scaleX(1)}100%{transform:scaleX(1)}}
@keyframes isoK1I{0%{opacity:1}9.61%{opacity:1}11.42%{opacity:0}18.24%{opacity:0}19.61%{opacity:1}33.48%{opacity:1}35.3%{opacity:0}42.12%{opacity:0}43.48%{opacity:1}49.85%{opacity:1}51.67%{opacity:0}58.48%{opacity:0}59.85%{opacity:1}62.33%{opacity:1}64.15%{opacity:0}70.97%{opacity:0}72.33%{opacity:1}100%{opacity:1}}
@keyframes isoK1J{0%{stroke-dashoffset:100}4.55%{stroke-dashoffset:100}9.15%{stroke-dashoffset:81.46}20.06%{stroke-dashoffset:81.46}28.18%{stroke-dashoffset:48.78}33.03%{stroke-dashoffset:29.27}43.94%{stroke-dashoffset:29.27}49.39%{stroke-dashoffset:7.32}60.3%{stroke-dashoffset:7.32}61.88%{stroke-dashoffset:.98}72.79%{stroke-dashoffset:.98}73.03%{stroke-dashoffset:0}100%{stroke-dashoffset:0}}
@keyframes isoK1K{0%{opacity:0}3.64%{opacity:0}6.36%{opacity:1}75%{opacity:1}77.73%{opacity:0}100%{opacity:0}}
@keyframes isoK1L{0%{opacity:0}1.82%{opacity:0}6.36%{opacity:.4}75%{opacity:.4}79.55%{opacity:0}100%{opacity:0}}
@keyframes isoK1M{0%{opacity:1}.91%{opacity:1}6.36%{opacity:.32}93.64%{opacity:.32}99.55%{opacity:1}100%{opacity:1}}
@keyframes isoK1N{0%{transform:translate(-164.5px,55px) scale(1);opacity:.6}6.36%{opacity:.25}93.64%{opacity:.25}99.55%{opacity:1}100%{transform:translate(-164.5px,55px) scale(1);opacity:1}}
@keyframes isoK1O{0%{opacity:0;transform:translate(-50%,-50%) translateY(8px)}77.73%{opacity:0;transform:translate(-50%,-50%) translateY(8px)}81.82%{opacity:1;transform:translate(-50%,-50%)}94.09%{opacity:1;transform:translate(-50%,-50%)}97.73%{opacity:0;transform:translate(-50%,-50%) translateY(-4px)}100%{opacity:0;transform:translate(-50%,-50%) translateY(-4px)}}
.is-lap1 .iso-drone{animation:isoK0 10s linear forwards}
.is-lap1 .iso-shadow{animation:isoK1 10s linear forwards}
.is-lap1 .iso-cone{animation:isoK2 10s linear forwards}
.is-lap1 .iso-foot{animation:isoK3 10s linear forwards}
.is-lap1 .iso-blur{animation:isoK8 10s linear forwards}
.is-lap1 .iso-blade{animation:isoK9 10s linear forwards}
.is-lap1 .iso-m0{animation:isoKC 10s linear forwards}
.is-lap1 .iso-m0 .iso-mp{animation:isoKD 10s linear forwards}
.is-lap1 .iso-m1{animation:isoKE 10s linear forwards}
.is-lap1 .iso-m1 .iso-mp{animation:isoKF 10s linear forwards}
.is-lap1 .iso-m2{animation:isoKG 10s linear forwards}
.is-lap1 .iso-m2 .iso-mp{animation:isoKH 10s linear forwards}
.is-lap1 .iso-m3{animation:isoKI 10s linear forwards}
.is-lap1 .iso-m3 .iso-mp{animation:isoKJ 10s linear forwards}
.is-lap1 .iso-m4{animation:isoKK 10s linear forwards}
.is-lap1 .iso-m4 .iso-mp{animation:isoKL 10s linear forwards}
.is-lap1 .iso-m5{animation:isoKM 10s linear forwards}
.is-lap1 .iso-m5 .iso-mp{animation:isoKN 10s linear forwards}
.is-lap1 .iso-m6{animation:isoKO 10s linear forwards}
.is-lap1 .iso-m6 .iso-mp{animation:isoKP 10s linear forwards}
.is-lap2 .iso-drone{animation:isoK4 11s linear forwards}
.is-lap2 .iso-shadow{animation:isoK5 11s linear forwards}
.is-lap2 .iso-cone{animation:isoK6 11s linear forwards}
.is-lap2 .iso-foot{animation:isoK7 11s linear forwards}
.is-lap2 .iso-blur{animation:isoKA 11s linear forwards}
.is-lap2 .iso-blade{animation:isoKB 11s linear forwards}
.is-lap2 .iso-p0 .iso-ps,.is-lap2 .iso-p0 .iso-pr,.is-lap2 .iso-l0{animation:isoKQ 11s linear forwards}
.is-lap2 .iso-p0 .iso-pd{animation:isoKR 11s linear forwards}
.is-lap2 .iso-p1 .iso-ps,.is-lap2 .iso-p1 .iso-pr,.is-lap2 .iso-l1{animation:isoKS 11s linear forwards}
.is-lap2 .iso-p1 .iso-pd{animation:isoKT 11s linear forwards}
.is-lap2 .iso-p2 .iso-ps,.is-lap2 .iso-p2 .iso-pr,.is-lap2 .iso-l2{animation:isoKU 11s linear forwards}
.is-lap2 .iso-p2 .iso-pd{animation:isoKV 11s linear forwards}
.is-lap2 .iso-p3 .iso-ps,.is-lap2 .iso-p3 .iso-pr,.is-lap2 .iso-l3{animation:isoKW 11s linear forwards}
.is-lap2 .iso-p3 .iso-pd{animation:isoKX 11s linear forwards}
.is-lap3 .iso-s0{animation:isoKY 11s linear forwards}
.is-lap3 .iso-f0{animation:isoKZ 11s linear forwards}
.is-lap3 .iso-p4 .iso-ps,.is-lap3 .iso-p4 .iso-pr,.is-lap3 .iso-l4,.is-lap3 .iso-hl0{animation:isoK10 11s linear forwards}
.is-lap3 .iso-p4 .iso-pd{animation:isoK11 11s linear forwards}
.is-lap3 .iso-s1{animation:isoK12 11s linear forwards}
.is-lap3 .iso-f1{animation:isoK13 11s linear forwards}
.is-lap3 .iso-p5 .iso-ps,.is-lap3 .iso-p5 .iso-pr,.is-lap3 .iso-l5,.is-lap3 .iso-hl1{animation:isoK14 11s linear forwards}
.is-lap3 .iso-p5 .iso-pd{animation:isoK15 11s linear forwards}
.is-lap3 .iso-s2{animation:isoK16 11s linear forwards}
.is-lap3 .iso-f2{animation:isoK17 11s linear forwards}
.is-lap3 .iso-p6 .iso-ps,.is-lap3 .iso-p6 .iso-pr,.is-lap3 .iso-l6,.is-lap3 .iso-hl2{animation:isoK18 11s linear forwards}
.is-lap3 .iso-p6 .iso-pd{animation:isoK19 11s linear forwards}
.is-lap3 .iso-s3{animation:isoK1A 11s linear forwards}
.is-lap3 .iso-f3{animation:isoK1B 11s linear forwards}
.is-lap3 .iso-p7 .iso-ps,.is-lap3 .iso-p7 .iso-pr,.is-lap3 .iso-l7,.is-lap3 .iso-hl3{animation:isoK1C 11s linear forwards}
.is-lap3 .iso-p7 .iso-pd{animation:isoK1D 11s linear forwards}
.is-lap3 .iso-man{animation:isoK1E 11s linear forwards}
.is-lap3 .iso-man-o{animation:isoK1F 11s linear forwards}
.is-lap3 .iso-cu{animation:isoK1G 11s linear forwards}
.is-lap3 .iso-man-f{animation:isoK1H 11s linear forwards}
.is-lap3 .iso-cd{animation:isoK1I 11s linear forwards}
.is-lap3 .iso-trailm{animation:isoK1J 11s linear forwards}
.is-lap3 .iso-trail{animation:isoK1K 11s linear forwards}
.is-lap3 .iso-r3{animation:isoK1L 11s linear forwards}
.is-lap3 .iso-drone{animation:isoK1M 11s linear forwards}
.is-lap3 .iso-shadow{animation:isoK1N 11s linear forwards}
.is-lap3 .iso-report{animation:isoK1O 11s linear forwards}

/* ---------- States ---------- */
.is-lap1 { --rep: -7s; } .is-lap2 { --rep: -6.73s; } .is-lap3 { --rep: -6.38s; }
.is-held .iso-k, .is-held .iso-rot, .is-held .lap-bar { animation-play-state: paused !important; }
.is-rep .iso-k, .no-js .iso-sec .iso-k { animation-play-state: paused !important; animation-delay: var(--rep) !important; }
.is-rep .iso-rot, .no-js .iso-sec .iso-rot { animation: none !important; }
/* A landscape tablet keeps the stacked picture short enough to leave the
   first lap button in view below it, clear of the call bar: the 21rem is
   the header and the scroll margin the lap press brings the picture to, the
   call bar, the gap and the first button (1024x768 and 1024x600: the button
   ends clear of the call bar). Phones held upright are limited by their
   width first. */
@media (max-width: 1024px) { .iso-stage { max-width: min(640px, max(16rem, 100vh - 21rem)); max-width: min(640px, max(16rem, 100svh - 21rem)); } }
@media (max-width: 520px) {
  .iso-hud { font-size: .68rem; }
  .lap-item { padding: 1rem 1.05rem; gap: .85rem; }
}
/* Reduced motion: a calm still of each lap, chosen with the lap buttons, and
   no lap clock. app.css shortens every animation to almost nothing under
   reduced motion; the stills need their real length back, or the paused
   frame would be the lap's last one rather than the representative moment. */
@media (prefers-reduced-motion: reduce) {
  .is-lap1 .iso-k { animation-duration: 10s !important; }
  .is-lap2 .iso-k, .is-lap3 .iso-k { animation-duration: 11s !important; }
  .iso-k { animation-play-state: paused !important; animation-delay: var(--rep) !important; }
  .iso-rot, .lap-bar { animation: none !important; }
  .lap-bar { display: none; }
  .lap-item, .iso-ring, .iso-hud b { transition: none; }
}

/* Forced colours: the live lap keeps the system highlight, as the other
   selected chips and tabs do (app.css). It lives here, after the lap rules
   above, so their red tint cannot win over it. */
@media (forced-colors: active) {
  .lap-item.is-live { forced-color-adjust: none; background: Highlight; border-color: Highlight; color: HighlightText; }
  .lap-item.is-live :is(.lap-num, .lap-title, .lap-text) { color: HighlightText; }
}
