/* Donation banner styling from the supplied code snippet. */
.liam-donate-banner-wrap,
        .liam-donate-banner-wrap *{
            box-sizing: border-box;
            user-select: none;
            -webkit-user-select: none;
        }

        .liam-donate-banner-wrap{
            position: fixed;
            left: 0;
            right: 0;
            bottom: 0;
            z-index: 99999;
            opacity: 0;
            visibility: hidden;
            transform: translateY(100%);
            -webkit-transform: translateY(100%);
            transition: transform 420ms cubic-bezier(.2,.9,.2,1),
                        opacity 420ms cubic-bezier(.2,.9,.2,1),
                        visibility 0ms 420ms;
            -webkit-transition: -webkit-transform 420ms cubic-bezier(.2,.9,.2,1),
                                opacity 420ms cubic-bezier(.2,.9,.2,1),
                                visibility 0ms 420ms;
            will-change: transform, opacity;
            -webkit-backface-visibility: hidden;
            backface-visibility: hidden;
        }

        .liam-donate-banner-wrap.liam-shown{
            opacity: 1;
            visibility: visible;
            transform: translateY(0);
            -webkit-transform: translateY(0);
            transition: transform 420ms cubic-bezier(.2,.9,.2,1),
                        opacity 420ms cubic-bezier(.2,.9,.2,1),
                        visibility 0ms 0ms;
            -webkit-transition: -webkit-transform 420ms cubic-bezier(.2,.9,.2,1),
                                opacity 420ms cubic-bezier(.2,.9,.2,1),
                                visibility 0ms 0ms;
        }

        @supports (-webkit-touch-callout: none) {
            .liam-donate-banner-wrap{
                padding-bottom: constant(safe-area-inset-bottom);
                padding-bottom: env(safe-area-inset-bottom);
            }
        }

        .liam-donate-banner{
            position: relative;
            margin: 16px;
            border-radius: 22px;
            overflow: hidden;
            isolation: isolate;
            background: radial-gradient(140% 120% at 20% 30%, #1c2b5a 0%, #0b1020 45%, #070a14 100%);
            box-shadow: 0 -14px 40px rgba(0,0,0,.45);
            min-height: 240px;
            animation: liam-hue 26s ease-in-out infinite;

            display: flex;
            align-items: center;
            justify-content: center;

            -webkit-mask-image: -webkit-radial-gradient(white, black);
            -webkit-mask-size: 100% 100%;
            -webkit-mask-repeat: no-repeat;
        }

        .liam-donate-cover{
            position: absolute;
            inset: 0;
            z-index: 4;
            display: block;
        }

        .liam-donate-stars,
        .liam-donate-twinkle,
        .liam-donate-aurora{
            position: absolute;
            inset: 0;
            pointer-events: none;
            border-radius: inherit;
        }

        .liam-donate-stars{
            z-index: 1;
            opacity: .75;
            background:
                radial-gradient(1px 1px at 10% 20%, rgba(255,255,255,.85) 99%, transparent 100%),
                radial-gradient(1px 1px at 30% 70%, rgba(255,255,255,.75) 99%, transparent 100%),
                radial-gradient(1px 1px at 55% 35%, rgba(255,255,255,.80) 99%, transparent 100%),
                radial-gradient(1px 1px at 75% 80%, rgba(255,255,255,.70) 99%, transparent 100%),
                radial-gradient(1px 1px at 88% 25%, rgba(255,255,255,.78) 99%, transparent 100%),
                radial-gradient(1.5px 1.5px at 18% 85%, rgba(255,255,255,.70) 99%, transparent 100%),
                radial-gradient(1.5px 1.5px at 62% 60%, rgba(255,255,255,.70) 99%, transparent 100%),
                radial-gradient(2px 2px at 44% 18%, rgba(255,255,255,.62) 99%, transparent 100%);
            background-size: 260px 260px, 300px 300px, 340px 340px, 380px 380px,
                             420px 420px, 460px 460px, 520px 520px, 600px 600px;
            background-repeat: repeat;
            animation: liam-stars-drift 220s linear infinite;
            filter: drop-shadow(0 0 .6px rgba(255,255,255,.7));
        }

        .liam-donate-twinkle{
            z-index: 2;
            opacity: .55;
            mix-blend-mode: screen;
            background:
                radial-gradient(40px 30px at 18% 30%, rgba(255,255,255,.18), transparent 70%),
                radial-gradient(50px 40px at 52% 22%, rgba(255,255,255,.16), transparent 72%),
                radial-gradient(60px 45px at 80% 62%, rgba(255,255,255,.14), transparent 74%),
                radial-gradient(45px 35px at 35% 78%, rgba(255,255,255,.16), transparent 72%);
            animation: liam-twinkle 7s ease-in-out infinite alternate;
        }

        .liam-donate-aurora{
            z-index: 3;
            opacity: .85;
            overflow: hidden;
        }

        .liam-donate-aurora::before,
        .liam-donate-aurora::after{
            content: "";
            position: absolute;
            inset: 0;
            border-radius: inherit;
            background:
                radial-gradient(55% 40% at 20% 35%, rgba(255, 95, 162, .35), transparent 60%),
                radial-gradient(50% 38% at 45% 20%, rgba(255, 224, 102, .30), transparent 58%),
                radial-gradient(60% 42% at 70% 35%, rgba(110, 231, 183, .30), transparent 62%),
                radial-gradient(55% 40% at 80% 65%, rgba(96, 165, 250, .28), transparent 62%),
                radial-gradient(50% 38% at 35% 75%, rgba(167, 139, 250, .26), transparent 62%),
                radial-gradient(70% 55% at 55% 55%, rgba(255, 179, 71, .18), transparent 64%);
            filter: blur(28px) saturate(1.15);
            transform: translate3d(0,0,0);
            mix-blend-mode: screen;
            animation: liam-aurora-drift 18s ease-in-out infinite;
        }

        .liam-donate-aurora::after{
            opacity: .55;
            filter: blur(40px) saturate(1.25);
            animation: liam-aurora-drift-2 24s ease-in-out infinite;
        }

        .liam-donate-decor{
            position: absolute;
            right: 60px;
            top: 50%;
            transform: translateY(-50%);
            z-index: 4;
            display: flex;
            align-items: center;
            justify-content: center;
            pointer-events: none;
        }

        .liam-donate-orb{
            width: 92px;
            height: 92px;
            border-radius: 999px;
            opacity: .26;
            background:
                radial-gradient(circle at 30% 30%, rgba(255,255,255,.16), transparent 55%),
                radial-gradient(circle at 55% 60%, rgba(96,165,250,.16), transparent 62%),
                radial-gradient(circle at 40% 70%, rgba(255,95,162,.12), transparent 62%),
                radial-gradient(circle at 65% 35%, rgba(110,231,183,.12), transparent 62%),
                rgba(255,255,255,.02);

            filter: blur(1px);
            box-shadow:
                0 10px 24px rgba(0,0,0,.18),
                0 0 0 1px rgba(255,255,255,.04) inset;

            transform: translateZ(0);
            animation: liam-orb-float 10s ease-in-out infinite;
        }

        .liam-donate-content{
            position: relative;
            z-index: 5;
            max-width: 630px;
            width: 100%;
            padding: 26px 32px 22px 32px;
            text-align: left;
        }

        .liam-donate-eyebrow{
            font: 600 12px/1.2 system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
            letter-spacing: .14em;
            text-transform: uppercase;
            color: rgba(255,255,255,.78);
            margin-bottom: 10px;
        }

        .liam-donate-title{
            margin: 0 0 10px 0;
            font: 700 34px/1.05 system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
            color: rgba(255,255,255,.95);
            text-shadow: 0 10px 30px rgba(0,0,0,.35);
        }

        .liam-donate-subtitle{
            margin: 0 0 16px 0;
            font: 400 16px/1.45 system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
            color: rgba(255,255,255,.82);
            max-width: 58ch;
        }

        .liam-donate-actions{
            display: flex;
            gap: 12px;
            flex-wrap: wrap;
            margin: 14px 0 12px 0;
            justify-content: flex-start;
        }

        .liam-donate-btn{
            position: relative;
            z-index: 7;
            display: inline-flex;
            align-items: center;
            justify-content: center;
            height: 46px;
            padding: 0 18px;
            border-radius: 14px;
            text-decoration: none;
            font: 700 15px/1 system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
            transition: transform 140ms ease, box-shadow 140ms ease, background 140ms ease;
            white-space: nowrap;

            transform: translateZ(0);
            backface-visibility: hidden;
            -webkit-font-smoothing: antialiased;
            text-rendering: geometricPrecision;
            transform-origin: center;
        }

        .liam-donate-btn::before{
            content: "";
            position: absolute;
            inset: 0;
            border-radius: inherit;
            background: rgba(255,255,255,.10);
            opacity: 0;
            transition: opacity 140ms ease;
            pointer-events: none;
        }

        .liam-donate-btn.primary{
            text-shadow: 0 1px 2px rgba(0,0,0,.25);
            color: rgba(255,255,255,.96);
            background: linear-gradient(
                135deg,
                #f472b6,
                #fb923c,
                #fde047,
                #34d399,
                #60a5fa,
                #a78bfa
            );
            background-size: 200% 200%;
            filter: saturate(.85) brightness(.95);
            box-shadow:
                0 10px 24px rgba(0,0,0,.30),
                0 0 0 1px rgba(255,255,255,.14) inset;
            animation: liam-cta-breathe 6s ease-in-out infinite, liam-cta-shift 10s ease-in-out infinite;
        }

        .liam-donate-btn.secondary{
            color: rgba(255,255,255,.88);
            background: rgba(255,255,255,.08);
            box-shadow: 0 0 0 1px rgba(255,255,255,.16) inset;
            backdrop-filter: blur(10px);
        }

        .liam-donate-btn:hover{
            transform: translate3d(0, -1px, 0) scale(1.01);
            box-shadow:
                0 12px 28px rgba(0,0,0,.34),
                0 0 0 1px rgba(255,255,255,.18) inset;
        }

        .liam-donate-btn:hover::before{
            opacity: 1;
        }

        .liam-donate-btn:active{
            transform: translate3d(0, 0, 0) scale(.99);
        }

        .liam-donate-btn:focus-visible{
            outline: 2px solid rgba(255,255,255,.75);
            outline-offset: 2px;
        }

        .liam-donate-proof{
            display: inline-flex;
            align-items: center;
            gap: 10px;
            font: 600 13px/1.2 system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
            color: rgba(255,255,255,.78);
        }

        .liam-donate-proof-dot{
            width: 10px;
            height: 10px;
            border-radius: 999px;
            background: rgba(110,231,183,.9);
            box-shadow: 0 0 14px rgba(110,231,183,.45);
            flex: 0 0 auto;
        }

        .liam-donate-close{
            position: absolute;
            top: 14px;
            right: 14px;
            z-index: 9;
            width: 42px;
            height: 42px;
            min-width: 42px;
            min-height: 42px;
            max-width: 42px;
            max-height: 42px;
            padding: 0;
            margin: 0;
            border: none;
            border-radius: 50%;
            background: rgba(0,0,0,.40);
            color: rgba(255,255,255,.90);
            cursor: pointer;
            display: flex;
            align-items: center;
            justify-content: center;
            box-shadow: 0 10px 18px rgba(0,0,0,.25);
            transition: transform 140ms ease, background 140ms ease;
            -webkit-appearance: none;
            appearance: none;
            line-height: 1;
            flex-shrink: 0;

            transform: translateZ(0);
            backface-visibility: hidden;
            -webkit-font-smoothing: antialiased;
        }

        .liam-donate-close:hover{
            transform: translateZ(0) scale(1.05);
            background: rgba(0,0,0,.56);
        }

        .liam-donate-close:active{
            transform: translateZ(0) scale(.98);
        }

        .liam-donate-close:focus-visible{
            outline: 2px solid rgba(255,255,255,.75);
            outline-offset: 2px;
        }

        .liam-donate-close svg{
            width: 20px;
            height: 20px;
            min-width: 20px;
            min-height: 20px;
            stroke: currentColor;
            stroke-width: 2.5;
            fill: none;
            stroke-linecap: round;
            display: block;
            flex-shrink: 0;
        }

        @media (max-width: 980px){
            .liam-donate-decor{ display: none; }
            .liam-donate-content{
                max-width: 720px;
                padding: 24px 20px 18px 20px;
            }
            .liam-donate-title{ font-size: 30px; }
        }

        @media (max-width: 560px){
            .liam-donate-banner{ margin: 10px; }
            .liam-donate-title{ font-size: 26px; }
            .liam-donate-subtitle{ font-size: 15px; }
            .liam-donate-btn{ width: 100%; }
        }

        @keyframes liam-stars-drift{
            0%   { background-position: 0 0, 0 0, 0 0, 0 0, 0 0, 0 0, 0 0, 0 0; }
            100% { background-position: 260px 260px, -300px 300px, 340px -340px, -380px -380px, 420px 420px, -460px 460px, 520px -520px, -600px 600px; }
        }

        @keyframes liam-twinkle{
            0%   { opacity: .38; filter: brightness(.92); transform: translateY(0); }
            50%  { opacity: .60; filter: brightness(1.08); transform: translateY(-1px); }
            100% { opacity: .46; filter: brightness(.98); transform: translateY(0); }
        }

        @keyframes liam-aurora-drift{
            0%   { transform: translate3d(-2%, -1%, 0) scale(1.02) rotate(-2deg); }
            50%  { transform: translate3d(2%,  1.5%, 0) scale(1.05) rotate(2deg); }
            100% { transform: translate3d(-2%, -1%, 0) scale(1.02) rotate(-2deg); }
        }

        @keyframes liam-aurora-drift-2{
            0%   { transform: translate3d(2%, 1%, 0) scale(1.04) rotate(2deg); }
            50%  { transform: translate3d(-2%, -1.5%, 0) scale(1.06) rotate(-2deg); }
            100% { transform: translate3d(2%, 1%, 0) scale(1.04) rotate(2deg); }
        }

        @keyframes liam-hue{
            0%   { filter: hue-rotate(0deg); }
            50%  { filter: hue-rotate(10deg); }
            100% { filter: hue-rotate(0deg); }
        }

        @keyframes liam-cta-breathe{
            0%,100% { box-shadow: 0 10px 24px rgba(0,0,0,.30), 0 0 0 1px rgba(255,255,255,.14) inset; }
            50%     { box-shadow: 0 12px 28px rgba(0,0,0,.34), 0 0 18px rgba(255,255,255,.08), 0 0 0 1px rgba(255,255,255,.16) inset; }
        }

        @keyframes liam-cta-shift{
            0%   { background-position: 0% 50%; }
            50%  { background-position: 100% 50%; }
            100% { background-position: 0% 50%; }
        }

        @keyframes liam-orb-float{
            0%,100% { transform: translateY(0) scale(1); opacity: .24; }
            50%     { transform: translateY(-5px) scale(1.02); opacity: .30; }
        }

        @media (prefers-reduced-motion: reduce){
            .liam-donate-banner-wrap{ transition: none !important; }
            .liam-donate-banner,
            .liam-donate-stars,
            .liam-donate-twinkle,
            .liam-donate-aurora::before,
            .liam-donate-aurora::after,
            .liam-donate-btn.primary,
            .liam-donate-orb{
                animation: none !important;
            }
        }
