document.addEventListener("DOMContentLoaded", () => { // Sentinel element at top const sentinel = document.createElement("div"); sentinel.style.cssText = "position:absolute;top:0;left:0;height:1px;width:1px;pointer-events:none;"; document.body.prepend(sentinel); // Toggle scrolled class on body const observer = new IntersectionObserver(([entry]) => { const atTop = entry.isIntersecting; document.body.classList.toggle("header-scrolled", !atTop); document.body.classList.toggle("header-at-top", atTop); // Always show header when at top if (atTop) { document.body.classList.remove("header-hidden"); document.body.classList.add("header-visible"); } }, { threshold: 0 }); observer.observe(sentinel); // ======================= // HIDE / SHOW ON SCROLL LOGIC // ======================= let lastScrollY = window.scrollY; let ticking = false; const SCROLL_THRESHOLD = 10; // Minimum scroll distance to trigger hide/show function updateHeaderVisibility() { const currentScrollY = window.scrollY; const scrollDifference = currentScrollY - lastScrollY; // If at the very top, always show if (currentScrollY SCROLL_THRESHOLD) { if (scrollDifference > 0) { // Scrolling DOWN - hide header document.body.classList.add("header-hidden"); document.body.classList.remove("header-visible"); } else { // Scrolling UP - show header document.body.classList.remove("header-hidden"); document.body.classList.add("header-visible"); } lastScrollY = currentScrollY; } ticking = false; } // Listen to scroll events window.addEventListener("scroll", () => { if (!ticking) { window.requestAnimationFrame(updateHeaderVisibility); ticking = true; } }, { passive: true }); // Initialize as visible document.body.classList.add("header-visible"); // ======================= // FIX HEADER WRAPPER HEIGHT // ======================= const headerWrap = document.querySelector(".elementor.elementor-location-header"); const desktopEl = document.querySelector("#desktopHeader"); const mobileEl = document.querySelector("#mobileHeader"); if (!headerWrap) return; const setWrapHeight = () => { const isDesktop = window.innerWidth > 1200; // adjust to your Elementor breakpoint const h = isDesktop ? (desktopEl?.offsetHeight || 0) : (mobileEl?.offsetHeight || 0); headerWrap.style.height = h + "px"; }; setWrapHeight(); window.addEventListener("resize", setWrapHeight, { passive: true }); // Auto-update if header height changes (menus, fonts, responsive shifts) if ("ResizeObserver" in window) { const ro = new ResizeObserver(setWrapHeight); if (desktopEl) ro.observe(desktopEl); if (mobileEl) ro.observe(mobileEl); } });
(function() { var bb_initialized = false; document.addEventListener('click', function(e) { if (!e.target.closest('.bb-trigger')) return; e.preventDefault(); e.stopPropagation(); if (bb_initialized && window.BB && window.BB.api) { BB.api.openModal('leadWorkflow'); return; } function init() { if (window.BB) { BB.init('1254053809', document.getElementById('bb-abec1'), {type:'api'}); bb_initialized = true; setTimeout(function() { if (window.BB.api) BB.api.openModal('leadWorkflow'); }, 500); } } if (window.BB) { init(); } else { var s = document.createElement('script'); s.src = 'https://cdn.bankingbridge.com/assets/external/index.js'; s.async = true; s.onload = init; document.head.appendChild(s); } }, true); })();
Get In Touch

Let's Chat

I'd be Glad to Hear from you

Please complete the form below to inquire about services or discuss a potential engagement. I personally review every inquiry and will respond within 48 hours. For additional information, explore the FAQs below or the pricing guide.

Frequently Asked Questions

I read every inquiry and respond within two business days, usually sooner. The first conversation is an exchange about what you are leading and whether what I do is genuinely useful for the moment you are in. If the work is not a fit, we will figure that out together, and I will do my best to  refer you to a trusted colleague in my network who may be better suited to help you.

Usually 45 minutes, but if we need more time then we’ll take it.

Absolutely. When you receive the scheduling link in my reply, there will be a prompt to include others on the call. When you enter their email addresses and click submit, they will also receive the calendar invite for the date and time you choose.

All introduction calls are by video. For advising calls, we will meet by video for the first strategy session and then decide together what format works best for the work we are doing. Some of my coaching clients stay on video call throughout. Others prefer phone for ongoing sessions because it lets them think while walking, looking out a window, or otherwise getting out from behind a screen. The format is yours to choose, and we can change it whenever it stops serving you.

I do lead cohort workshops virtually, but in-person is always better in my view especially when I am working with just one team. 

Anna was instrumental in helping me transition from the classroom to an administrative role, a big opportunity for me but also a big change.

After more than ten years of teaching, the idea of stepping into a new position felt overwhelming, even though I knew I was ready for the next step. Anna supported me at every stage, from navigating tough conversations with families to giving feedback to teachers. She was there whenever I needed her.

As a coach, Anna is clear and direct. She offers feedback that genuinely helps you achieve the results you’re striving for. Her thoughtful, data-driven approach to mentoring comes through in every conversation and every interaction.

 

Megan C., Washington, D.C.

Force Multiplier IQ Free Guide Cover - Understanding Employee Resistance To Change, by Anna Carello