, but this code // executes before the first paint, when

ÃÛÌÒapp

is not yet present. The // classes are added to so styling immediately reflects the current // toolbar state. The classes are removed after the toolbar completes // initialization. const classesToAdd = ['toolbar-loading', 'toolbar-anti-flicker']; if (toolbarState) { const { orientation, hasActiveTab, isFixed, activeTray, activeTabId, isOriented, userButtonMinWidth } = toolbarState; classesToAdd.push( orientation ? `toolbar-` + orientation + `` : 'toolbar-horizontal', ); if (hasActiveTab !== false) { classesToAdd.push('toolbar-tray-open'); } if (isFixed) { classesToAdd.push('toolbar-fixed'); } if (isOriented) { classesToAdd.push('toolbar-oriented'); } if (activeTray) { // These styles are added so the active tab/tray styles are present // immediately instead of "flickering" on as the toolbar initializes. In // instances where a tray is lazy loaded, these styles facilitate the // lazy loaded tray appearing gracefully and without reflow. const styleContent = ` .toolbar-loading #` + activeTabId + ` { background-image: linear-gradient(rgba(255, 255, 255, 0.25) 20%, transparent 200%); } .toolbar-loading #` + activeTabId + `-tray { display: block; box-shadow: -1px 0 5px 2px rgb(0 0 0 / 33%); border-right: 1px solid #aaa; background-color: #f5f5f5; z-index: 0; } .toolbar-loading.toolbar-vertical.toolbar-tray-open #` + activeTabId + `-tray { width: 15rem; height: 100vh; } .toolbar-loading.toolbar-horizontal :not(#` + activeTray + `) > .toolbar-lining {opacity: 0}`; const style = document.createElement('style'); style.textContent = styleContent; style.setAttribute('data-toolbar-anti-flicker-loading', true); document.querySelector('head').appendChild(style); if (userButtonMinWidth) { const userButtonStyle = document.createElement('style'); userButtonStyle.textContent = `#toolbar-item-user {min-width: ` + userButtonMinWidth +`px;}` document.querySelector('head').appendChild(userButtonStyle); } } } document.querySelector('html').classList.add(...classesToAdd); })(); Effects of pollution on Great Lakes colonial water birds | ÃÛÌÒapp

ÃÛÌÒapp

Skip to main content

Effects of pollution on Great Lakes colonial water birds

85

Performing medical tests on colonies of herring gulls, black-crowned night herons and Caspian terns to see whether pollution is contributing to their health problems and low population numbers.


<p>For more than 20 years, professor Keith Grasman has studied the effects of pollution on Great Lakes colonial waterbirds, focusing on three species: Herring Gulls, Black-Crowned Night Herons and Caspian Terns. By testing these birds, he provides the data needed to guide cleanup efforts and inform government agencies, like the U.S. Fish and Wildlife Service which sponsors his work, of the magnitude of the problem.</p>
<p>Colonial waterbirds are exposed to pollution when they eat contaminated fish. But the gulls and terns that make their homes on the CDF are affected much more directly. Bay City&rsquo;s channel conducts a high volume of cargo ships, whose deep drafts require the channel to be regularly dredged. The resulting sediment is thick with industrial chemicals like polychlorinated biphenyls (PCBs).</p>
<p>Considered too toxic to be brought inland, the sediment is dumped on the island.</p>
<p>Many of the island&rsquo;s birds display symptoms of Great Lakes embryo mortality, edema and deformity syndrome (GLEMEDS), responsible for immune system deficiencies and birth defects like crossed bills.</p>


Funded by

US Fish and Wildlife Service, Jansma Fund, Star Talen Fellowship