Streamlit/Tornado switches the asyncio policy to WindowsSelectorEventLoopPolicy on Windows, which breaks Playwright subprocess creation. Fixed by using an explicit ProactorEventLoop on Windows, and tracking the event loop per browser instance to detect cross-loop reuse.