/* v4f · slide 09 (two_tracks) order motion. Everything is scoped under .fork.tt-run, which only exists while the
   sequence plays; without it the slide is exactly the static layout. Only opacity / transform / stroke-dashoffset move. */
.fork{position:relative}
.fork-judge li{position:relative}
.tt-replay{position:absolute;right:0;bottom:-46px}
.fork.tt-reset,.fork.tt-reset *,.fork.tt-reset *:before,.fork.tt-reset *:after{transition:none!important}

/* a · 판단 box, then its three factors one after another */
.fork.tt-run .fork-judge{opacity:0;transform:translateY(10px);transition:opacity .35s ease,transform .35s ease}
.fork.tt-run .fork-judge.tt-on{opacity:1;transform:none}
.fork.tt-run .fork-judge li{opacity:.22;transition:opacity .3s ease}
.fork.tt-run .fork-judge li.tt-on{opacity:1}
.fork.tt-run .fork-judge li:after{content:"";position:absolute;left:0;right:0;bottom:-7px;height:3px;background:var(--link);transform:scaleX(0);transform-origin:left;opacity:1;transition:transform .4s ease,opacity .35s ease}
.fork.tt-run .fork-judge li.tt-on:after{transform:none}
.fork.tt-run .fork-judge li.tt-off:after{opacity:0}

/* b · the line drops from 판단, splits, then each arrow draws (overlay paths; the static paths hide meanwhile) */
.fork.tt-run .fork-lines > path{opacity:0}
.fork-lines .tt-draw path{stroke-dasharray:1 1;stroke-dashoffset:1;transition:stroke-dashoffset var(--tt-d,.4s) cubic-bezier(.4,0,.2,1)}
.fork-lines .tt-draw path.tt-on{stroke-dashoffset:0}

/* cards rise in; icons light left→right with the small arrows between them; chips pop */
.fork.tt-run .fork-lanes:before{opacity:0;transition:opacity .5s ease}
.fork.tt-run .fork-lanes.tt-on:before{opacity:1}
.fork.tt-run .fork-lane{opacity:0;transform:translateY(22px);transition:opacity .45s ease,transform .5s cubic-bezier(.2,.7,.2,1)}
.fork.tt-run .fork-lane.tt-on{opacity:1;transform:none}
.fork.tt-run .branch-strip li:not(.arrow){opacity:.16;transform:scale(.9);transition:opacity .3s ease,transform .35s cubic-bezier(.3,1.5,.5,1)}
.fork.tt-run .branch-strip li.arrow{opacity:0;transform:translateX(-8px);transition:opacity .25s ease,transform .25s ease}
.fork.tt-run .branch-strip li.tt-on{opacity:1;transform:none}
.fork.tt-run .route-examples li{opacity:0;transform:scale(.82);transition:opacity .25s ease,transform .35s cubic-bezier(.3,1.6,.5,1)}
.fork.tt-run .route-examples li.tt-on{opacity:1;transform:none}

@media(prefers-reduced-motion:reduce){
  .tt-replay{display:none}
  .fork-lines .tt-draw{display:none}
}
