/* Shared atmospheric treatment and compact navigation refresh. */
body { isolation: isolate; }
body::before { content: ""; position: fixed; z-index: -1; inset: 0; pointer-events: none; background: radial-gradient(ellipse at 0% 30%, rgba(0,196,154,.10), transparent 48%), radial-gradient(ellipse at 100% 70%, rgba(255,128,97,.075), transparent 45%); opacity: .7; }
body::after { content: ""; position: fixed; z-index: -1; inset: 0; pointer-events: none; background-image: radial-gradient(circle at 8% 20%, #a5ffe4 0 1px, transparent 2px), radial-gradient(circle at 92% 35%, #ff8061 0 1px, transparent 2px), radial-gradient(circle at 14% 77%, #a5ffe4 0 1.5px, transparent 3px), radial-gradient(circle at 82% 86%, #a5ffe4 0 1px, transparent 2px), radial-gradient(circle at 65% 12%, #ff8061 0 1px, transparent 2px); animation: ambient-breathe 6s ease-in-out infinite alternate; }
@keyframes ambient-breathe { from { opacity: .3; } to { opacity: .8; } }
.home-page .hero-actions { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.resource-links { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 9px; }
.resource-links a { display: inline-flex; align-items: center; justify-content: space-between; gap: 20px; min-height: 44px; padding: 8px 13px; border: 1px solid rgba(165,255,228,.23); border-radius: 7px; color: #c4d4ca; background: rgba(9,19,15,.8); font: .85rem/1.2 var(--display); text-transform: uppercase; text-decoration: none; transition: border-color .2s, background .2s; }
.resource-links a span { color: var(--mint); }
.resource-links a:hover { border-color: var(--mint); background: #10271e; }
.families-page .campaign-card { --orbit-color: #35ffc4; background: #10110f; border-color: rgba(255,128,97,.36); box-shadow: 0 0 13px rgba(53,255,196,.15); }
.families-page .small-link { --orbit-color: #ff873f; position: relative; background: #09130f; border-color: rgba(165,255,228,.18); box-shadow: 0 0 13px rgba(255,135,63,.14); }
.families-page :is(.campaign-card,.small-link) { overflow: visible; transition-delay: 0s; }
.families-page :is(.campaign-card,.small-link)::after { content: ""; position: absolute; inset: -1px; padding: 2px; border-radius: inherit; pointer-events: none; background: conic-gradient(from var(--promise-angle), transparent 0deg 240deg, color-mix(in srgb, var(--orbit-color) 20%, transparent) 280deg, var(--orbit-color) 320deg, #fff4df 329deg, transparent 344deg); -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0); -webkit-mask-composite: xor; mask-composite: exclude; filter: drop-shadow(0 0 4px var(--orbit-color)); animation: promise-ring 4s linear infinite; }
.families-page :is(.campaign-card,.small-link):nth-child(even)::after { animation-delay: -2s; }
.families-page .small-link::before { content: ""; position: absolute; inset: 0; border-radius: inherit; background: radial-gradient(260px circle at var(--x,50%) var(--y,50%), rgba(165,255,228,.16), transparent 70%); opacity: 0; transition: opacity .2s; }
.families-page .small-link > span { position: relative; }
.families-page .small-link:is(:hover,:focus-visible)::before { opacity: 1; }
.families-page .link-directory::before { display: none; }
.families-page .reveal { opacity: 1; transform: none; }
.resource-links a:focus-visible, .families-page .reactive:focus-visible, .back-to-top:focus-visible { outline: 2px solid #a5ffe4; outline-offset: 4px; }
.back-to-top { --reading-progress: 0deg; position: fixed; z-index: 50; right: max(18px,env(safe-area-inset-right)); bottom: max(18px,env(safe-area-inset-bottom)); width: 50px; height: 50px; display: grid; place-items: center; padding: 3px; border-radius: 50%; background: conic-gradient(#a5ffe4 var(--reading-progress), #30463b 0); color: #a5ffe4; text-decoration: none; box-shadow: 0 0 24px #00c49a33, 0 5px 20px #0009; transition: opacity .2s, transform .2s; }
.back-to-top span { display: grid; place-items: center; width: 100%; height: 100%; border-radius: inherit; background: #07110d; font: 1.5rem/1 Arial,sans-serif; }
.back-to-top.is-hidden { opacity: 0; visibility: hidden; transform: translateY(8px); }
.crypto-page .step-card { transition: border-color .25s, box-shadow .25s; }
.crypto-page .step-card:target { border-color: #a5ffe4; box-shadow: inset 3px 0 0 #00c49a, 0 0 30px #00c49a18; }
.crypto-page .site-footer { padding-bottom: 80px; }
@media(max-width:540px) { body::before { background-size: auto; opacity: .45; } .home-page .hero-actions { grid-template-columns: 1fr; } .resource-links { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); } .resource-links a { gap: 8px; padding: 8px 10px; font-size: .76rem; } .home-page .site-header nav { flex-wrap: wrap; justify-content: flex-start; gap: 6px 14px; } }
@media(prefers-reduced-motion:reduce) { body::after, .families-page :is(.campaign-card,.small-link)::after { animation: none; } .back-to-top, .crypto-page .step-card { transition: none; } }
.home-page h1 { font-size: clamp(3.2rem, 5.8vw, 5.6rem); line-height: .95; }
.families-page .subpage-hero h1 { font-size: clamp(2.6rem, 5.5vw, 4.5rem); white-space: normal; }
@media(max-width:540px) { .home-page h1 { font-size: clamp(2.8rem, 12vw, 4rem); } .families-page .subpage-hero h1 { font-size: clamp(2.4rem, 10vw, 3rem); } }

.families-page .directory-section, .families-page .site-header { border: 0; }

body::before { inset: -24px; opacity: .65; animation: ambient-drift 16s ease-in-out infinite alternate; }
@keyframes ambient-drift { from { transform: translateY(0); } to { transform: translateY(-16px); } }
@media(max-width:540px) { body::before { background-size: auto; opacity: .55; } }
@media(prefers-reduced-motion:reduce) { body::before { animation: none; } }

/* Draw arrows as vectors so mobile cannot substitute emoji artwork. */
svg.aid-arrow { display: inline-block; width: 1.1em; height: 1.1em; min-width: 1.1em; flex-shrink: 0; vertical-align: -.16em; overflow: visible; fill: none; stroke: #ff873f; stroke-width: 2.6; stroke-linecap: round; stroke-linejoin: round; }
.home-page .hero-actions .aid-arrow { width: 23px; height: 23px; filter: drop-shadow(0 1px 1px #073c2f); }
.home-page .hero-actions .button-pathway { position: relative; overflow: visible; }
.home-page .hero-actions .button-pathway::before { border-radius: inherit; }
.home-page .hero-actions .button-pathway::after { content: ""; position: absolute; inset: -1px; border-radius: inherit; padding: 2px; pointer-events: none; background: conic-gradient(from var(--promise-angle), transparent 0deg 285deg, #ff873f55 310deg, #ff873f 329deg, #ffe6bb 335deg, transparent 348deg); -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0); -webkit-mask-composite: xor; mask-composite: exclude; filter: drop-shadow(0 0 4px #ff873f); animation: promise-ring 4s linear infinite; }
.home-page .hero-actions .button-pathway:nth-child(2)::after { animation-delay: -2s; }
@media(prefers-reduced-motion:reduce) { .home-page .hero-actions .button-pathway::after { animation: none; } }

/* Families: soften the card lighting by 30% without dimming the text. */
.families-page :is(.campaign-card, .small-link)::after { opacity: .7; }
.families-page .campaign-card { box-shadow: 0 0 13px rgba(53,255,196,.105); }
.families-page .small-link { box-shadow: 0 0 13px rgba(255,135,63,.098); }
