:root{
  --royal:#1E56C8; --royal-deep:#16419B; --navy:#0D2B5E; --navy-deep:#081D42;
  --sky:#F2F7FD; --sky-2:#E2EDFA; --white:#FEFEFC;
  --gold:#D8A31C; --gold-bright:#EFC24C;
  --ink:#10233F; --ink-60:rgba(16,35,63,.62);
  --display:"Archivo Black", "Arial Black", sans-serif;
  --script:"Kaushan Script", cursive;
  --sans:"Libre Franklin", -apple-system, "Segoe UI", sans-serif;
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{font-family:var(--sans);color:var(--ink);background:var(--white);line-height:1.6;font-size:16px;-webkit-font-smoothing:antialiased}
img{display:block;max-width:100%}
a{color:var(--royal)}
:focus-visible{outline:3px solid var(--gold);outline-offset:2px}
.skip{position:absolute;left:-999px;top:8px;background:var(--gold);color:var(--navy);padding:10px 18px;z-index:99;font-weight:700}
.skip:focus{left:8px}
.wrap{max-width:1280px;margin:0 auto;padding:0 clamp(20px,4vw,52px)}

/* gold gradient text for script accents */
h1 em,h2 em,h3 em,.script{
  font-family:var(--script);font-style:normal;font-weight:400;
  background:linear-gradient(180deg,#F5CE58 12%,#E9B83A 48%,#B8860E 100%);
  -webkit-background-clip:text;background-clip:text;color:transparent;
  font-size:1.12em;letter-spacing:0;text-transform:none;padding-right:.08em;
}

/* ---------- header ---------- */
header{position:fixed;inset:0 0 auto 0;z-index:60;transition:background .35s;padding:14px 0;background:linear-gradient(180deg,rgba(8,29,66,.92),rgba(13,43,94,.78))}
header.solid{background:rgba(8,29,66,.96);box-shadow:0 1px 0 rgba(216,163,28,.4)}
.nav{display:flex;align-items:center;gap:26px}
.brand{display:flex;align-items:center;gap:12px;text-decoration:none;margin-right:auto}
.brand img{height:44px;width:auto}
.brand b{color:#fff;font:600 .92rem/1.15 var(--sans)}
.brand span{display:block;color:var(--gold-bright);font:600 .6rem/1.5 var(--sans);letter-spacing:.24em;text-transform:uppercase}
.nav a.lnk{color:rgba(242,247,253,.88);text-decoration:none;font:700 .8rem/1 var(--sans);letter-spacing:.07em;text-transform:uppercase}
.nav a.lnk:hover{color:var(--gold-bright)}
.btn{display:inline-block;text-decoration:none;font:700 .8rem/1 var(--sans);letter-spacing:.09em;text-transform:uppercase;padding:15px 26px;border-radius:2px;transition:transform .18s}
.btn:hover{transform:translateY(-2px)}
.btn-gold{background:linear-gradient(180deg,#F0C44E 0%,#D8A31C 55%,#C08F0F 100%);color:var(--navy);box-shadow:0 6px 18px rgba(216,163,28,.35)}
.btn-gold:hover{background:linear-gradient(180deg,#F7D269 0%,#EFC24C 55%,#D8A31C 100%);box-shadow:0 8px 26px rgba(216,163,28,.5)}
.btn-line{border:1.5px solid rgba(242,247,253,.55);color:#fff}
.btn-line:hover{border-color:var(--gold-bright);color:var(--gold-bright)}
.btn-ink{background:var(--royal);color:#fff}
.btn-ink:hover{background:var(--royal-deep)}
@media(max-width:940px){.nav a.lnk{display:none}}
@media(max-width:620px){
  .nav{gap:14px}
  .nav .btn{display:none}
  .brand img{height:38px}
  .brand b{font-size:.74rem;line-height:1.25;max-width:190px}
  .brand span{font-size:.54rem;letter-spacing:.16em}
}

/* ---------- full-bleed panel ---------- */
.panel{position:relative;min-height:92svh;display:flex;align-items:flex-end;isolation:isolate;overflow:hidden}
.panel img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2}
.panel::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(13,43,94,.38) 0%,rgba(13,43,94,.06) 34%,rgba(8,29,66,.88) 100%)}
.panel.center{align-items:center;text-align:center}
.panel.center::after{background:linear-gradient(180deg,rgba(13,43,94,.5),rgba(13,43,94,.62))}
.panel-in{width:100%;padding:0 0 clamp(44px,7vh,92px);color:#fff}
.eyebrow{color:var(--gold-bright);font:800 .72rem/1 var(--sans);letter-spacing:.3em;text-transform:uppercase;display:inline-flex;align-items:center;gap:14px}
.eyebrow::before{content:"";width:40px;height:1.5px;background:var(--gold-bright)}
.eyebrow.both::after{content:"";width:40px;height:1.5px;background:var(--gold-bright)}
.panel h1,.panel h2{font-family:var(--display);font-weight:400;font-size:clamp(30px,5vw,68px);line-height:1.08;letter-spacing:-.005em;text-transform:uppercase;margin:20px 0 16px;max-width:16ch;text-shadow:0 3px 18px rgba(8,29,66,.45)}
.panel h1 em,.panel h2 em{font-family:var(--script);text-transform:none;font-size:1.45em;line-height:1}
.panel.center h1,.panel.center h2{margin-inline:auto}
.panel .sub{font:400 clamp(16px,1.5vw,19px)/1.6 var(--sans);color:rgba(242,247,253,.92);max-width:52ch;margin-bottom:30px}
.panel.center .sub{margin-inline:auto}
.cta{display:flex;gap:14px;flex-wrap:wrap;align-items:center}
.times{position:absolute;right:clamp(20px,4vw,52px);bottom:clamp(48px,7vh,92px);color:#fff;text-align:right;background:rgba(8,29,66,.55);padding:10px 16px;border-radius:10px;backdrop-filter:blur(2px)}
.times b{display:block;font:800 .74rem/1 var(--sans);letter-spacing:.2em;text-transform:uppercase;color:var(--gold-bright)}
.times s{text-decoration:none;font:400 clamp(15px,1.4vw,19px)/1.5 var(--script)}
@media(max-width:760px){.times{display:none}}

/* ---------- sky info band ---------- */
.band{background:var(--sky);color:var(--ink);padding:clamp(64px,8vw,110px) 0}
.band-2{background:var(--sky-2)}
.kicker{font:800 .7rem/1 var(--sans);letter-spacing:.28em;text-transform:uppercase;color:var(--royal);display:flex;align-items:center;gap:12px;margin-bottom:18px}
.kicker::before{content:"";width:28px;height:1.5px;background:var(--gold)}
h3{font-family:var(--display);font-weight:400;font-size:clamp(24px,3.2vw,40px);line-height:1.12;line-height:1.12;letter-spacing:0;text-transform:uppercase;margin-bottom:18px;max-width:22ch}
h3 em{font-size:1.15em;line-height:1}
.lede{font-size:clamp(16px,1.5vw,19px);color:var(--ink-60);max-width:62ch}

/* services grid */
.svc{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:40px}
.svc .s{border-top:4px solid var(--royal);background:#fff;padding:26px 24px;box-shadow:0 1px 0 rgba(16,35,63,.06)}
.svc b{display:block;font:800 .72rem/1 var(--sans);letter-spacing:.2em;text-transform:uppercase;color:var(--royal);margin-bottom:12px}
.svc strong{font-family:var(--display);font-weight:400;font-size:1.1rem;line-height:1.25;display:block;margin-bottom:6px;text-transform:uppercase}
.svc span{font:400 .98rem/1.5 var(--script);color:var(--ink-60)}
@media(max-width:900px){.svc{grid-template-columns:repeat(2,1fr)}}
@media(max-width:600px){.svc{grid-template-columns:1fr}}

/* welcome */
.welcome{display:grid;grid-template-columns:4fr 7fr;gap:clamp(30px,5vw,76px);align-items:center}
.welcome .ph{position:relative;isolation:isolate}
.welcome .ph img{aspect-ratio:4/5;object-fit:cover;width:100%;box-shadow:0 18px 44px rgba(8,29,66,.22)}
.welcome .ph::before{content:"";position:absolute;inset:-14px 14px 14px -14px;border:2px solid var(--gold);z-index:-1}
.welcome .dropcap::first-letter{font:400 3.4em/0.9 var(--script);color:var(--royal);float:left;padding:6px 14px 0 0}
.sig{margin-top:24px;padding-top:18px;border-top:2px solid var(--gold);display:inline-block}
.sig b{font-family:var(--display);font-weight:400;font-size:1rem;line-height:1.3;text-transform:uppercase}
.sig span{display:block;font:600 .7rem/1.6 var(--sans);letter-spacing:.2em;text-transform:uppercase;color:var(--royal)}
@media(max-width:880px){.welcome{grid-template-columns:1fr}.welcome .ph{max-width:420px}}

/* vision */
.vm{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-top:38px}
.vm .v{background:#fff;padding:34px 30px;border:1.5px solid rgba(30,86,200,.14);border-top:4px solid var(--royal)}
.vm h4{font-family:var(--display);font-weight:400;font-size:1.2rem;line-height:1.2;text-transform:uppercase;margin-bottom:10px}
.vm h4 span{font-family:var(--script);font-size:1.3em;margin-right:10px;background:linear-gradient(180deg,#F5CE58,#C9930F);-webkit-background-clip:text;background-clip:text;color:transparent}
.vm p{color:var(--ink-60);font-size:1rem}
@media(max-width:760px){.vm{grid-template-columns:1fr}}

/* give */
.giving{background:linear-gradient(135deg,#16419B 0%,#0D2B5E 70%,#081D42 100%);color:#fff;padding:clamp(60px,8vw,100px) 0}
.giving .kicker{color:var(--gold-bright)}
.giving .kicker::before{background:var(--gold-bright)}
.giving .lede{color:rgba(242,247,253,.78)}
.giving ul{list-style:none;margin-top:24px}
.giving li{display:flex;gap:14px;align-items:baseline;padding:14px 0;border-bottom:1px solid rgba(242,247,253,.16)}
.giving li b{font:800 .72rem/1 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--gold-bright);min-width:120px}
.giving li span{font:400 1.02rem/1.5 var(--script);color:rgba(242,247,253,.92)}
@media(max-width:820px){.giving .grid{display:grid !important;grid-template-columns:1fr !important}}

/* visit */
.visit .grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(30px,5vw,72px);margin-top:8px}
.visit dl{margin-top:8px}
.visit dt{font:800 .72rem/1 var(--sans);letter-spacing:.2em;text-transform:uppercase;color:var(--royal);margin-top:22px}
.visit dd{font:400 1.15rem/1.5 var(--script);margin-top:6px}
.map{background:var(--sky-2);border:1.5px solid rgba(30,86,200,.16);min-height:360px;display:flex;align-items:center;justify-content:center;position:relative}
.map .pin{width:22px;height:22px;background:var(--royal);border-radius:50% 50% 50% 0;transform:rotate(-45deg);box-shadow:0 10px 26px rgba(13,43,94,.4)}
.map .pin::after{content:"";position:absolute;inset:5px;background:#fff;border-radius:50%}
.map p{position:absolute;bottom:16px;left:16px;font:600 .7rem/1.4 var(--sans);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-60)}
@media(max-width:820px){.visit .grid{grid-template-columns:1fr}}

/* footer */
footer{background:var(--navy-deep);color:rgba(242,247,253,.78);padding:64px 0 30px;position:relative;overflow:hidden}
footer::before{content:"";position:absolute;inset:auto 0 0 0;height:4px;background:linear-gradient(90deg,var(--gold),var(--gold-bright),var(--gold))}
footer .top{display:grid;grid-template-columns:1.3fr 1fr 1fr;gap:44px;padding-bottom:46px;border-bottom:1px solid rgba(242,247,253,.14)}
footer img{height:104px;margin-bottom:16px}
.flogo{display:inline-block;background:var(--white);padding:12px 16px;border-radius:2px}
footer h4{color:var(--gold-bright);font:700 .72rem/1 var(--sans);letter-spacing:.24em;text-transform:uppercase;margin-bottom:14px}
footer a{color:rgba(242,247,253,.78);text-decoration:none}
footer a:hover{color:var(--gold-bright)}
footer li{list-style:none;padding:4px 0;font-size:.92rem}
footer .motto{font:400 1.35rem/1.5 var(--script);color:#fff;max-width:26ch}
footer .base{display:flex;justify-content:space-between;gap:20px;padding-top:24px;font:500 .78rem/1.5 var(--sans);color:rgba(242,247,253,.5);flex-wrap:wrap}
@media(max-width:760px){footer .top{grid-template-columns:1fr}}

/* reveal */
.rv{opacity:0;transform:translateY(14px);transition:opacity .7s ease, transform .7s cubic-bezier(.2,.7,.2,1)}
.rv.in{opacity:1;transform:none}
.static .rv{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){.rv{opacity:1;transform:none;transition:none}}

/* ---------- subpages ---------- */
.panel.short{min-height:58svh}
.panel.short .panel-in{padding:0 0 clamp(34px,5vh,64px)}
.panel.short h1{max-width:none}
.crumb{color:rgba(242,247,253,.66);font:600 .74rem/1 var(--sans);letter-spacing:.16em;text-transform:uppercase;margin-bottom:14px}
.crumb a{color:var(--gold-bright);text-decoration:none}
.crumb a:hover{color:#fff}
.crumb i{font-style:normal;color:var(--gold-bright);margin:0 10px}

/* leadership */
.leaders{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:44px}
.leaders figure{background:#fff;border:1.5px solid rgba(30,86,200,.14)}
.leaders img{aspect-ratio:4/5;object-fit:cover;width:100%}
.leaders figcaption{padding:20px 22px}
.leaders b{font-family:var(--display);font-weight:400;font-size:1.05rem;line-height:1.2;text-transform:uppercase;display:block}
.leaders span{font:600 .68rem/1.7 var(--sans);letter-spacing:.2em;text-transform:uppercase;color:var(--royal)}
@media(max-width:900px){.leaders{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){.leaders{grid-template-columns:1fr}}

/* story timeline */
.story{margin-top:42px;border-top:2px solid var(--gold)}
.story .row{display:grid;grid-template-columns:150px 1fr;gap:24px;padding:20px 0;border-bottom:1px solid rgba(16,35,63,.1)}
.story b{font-family:var(--display);font-weight:400;font-size:1rem;line-height:1.3;color:var(--royal);text-transform:uppercase}
.story p{color:var(--ink-60)}
@media(max-width:640px){.story .row{grid-template-columns:1fr;gap:6px}}

/* gallery */
.gal{columns:3;column-gap:18px;margin-top:44px}
.gal a{display:block;margin-bottom:18px;break-inside:avoid;position:relative;overflow:hidden}
.gal img{width:100%;transition:transform .5s ease}
.gal a:hover img{transform:scale(1.03)}
.gal .cap{position:absolute;inset:auto 0 0 0;padding:26px 16px 12px;background:linear-gradient(180deg,transparent,rgba(8,29,66,.72));color:#fff;font:600 .68rem/1.3 var(--sans);letter-spacing:.16em;text-transform:uppercase;opacity:0;transition:opacity .35s}
.gal a:hover .cap{opacity:1}
@media(max-width:900px){.gal{columns:2}}
@media(max-width:560px){.gal{columns:1}}

/* visit page */
.check{margin-top:34px}
.check li{list-style:none;display:flex;gap:16px;padding:15px 0;border-bottom:1px solid rgba(16,35,63,.1);align-items:flex-start}
.check li i{flex:0 0 26px;height:26px;margin-top:3px;background:linear-gradient(180deg,#F0C44E,#C08F0F);color:var(--navy);border-radius:50%;display:flex;align-items:center;justify-content:center;font:700 .8rem/1 var(--sans);font-style:normal}
.check b{font-family:var(--display);font-weight:400;font-size:.95rem;line-height:1.4;text-transform:uppercase;display:block}
.check p{color:var(--ink-60);font-size:.95rem;margin-top:2px}
.faq{margin-top:10px}
.faq div{padding:20px 0;border-bottom:1px solid rgba(16,35,63,.1)}
.faq dt{font-family:var(--display);font-weight:400;font-size:.95rem;line-height:1.35;text-transform:uppercase}
.faq dd{color:var(--ink-60);margin-top:8px}

/* give boxes */
.gboxes{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin-top:42px}
.gboxes .g{background:#fff;border-top:4px solid var(--gold);padding:30px 26px;box-shadow:0 1px 0 rgba(16,35,63,.06)}
.gboxes .g:nth-child(2){border-top-color:var(--royal)}
.gboxes .g:nth-child(3){border-top-color:var(--royal-deep)}
.gboxes b{display:block;font:800 .72rem/1 var(--sans);letter-spacing:.2em;text-transform:uppercase;color:var(--royal);margin-bottom:12px}
.gboxes strong{font-family:var(--display);font-weight:400;font-size:1.15rem;line-height:1.25;display:block;margin-bottom:8px;text-transform:uppercase}
.gboxes span{font:400 1rem/1.55 var(--script);color:var(--ink-60)}
@media(max-width:900px){.gboxes{grid-template-columns:1fr}}

/* verse band reuse */
.verse{font:400 clamp(28px,4.6vw,58px)/1.25 var(--script);letter-spacing:0;max-width:24ch;margin-inline:auto;color:#fff;text-shadow:0 3px 18px rgba(8,29,66,.5)}
.verse em{background:none;-webkit-background-clip:initial;background-clip:initial;color:var(--gold-bright)}
.cite{margin-top:26px;font:800 .7rem/1 var(--sans);letter-spacing:.3em;text-transform:uppercase;color:var(--gold-bright)}

/* ---------- poster components ---------- */
/* ribbon banner (VOLUME 3 style) */
.ribbon{display:inline-flex;align-items:center;background:linear-gradient(180deg,#1E56C8,#16419B);color:#fff;font:700 .82rem/1 var(--sans);letter-spacing:.3em;text-transform:uppercase;padding:12px 34px;clip-path:polygon(14px 0,calc(100% - 14px) 0,100% 50%,calc(100% - 14px) 100%,14px 100%,0 50%)}
.ribbon.gold{background:linear-gradient(180deg,#F0C44E,#C08F0F);color:var(--navy)}

/* gold brush chip behind a label */
.brush{position:relative;display:inline-block;padding:14px 30px}
.brush::before{content:"";position:absolute;inset:0;z-index:-1;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 500 90' preserveAspectRatio='none'%3E%3Cpath fill='%23D8A31C' d='M8 16 C80 6 160 12 260 9 C360 6 440 12 492 17 L494 40 C462 46 446 42 420 48 C456 50 472 46 494 54 L490 74 C400 82 300 78 210 82 C120 86 36 78 6 74 Z'/%3E%3Cpath fill='%23EFC24C' opacity='.5' d='M20 78 C120 84 300 80 460 84 L458 88 C300 86 130 88 22 84 Z'/%3E%3Cpath fill='%23EFC24C' opacity='.35' d='M34 6 C150 0 330 4 470 0 L468 7 C330 9 160 7 36 10 Z'/%3E%3C/svg%3E") center/100% 100% no-repeat}
.brush b{font:700 1rem/1.25 var(--sans);letter-spacing:.12em;text-transform:uppercase;color:var(--navy)}
.brush span{font:400 1.25rem/1.2 var(--script);color:var(--navy)}

/* blue brush band behind a title */
.brushband{position:relative;display:inline-block;padding:26px 42px}
.brushband::before{content:"";position:absolute;inset:0;z-index:-1;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 600 120' preserveAspectRatio='none'%3E%3Cpath fill='%2316419B' d='M10 22 C90 8 170 16 300 12 C430 8 520 14 590 20 L594 44 C560 50 540 46 506 54 C552 56 574 52 596 62 L590 96 C500 106 380 100 260 106 C140 112 44 102 8 98 Z'/%3E%3Cpath fill='%231E56C8' opacity='.5' d='M24 106 C120 114 300 108 470 112 L468 118 C300 116 130 118 26 112 Z'/%3E%3Cpath fill='%231E56C8' opacity='.35' d='M40 4 C160 -2 340 4 480 0 L478 8 C340 10 170 8 42 12 Z'/%3E%3C/svg%3E") center/100% 100% no-repeat}
.brushband .script{font-size:1.5em}

/* poster event bar: icon + big caps */
.evt{display:grid;grid-template-columns:1fr 1fr;gap:26px;margin-top:40px;max-width:760px}
.evt .e{display:flex;gap:16px;align-items:center}
.evt .e svg{flex:0 0 44px;height:44px;fill:var(--royal)}
.evt b{display:block;font:800 .68rem/1 var(--sans);letter-spacing:.24em;text-transform:uppercase;color:var(--royal);margin-bottom:4px}
.evt strong{font-family:var(--display);font-weight:400;font-size:clamp(1.15rem,2.4vw,1.6rem);line-height:1.15;text-transform:uppercase;color:var(--navy)}
.evt .sep{width:2px;background:linear-gradient(180deg,transparent,rgba(216,163,28,.8),transparent)}
@media(max-width:640px){.evt{grid-template-columns:1fr;max-width:100%}.evt .sep{display:none}}

/* upcoming banner strip (homepage) */
.upnext{background:linear-gradient(135deg,#16419B,#0D2B5E);color:#fff;padding:clamp(44px,6vw,72px) 0;position:relative;overflow:hidden}
.upnext::before{content:"";position:absolute;top:-40px;right:-40px;width:220px;height:220px;border:2px solid rgba(239,194,76,.35);border-radius:50%}
.upnext::after{content:"";position:absolute;bottom:-60px;left:-30px;width:180px;height:180px;border:2px solid rgba(239,194,76,.22);border-radius:50%}
.upnext .in{display:flex;gap:clamp(20px,4vw,54px);align-items:center;flex-wrap:wrap;justify-content:space-between}
.upnext h3{color:#fff;max-width:none;margin-bottom:6px}
.upnext .script{font-size:1.6em}
.upnext .cap{font:800 .68rem/1 var(--sans);letter-spacing:.3em;text-transform:uppercase;color:var(--gold-bright)}
.upnext .p{font:400 1.05rem/1.5 var(--script);color:rgba(242,247,253,.9)}
