Skip to content
In development · Content subject to change without notice
Shoreline Watch · Live Data
Moreton Bay
Shoreline Monitor
Community observations · Updated in real time
📍 Submit an Observation
Observations
Sites monitored
Issues flagged


Loading observations…
Conversations With Birds const GATE_KEY = 'fsb_auth'; const isLoggedIn = localStorage.getItem(GATE_KEY) === '1' || sessionStorage.getItem(GATE_KEY) === '1'; const authBtn = document.getElementById('nav-auth-btn'); const pubNav = document.querySelector('.nav-public-links'); const stewNav = document.querySelector('.nav-steward-links'); const tier2 = document.getElementById('fsb-t2'); if (isLoggedIn) { if (pubNav) pubNav.style.display = 'none'; var regBtn = document.querySelector('.nav-register-btn'); if(regBtn) regBtn.style.display='none'; if (stewNav) stewNav.style.display = ''; if (tier2) tier2.style.display = ''; if (authBtn) { authBtn.textContent = 'Logout'; authBtn.href = '#'; authBtn.addEventListener('click', function(e) { e.preventDefault(); sessionStorage.removeItem(GATE_KEY); localStorage.removeItem(GATE_KEY); localStorage.removeItem('fsb_auth'); window.location.href = '/'; }); } } else { if (tier2) tier2.style.display = 'none'; } // Fix: add ?from=currentPath to Steward Login button so login returns here if (authBtn && !isLoggedIn) { var _fromPath = window.location.pathname; if (_fromPath && _fromPath !== '/' && !_fromPath.includes('password')) { authBtn.href = '/password?from=' + encodeURIComponent(_fromPath); } } // Active link var curPath = window.location.pathname.replace(/\/+$/, '') || '/'; document.querySelectorAll('.nav-links a').forEach(function(a) { var aPath = a.getAttribute('href') || ''; if (aPath && (curPath === aPath || (aPath !== '/' && curPath.startsWith(aPath)))) { a.classList.add('active'); } }); (function(){ var btn=document.getElementById('nav-hamburger'); if(!btn) return; var overlay=document.createElement('div'); overlay.className='nav-overlay'; document.body.appendChild(overlay); function getActiveNav(){ var all=document.querySelectorAll('.nav-links'); for(var i=0;i