/* TAKT motion-preview route only. All additions are decorative and additive. */

/* Shared lifecycle ------------------------------------------------------- */
.mp-paused,.mp-paused *{animation-play-state:paused!important}
.constraint-stage,.takt-bag-stage{position:relative;width:100%;overflow:hidden;border:1px solid var(--line);background:var(--panel-soft);pointer-events:none}
.constraint-stage{margin-top:32px;padding:clamp(18px,3vw,34px)}
.mp-constraint-active .signal-rail::before{animation-play-state:paused;opacity:.28}
.takt-bag-stage{margin-top:32px;padding:clamp(16px,2.4vw,30px)}

/* 1 · Now -> Next -> Action --------------------------------------------- */
[data-pred-corridor]{display:block;width:100%;overflow:hidden;pointer-events:none;margin:clamp(20px,3vh,32px) 0}
[data-pred-corridor] svg{display:block;width:100%;height:auto}
[data-pred-corridor]:not([data-pc-js]) [data-pc-a]{animation:none!important}
[data-pred-corridor][data-pc-state="play"] [data-pc-a]{animation-play-state:running!important}
[data-pred-corridor][data-pc-paused] [data-pc-a]{animation-play-state:paused!important}
[data-pred-corridor][data-pc-state="static"] [data-pc-a]{animation:none!important}
[data-pred-corridor][data-pc-state="static"] [data-pc-alt="2"]{display:none}
@keyframes predc-fade{from{opacity:0}}
@keyframes predc-draw{from{stroke-dashoffset:1}}
@keyframes predc-pop{from{opacity:0;transform:scale(.5)}}
@keyframes predc-ring{0%{opacity:0;transform:scale(.3)}22%{opacity:.5}100%{opacity:0;transform:scale(1)}}
@keyframes predc-pulse{0%{opacity:0;stroke-dashoffset:.32}14%{opacity:1}86%{opacity:1}100%{opacity:0;stroke-dashoffset:-1}}
@keyframes predc-alt{0%{stroke-dashoffset:1;opacity:0}7%{opacity:.34}42%{stroke-dashoffset:0;animation-timing-function:cubic-bezier(.4,0,.2,1)}70%{stroke-dashoffset:0;opacity:.34}100%{opacity:.13}}
@keyframes predc-selslate{0%{stroke-dashoffset:1;opacity:0}7%{opacity:.3}42%{stroke-dashoffset:0}70%{opacity:.3}94%{opacity:0}}
@keyframes predc-sel{0%{stroke-dashoffset:1;opacity:0}6%{opacity:.95}100%{stroke-dashoffset:0}}
@keyframes predc-amber{0%{opacity:0;transform:scale(.35)}22%{opacity:.9;transform:scale(1.04)}30%{transform:scale(1)}52%{opacity:.9}100%{opacity:.36;transform:scale(.94)}}

