:root{--ink:#171328;--purple:#5b3fd6;--deep:#3d287f;--lav:#eee9ff;--yellow:#f6bd3b;--coral:#ff6e5f;--blue:#4aa8df;--cream:#fff9ec;--white:#fff;--line:#d9d2ec;--max:1180px;--radius:24px}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:var(--ink);background:var(--cream);font-family:"DM Sans",sans-serif;line-height:1.6}body.menu-open{overflow:hidden}a{color:inherit;text-decoration:none}img,svg{display:block;max-width:100%}button,input,select,textarea{font:inherit}.skip-link{position:absolute;left:-999px;top:10px;z-index:100;background:#fff;padding:.75rem 1rem}.skip-link:focus{left:10px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.site-header{height:88px;display:flex;align-items:center;justify-content:space-between;max-width:var(--max);margin:auto;padding:0 24px}.brand{display:flex;align-items:center;gap:12px}.brand-mark{width:46px;height:46px;background:var(--lav);border-radius:14px;padding:7px}.brand strong,.brand small{display:block;line-height:1}.brand strong{font-family:"League Spartan",sans-serif;font-size:1.25rem}.brand small{text-transform:uppercase;letter-spacing:.2em;font-size:.65rem;margin-top:5px;color:#625b72}.site-header nav{display:flex;align-items:center;gap:30px;font-weight:700;font-size:.93rem}.site-header nav a{position:relative}.site-header nav a:not(.nav-cta):after{content:"";position:absolute;left:0;bottom:-6px;width:0;height:3px;background:var(--yellow);transition:.2s}.site-header nav a:hover:after{width:100%}.nav-cta{background:var(--purple);color:white;padding:11px 20px;border-radius:12px}.menu-toggle{display:none;border:0;background:none;padding:8px}.menu-toggle span:not(.sr-only){display:block;width:26px;height:3px;background:var(--ink);margin:5px;border-radius:10px}
.hero{max-width:var(--max);margin:28px auto 70px;padding:0 24px;display:grid;grid-template-columns:1.05fr .95fr;gap:72px;align-items:center;min-height:610px}.eyebrow{text-transform:uppercase;letter-spacing:.16em;font-weight:800;font-size:.78rem;color:var(--purple);margin:0 0 14px}.hero h1,.section h2,.give h2{font-family:"League Spartan",sans-serif;line-height:.92;letter-spacing:-.035em;margin:0}.hero h1{font-size:clamp(4rem,7vw,7rem);max-width:720px}.hero h1 span{color:var(--purple)}.hero-lead{font-size:1.22rem;max-width:610px;margin:28px 0;color:#504960}.hero-actions{display:flex;gap:14px;flex-wrap:wrap}.button{display:inline-flex;justify-content:center;align-items:center;border:0;border-radius:12px;padding:14px 22px;font-weight:800;cursor:pointer;transition:transform .2s,box-shadow .2s}.button:hover{transform:translateY(-2px)}.button-primary{background:var(--purple);color:#fff;box-shadow:5px 5px 0 var(--yellow)}.button-secondary{background:#fff;border:2px solid var(--ink)}.button-dark{background:var(--ink);color:#fff}.button-light{background:#fff;color:var(--deep)}.hero-note{margin-top:34px;border-left:5px solid var(--yellow);padding:3px 0 3px 17px}.hero-note strong,.hero-note span{display:block}.hero-note span{color:#6b6477;font-size:.92rem}.hero-art{height:540px;position:relative;background:var(--purple);border-radius:48% 48% 22% 22%;overflow:hidden;box-shadow:18px 18px 0 var(--yellow)}.sun{position:absolute;width:220px;height:220px;border-radius:50%;background:var(--yellow);right:-40px;top:-36px}.arch{position:absolute;border:32px solid}.arch-one{width:330px;height:330px;border-color:var(--coral);border-radius:50%;left:-85px;bottom:-135px}.arch-two{width:245px;height:245px;border-color:#8ccff1;border-radius:50%;right:-65px;bottom:70px}.cross-shape{position:absolute;left:50%;top:46%;width:54px;height:250px;background:#fff;transform:translate(-50%,-50%);border-radius:10px}.cross-shape:after{content:"";position:absolute;width:170px;height:54px;background:#fff;left:50%;top:55px;transform:translateX(-50%);border-radius:10px}.people-dots{position:absolute;left:50%;bottom:105px;transform:translateX(-50%);display:flex;gap:11px}.people-dots i{width:25px;height:25px;background:var(--yellow);border:5px solid var(--deep);border-radius:50%}.hero-card{position:absolute;left:28px;right:28px;bottom:25px;background:#fff;border-radius:18px;padding:18px 22px;display:grid;grid-template-columns:auto 1fr;column-gap:18px;align-items:center}.hero-card span{grid-row:1/3;background:var(--lav);color:var(--deep);font-weight:800;font-size:.7rem;padding:12px;border-radius:10px}.hero-card strong{font-size:1.1rem}.hero-card small{color:#6b6477}
.strip{background:var(--ink);color:#fff;padding:20px;display:flex;gap:24px;justify-content:center;align-items:center;flex-wrap:wrap;font-family:"League Spartan",sans-serif;font-size:1.2rem;font-weight:700}.strip p{margin:0}.strip span{color:var(--yellow)}.section{max-width:var(--max);margin:auto;padding:110px 24px}.section-heading{max-width:760px;margin-bottom:55px}.section-heading h2,.give h2{font-size:clamp(3rem,5vw,5.1rem)}.section-heading>p:last-child{font-size:1.1rem;color:#645d70;max-width:620px}.about-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:70px}.large-copy{font-family:"League Spartan",sans-serif;font-size:2rem;line-height:1.1;margin-top:0}.about-copy>p:not(.large-copy){color:#655f70}.text-link{font-weight:800;display:inline-block;margin-top:18px}.text-link span{color:var(--purple)}.values-grid{display:grid;grid-template-columns:1fr 1fr;border:3px solid var(--ink);border-radius:22px;overflow:hidden;background:#fff}.values-grid article{padding:28px;min-height:210px}.values-grid article:nth-child(odd){border-right:3px solid var(--ink)}.values-grid article:nth-child(-n+2){border-bottom:3px solid var(--ink)}.values-grid span{font-weight:800;color:var(--purple)}.values-grid h3{font-family:"League Spartan";font-size:1.6rem;margin:15px 0 8px}.values-grid p{margin:0;color:#625b6e}.ministries{background:#fff;max-width:none}.ministries>*{max-width:var(--max);margin-left:auto;margin-right:auto}.card-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}.ministry-card{padding:30px;border-radius:20px;min-height:360px;display:flex;flex-direction:column;border:3px solid var(--ink)}.ministry-card .icon{font-size:2.3rem}.ministry-card .card-label{text-transform:uppercase;font-size:.72rem;font-weight:800;letter-spacing:.13em;margin:28px 0 4px}.ministry-card h3{font-family:"League Spartan";font-size:2rem;margin:0}.ministry-card p:not(.card-label){font-size:.95rem}.ministry-card a{font-weight:800;margin-top:auto}.purple{background:var(--lav)}.yellow{background:#fff0bf}.coral{background:#ffe0dc}.blue{background:#dff3ff}.events{display:grid;grid-template-columns:.85fr 1.15fr;gap:90px;align-items:center}.events-intro h2{font-family:"League Spartan";font-size:clamp(3rem,5vw,5rem);line-height:.95;margin:0}.events-intro>p:not(.eyebrow){color:#665f70;margin:25px 0}.event-list{border:3px solid var(--ink);border-radius:22px;overflow:hidden;background:#fff}.event-list article{display:grid;grid-template-columns:90px 1fr auto;gap:22px;align-items:center;padding:24px}.event-list article+article{border-top:3px solid var(--ink)}.date{background:var(--purple);color:#fff;border-radius:12px;text-align:center;padding:10px}.date strong,.date span{display:block}.date strong{font-size:.7rem;letter-spacing:.12em}.date span{font-family:"League Spartan";font-size:1.25rem}.event-list h3{margin:0;font-family:"League Spartan";font-size:1.35rem}.event-list p{margin:3px 0 0;color:#716a7b}.event-arrow{font-size:1.5rem}.message-section{padding-top:40px}.message-card{background:var(--deep);color:#fff;border-radius:28px;padding:60px;display:grid;grid-template-columns:1fr 1fr;gap:60px;position:relative;overflow:hidden}.message-card:before{content:"";position:absolute;width:190px;height:190px;border-radius:50%;background:var(--coral);right:-70px;top:-70px}.message-card .eyebrow{color:var(--yellow)}.message-card h2{font-size:clamp(3rem,5vw,5rem)}.message-card blockquote{font-family:"League Spartan";font-size:2rem;line-height:1.15;margin:0;background:rgba(255,255,255,.11);padding:35px;border-radius:20px;align-self:center;position:relative}.message-card cite{display:block;font-family:"DM Sans";font-style:normal;font-size:.8rem;margin-top:20px;color:#d8cff8}.connect-panel{background:#fff;border:3px solid var(--ink);border-radius:28px;display:grid;grid-template-columns:1fr 1fr;overflow:hidden}.connect-panel>div{background:var(--yellow);padding:55px}.connect-panel h2{font-size:clamp(3rem,5vw,4.7rem)}.connect-panel ul{padding:0;list-style:none;margin-top:30px}.connect-panel li{margin:12px 0;font-weight:700}.connect-panel li span{display:inline-flex;background:var(--ink);color:#fff;width:25px;height:25px;border-radius:50%;align-items:center;justify-content:center;margin-right:8px}.connect-panel form{padding:55px;display:flex;flex-direction:column}.connect-panel label{font-weight:800;margin:13px 0 6px}.connect-panel label span{font-weight:400;color:#777}.connect-panel input,.connect-panel select,.connect-panel textarea{border:2px solid #bcb4cb;border-radius:10px;padding:12px;background:#fff}.connect-panel textarea{resize:vertical}.connect-panel form .button{margin-top:22px}.form-status{min-height:24px;margin:14px 0 0;font-weight:700;color:var(--deep)}.give{background:var(--coral);padding:90px max(24px,calc((100vw - var(--max))/2));display:grid;grid-template-columns:1fr 1fr;gap:100px;align-items:end}.give .eyebrow{color:var(--ink)}.give p:not(.eyebrow){font-size:1.15rem}.give .button{margin-top:15px}
footer{background:var(--ink);color:#fff;padding:70px max(24px,calc((100vw - var(--max))/2)) 30px;display:grid;grid-template-columns:2fr 1fr 1.2fr;gap:60px}.footer-brand p{color:#bcb6c7}.footer-brand .brand-mark{background:#342f43}footer h3{font-family:"League Spartan";font-size:1.2rem;margin-top:0;color:var(--yellow)}footer>div:not(.footer-brand):not(.footer-bottom) a{display:block;margin:10px 0;color:#d8d4df}.footer-bottom{grid-column:1/-1;border-top:1px solid #484253;padding-top:25px;display:flex;justify-content:space-between;color:#9e97aa;font-size:.85rem}.modal{position:fixed;inset:0;background:rgba(17,13,32,.8);z-index:100;display:none;place-items:center;padding:24px}.modal.open{display:grid}.modal-box{width:min(760px,100%);background:#fff;border-radius:24px;padding:18px;position:relative}.modal-close{position:absolute;right:25px;top:20px;border:0;background:#fff;width:40px;height:40px;border-radius:50%;font-size:1.8rem;cursor:pointer}.video-placeholder{min-height:420px;background:var(--deep);color:#fff;border-radius:18px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:40px}.video-placeholder span{font-size:4rem;color:var(--yellow)}.video-placeholder h2{font-family:"League Spartan";font-size:2.4rem;margin:10px}.reveal{opacity:0;transform:translateY(24px);transition:opacity .65s ease,transform .65s ease}.reveal.visible{opacity:1;transform:none}
@media(max-width:960px){.site-header nav{position:fixed;inset:88px 0 0;background:var(--cream);z-index:50;display:none;flex-direction:column;justify-content:center;font-size:1.4rem}.site-header nav.open{display:flex}.menu-toggle{display:block}.hero{grid-template-columns:1fr;gap:40px}.hero-art{max-width:620px;width:100%;margin:auto}.about-grid,.events,.connect-panel,.give{grid-template-columns:1fr}.card-grid{grid-template-columns:1fr 1fr}.message-card{grid-template-columns:1fr}.give{gap:35px}footer{grid-template-columns:1.5fr 1fr 1fr}}
@media(max-width:650px){.site-header{height:76px}.site-header nav{inset:76px 0 0}.hero{margin-top:20px;padding:0 18px;min-height:auto}.hero h1{font-size:3.8rem}.hero-art{height:430px;box-shadow:10px 10px 0 var(--yellow)}.hero-card{left:14px;right:14px}.section{padding:78px 18px}.about-grid{gap:35px}.values-grid,.card-grid{grid-template-columns:1fr}.values-grid article:nth-child(odd){border-right:0}.values-grid article:nth-child(-n+3){border-bottom:3px solid var(--ink)}.card-grid{gap:14px}.ministry-card{min-height:300px}.events{gap:40px}.event-list article{grid-template-columns:72px 1fr;padding:18px;gap:14px}.event-arrow{display:none}.message-card{padding:35px 24px}.message-card blockquote{font-size:1.55rem;padding:25px}.connect-panel>div,.connect-panel form{padding:35px 24px}.give{padding:70px 20px}footer{grid-template-columns:1fr;gap:32px}.footer-bottom{display:block}.footer-bottom span{display:block;margin-top:8px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.reveal{opacity:1;transform:none;transition:none}.button{transition:none}}
