:root{--navy:#1b2a4e;--gold:#f4b400;--sky:#e9f1ff;--ink:#22304a;--muted:#5b6780;--bg:#fff;--r:16px}
*{box-sizing:border-box}html{scroll-behavior:smooth}
body{margin:0;font-family:system-ui,-apple-system,"Segoe UI",Roboto,"Noto Sans",sans-serif;color:var(--ink);background:var(--bg);line-height:1.65;font-size:17px}
h1,h2,h3{font-family:Georgia,"Times New Roman",serif;line-height:1.2;color:var(--navy);margin:.2em 0 .5em}
a{color:var(--navy)}
.wrap{max-width:1100px;margin:0 auto;padding:0 1.25rem}
.skip{position:absolute;left:-999px}.skip:focus{left:1rem;top:1rem;background:#fff;padding:.5rem;z-index:99}
.nav{position:sticky;top:0;background:rgba(255,255,255,.95);backdrop-filter:blur(6px);border-bottom:1px solid #e6ebf3;z-index:10}
.nav-in{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.8rem 1.25rem;flex-wrap:wrap}
.brand{font-weight:700;text-decoration:none;font-size:1.15rem}.star{color:var(--gold)}
.nav ul{list-style:none;display:flex;gap:1.1rem;margin:0;padding:0;flex-wrap:wrap}
.nav ul a{text-decoration:none;color:var(--muted);font-weight:500}.nav ul a:hover,.nav ul a:focus{color:var(--navy)}
.hero{position:relative;overflow:hidden;background:linear-gradient(135deg,#1b2a4e,#2f4a8a);color:#fff;padding:6rem 0 5rem}
.hero h1{color:#fff;font-size:clamp(2rem,5vw,3.4rem);max-width:16ch}
.eyebrow{text-transform:uppercase;letter-spacing:.12em;font-size:.8rem;color:var(--gold);font-weight:600}
.tagline{font-size:1.25rem;opacity:.92;max-width:40ch}
.hero-in{position:relative;z-index:1}
.shape{position:absolute;border-radius:50%;opacity:.18}
.s1{width:380px;height:380px;background:var(--gold);right:-90px;top:-90px}
.s2{width:180px;height:180px;background:#fff;right:18%;bottom:-60px}
.s3{width:90px;height:90px;background:var(--gold);left:55%;top:20%;opacity:.25}
.cta{display:flex;gap:.8rem;flex-wrap:wrap;margin-top:1.6rem}
.btn{display:inline-block;padding:.8rem 1.4rem;border-radius:999px;text-decoration:none;font-weight:600}
.primary{background:var(--gold);color:var(--navy)}.ghost{border:2px solid rgba(255,255,255,.7);color:#fff}
.btn:focus-visible,a:focus-visible{outline:3px solid var(--gold);outline-offset:3px}
.sec{padding:4.5rem 0}.alt{background:var(--sky)}
.kicker{color:#7a5600;font-weight:700;text-transform:uppercase;letter-spacing:.1em;font-size:.8rem;margin:0}
.two{display:grid;grid-template-columns:1fr 1.3fr;gap:2.5rem;align-items:start}
.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.25rem;margin:1.5rem 0}
.card{background:#fff;border-radius:var(--r);padding:1.6rem;box-shadow:0 6px 20px rgba(27,42,78,.08);border-top:4px solid var(--gold)}
.ic{font-size:1.8rem}
.why{list-style:none;padding:0;display:grid;grid-template-columns:repeat(2,1fr);gap:1.25rem}
.why li{padding:1.3rem 1.4rem;border-left:4px solid var(--navy);background:#fafbfe;border-radius:0 var(--r) var(--r) 0}
.why strong{display:block;color:var(--navy);font-size:1.08rem}.why span{color:var(--muted)}
.band{background:var(--navy);color:#fff;position:relative;overflow:hidden}.band h2{color:#fff}
.center{text-align:center;max-width:720px}.light{color:var(--gold)!important}
.note{font-size:.92rem;color:var(--muted);font-style:italic}.band .note{color:#dce4f5!important}
address{font-style:normal;font-size:1.1rem}
.contact{margin:0;display:grid;gap:1rem}.contact div{background:var(--sky);padding:1rem 1.2rem;border-radius:var(--r)}
dt{font-weight:700;color:var(--navy)}dd{margin:0}.ph{color:var(--muted);font-style:italic}
.foot{background:#111a30;color:#c9d2e6;padding:1.5rem 0;font-size:.9rem;text-align:center}
@media (max-width:800px){.two,.grid,.why{grid-template-columns:1fr}.sec{padding:3.2rem 0}.hero{padding:4rem 0 3.5rem}.nav ul{gap:.8rem;font-size:.95rem}}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
/* logo, motto, sponsor, hamburger */
.brand{display:flex;align-items:center;gap:.6rem}.brand img{border-radius:50%;object-fit:cover}
.brand small{display:block;font-size:.75rem;font-weight:500;color:#7a5600;letter-spacing:.04em}
.motto{font-family:Georgia,serif;font-style:italic;color:var(--gold);font-size:1.3rem;margin:0}
.sponsor{font-size:.95rem;opacity:.85;margin-top:.4rem}
.menu-btn{display:none;background:none;border:0;padding:.5rem;cursor:pointer}
.menu-btn .bar{display:block;width:26px;height:3px;background:var(--navy);margin:5px 0;border-radius:2px;transition:.2s}
.menu-btn[aria-expanded="true"] .bar:nth-child(1){transform:translateY(8px) rotate(45deg)}
.menu-btn[aria-expanded="true"] .bar:nth-child(2){opacity:0}
.menu-btn[aria-expanded="true"] .bar:nth-child(3){transform:translateY(-8px) rotate(-45deg)}
@media (max-width:800px){.menu-btn{display:block}.nav nav{width:100%}.nav ul#menu{display:none;flex-direction:column;gap:0;padding:.5rem 0}.nav ul#menu.open{display:flex}.nav ul#menu a{display:block;padding:.7rem 0;border-top:1px solid #e6ebf3}}
/* gallery, events, lightbox */
.gallery{list-style:none;padding:0;margin:1.5rem 0 0;display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:.8rem}
.gal-item{display:block;aspect-ratio:1;overflow:hidden;border-radius:12px;box-shadow:0 4px 14px rgba(27,42,78,.1)}
.gal-item img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .3s}
.gal-item:hover img,.gal-item:focus img{transform:scale(1.05)}
.date{color:#7a5600;font-weight:700;font-size:.85rem;margin:0}
.sub{margin-top:2.5rem}
.timeline{list-style:none;padding:0;border-left:3px solid var(--gold);margin:0}
.timeline li{padding:.5rem 0 .5rem 1.2rem;position:relative}
.timeline li::before{content:"";position:absolute;left:-8px;top:1rem;width:13px;height:13px;border-radius:50%;background:var(--navy)}
.timeline time{display:inline-block;min-width:10rem;font-weight:700;color:var(--navy)}
.foot a{color:var(--gold)}
.lightbox{position:fixed;inset:0;background:rgba(10,16,32,.92);display:flex;align-items:center;justify-content:center;z-index:100;padding:1rem}
.lightbox[hidden]{display:none}
.lightbox figure{margin:0;text-align:center;color:#fff}
.lightbox img{max-width:90vw;max-height:80vh;border-radius:8px}
.lightbox button{position:absolute;background:rgba(255,255,255,.15);color:#fff;border:0;font-size:2.2rem;width:3rem;height:3rem;border-radius:50%;cursor:pointer;line-height:1}
.lightbox button:focus-visible{outline:3px solid var(--gold)}
.lb-close{top:1rem;right:1rem}.lb-prev{left:1rem;top:50%}.lb-next{right:1rem;top:50%}
@media (max-width:800px){.timeline time{display:block}.gallery{grid-template-columns:repeat(2,1fr)}}
.nav ul a.nav-quiz{background:var(--gold);color:var(--navy);padding:.3rem .8rem;border-radius:999px;font-weight:700}
/* contrast + focus fixes (2026-11-07) */
.kicker{color:#7a5600}.date{color:#7a5600}
.note{color:#4f5b73}
a:focus-visible,.btn:focus-visible,button:focus-visible{outline:3px solid #1b2a4e;outline-offset:2px;box-shadow:0 0 0 5px #f4b400}
.hero a:focus-visible,.band a:focus-visible,.foot a:focus-visible{outline-color:#f4b400;box-shadow:none}
@media (max-width:360px){body{font-size:16px}.hero h1{font-size:1.7rem}.brand{font-size:1rem}.brand img{width:36px;height:36px}}
.brand small{color:#7a5600}