/* 2 · Constraint Before It Arrives -------------------------------------- */
.tkcb{--tkcb-slate:var(--muted-dark);--tkcb-line:var(--line-bright);--tkcb-signal:var(--signal);--tkcb-amber:#B58348;--tkcb-ease:cubic-bezier(.22,.61,.36,1);--tkcb-ease-out:cubic-bezier(.16,1,.3,1);display:block;width:100%;pointer-events:none}
.tkcb-svg{display:block;width:100%;height:auto;max-width:100%}.tkcb-mobile{display:none}
.tkcb-grid{fill:none;stroke:var(--tkcb-line);stroke-width:1;opacity:.28}.tkcb-mark{fill:none;stroke:var(--tkcb-line);stroke-width:1;opacity:.62}
.tkcb-future{fill:var(--tkcb-signal);opacity:.025}.tkcb-spine{fill:none;stroke:var(--tkcb-line);stroke-width:1.25;stroke-dasharray:1;stroke-dashoffset:0}
.tkcb-bar{fill:none;stroke:var(--tkcb-slate);stroke-width:1.25;stroke-linecap:square;stroke-dasharray:1;stroke-dashoffset:0;opacity:.78}
.tkcb-bar.is-future{opacity:.48;stroke-dasharray:.07 .05}.tkcb-bar.is-constraint{stroke:var(--tkcb-amber);fill:var(--tkcb-amber);fill-opacity:.08;opacity:.82}
.tkcb-arc{fill:none;stroke:var(--tkcb-signal);stroke-width:1.25;stroke-dasharray:1;stroke-dashoffset:0;opacity:.62}.tkcb-now{fill:none;stroke:var(--tkcb-signal);stroke-width:1.5;stroke-dasharray:1;stroke-dashoffset:0}
.tkcb-bracket{fill:none;stroke:var(--tkcb-signal);stroke-width:1.15;stroke-dasharray:.06 .035;stroke-dashoffset:0;opacity:.58}
.tkcb-nodeg{transform-box:fill-box;transform-origin:center;transform:rotate(0deg) scale(1);opacity:1}.tkcb-node{fill:none;stroke:var(--tkcb-slate);stroke-width:1.5;vector-effect:non-scaling-stroke}
.tkcb-nodeg.is-constraint{transform:rotate(45deg) scale(1.22)}.tkcb-node.is-constraint{stroke:var(--tkcb-amber)}
.tkcb-ringg{transform-box:fill-box;transform-origin:center;opacity:0;transform:scale(2.6)}.tkcb-ring{fill:none;stroke:var(--tkcb-amber);stroke-width:1.1;vector-effect:non-scaling-stroke}
@media (min-width:640px) and (prefers-reduced-motion:no-preference){
  .tkcb[data-anim="on"] .tkcb-grid,.tkcb[data-anim="on"] .tkcb-mark,.tkcb[data-anim="on"] .tkcb-future{opacity:0}
  .tkcb[data-anim="on"] .tkcb-spine,.tkcb[data-anim="on"] .tkcb-bar,.tkcb[data-anim="on"] .tkcb-arc,.tkcb[data-anim="on"] .tkcb-now,.tkcb[data-anim="on"] .tkcb-bracket{stroke-dashoffset:1}
  .tkcb[data-anim="on"] .tkcb-bar.is-constraint{stroke:var(--tkcb-slate);fill-opacity:0}.tkcb[data-anim="on"] .tkcb-nodeg{opacity:0;transform:rotate(0deg) scale(.35)}
  .tkcb[data-anim="on"] .tkcb-node.is-constraint{stroke:var(--tkcb-slate)}.tkcb[data-anim="on"] .tkcb-ringg{opacity:0;transform:scale(.5)}
  .tkcb[data-anim="on"].is-playing .tkcb-grid{animation:tkcb-in-28 .6s var(--tkcb-ease) forwards;animation-delay:calc(var(--i,0)*.04s)}
  .tkcb[data-anim="on"].is-playing .tkcb-mark{animation:tkcb-in-62 .6s var(--tkcb-ease) .18s forwards}.tkcb[data-anim="on"].is-playing .tkcb-future{animation:tkcb-in-future .8s var(--tkcb-ease) 1.9s forwards}
  .tkcb[data-anim="on"].is-playing .tkcb-spine{animation:tkcb-draw .9s var(--tkcb-ease) forwards}.tkcb[data-anim="on"].is-playing .tkcb-nodeg{animation:tkcb-node-in .42s var(--tkcb-ease-out) forwards;animation-delay:calc(.6s + var(--i,0)*.09s)}
  .tkcb[data-anim="on"].is-playing .tkcb-bar{animation:tkcb-draw .55s var(--tkcb-ease) forwards;animation-delay:calc(.72s + var(--i,0)*.09s)}.tkcb[data-anim="on"].is-playing .tkcb-arc{animation:tkcb-draw .85s var(--tkcb-ease) forwards;animation-delay:calc(1.7s + var(--i,0)*.18s)}
  .tkcb[data-anim="on"].is-playing .tkcb-now{animation:tkcb-draw .5s var(--tkcb-ease) 2.1s forwards}.tkcb[data-anim="on"].is-playing .tkcb-nodeg.is-constraint{animation:tkcb-constraint 2.36s var(--tkcb-ease-out) 1.14s forwards}
  .tkcb[data-anim="on"].is-playing .tkcb-node.is-constraint{animation:tkcb-amberize .6s var(--tkcb-ease) 2.9s forwards}.tkcb[data-anim="on"].is-playing .tkcb-bar.is-constraint{animation:tkcb-draw .55s var(--tkcb-ease) 1.26s forwards,tkcb-bar-amber .55s var(--tkcb-ease) 3.05s forwards}
  .tkcb[data-anim="on"].is-playing .tkcb-ringg{animation:tkcb-ring 1.1s var(--tkcb-ease-out) 3.2s forwards}.tkcb[data-anim="on"].is-playing .tkcb-bracket{animation:tkcb-draw .7s var(--tkcb-ease) 3.6s forwards}
}
@media (max-width:639.999px) and (prefers-reduced-motion:no-preference){
  .tkcb[data-anim="on"] .tkcb-mobile .tkcb-spine,.tkcb[data-anim="on"] .tkcb-mobile .tkcb-bar,.tkcb[data-anim="on"] .tkcb-mobile .tkcb-arc,.tkcb[data-anim="on"] .tkcb-mobile .tkcb-now,.tkcb[data-anim="on"] .tkcb-mobile .tkcb-bracket{stroke-dashoffset:1}
  .tkcb[data-anim="on"].is-playing .tkcb-mobile .tkcb-spine{animation:tkcb-draw .7s var(--tkcb-ease) forwards}
  .tkcb[data-anim="on"].is-playing .tkcb-mobile .tkcb-bar{animation:tkcb-draw .45s var(--tkcb-ease) forwards;animation-delay:calc(.45s + var(--i,0)*.06s)}
  .tkcb[data-anim="on"].is-playing .tkcb-mobile .tkcb-arc{animation:tkcb-draw .7s var(--tkcb-ease) 1.15s forwards}
  .tkcb[data-anim="on"].is-playing .tkcb-mobile .tkcb-now{animation:tkcb-draw .4s var(--tkcb-ease) 1.55s forwards}
  .tkcb[data-anim="on"].is-playing .tkcb-mobile .tkcb-bracket{animation:tkcb-draw .55s var(--tkcb-ease) 1.85s forwards}
}
@keyframes tkcb-draw{from{stroke-dashoffset:1}to{stroke-dashoffset:0}}@keyframes tkcb-in-28{from{opacity:0}to{opacity:.28}}@keyframes tkcb-in-62{from{opacity:0}to{opacity:.62}}@keyframes tkcb-in-future{from{opacity:0}to{opacity:.025}}
@keyframes tkcb-amberize{from{stroke:var(--tkcb-slate)}to{stroke:var(--tkcb-amber)}}@keyframes tkcb-bar-amber{from{stroke:var(--tkcb-slate);fill-opacity:0}to{stroke:var(--tkcb-amber);fill-opacity:.08}}
@keyframes tkcb-node-in{0%{opacity:0;transform:rotate(0deg) scale(.35)}60%{opacity:1;transform:rotate(0deg) scale(1.12)}100%{opacity:1;transform:rotate(0deg) scale(1)}}
@keyframes tkcb-constraint{0%{opacity:0;transform:rotate(0deg) scale(.35)}11%{opacity:1;transform:rotate(0deg) scale(1.12)}18%,74%{opacity:1;transform:rotate(0deg) scale(1)}100%{opacity:1;transform:rotate(45deg) scale(1.22)}}
@keyframes tkcb-ring{0%{opacity:0;transform:scale(.5)}18%{opacity:.42}100%{opacity:0;transform:scale(2.6)}}

/* 3 · Predictive micro-simulations -------------------------------------- */
.fsim{--fs-slate:var(--muted-dark);--fs-line:var(--line-bright);--fs-signal:var(--signal);--fs-amber:oklch(.68 .095 72);--fs-max:360px;--e-enter:cubic-bezier(.22,.61,.36,1);--e-draw:cubic-bezier(.65,0,.35,1);--e-pop:cubic-bezier(.34,1.32,.64,1);display:block;width:100%;max-width:100%;margin:18px 0 0;pointer-events:none}
.fsim svg{display:block;width:100%;max-width:min(100%,var(--fs-max));height:auto;overflow:visible;shape-rendering:geometricPrecision}
.fsim .fs-tick,.fsim .fs-gate,.fsim .fs-guide,.fsim .fs-center,.fsim .fs-block,.fsim .fs-mark-open,.fsim .fs-corr{vector-effect:non-scaling-stroke}
.fsim .fs-rule,.fsim .fs-tick,.fsim .fs-gate,.fsim .fs-guide,.fsim .fs-center{fill:none;stroke:var(--fs-line);stroke-width:1}.fsim .fs-base{fill:none;stroke:var(--fs-slate);stroke-width:1}.fsim .fs-faint{fill:none;stroke:var(--fs-line);stroke-width:1}
.fsim .fs-live{fill:none;stroke:var(--fs-signal);stroke-width:1.2}.fsim .fs-warn{fill:none;stroke:var(--fs-amber);stroke-width:1.2}.fsim .fs-fore{fill:none;stroke:var(--fs-signal);stroke-width:1;opacity:.5}.fsim .fs-corr{fill:none;stroke:var(--fs-signal);stroke-width:1;opacity:.45}.fsim .fs-alt{fill:none;stroke:var(--fs-slate);stroke-width:1;opacity:.22}
.fsim .fs-block,.fsim .fs-mark-open{fill:none;stroke:var(--fs-slate);stroke-width:1}.fsim .fs-mark{fill:var(--fs-signal);stroke:none}.fsim .fs-mark-slate{fill:var(--fs-slate);stroke:none}.fsim .fs-center{stroke-dasharray:2 4;opacity:.85}.fsim .fs-guide{stroke-dasharray:2 3;opacity:.7}.fsim .fs-pulse{fill:none;stroke:var(--fs-signal);stroke-width:5;stroke-dasharray:.028 .972}
.fsim path[pathLength]:not(.fs-pulse){stroke-dasharray:1;stroke-dashoffset:0}.fsim .fs1-ready,.fsim .fs2-x1,.fsim .fs2-x2,.fsim .fs4-node,.fsim .fs5-node,.fsim .fs6-node,.fsim .fs6-end{transform-box:fill-box;transform-origin:50% 50%}.fsim .fs4-b1,.fsim .fs4-b2,.fsim .fs4-b3{transform-box:fill-box;transform-origin:50% 100%}.fsim .fs3-bracket-in{transform-box:fill-box;transform-origin:right center}
.fsim:not(.is-playing) *{animation:none!important}
@keyframes fs-draw{from{stroke-dashoffset:1}to{stroke-dashoffset:0}}@keyframes fs-fade{from{opacity:0}}@keyframes fs-pop{from{opacity:0;transform:scale(.35)}}@keyframes fs-out{from{opacity:1}to{opacity:0}}@keyframes fs-recede{from{opacity:.3}}@keyframes fs-settle{from{opacity:1}}@keyframes fs-warm{from{stroke:var(--fs-line)}}
.fsim.is-playing .fs-rule{animation:fs-draw .45s var(--e-draw) 0s both}.fsim.is-playing .fs-tick{animation:fs-fade .3s var(--e-enter) .1s both}
.fsim-1.is-playing .fs-gate{animation:fs-fade .3s var(--e-enter) .25s both}.fsim-1.is-playing .fs1-a{animation:fs-draw .55s var(--e-draw) .3s both}.fsim-1.is-playing .fs1-b{animation:fs-draw .55s var(--e-draw) .3s both,fs-warm .3s var(--e-enter) 1.15s both}.fsim-1.is-playing .fs1-la{animation:fs-draw .55s var(--e-draw) .7s both}.fsim-1.is-playing .fs1-ready{animation:fs-pop .3s var(--e-pop) 1.25s both}.fsim-1.is-playing .fs1-lt{animation:fs-draw .35s var(--e-enter) 1.5s both}.fsim-1.is-playing .fs1-lo{animation:fs-draw .55s var(--e-draw) 1.8s both}
.fsim-2 .fs2-li1,.fsim-2 .fs2-li2{opacity:0}.fsim-2.is-playing .fs2-o1,.fsim-2.is-playing .fs2-o2,.fsim-2.is-playing .fs2-i1,.fsim-2.is-playing .fs2-i2{animation:fs-draw .6s var(--e-draw) .3s both}.fsim-2.is-playing .fs2-li1,.fsim-2.is-playing .fs2-li2{animation:fs-draw .5s var(--e-draw) .35s both,fs-out .4s var(--e-enter) .95s both}.fsim-2.is-playing .fs2-bar{animation:fs-draw .3s var(--e-enter) .8s both}.fsim-2.is-playing .fs2-x1,.fsim-2.is-playing .fs2-x2{animation:fs-pop .3s var(--e-pop) 1.1s both}.fsim-2.is-playing .fs2-l1{animation:fs-draw 1s var(--e-draw) 1.3s both}.fsim-2.is-playing .fs2-l2{animation:fs-draw 1s var(--e-draw) 1.4s both}
.fsim-3 .fs3-pulse{stroke-dashoffset:-.47}.fsim-3 .fs3-bracket-in{transform:scaleX(.35)}@keyframes fs3-run{from{stroke-dashoffset:0}}@keyframes fs3-narrow{from{transform:scaleX(1)}}.fsim-3.is-playing .fs3-line{animation:fs-draw .6s var(--e-draw) .25s both}.fsim-3.is-playing .fs3-ms{animation:fs-fade .35s var(--e-enter) .5s both}.fsim-3.is-playing .fs3-br{animation:fs-draw .45s var(--e-draw) .55s both}.fsim-3.is-playing .fs3-bracket-in{animation:fs3-narrow 1.4s var(--e-enter) .9s both}.fsim-3.is-playing .fs3-pulse{animation:fs3-run 1.75s var(--e-enter) .55s both}
.fsim-4 .fs4-pulse{stroke-dashoffset:-.755}@keyframes fs4-run{from{stroke-dashoffset:0}}@keyframes fs4-land{from{opacity:0;transform:scaleY(.15)}}.fsim-4.is-playing .fs4-line{animation:fs-draw .6s var(--e-draw) .25s both}.fsim-4.is-playing .fs4-guide{animation:fs-fade .3s var(--e-enter) .5s both}.fsim-4.is-playing .fs4-node{animation:fs-pop .25s var(--e-pop) .6s both}.fsim-4.is-playing .fs4-b1{animation:fs4-land .35s var(--e-enter) .75s both}.fsim-4.is-playing .fs4-b2{animation:fs4-land .35s var(--e-enter) 1s both}.fsim-4.is-playing .fs4-b3{animation:fs4-land .35s var(--e-enter) 1.25s both}.fsim-4.is-playing .fs4-pulse{animation:fs4-run 1.6s var(--e-enter) .55s both}
.fsim-5 .fs5-warn{opacity:.55}.fsim-5.is-playing .fs5-e1,.fsim-5.is-playing .fs5-e2{animation:fs-draw .6s var(--e-draw) .2s both}.fsim-5.is-playing .fs5-c{animation:fs-fade .35s var(--e-enter) .5s both}.fsim-5.is-playing .fs5-trace{animation:fs-draw 1.6s var(--e-draw) .45s both}.fsim-5.is-playing .fs5-warn{animation:fs-draw .35s var(--e-enter) .95s both,fs-settle .5s var(--e-enter) 1.5s both}.fsim-5.is-playing .fs5-corr{animation:fs-fade .25s var(--e-enter) 1.15s both}.fsim-5.is-playing .fs5-node{animation:fs-pop .3s var(--e-pop) 1.15s both}
.fsim-6.is-playing .fs6-in{animation:fs-draw .45s var(--e-draw) .25s both}.fsim-6.is-playing .fs6-node{animation:fs-pop .25s var(--e-pop) .6s both}.fsim-6.is-playing .fs6-r1,.fsim-6.is-playing .fs6-r2,.fsim-6.is-playing .fs6-r3{animation:fs-draw .65s var(--e-draw) .5s both,fs-recede .4s var(--e-enter) 1.25s both}.fsim-6.is-playing .fs6-l1{animation:fs-draw .8s var(--e-draw) 1.35s both}.fsim-6.is-playing .fs6-end{animation:fs-pop .3s var(--e-pop) 2.1s both}
.fsim.is-playing .fsim-finish{animation:fsim-finish 2.4s linear both}@keyframes fsim-finish{from{opacity:0}to{opacity:0}}

/* 4 · Bounded Autonomy Gate --------------------------------------------- */
.takt-bag{--bag-slate:var(--muted);--bag-line:var(--line-bright);--bag-signal:var(--signal);position:relative;width:100%;max-width:100%;pointer-events:none;user-select:none;opacity:1;transition:opacity 180ms ease}.takt-bag.is-armed:not([data-run]){opacity:.32}.takt-bag svg{display:block;width:100%;height:auto;max-width:100%}.takt-bag .takt-bag-v{display:none}
.takt-bag-tick{stroke:var(--bag-line);stroke-width:1;opacity:.42}.takt-bag-lane{stroke:var(--bag-line);stroke-width:1}.takt-bag-reg{stroke:var(--bag-slate);stroke-width:1;fill:none;opacity:.38}.takt-bag-route-ghost{fill:none;stroke:var(--bag-line);stroke-width:1;stroke-dasharray:2 6;opacity:.68}.takt-bag-gate-jamb{fill:none;stroke:var(--bag-slate);stroke-width:1;opacity:.5}
.takt-bag-lane-hi{stroke:var(--bag-signal);stroke-width:2}.takt-bag-hi-people{opacity:.42}.takt-bag-hi-takt{opacity:.5}.takt-bag-hi-mach{opacity:.35}.takt-bag-route{fill:none;stroke:var(--bag-signal);stroke-width:1.6;stroke-dasharray:1440;stroke-dashoffset:0}.takt-bag-lead{fill:none;stroke:var(--bag-signal);stroke-width:1.6;stroke-dasharray:60 400;opacity:0}.takt-bag-gate-bar{fill:var(--bag-slate);opacity:.45}.takt-bag-bound,.takt-bag-bound-v{fill:none;stroke:var(--bag-signal);stroke-width:1.2;stroke-dasharray:696;stroke-dashoffset:0}.takt-bag-bound-mark{fill:none;stroke:var(--bag-signal);stroke-width:1.2;opacity:1}.takt-bag-packet-body rect{fill:none;stroke:var(--bag-signal);stroke-width:1.6}.takt-bag-packet-body .takt-bag-core{fill:var(--bag-signal);stroke:none}.takt-bag-packet-body{opacity:.85}.takt-bag-pulse{opacity:0}.takt-bag-pulse circle{fill:var(--bag-signal)}
.takt-bag-packet{transform:translate(1140px,330px);transform-box:view-box;transform-origin:0 0}.takt-bag-v-packet{transform:translate(270px,660px);transform-box:view-box;transform-origin:0 0}@supports(offset-path:path("M 0 0 H 1")){.takt-bag-packet{transform:none;offset-path:path("M 60 210 H 600 V 90 H 760 V 210 H 940 V 330 H 1140");offset-rotate:0deg;offset-distance:100%}.takt-bag-pulse{transform:none;offset-path:path("M 1140 330 H 940 V 210");offset-rotate:0deg;offset-distance:100%;transform-box:view-box;transform-origin:0 0}}
@media (prefers-reduced-motion:no-preference) and (min-width:640px){.takt-bag-h .takt-bag-a{animation-duration:4.2s;animation-fill-mode:both;animation-iteration-count:1;animation-timing-function:linear}.takt-bag[data-run="1"] .takt-bag-route{animation-name:taktBagTrail}.takt-bag[data-run="1"] .takt-bag-lead{animation-name:taktBagLead}.takt-bag[data-run="1"] .takt-bag-hi-people{animation-name:taktBagPeople}.takt-bag[data-run="1"] .takt-bag-hi-takt{animation-name:taktBagTakt}.takt-bag[data-run="1"] .takt-bag-hi-mach{animation-name:taktBagMach}.takt-bag[data-run="1"] .takt-bag-gate-top{animation-name:taktBagGateTop}.takt-bag[data-run="1"] .takt-bag-gate-bot{animation-name:taktBagGateBot}.takt-bag[data-run="1"] .takt-bag-bound{animation-name:taktBagBound}.takt-bag[data-run="1"] .takt-bag-bound-mark{animation-name:taktBagBoundMark}.takt-bag[data-run="1"] .takt-bag-packet-body{animation-name:taktBagPacketIn}@supports(offset-path:path("M 0 0 H 1")){.takt-bag[data-run="1"] .takt-bag-packet{animation-name:taktBagTravel}.takt-bag[data-run="1"] .takt-bag-pulse{animation-name:taktBagPulse}}}
@media (max-width:639.999px) and (prefers-reduced-motion:no-preference){.takt-bag[data-run="1"] .takt-bag-v .takt-bag-route{animation:taktBagTrail 4.2s linear both}}
.takt-bag-gate-bar,.takt-bag-bound-mark{transform-box:view-box;transform-origin:0 0}.takt-bag-packet-body{transform-box:fill-box;transform-origin:50% 50%}
@keyframes taktBagTravel{0%,21.43%{offset-distance:18.06%}35.71%,47.62%{offset-distance:49.31%}54.29%{offset-distance:56.94%}67.86%,78.57%{offset-distance:77.78%}88.1%,100%{offset-distance:100%}}
@keyframes taktBagTrail{0%,21.43%{stroke-dashoffset:1180}35.71%,47.62%{stroke-dashoffset:730}54.29%{stroke-dashoffset:620}67.86%,78.57%{stroke-dashoffset:320}88.1%,100%{stroke-dashoffset:0}}
@keyframes taktBagLead{0%{stroke-dashoffset:0;opacity:0}2%,7.14%{opacity:1}7.14%{stroke-dashoffset:-200}14.29%,100%{stroke-dashoffset:-200;opacity:0}}@keyframes taktBagPacketIn{0%,7.14%{opacity:0;transform:scale(.45)}14.29%,88.1%{opacity:1;transform:scale(1)}100%{opacity:.85;transform:scale(1)}}
@keyframes taktBagPeople{0%,33.33%{opacity:0}42.86%{opacity:1}100%{opacity:.42}}@keyframes taktBagTakt{0%,54.29%{opacity:0}64.29%{opacity:1}88.1%{opacity:.5}92.86%{opacity:.9}100%{opacity:.5}}@keyframes taktBagMach{0%,78.57%{opacity:0}90.48%{opacity:.55}100%{opacity:.35}}
@keyframes taktBagGateTop{0%,35.71%{transform:translateY(0);opacity:.5}42.86%,47.62%{transform:translateY(0);opacity:.9}54.29%{transform:translateY(-16px);opacity:.28}61.9%,100%{transform:translateY(0);opacity:.45}}@keyframes taktBagGateBot{0%,35.71%{transform:translateY(0);opacity:.5}42.86%,47.62%{transform:translateY(0);opacity:.9}54.29%{transform:translateY(16px);opacity:.28}61.9%,100%{transform:translateY(0);opacity:.45}}
@keyframes taktBagBound{0%,67.86%{stroke-dashoffset:696}78.57%,100%{stroke-dashoffset:0}}@keyframes taktBagBoundMark{0%,78.57%{opacity:0}83.33%,100%{opacity:1}}@keyframes taktBagPulse{0%,85.71%{offset-distance:0;opacity:0}88.1%{offset-distance:0;opacity:.9}97.62%{offset-distance:100%;opacity:.9}100%{offset-distance:100%;opacity:0}}

/* 5 · Cadence Becoming Capacity ----------------------------------------- */
.takt-cadence-edge{display:none}
@media (min-width:821px){
  .results-grid.takt-cadence{position:relative}.takt-cadence .result-item{position:relative}.takt-cadence .result-item::before{position:relative;z-index:2;background:var(--signal);box-shadow:0 0 14px rgba(110,168,255,.32)}
  .takt-cadence .result-item::after{content:"";position:absolute;z-index:1;left:31px;top:39px;bottom:-2px;width:1px;background:linear-gradient(var(--signal),var(--line-bright));transform:scaleY(1);transform-origin:top}.takt-cadence .result-item:nth-child(9)::after,.takt-cadence .result-item:nth-child(10)::after{display:none}
  .takt-cadence-edge{display:block;position:absolute;z-index:3;left:0;right:0;bottom:0;height:2px;background:linear-gradient(90deg,var(--signal),rgba(110,168,255,.2));transform:scaleX(1);transform-origin:left;pointer-events:none}
}
@media (min-width:821px) and (prefers-reduced-motion:no-preference){
  .takt-cadence.is-armed .result-item::before{background:transparent;box-shadow:none;opacity:.25}.takt-cadence.is-armed .result-item::after{transform:scaleY(0)}.takt-cadence.is-armed .takt-cadence-edge{transform:scaleX(0)}
  .takt-cadence.is-playing .result-item::before{animation:taktCadenceNode .5s cubic-bezier(.22,.61,.36,1) both;animation-delay:calc(1.1s + var(--cadence-i)*.6s)}
  .takt-cadence.is-playing .result-item::after{animation:taktCadenceRail .5s cubic-bezier(.22,.61,.36,1) both;animation-delay:calc(1.38s + var(--cadence-i)*.6s)}
  .takt-cadence.is-playing .takt-cadence-edge{animation:taktCadenceEdge .7s cubic-bezier(.22,.61,.36,1) 4.35s both}
}
@media (max-width:820.999px) and (prefers-reduced-motion:no-preference){
  .results-grid.takt-cadence{position:relative}.takt-cadence .result-item{position:relative}.takt-cadence-edge{position:absolute;left:0;bottom:0;display:block;width:0;height:0;overflow:hidden;pointer-events:none}
  .takt-cadence.is-armed .result-item::before{background:transparent;box-shadow:none;opacity:.25}
  .takt-cadence.is-playing .result-item::before{animation:taktCadenceNode .5s cubic-bezier(.22,.61,.36,1) both;animation-delay:calc(.1s + var(--cadence-mobile-i)*.16s)}
  .takt-cadence.is-playing .takt-cadence-edge{animation:taktCadenceFinish 2.2s linear both}
}
@keyframes taktCadenceNode{0%{opacity:.25;background:transparent;box-shadow:none;transform:rotate(45deg) scale(.45)}65%{opacity:1;background:var(--signal);box-shadow:0 0 18px rgba(110,168,255,.42);transform:rotate(45deg) scale(1.28)}100%{opacity:1;background:var(--signal);box-shadow:0 0 14px rgba(110,168,255,.32);transform:rotate(45deg) scale(1)}}
@keyframes taktCadenceRail{from{transform:scaleY(0)}to{transform:scaleY(1)}}@keyframes taktCadenceEdge{from{transform:scaleX(0)}to{transform:scaleX(1)}}@keyframes taktCadenceFinish{from{opacity:0}to{opacity:0}}

/* 6 · Compounding Intelligence Loop ------------------------------------- */
#compounding-intelligence .compound-chain{position:relative;isolation:isolate;overflow:hidden}
.cil-layer{position:absolute;inset:0 auto 0 0;width:72px;z-index:3;pointer-events:none;--cil-line:var(--line-bright);--cil-slate:var(--muted-dark);--cil-signal:var(--signal)}.cil-layer svg{display:block;width:100%;height:100%}.cil-layer path,.cil-layer circle,.cil-layer line{fill:none;stroke-linecap:round;stroke-linejoin:round}.cil-layer .cil-memory{stroke:var(--cil-slate);stroke-width:1;opacity:.42}.cil-layer .cil-main,.cil-layer .cil-return{stroke:var(--cil-signal);stroke-width:1.25;stroke-dasharray:1;stroke-dashoffset:0}.cil-layer .cil-return{opacity:.38}.cil-layer .cil-node{stroke:var(--cil-signal);stroke-width:1.2;opacity:.78;transform-box:fill-box;transform-origin:center}.cil-layer .cil-comet{stroke:var(--cil-signal);stroke-width:2.2;stroke-dasharray:.08 .92;stroke-dashoffset:-1;opacity:0}.cil-layer .cil-pulse{stroke:var(--cil-signal);stroke-width:1;opacity:0;transform-box:fill-box;transform-origin:center}.cil-layer .cil-finish{opacity:0}
.cil-layer.is-armed .cil-memory,.cil-layer.is-armed .cil-node{opacity:0}.cil-layer.is-armed .cil-main,.cil-layer.is-armed .cil-return{stroke-dashoffset:1;opacity:0}.cil-layer.is-armed .cil-comet{stroke-dashoffset:.08}
.cil-layer.is-playing .cil-memory{animation:cilIn .45s ease both;animation-delay:calc(var(--i)*.1s)}.cil-layer.is-playing .cil-main{animation:cilDraw 1.25s cubic-bezier(.32,.06,.16,1) 1s both}.cil-layer.is-playing .cil-comet{animation:cilComet 1.25s cubic-bezier(.32,.06,.16,1) 1s both}.cil-layer.is-playing .cil-node{animation:cilIn .4s ease both;animation-delay:calc(1.22s + var(--i)*.34s)}.cil-layer.is-playing .cil-pulse{animation:cilPulse .7s ease-out both;animation-delay:calc(1.3s + var(--i)*.34s)}.cil-layer.is-playing .cil-return{animation:cilDrawMuted .9s ease 2.4s both}.cil-layer.is-playing .cil-finish{animation:cilFinish 3.5s linear both}
@keyframes cilIn{0%{opacity:0;transform:scale(.55)}100%{opacity:.78;transform:scale(1)}}@keyframes cilDraw{0%{stroke-dashoffset:1;opacity:.2}100%{stroke-dashoffset:0;opacity:.92}}@keyframes cilDrawMuted{0%{stroke-dashoffset:1;opacity:0}100%{stroke-dashoffset:0;opacity:.38}}@keyframes cilComet{0%{stroke-dashoffset:.08;opacity:0}8%,86%{opacity:.82}100%{stroke-dashoffset:-1;opacity:0}}@keyframes cilPulse{0%{opacity:.55;transform:scale(.5)}100%{opacity:0;transform:scale(2.6)}}@keyframes cilFinish{from{opacity:0}to{opacity:0}}

/* 7 · Network Rebalancing ------------------------------------------------ */
#production-network .network-stage{isolation:isolate}#production-network .network-stage::after{z-index:0;pointer-events:none}
.nr-layer{position:absolute;inset:0;z-index:1;overflow:hidden;pointer-events:none;--nr-line:rgba(132,148,173,.34);--nr-signal:var(--signal);--nr-amber:#B58348}.nr-layer svg{display:block;width:100%;height:100%}.nr-layer .nr-path{fill:none;stroke:var(--nr-line);stroke-width:1;stroke-linecap:round;vector-effect:non-scaling-stroke;stroke-dasharray:1000;stroke-dashoffset:0}.nr-layer .nr-base{opacity:.55}.nr-layer .nr-packet{fill:none;stroke:var(--nr-signal);stroke-width:1.6;stroke-linecap:round;vector-effect:non-scaling-stroke;stroke-dasharray:26 1000;stroke-dashoffset:-1000;opacity:0}.nr-layer .nr-halo{opacity:0}.nr-layer .nr-halo circle{fill:none;stroke:var(--nr-amber);vector-effect:non-scaling-stroke}.nr-layer .nr-halo__edge{stroke-width:1.1;stroke-dasharray:4 6;opacity:.7}.nr-layer .nr-halo__fill{fill:var(--nr-amber);stroke:none;opacity:.04}.nr-layer .nr-halo__ring{stroke-width:1;opacity:0;transform-box:view-box;transform-origin:0 0}.nr-layer .nr-alt{opacity:0}.nr-layer .nr-alt path{fill:none;stroke:var(--nr-line);stroke-width:1;stroke-dasharray:5 11;vector-effect:non-scaling-stroke}.nr-layer .nr-resolve{fill:none;stroke:var(--nr-signal);stroke-width:1.4;stroke-linecap:round;vector-effect:non-scaling-stroke;stroke-dasharray:1000;stroke-dashoffset:0;opacity:.72}.nr-layer .nr-finish{opacity:0}
.nr-layer.is-armed .nr-path,.nr-layer.is-armed .nr-resolve{stroke-dashoffset:1000}.nr-layer.is-armed .nr-base,.nr-layer.is-armed .nr-resolve,.nr-layer.is-armed .nr-halo{opacity:0}
.nr-layer.is-playing .nr-path{animation:nrDraw 1.5s cubic-bezier(.22,.61,.36,1) both;animation-delay:var(--nr-d,0s)}.nr-layer.is-playing .nr-base{animation:nrSettle 1.4s ease 8.1s both}.nr-layer.is-playing .nr-packet{animation:nrPacket 2.3s cubic-bezier(.45,0,.35,1) 2s both}.nr-layer.is-playing .nr-halo{animation:nrFade 5s ease 3.3s both}.nr-layer.is-playing .nr-halo__ring{animation:nrRing 2.4s ease-out 3.5s both}.nr-layer.is-playing .nr-alt{animation:nrAlt 4s ease-in-out 4.6s both}.nr-layer.is-playing .nr-resolve{animation:nrDraw 2.2s cubic-bezier(.22,.61,.36,1) 5.9s both,nrResolveFade 3.6s ease 5.9s both}.nr-layer.is-playing .nr-finish{animation:nrFinish 9.5s linear both}
@keyframes nrDraw{to{stroke-dashoffset:0}}@keyframes nrSettle{to{opacity:.55}}@keyframes nrPacket{0%{stroke-dashoffset:26;opacity:0}10%,88%{opacity:.95}100%{stroke-dashoffset:-1000;opacity:0}}@keyframes nrFade{0%,100%{opacity:0}18%,58%{opacity:.42}}@keyframes nrRing{0%{transform:scale(.78);opacity:.42}100%{transform:scale(1.35);opacity:0}}@keyframes nrAlt{0%{opacity:0}22%,62%{opacity:1}100%{opacity:0}}@keyframes nrResolveFade{0%{opacity:0}14%,61%{opacity:1}100%{opacity:.72}}@keyframes nrFinish{from{opacity:0}to{opacity:0}}

/* 8 · Predicted Before Built -------------------------------------------- */
#tbg{position:relative;isolation:isolate;overflow:hidden}html.motion-ready #tbg .closing-inner{opacity:1}.closing-inner{position:relative;z-index:2}.pbb-layer{position:absolute;inset:0;z-index:0;pointer-events:none;opacity:.2;-webkit-mask-image:linear-gradient(100deg,rgba(0,0,0,.10) 0%,rgba(0,0,0,.22) 30%,rgba(0,0,0,.75) 52%,#000 70%);mask-image:linear-gradient(100deg,rgba(0,0,0,.10) 0%,rgba(0,0,0,.22) 30%,rgba(0,0,0,.75) 52%,#000 70%)}.pbb-layer svg{position:absolute;inset:0;display:block;width:100%;height:100%}.pbb-layer.is-settled{opacity:1;transform:none;filter:blur(0)}.pbb-layer .pbb-finish{opacity:0}
.pbb-layer [data-i="0"]{--pbb-i:0}.pbb-layer [data-i="1"]{--pbb-i:1}.pbb-layer [data-i="2"]{--pbb-i:2}.pbb-layer [data-i="3"]{--pbb-i:3}.pbb-layer [data-i="4"]{--pbb-i:4}.pbb-layer [data-i="5"]{--pbb-i:5}
.pbb-layer.is-playing{animation:tbgSettle 3.4s cubic-bezier(.22,.61,.36,1) 0s both}.pbb-layer.is-playing [data-pbb="field"]{animation:tbgField .62s cubic-bezier(.22,.61,.36,1) 0s both}.pbb-layer.is-playing [data-pbb="sweep"]{animation:tbgSweep 1.24s cubic-bezier(.4,0,.2,1) .32s both}.pbb-layer.is-playing [data-pbb="draw"]{animation:tbgDraw .64s cubic-bezier(.16,.84,.44,1) both;animation-delay:calc(.38s + var(--pbb-i)*.09s)}.pbb-layer.is-playing [data-pbb="mass"]{animation:tbgMass .72s cubic-bezier(.33,1,.68,1) both;animation-delay:calc(1.42s + var(--pbb-i)*.07s)}.pbb-layer.is-playing [data-pbb="base"]{animation:tbgBase .82s cubic-bezier(.33,1,.68,1) 1.6s both}.pbb-layer.is-playing [data-pbb="signal"]{animation:tbgSignal .62s cubic-bezier(.4,0,.2,1) 2.82s both}.pbb-layer.is-playing .pbb-finish{animation:pbbFinish 3.44s linear both}
@keyframes tbgSettle{0%{opacity:0;transform:translateY(12px) scale(1.014);filter:blur(6px)}18%{opacity:.55}70%{filter:blur(0)}100%{opacity:1;transform:none;filter:blur(0)}}@keyframes tbgField{0%{opacity:0}100%{opacity:.5}}@keyframes tbgDraw{0%{stroke-dashoffset:1;opacity:.55}100%{stroke-dashoffset:0;opacity:1}}@keyframes tbgSweep{0%{opacity:0;transform:translateX(-460px)}14%,86%{opacity:1}100%{opacity:0;transform:translateX(1720px)}}@keyframes tbgMass{0%{opacity:0}100%{opacity:1}}@keyframes tbgBase{0%{opacity:0}100%{opacity:1}}@keyframes tbgSignal{0%{opacity:0;transform:translateX(-160px)}16%{opacity:.95}76%{opacity:.95;transform:translateX(1160px)}100%{opacity:.3;transform:translateX(1180px)}}@keyframes pbbFinish{from{opacity:0}to{opacity:0}}
@media (max-width:639.999px) and (prefers-reduced-motion:no-preference){
  .pbb-layer.is-playing{animation:pbbMobileIn 1.35s cubic-bezier(.22,.61,.36,1) both}
  .pbb-layer.is-playing [data-pbb]{animation:none}
  .pbb-layer.is-playing .pbb-finish{animation:pbbMobileFinish 1.4s linear both}
}
@keyframes pbbMobileIn{from{opacity:.08;transform:translateY(12px)}to{opacity:.14;transform:none}}@keyframes pbbMobileFinish{from{opacity:0}to{opacity:0}}

/* Static and compact states --------------------------------------------- */
@media (max-width:639.999px){
  [data-pred-corridor]{margin:20px 0}[data-pred-corridor] [data-pc-alt="2"]{display:none}
  .constraint-stage{padding:14px}.tkcb-h{display:none}.tkcb-mobile{display:block;width:100%;height:auto}.takt-bag .takt-bag-h{display:none}.takt-bag .takt-bag-v{display:block;max-width:300px;margin:0 auto}.takt-bag-stage{padding:8px 18px}.pbb-layer,.pbb-layer.is-settled{opacity:.14}
  .fsim{margin:16px 0 0}.cil-layer .cil-comet,.cil-layer .cil-pulse,.nr-layer .nr-packet,.nr-layer .nr-alt,.nr-layer .nr-halo__ring{display:none}
}
@media (prefers-reduced-motion:reduce){
  [data-pred-corridor] [data-pc-a],.tkcb *,.fsim *,.takt-bag,.takt-bag *,.takt-cadence *,.takt-cadence .result-item::before,.takt-cadence .result-item::after,.cil-layer *,.nr-layer *,.pbb-layer,.pbb-layer *{animation:none!important;transition:none!important}
  [data-pred-corridor] [data-pc-alt="2"]{display:none}
}
@media (prefers-reduced-motion:reduce) and (min-width:640px){.pbb-layer,.pbb-layer.is-settled{opacity:.2}}
@media print{[data-pred-corridor] [data-pc-a],.tkcb *,.fsim *,.takt-bag,.takt-bag *,.takt-cadence *,.takt-cadence .result-item::before,.takt-cadence .result-item::after,.cil-layer *,.nr-layer *,.pbb-layer,.pbb-layer *{animation:none!important;transition:none!important}.pbb-layer,.pbb-layer.is-settled{opacity:.2}[data-pred-corridor] [data-pc-alt="2"]{display:none}}
