/* Campaign landing pages (campaigns/<name>/): the site's shared footer from source/footer.mjs,
restyled to match the campaign page. Campaign pages define --ink, --gold, --violet, --display, --body
and --hand; site.css is not loaded on them. */
.campaign-footer{position:relative;overflow:hidden;background:var(--ink,#0B0818);color:#fff;display:flex;flex-direction:column;gap:28px;padding:clamp(48px,7vw,80px) max(clamp(16px,4vw,32px),calc((100% - 1120px)/2 + clamp(16px,4vw,32px))) clamp(110px,12vw,120px);font-family:var(--body);font-size:16px;line-height:1.55}
.campaign-footer > *{position:relative;z-index:1}
.campaign-footer .dm-foot{position:absolute;z-index:0;right:-40px;bottom:-110px;height:min(64vw,460px);width:auto;max-width:none;opacity:.2;pointer-events:none;overflow:visible}
.campaign-footer .dm .s{fill:none;stroke:var(--violet,#6A29D2);stroke-width:80;stroke-linecap:round;stroke-linejoin:round}
.campaign-footer .dm .bowl{stroke-linecap:butt}
.campaign-footer .top{display:flex;justify-content:space-between;align-items:flex-start;gap:32px 56px;flex-wrap:wrap;padding:0}
.campaign-footer .brand{display:flex;flex-direction:column;gap:14px;max-width:340px}
.campaign-footer .brand p{margin:0;color:#CFC8E4}
.campaign-footer .lock{display:inline-flex;align-items:baseline;gap:.045em;font-family:var(--display);font-weight:600;letter-spacing:-.025em;line-height:1;color:#fff;white-space:nowrap}
.campaign-footer .lock .dlock{display:inline-block;height:.83em;width:auto;overflow:visible;transform:translateY(.02em)}
.campaign-footer .col{display:flex;flex-direction:column;gap:10px;min-width:180px}
.campaign-footer .col .mono{margin:0 0 2px;font-family:var(--hand);font-size:26px;line-height:1.1;color:var(--gold,#FFD24A);transform:rotate(-2deg);transform-origin:left center}
.campaign-footer .col a,.campaign-footer .col span{color:#fff;font-size:16px;text-decoration:none}
.campaign-footer .col a:hover{color:var(--gold,#FFD24A);text-decoration:underline;text-underline-offset:3px}
.campaign-footer .footer-social{display:flex;flex-wrap:wrap;gap:10px;margin-top:8px}
.campaign-footer .footer-social a{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;flex:0 0 44px;border-radius:50%;background:#fff}
.campaign-footer .footer-social a:hover{background:var(--gold,#FFD24A)}
.campaign-footer .footer-social img{display:block;width:24px;height:24px}
.campaign-footer .col .footer-staff-link{display:inline-flex;align-items:center;gap:8px;width:fit-content;min-height:42px;margin-top:6px;color:#c6b6e8;font-size:14px;font-weight:600;line-height:1.2}
.campaign-footer .footer-staff-lock{display:grid;place-items:center;width:28px;height:28px;flex:none;border:1px solid #6f5b93;border-radius:50%;color:#B69AF0}
.campaign-footer .footer-staff-lock svg{width:15px;height:15px}
.campaign-footer .footer-staff-arrow{width:16px;height:16px;flex:none}
.campaign-footer .footer-legal{display:flex;flex-wrap:wrap;gap:4px 22px;border-top:1px solid rgba(255,255,255,.14);padding-top:18px}
.campaign-footer .footer-legal a{display:inline-flex;align-items:center;min-height:44px;color:#fff;font-size:14px;text-decoration:underline;text-underline-offset:4px}
.campaign-footer .footer-legal a:hover{color:var(--gold,#FFD24A)}
.campaign-footer .footer-cookie-preferences{align-self:flex-start;min-height:42px;padding:0;color:#CFC8E4;background:transparent;border:0;border-bottom:1px solid currentColor;font:inherit;font-size:13px;cursor:pointer}
.campaign-footer .bottom{display:flex;flex-direction:column;align-items:flex-start;gap:10px;color:#CFC8E4;font-size:13px}
.campaign-footer .bottom .dis{margin:0;color:#fff;font-weight:600;font-size:14px;max-width:760px}
.campaign-footer .bottom .campaign-note{margin:0;max-width:760px}
.campaign-footer p.tpmo{margin:0;max-width:760px;font-size:12.5px;line-height:1.6}
.campaign-footer p.tpmo span{white-space:nowrap}
.campaign-footer p.tpmo a{color:#fff}
.campaign-footer a:focus-visible,.campaign-footer button:focus-visible{outline:2px solid var(--gold,#FFD24A);outline-offset:4px}
@media (max-width:560px){.campaign-footer .top{flex-direction:column;align-items:stretch}.campaign-footer .col{min-width:0}.campaign-footer .dm-foot{opacity:.12}}
