@@ -12,6 +12,48 @@ const { title } = Astro.props;
1212---
1313<!-- Site Header -->
1414<header class =" sticky top-0 z-50 border-b border-white/5 bg-[#0b0b0c]/80 backdrop-blur supports-[backdrop-filter]:bg-[#0b0b0c]/60" >
15+ <!-- Support Banner -->
16+ <div id =" support-banner" class =" bg-[#db3434] text-white" >
17+ <div class =" mx-auto max-w-7xl px-4 sm:px-6 lg:px-8" >
18+ <div class =" flex items-start sm:items-center justify-between gap-3 py-2 text-sm" >
19+ <p class =" leading-snug" >
20+ Support Bill and Keonne in their fight against unjust prosecution in the case against Samourai Wallet.
21+ <a class =" underline font-medium hover:opacity-90" href =" https://billandkeonne.org/" target =" _blank" rel =" noreferrer" >Learn more</a >
22+ <span class =" px-1" >·</span >
23+ <a class =" underline hover:opacity-90" href =" https://www.change.org/p/stand-up-for-freedom-pardon-the-innocent-coders-jailed-for-building-privacy-tools" target =" _blank" rel =" noreferrer" >Sign the petition</a >
24+ <span class =" px-1" >·</span >
25+ <a class =" underline hover:opacity-90" href =" https://billandkeonne.org/#donations" target =" _blank" rel =" noreferrer" >Donate to families</a >
26+ </p >
27+ <button data-dismiss aria-label =" Dismiss support banner" class =" shrink-0 inline-flex items-center justify-center rounded p-1 hover:bg-white/10 focus:outline-none focus-visible:ring-2 focus-visible:ring-white/60 cursor-pointer" >
28+ <svg xmlns =" http://www.w3.org/2000/svg" viewBox =" 0 0 20 20" fill =" currentColor" class =" h-5 w-5" aria-hidden =" true" >
29+ <path fill-rule =" evenodd" d =" M10 8.586 4.293 2.879A1 1 0 1 0 2.88 4.293L8.586 10l-5.707 5.707a1 1 0 1 0 1.414 1.414L10 11.414l5.707 5.707a1 1 0 0 0 1.414-1.414L11.414 10l5.707-5.707A1 1 0 0 0 15.707 2.88L10 8.586Z" clip-rule =" evenodd" />
30+ </svg >
31+ </button >
32+ </div >
33+ </div >
34+ </div >
35+ <script >
36+ (function() {
37+ try {
38+ const key = 'support-banner-dismissed';
39+ const banner = document.getElementById('support-banner');
40+ if (!banner) return;
41+ if (typeof window !== 'undefined' && window.sessionStorage && sessionStorage.getItem(key) === '1') {
42+ banner.style.display = 'none';
43+ return;
44+ }
45+ const btn = banner.querySelector('[data-dismiss]');
46+ if (btn) {
47+ btn.addEventListener('click', () => {
48+ banner.style.display = 'none';
49+ try { sessionStorage.setItem(key, '1'); } catch (e) { /* ignore */ }
50+ });
51+ }
52+ } catch (e) {
53+ // no-op
54+ }
55+ })();
56+ </script >
1557 <div class =" mx-auto max-w-7xl px-4 sm:px-6 lg:px-8" >
1658 <div class =" flex h-16 items-center justify-between" >
1759 <a href =" /" class =" group inline-flex items-center gap-3" >
0 commit comments