/* Support His Family: the family's LaunchGood campaign in the archive's design. */
.campaign-hero{padding:26px 0 30px}
.campaign-hero h1{font-size:52px}
.campaign-hero p{max-width:620px;margin-top:10px;font-size:14px;line-height:1.6}
.campaign-hero .page-hero-pattern{top:-110px}
/* The total sticks only beside the upper rows (its own grid item), so it scrolls away before Recent supporters. */
.campaign{display:grid;grid-template-columns:minmax(0,1fr) 380px;grid-template-areas:"cover side" "levels side" "story side" "words supporters";column-gap:64px;row-gap:48px;max-width:1180px;padding-block:40px 96px;align-items:start}
.campaign-side{grid-area:side;align-self:stretch}
.campaign h2{font-size:34px;line-height:1.12;color:var(--ink)}
.campaign .eyebrow{margin-bottom:8px}

.campaign-cover{grid-area:cover;margin:0;border-radius:14px;overflow:hidden;background:#0d0d0c;aspect-ratio:4/3;box-shadow:0 30px 60px -38px #00000080}
.campaign-photo{display:block;width:100%;height:100%;object-fit:cover}

.campaign-summary{position:sticky;top:104px;isolation:isolate;overflow:hidden;padding:34px 32px 28px;border-radius:14px;background:linear-gradient(180deg,#1c1b18,#121210);color:var(--paper);border:1px solid #2d2b25;box-shadow:0 34px 60px -34px #00000099}
.campaign-summary:before{content:'';position:absolute;inset:0;z-index:-1;background:url('/static/images/pattern.svg') center/120px;opacity:.06}
.campaign-raised strong{display:block;font:500 58px/1 var(--serif);color:var(--gold);letter-spacing:-.5px}
.campaign-raised span{display:block;margin-top:10px;font-size:14px;color:#cbc4b3}
.campaign-progress{height:8px;margin:24px 0 18px;border-radius:999px;background:#ffffff1c;overflow:hidden}
.campaign-progress span{display:block;width:var(--progress);height:100%;border-radius:inherit;background:linear-gradient(90deg,#a9864c,#e7cc9d);animation:campaign-fill 1.1s cubic-bezier(.2,.7,.2,1) both}
@keyframes campaign-fill{from{width:0}}
.campaign-stats{display:flex;border-block:1px solid #ffffff17;padding:14px 0}
.campaign-stats span{flex:1;font-size:12px;color:#a8a294}
.campaign-stats span+span{padding-left:18px;border-left:1px solid #ffffff17}
.campaign-stats strong{display:block;font:500 26px/1.1 var(--serif);color:var(--paper);margin-bottom:2px}
.campaign-donate{display:flex;width:100%;min-height:54px;margin-top:24px;border-radius:8px;font-size:15px}
.campaign-donate:hover{transform:translateY(-1px)}
.campaign-copy{display:flex;align-items:center;justify-content:center;gap:9px;width:100%;min-height:46px;margin-top:10px;border:1px solid #ffffff2b;border-radius:8px;background:none;color:#e9e2d2;font-size:13px;font-weight:600;transition:border-color .2s,color .2s}
.campaign-copy:hover{border-color:var(--gold);color:var(--gold)}
.campaign-note{display:flex;gap:8px;align-items:flex-start;margin-top:16px;font-size:12px;line-height:1.6;color:#a8a294}
.campaign-note+.campaign-note{margin-top:8px}
.campaign-asof{display:block}
.campaign-note .icon{flex:none;margin-top:3px;color:var(--gold)}
.campaign-note a{color:var(--gold);text-decoration:underline;text-underline-offset:3px}
.campaign-summary .notice-box{margin-top:22px;color:#e2d3ad;background:#ffffff0d;border-color:#ffffff24}

.campaign-story{grid-area:story}
.campaign-organizer{display:flex;align-items:center;gap:14px;padding-bottom:22px;border-bottom:1px solid var(--line)}
.organizer-mark{flex:none;display:flex;align-items:center;justify-content:center;width:46px;height:46px;border-radius:50%;background:linear-gradient(180deg,#26261f,#121210);color:var(--gold)}
.campaign-organizer strong{display:block;font-size:14px;font-weight:600;color:var(--ink)}
.campaign-organizer span{font-size:12px;color:var(--muted)}
.campaign-story h2{margin:30px 0 24px}
.campaign-prose p{margin-bottom:18px;font-size:16px;line-height:1.85;color:#4f4f48}
.campaign-prose .arabic{font:500 21px/2 'Noto Naskh Arabic',serif;color:var(--gold-deep)}
.campaign-prose .arabic:first-child{font-size:30px;text-align:center;margin-bottom:24px}

.campaign-levels{grid-area:levels}
.campaign-levels h2,.campaign-supporters h2,.campaign-words h2{margin-bottom:22px}
.giving-levels{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px}
.giving-level{position:relative;display:flex;flex-direction:column;padding:22px 18px 18px;border:1px solid var(--line);border-radius:12px;background:#fffefa;color:var(--ink);transition:border-color .2s,transform .2s,box-shadow .2s}
.giving-level strong{font:600 30px/1 var(--serif)}
.giving-level span{margin-top:12px;font-size:10px;font-weight:600;letter-spacing:1.5px;text-transform:uppercase;color:var(--gold-deep)}
.giving-level small{margin-top:4px;font-size:12px;color:var(--muted)}
.giving-level .icon{position:absolute;top:16px;right:14px;color:#b9b3a3;transition:color .2s}
.giving-level:hover{border-color:#c9ab76;transform:translateY(-2px);box-shadow:0 16px 30px -22px #5d4a2a80}
.giving-level:hover .icon{color:var(--gold-deep)}

.campaign-supporters{grid-area:supporters;padding:28px 26px 14px;border:1px solid var(--line);border-radius:14px;background:#fffefa}
.supporter-list{list-style:none;margin:0;padding:0}
.supporter{display:flex;align-items:center;gap:12px;padding:11px 0;border-top:1px solid #eeebe2;font-size:13px;color:#55554d}
.supporter>span:nth-child(2){flex:1}
.supporter strong{font-size:14px;font-weight:600;color:var(--ink)}
.supporter-mark{flex:none;display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:50%;background:#f1ece0;color:var(--gold-deep)}

.campaign-words{grid-area:words}
.support-words{columns:2;column-gap:16px}
.support-word{break-inside:avoid;margin:0 0 16px;padding:22px 22px 18px;border:1px solid var(--line);border-radius:12px;background:#fffefa}
.support-word blockquote{margin:0;white-space:pre-line;font:500 19px/1.5 var(--serif);color:var(--ink)}
.support-word blockquote:before{content:'“';display:block;height:22px;font:600 44px/1 var(--serif);color:var(--gold)}
.support-word blockquote[lang=ar]{font:500 21px/1.8 'Noto Naskh Arabic',serif}
.support-word figcaption{margin-top:14px;font-size:12px;color:var(--muted)}
.support-word figcaption strong{font-weight:600;color:#55554d}

@media(max-width:1180px){.campaign{grid-template-columns:minmax(0,1fr) 340px;column-gap:40px}.giving-levels{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:850px){
 .campaign{grid-template-columns:minmax(0,1fr);grid-template-areas:"cover" "side" "levels" "story" "words" "supporters";row-gap:36px}
 .campaign-summary{position:static}
}
@media(max-width:640px){
 .campaign-hero{padding:16px 0 22px}
 .campaign-hero h1{font-size:38px}
 .campaign-hero p{font-size:13.5px;line-height:1.5}
 .campaign-hero .page-hero-pattern{top:-40px}
 .campaign{row-gap:20px;padding-block:16px 44px}
 .campaign h2{font-size:28px}
 .campaign-cover,.campaign-summary,.campaign-supporters{border-radius:18px}
 .campaign-summary{padding:26px 20px 22px}
 .campaign-raised strong{font-size:48px}
 .campaign-donate{min-height:54px;border-radius:999px}
 .campaign-copy{border-radius:999px}
 .campaign-story,.campaign-levels,.campaign-words{padding:24px 20px;border:1px solid #e6e2d6;border-radius:18px;background:#fffefa}
 .campaign-story h2{margin:22px 0 16px;font-size:25px}
 .campaign-prose p{font-size:15px;line-height:1.75}
 .campaign-prose .arabic:first-child{font-size:26px}
 .giving-levels{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
 .giving-level:last-child{grid-column:span 2}
 .giving-level{padding:18px 16px 16px;border-radius:14px}
 .campaign-supporters{padding:24px 20px 8px}
 .support-words{columns:1}
 .support-word{padding:20px 18px 16px;background:#f9f7f1}
 .campaign .page-links{margin:22px -20px -24px}
}
@media(prefers-reduced-motion:reduce){.campaign-progress span{animation:none}.giving-level,.campaign-donate{transition:none}.giving-level:hover,.campaign-donate:hover{transform:none}}
