What problem does it solve? Angular code that touches browser globals like window or document breaks under server-side rendering and becomes untestable. This Skill provides the established DI-based pattern for accessing these globals safely through tokens and services. ## Core Features & Use Cases - Token-based injection: Inject WINDOW, DOCUMENT, and PlatformService instead of referencing globals directly in components, services, and directives. - Typed global access: Cast the WINDOW token to Window & typeof globalThis with an explanatory comment when constructors like IntersectionObserver or ResizeObserver are needed. - Pure function support: Pass the window object as a parameter into *.logic.ts and *.util.ts functions that have no DI context. - Render-safe DOM work: Guard environment checks with PlatformService.isPlatformBrowser and defer DOM initialization with afterNextRender. - Use Case: When adding Google Maps loading to a component, inject WINDOW, cast it with a comment, pass it into a pure mapsReady function, and skip execution on non-browser platforms. ## Quick Start Apply the platform-access pattern to inject WINDOW and PlatformService instead of touching window or document directly in this Angular service.