:root{
  color-scheme:light;
  --red:#c9141d;
  --red-dark:#990d16;
  --charcoal:#22252b;
  --text:#2b2f36;
  --muted:#667085;
  --warm:#fff8ef;
  --cream:#fffdf8;
  --paper:#ffffff;
  --mist:#f4f6f8;
  --line:#dfe4ea;
  --gold:#c79524;
  --green:#27845c;
  --blue:#276db7;
  --purple:#6451a8;
  --radius:10px;
  --soft-shadow:0 10px 30px rgba(31,36,45,.08);
  font-family:Inter,Montserrat,system-ui,-apple-system,Segoe UI,sans-serif
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--cream);color:var(--text);font-size:16px;line-height:1.6}
a{color:var(--red-dark);text-underline-offset:3px}
img{max-width:100%;display:block}
button,input,select,textarea{font:inherit}
:focus-visible{outline:3px solid rgba(201,20,29,.42);outline-offset:3px}
.skip-link{position:absolute;left:-999px;top:8px;background:#fff;color:#000;padding:10px;z-index:20}
.skip-link:focus{left:8px}

.site-header{position:sticky;top:0;z-index:10;display:flex;align-items:center;gap:18px;padding:10px clamp(16px,4vw,48px);background:rgba(255,255,255,.94);backdrop-filter:blur(12px);border-bottom:1px solid var(--line);box-shadow:0 4px 18px rgba(20,24,30,.05)}
.brand{display:flex;align-items:center;gap:10px;text-decoration:none;font-weight:900;color:var(--charcoal);letter-spacing:0}
.brand img{width:56px;height:56px;object-fit:contain}
.brand span{line-height:1.05}
.site-nav{margin-left:auto;display:flex;gap:4px;align-items:center}
.site-nav>a,.site-nav summary{padding:10px 11px;text-decoration:none;border-radius:8px;cursor:pointer;color:var(--charcoal);font-weight:750}
.site-nav>a:hover,.site-nav summary:hover,.site-nav a:focus-visible,.site-nav summary:focus-visible{background:#fff1f0;color:var(--red-dark)}
.site-nav details{position:relative}
.site-nav details[open] summary{background:#fff1f0;color:var(--red-dark)}
.site-nav details a{display:block;min-width:220px;padding:10px 12px;text-decoration:none;color:var(--charcoal)}
.site-nav details[open]{background:#fff;border:1px solid var(--line);border-radius:8px;box-shadow:var(--soft-shadow)}
.site-nav details[open] a:hover{background:#f8fafc}
.nav-toggle{display:none;margin-left:auto;background:#fff;color:var(--charcoal);border:1px solid var(--line);border-radius:8px;padding:10px 12px;font-weight:800}
.header-cta,.btn{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:12px 18px;border-radius:8px;font-weight:900;text-decoration:none;border:1px solid transparent;cursor:pointer;line-height:1.2}
.primary,.header-cta{background:var(--red);color:#fff;border-color:var(--red)}
.primary:hover,.header-cta:hover{background:var(--red-dark)}
.ghost{background:#fff;color:var(--charcoal);border-color:var(--line)}
.light{background:#fff;color:var(--red-dark);border-color:#fff}
.outline-light{background:transparent;color:#fff;border-color:rgba(255,255,255,.72)}
.button-row{display:flex;gap:12px;flex-wrap:wrap}

.hero{min-height:78vh;display:grid;grid-template-columns:minmax(0,1fr) minmax(240px,36vw);align-items:center;gap:clamp(22px,5vw,64px);padding:clamp(34px,7vw,86px) clamp(18px,5vw,70px);background:linear-gradient(115deg,rgba(255,253,248,.98) 0 48%,rgba(255,248,239,.82) 48% 100%)}
.hero::after{content:"";grid-column:2;grid-row:1 / span 2;min-height:clamp(280px,36vw,460px);border-radius:18px;background:var(--hero) center bottom/96% auto no-repeat,linear-gradient(180deg,#fff,#fff8ef);box-shadow:0 24px 70px rgba(63,42,28,.18);border:8px solid #fff;transform:rotate(1.5deg)}
.hero-copy{grid-column:1;grid-row:1;max-width:760px}
.hero-copy,.page-hero,.content-stack{min-width:0}
.eyebrow{color:var(--red);font-weight:900;text-transform:uppercase;letter-spacing:.12em;font-size:.78rem;margin:0 0 10px}
.hero h1,.page-hero h1{font-size:clamp(2.45rem,6.1vw,5rem);line-height:.96;margin:0 0 18px;letter-spacing:0;color:var(--charcoal)}
.hero p{font-size:clamp(1.05rem,2vw,1.32rem);max-width:700px;color:#48505a}
.hero-badges{grid-column:1;grid-row:2;display:flex;gap:10px;flex-wrap:wrap}
.hero-badges span{background:#fff;border:1px solid var(--line);border-left:5px solid var(--red);border-radius:8px;padding:9px 13px;font-weight:850;color:var(--charcoal);box-shadow:0 8px 18px rgba(20,24,30,.06)}

.program-band{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0;padding:clamp(30px,5vw,70px);background:#fff}
.program-band article{display:grid;grid-template-columns:120px 1fr;gap:20px;align-items:center;padding:28px;border-top:1px solid var(--line);background:#fff}
.program-band article:nth-child(odd){border-right:1px solid var(--line)}
.program-band img{max-height:130px;margin:auto;object-fit:contain}
.program-band h2{font-size:clamp(1.45rem,3vw,2.2rem);line-height:1;margin:0 0 10px;color:var(--charcoal)}
.program-band p{margin:0 0 12px;color:#4a525c}
.program-band a{font-weight:900}
.program-little{border-left:7px solid var(--gold)}
.program-youth{border-left:7px solid var(--green)}
.program-adult{border-left:7px solid var(--blue)}
.program-lead{border-left:7px solid var(--purple)}

.split{display:grid;grid-template-columns:1fr 1fr;gap:clamp(24px,5vw,64px);align-items:center;padding:clamp(38px,7vw,90px);background:var(--warm)}
.split h2,.journey-strip h2,.event-strip h2,.cta-panel h2{font-size:clamp(2rem,4.6vw,4rem);line-height:1;margin:.1em 0 .35em;color:var(--charcoal)}
.split p{color:#4a525c}
.split img{border-radius:12px;box-shadow:var(--soft-shadow);aspect-ratio:4/3;object-fit:cover;border:8px solid #fff}

.journey-strip{padding:clamp(34px,6vw,76px);background:#fff;text-align:center}
.journey-strip ol{display:grid;grid-template-columns:repeat(6,1fr);gap:0;list-style:none;padding:0;margin:28px auto 0;max-width:1100px;border:1px solid var(--line);border-radius:12px;overflow:hidden}
.journey-strip li{padding:18px 12px;font-weight:900;color:var(--charcoal);background:linear-gradient(180deg,#fff,#fafafa);border-right:1px solid var(--line)}
.journey-strip li:last-child{border-right:0}
.journey-strip li::before{content:"";display:block;height:6px;margin:-18px -12px 14px;background:linear-gradient(90deg,#fff,#f1d06c,#3a8c54,#2b65b4,#7d4a9d,#151515)}

.section-heading{display:flex;justify-content:space-between;gap:16px;align-items:end;margin-bottom:22px}
.event-strip{padding:clamp(34px,6vw,76px);background:#f7f8fa}
.event-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.event-grid article{display:grid;grid-template-columns:110px 1fr;gap:16px;background:#fff;border:1px solid var(--line);border-radius:10px;padding:14px;box-shadow:0 6px 18px rgba(22,28,37,.05)}
.event-grid img{width:110px;height:132px;object-fit:cover;border-radius:8px}
.date{color:var(--red);font-weight:900}

.photo-band{display:grid;grid-template-columns:1.1fr .9fr 1fr;gap:10px;padding:10px;background:#fff}
.photo-band img{width:100%;height:clamp(190px,28vw,420px);object-fit:cover}
.photo-band img:nth-child(2){height:clamp(230px,32vw,480px)}

.page-hero{padding:clamp(42px,7vw,90px);background:linear-gradient(135deg,#fff 0%,#fff8ef 60%,#fff1f0 100%);border-bottom:1px solid var(--line)}
.page-hero p{max-width:850px;color:#4b5563;font-size:1.08rem}
.register-hero{background:linear-gradient(135deg,#fff 0%,#fff5ef 55%,#ffe8e5 100%)}
.content-stack{max-width:980px;margin:auto;padding:clamp(34px,6vw,76px);background:#fff}
.content-stack h1,.content-stack h2,.content-stack h3{margin-top:30px;color:var(--charcoal);line-height:1.08}
.content-stack p,.content-stack li{color:#3f4751}
.content-stack p{margin:0 0 1.1em}

.cards-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;padding:clamp(30px,5vw,70px);background:#fff}
.event-card{background:#fff;border:1px solid var(--line);border-radius:10px;overflow:hidden;box-shadow:0 6px 18px rgba(22,28,37,.05)}
.event-card img{width:100%;height:220px;object-fit:cover;background:#f4f4f4}
.event-card div,.event-card>p,.event-card>h2{padding-left:18px;padding-right:18px}
.event-card div{padding:18px}
.featured-event{grid-column:span 2;display:grid;grid-template-columns:minmax(220px,.8fr) 1fr}
.featured-event img{height:100%}

.video-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px;padding:clamp(30px,5vw,70px);background:#fff}
.video-grid article{background:#fff;border-bottom:4px solid var(--red);padding-bottom:12px}
.video-grid h2{font-size:1.05rem;line-height:1.25;color:var(--charcoal)}
.video-frame{aspect-ratio:16/9;background:#000;border-radius:10px;overflow:hidden}
.video-frame iframe{width:100%;height:100%;border:0}

.gallery-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));grid-auto-flow:dense;gap:10px;padding:clamp(20px,4vw,54px);background:#fff}
.gallery-grid a{display:block;min-height:150px;background:#f0f2f5}
.gallery-grid .wide{grid-column:span 2;grid-row:span 2}
.gallery-grid img{width:100%;height:100%;aspect-ratio:1;object-fit:cover}
.gallery-grid .wide img{aspect-ratio:2/1.45}

.form-shell{padding:clamp(34px,6vw,76px);background:#fff}
.form-shell form,.admin-form{display:grid;gap:14px;max-width:760px;margin:auto;background:#fff;border:1px solid var(--line);border-radius:10px;padding:24px;box-shadow:0 10px 28px rgba(24,30,38,.07)}
label{display:grid;gap:6px;font-weight:800;color:var(--charcoal)}
input,select,textarea{width:100%;background:#fff;color:#101820;border:1px solid #cfd6df;border-radius:8px;padding:13px}
input:focus,select:focus,textarea:focus{border-color:var(--red);box-shadow:0 0 0 3px rgba(201,20,29,.14);outline:0}
.form-result{font-weight:850;color:var(--green)}

.cta-panel{padding:clamp(38px,7vw,86px);text-align:center;background:linear-gradient(135deg,var(--red),#8f1017);color:#fff}
.cta-panel h2{color:#fff}
.cta-panel p{max-width:760px;margin:0 auto 24px;color:#fff8f8}

.site-footer{display:grid;grid-template-columns:1.3fr 1fr 1fr 1.4fr;gap:28px;padding:34px clamp(18px,5vw,70px);background:#20232a;color:#eef1f4}
.site-footer a{color:#fff;text-decoration:none}
.site-footer a:hover{text-decoration:underline}
.site-footer nav,.footer-brand{display:grid;align-content:start;gap:7px}
.footer-brand img{width:72px}
.site-footer p{margin:0;color:#d8dde4}
.mobile-cta{display:none}

.auth-body{min-height:100vh;display:grid;place-items:center;background:linear-gradient(135deg,#fffdf8,#fff2ef);padding:22px}
.auth-card{width:min(440px,100%);background:#fff;border:1px solid var(--line);border-radius:12px;padding:30px;box-shadow:var(--soft-shadow)}
.auth-card>img{width:96px;margin:0 auto 16px}
.auth-card h1{text-align:center;margin:0;color:var(--charcoal)}
.auth-intro{text-align:center;color:var(--muted)}
.auth-error{background:#fff1f0;border:1px solid #ffc8c4;color:#8f1017;border-radius:8px;padding:10px}
.auth-message{background:#eefaf2;border:1px solid #b9e7c8;color:#155b36;border-radius:8px;padding:10px}

.admin-body{background:#f5f7fa;color:var(--text)}
.admin-shell{display:grid;grid-template-columns:260px 1fr;min-height:100vh}
.admin-sidebar{background:#fff;border-right:1px solid var(--line);padding:18px;box-shadow:6px 0 24px rgba(22,28,37,.04)}
.admin-brand{margin-bottom:18px}
.admin-sidebar nav{display:grid;gap:6px}
.admin-sidebar nav a{padding:10px 12px;text-decoration:none;border-radius:8px;color:var(--charcoal);font-weight:800}
.admin-sidebar nav a:hover,.admin-sidebar nav a[aria-current="page"]{background:#fff1f0;color:var(--red-dark)}
.admin-panel{padding:26px;overflow:auto}
.admin-topbar{display:flex;justify-content:space-between;gap:18px;align-items:center;margin-bottom:22px}
.admin-topbar h1{font-size:clamp(1.8rem,3vw,2.8rem);margin:0;color:var(--charcoal)}
.admin-user{background:#fff;border:1px solid var(--line);border-radius:999px;padding:8px 12px;font-weight:800}
.metric-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:18px}
.metric-grid article,.admin-section,.admin-list article,.empty-state{background:#fff;border:1px solid var(--line);border-radius:10px;padding:18px;box-shadow:0 5px 16px rgba(22,28,37,.04)}
.metric-grid strong{display:block;font-size:2.3rem;color:var(--red)}
.metric-grid span{color:var(--muted);font-weight:800}
.admin-toolbar{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:14px}
.admin-toolbar input{max-width:360px}
.admin-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.admin-list h2{font-size:1.05rem;margin:.1em 0;color:var(--charcoal)}
.admin-list p{margin:.2em 0;color:var(--red-dark);font-weight:800}
.admin-list small{color:var(--muted)}
.empty-state{color:var(--muted);font-weight:800}
.table-wrap{overflow:auto;background:#fff;border:1px solid var(--line);border-radius:10px}
table{width:100%;border-collapse:collapse;min-width:720px}
th,td{text-align:left;border-bottom:1px solid var(--line);padding:12px;vertical-align:top}
th{background:#f8fafc;color:var(--charcoal)}
td small{color:var(--muted)}

@media (max-width:1080px){
  .site-nav{font-size:.94rem}
  .hero{grid-template-columns:1fr}
  .hero::after{min-height:360px}
  .event-grid,.cards-grid,.video-grid{grid-template-columns:repeat(2,1fr)}
  .featured-event{grid-column:span 2}
  .journey-strip ol{grid-template-columns:repeat(3,1fr)}
  .site-footer{grid-template-columns:repeat(2,1fr)}
}
@media (max-width:860px){
  .nav-toggle{display:block}
  .site-nav{display:none;position:absolute;inset:77px 12px auto 12px;background:#fff;border:1px solid var(--line);border-radius:10px;padding:12px;flex-direction:column;align-items:stretch;box-shadow:var(--soft-shadow)}
  .site-nav.open{display:flex}
  .site-nav details[open]{box-shadow:none}
  .header-cta{display:none}
  .program-band{grid-template-columns:1fr}
  .program-band article:nth-child(odd){border-right:0}
  .split,.featured-event{grid-template-columns:1fr}
  .gallery-grid{grid-template-columns:repeat(3,1fr)}
  .admin-shell{grid-template-columns:1fr}
  .admin-sidebar{position:static;border-right:0;border-bottom:1px solid var(--line)}
  .admin-sidebar nav{grid-template-columns:repeat(3,1fr)}
}
@media (max-width:620px){
  html,body{max-width:100%;overflow-x:hidden}
  body{padding-bottom:62px}
  .site-header{display:grid;grid-template-columns:minmax(0,1fr) auto;padding:8px 12px;max-width:100vw;overflow:hidden}
  .brand{min-width:0}
  .brand img{width:48px;height:48px}
  .brand span{font-size:.9rem;overflow-wrap:anywhere}
  .nav-toggle{display:inline-flex;align-items:center;justify-content:center;min-width:56px;grid-column:2}
  .site-nav{grid-column:1/-1}
  .hero{display:block;min-height:0;max-width:100vw;overflow:hidden}
  .hero,.page-hero,.split,.event-strip,.journey-strip,.content-stack,.form-shell,.cta-panel{padding:28px 18px}
  .hero-copy,.hero p,.button-row,.hero-badges,.hero h1{width:calc(100vw - 36px);max-width:calc(100vw - 36px)}
  .hero h1,.page-hero h1{font-size:2.15rem;line-height:1.02;overflow-wrap:break-word}
  .hero .eyebrow,.page-hero .eyebrow{overflow-wrap:anywhere}
  .hero::after{display:block;min-height:260px;border-width:5px;margin-top:24px;max-width:calc(100vw - 36px);background-size:112% auto,auto}
  .hero-badges{margin-top:22px}
  .section-heading{display:grid;gap:8px;align-items:start}
  .program-band{padding:0}
  .program-band article{grid-template-columns:82px minmax(0,1fr);width:100%;padding:20px 18px}
  .program-band img{max-height:88px}
  .journey-strip ol,.event-grid,.cards-grid,.video-grid,.metric-grid,.admin-list{grid-template-columns:1fr}
  .journey-strip li{border-right:0;border-bottom:1px solid var(--line)}
  .photo-band{grid-template-columns:1fr}
  .gallery-grid{grid-template-columns:repeat(2,1fr);padding:14px}
  .gallery-grid .wide{grid-column:span 2}
  .site-footer{grid-template-columns:1fr}
  .mobile-cta{position:fixed;bottom:0;left:0;right:0;width:100vw;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);z-index:15}
  .mobile-cta a{min-width:0;background:var(--red);color:#fff;padding:14px 10px;text-align:center;font-size:.95rem;font-weight:900;text-decoration:none;border-top:1px solid rgba(255,255,255,.4);white-space:nowrap}
  .admin-panel{padding:18px}
  .admin-topbar{display:block}
  .admin-sidebar nav{grid-template-columns:repeat(2,1fr)}
  .admin-toolbar{display:grid}
}
@media (prefers-reduced-motion:reduce){
  *{scroll-behavior:auto;animation:none!important;transition:none!important}
}
