:root {
  --black: #050505;
  --white: #ffffff;
  --soft: #f4f4f1;
  --line: rgba(255, 255, 255, 0.14);
  --dark-line: rgba(5, 5, 5, 0.12);
  --muted: #b7b7b0;
  --text: #121212;
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

* { box-sizing: border-box; }
html { width:100%; max-width:100%; overflow-x:hidden; scroll-behavior: smooth; }
body { width:100%; max-width:100%; margin:0; overflow-x:hidden; color:var(--white); background:var(--black); }
main, section { min-width:0; max-width:100%; }
a { color: inherit; text-decoration: none; }
.wrap { width:min(1120px,calc(100% - 2rem)); max-width:calc(100% - 2rem); min-width:0; margin:0 auto; }
.site-head { position: sticky; top: 0; z-index: 20; border-bottom: 1px solid var(--line); background: rgba(5,5,5,.82); backdrop-filter: blur(20px); }
.nav { min-height: 4.5rem; display:flex; align-items:center; justify-content:space-between; gap:1rem; }
.brand img { width: 3.5rem; filter: invert(1); display:block; }
.nav-links { display:flex; align-items:center; gap:.65rem; flex-wrap:wrap; }
.nav-links a, .pill-btn { min-height:2.75rem; display:inline-flex; align-items:center; justify-content:center; border:1px solid var(--line); border-radius:.55rem; padding:0 1rem; color:var(--white); font-weight:850; background:rgba(255,255,255,.04); transition: transform .18s ease, background .18s ease, border-color .18s ease; }
.nav-links a:hover, .pill-btn:hover { transform: translateY(-1px); background:rgba(255,255,255,.1); border-color:rgba(255,255,255,.28); }
.pill-btn.primary, .nav-links a.primary { background:var(--white); color:var(--black); }
.public-menu-button { width:2.65rem; height:2.65rem; border:1px solid var(--line); border-radius:.7rem; background:rgba(255,255,255,.04); display:grid; place-content:center; gap:.2rem; cursor:pointer; transition:transform .18s ease, background .18s ease, border-color .18s ease, box-shadow .18s ease; }
.public-menu-button:hover { transform:translateY(-1px); background:rgba(255,255,255,.1); border-color:rgba(255,255,255,.28); }
.public-menu-button:active { transform:scale(.96); }
.public-menu-button span { width:1.08rem; height:.1rem; border-radius:999px; background:#fff; transition:transform .2s ease, opacity .2s ease; }
.public-menu-button.is-open span:nth-child(1) { transform:translateY(.3rem) rotate(45deg); }
.public-menu-button.is-open span:nth-child(2) { opacity:0; }
.public-menu-button.is-open span:nth-child(3) { transform:translateY(-.3rem) rotate(-45deg); }
.public-drawer { max-height:0; overflow:hidden; opacity:0; transform:translateY(-6px); transition:max-height .28s ease, opacity .2s ease, transform .2s ease; background:rgba(5,5,5,.94); }
.public-drawer.is-open { max-height:24rem; opacity:1; transform:translateY(0); border-top:1px solid var(--line); }
.public-drawer-inner { width:min(1120px, calc(100% - 2rem)); margin:0 auto; padding:.9rem 0 1rem; display:grid; grid-template-columns:repeat(auto-fit,minmax(9rem,1fr)); gap:.65rem; }
.public-drawer-inner a { min-height:3rem; display:inline-flex; align-items:center; justify-content:center; border:1px solid var(--line); border-radius:.6rem; background:#111; color:#fff; font-weight:900; text-align:center; }
.public-drawer-inner a.primary { background:#fff; color:#000; }
.hero { min-height: calc(100vh - 4.5rem); display:grid; align-items:center; padding:4rem 0; background: radial-gradient(circle at 70% 20%, rgba(255,255,255,.14), transparent 28rem), linear-gradient(180deg, #050505, #111 58%, #050505); }
.eyebrow { color: var(--muted); font-weight:900; text-transform:uppercase; letter-spacing:.08em; }
h1 { max-width: 9ch; margin:.75rem 0 0; font-size:clamp(4rem, 16vw, 11rem); line-height:.86; letter-spacing:0; }
.lead { max-width: 45rem; color:#d8d8d2; font-size:clamp(1.08rem, 2vw, 1.35rem); line-height:1.7; }
.hero-actions { display:flex; flex-wrap:wrap; gap:.8rem; margin-top:2rem; }
.hero-card-actions { display:grid; grid-template-columns:repeat(auto-fit,minmax(12rem,1fr)); gap:1rem; margin-top:2.4rem; max-width:64rem; }
.home-action-card { min-height:8.2rem; display:grid; grid-template-columns:auto 1fr; align-items:center; gap:1rem; border:1px solid rgba(255,255,255,.12); border-radius:.85rem; padding:1.2rem; background:#fff; color:#26333b; box-shadow:0 20px 44px rgba(0,0,0,.18); transition:transform .2s ease, box-shadow .2s ease, border-color .2s ease; }
.home-action-card.is-dark { background:#25323a; color:#fff; }
.home-action-card.volunteer-highlight { background:#111; color:#fff; border-color:#111; box-shadow:0 24px 70px rgba(0,0,0,.22); }
.home-action-card:hover { transform:translateY(-4px); box-shadow:0 28px 70px rgba(0,0,0,.26); border-color:rgba(255,255,255,.28); }
.home-action-card strong { font-size:1.05rem; line-height:1.18; }
.action-icon { width:3.6rem; height:3.6rem; display:grid; place-items:center; }
.action-icon svg { width:3rem; height:3rem; stroke-width:1.9; }
.section { padding:clamp(4rem, 9vw, 7rem) 0; }
.light { background:var(--soft); color:var(--text); }
.section h2 { margin:0 0 1rem; font-size:clamp(2.4rem, 7vw, 5.5rem); line-height:.95; letter-spacing:0; }
.section-copy { max-width: 48rem; color:#5f625f; line-height:1.75; font-size:1.08rem; }
.story { display:grid; grid-template-columns:.9fr 1.1fr; gap:clamp(1rem, 4vw, 4rem); align-items:start; }
.home-story { grid-template-columns:1fr; }
.quote-box { border-radius:1.4rem; background:#fff; border:1px solid var(--dark-line); padding:clamp(1.3rem,3vw,2rem); box-shadow:0 24px 70px rgba(0,0,0,.08); }
.quote-box strong { display:block; color:var(--black); font-size:clamp(1.8rem,4vw,3.8rem); line-height:1; }
.cards-grid, .project-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1rem; }
.wide-cards { grid-template-columns:repeat(3,minmax(15rem,1fr)); }
.black-card, .project-card { border-radius:1.25rem; overflow:hidden; border:1px solid var(--dark-line); background:#fff; color:var(--black); box-shadow:0 20px 60px rgba(0,0,0,.08); }
.black-card { padding:clamp(1.25rem,2vw,1.8rem); min-height:11rem; }
.black-card p { color:#5d625f; line-height:1.65; }
.project-card img { width:100%; aspect-ratio: 4/3; object-fit:cover; display:block; background:#ddd; }
.project-fallback { min-height:auto; aspect-ratio:4/3; display:grid; place-items:center; background:linear-gradient(135deg,#050505,#2b2b2b); color:#fff; font-size:clamp(2.5rem,8vw,5rem); font-weight:950; }
.project-card div { padding:1rem; }
.project-card h3 { margin:.2rem 0 .4rem; font-size:1.25rem; }
.project-card p { color:#5d625f; line-height:1.55; }
.empty { border:1px dashed var(--dark-line); border-radius:1.25rem; padding:1.4rem; color:#5d625f; }
.form-card { max-width: 44rem; border-radius:1.35rem; background:#fff; color:var(--black); padding:1.2rem; box-shadow:0 22px 70px rgba(0,0,0,.12); }
.form-grid { display:grid; gap:.8rem; }
.form-grid label { display:grid; gap:.35rem; font-weight:850; }
.form-grid input, .form-grid textarea { width:100%; border:1px solid var(--dark-line); border-radius:1rem; padding:.9rem 1rem; font:inherit; }
.form-grid textarea { min-height:8rem; resize:vertical; }
.step { display:none; animation: rise .28s ease both; }
.step.is-active { display:grid; gap:.8rem; }
.notice-ok { color:#0b6b38; font-weight:850; }
.notice-error { color:#b42318; font-weight:850; }
.eyebrow.dark { color:#5f625f; }
.volunteer-points { display:grid; gap:.75rem; margin-top:1.4rem; }
.volunteer-points span { display:flex; align-items:center; gap:.65rem; border:1px solid var(--dark-line); border-radius:.85rem; background:#fff; padding:.9rem 1rem; color:#111; font-weight:850; box-shadow:0 14px 36px rgba(0,0,0,.06); }
.volunteer-points span::before { content:""; width:.65rem; height:.65rem; border-radius:50%; background:#111; flex:0 0 auto; }
.volunteer-card { overflow:hidden; }
.volunteer-progress { height:.45rem; border-radius:999px; background:#ececea; overflow:hidden; margin-bottom:1rem; }
.volunteer-progress span { display:block; width:0; height:100%; border-radius:999px; background:#111; transition:width .28s ease; }
.volunteer-step { display:none; gap:.9rem; animation:rise .34s ease both; }
.volunteer-step.is-active { display:grid; }
.volunteer-step h3 { margin:.2rem 0 .35rem; font-size:clamp(1.55rem,4vw,2.4rem); line-height:1.02; }
.sponsor-card { border:1px solid rgba(0,0,0,.08); }
.sponsor-card .volunteer-step { min-height:22rem; align-content:start; }
.sponsor-card .volunteer-step .step-actions, .sponsor-card .volunteer-step > .pill-btn { margin-top:auto; }
.wizard-count { color:#626660; font-size:.75rem; font-weight:900; letter-spacing:.08em; }
.wizard-copy { margin:0 0 .65rem; color:#5f625f; line-height:1.55; }
.step-actions { display:grid; grid-template-columns:1fr 1fr; gap:.7rem; }
.step-actions .pill-btn { width:100%; }
.pay-buttons { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.8rem; margin-top:1.4rem; }
.pay-card { min-height:5.8rem; display:flex; align-items:center; gap:.85rem; border:1px solid var(--dark-line); border-radius:1rem; padding:1rem; background:#fff; color:#000; box-shadow:0 18px 46px rgba(0,0,0,.08); font-weight:900; }
.pay-logo { width:3.25rem; height:3.25rem; flex:0 0 auto; border-radius:.8rem; display:grid; place-items:center; overflow:hidden; background:#fff; }
.pay-logo img { display:block; width:100%; height:100%; object-fit:contain; }
.mia-logo { background:#000; }
.revolut-logo { border:1px solid rgba(0,0,0,.09); }
.pay-card span:last-child { display:grid; gap:.15rem; }
.pay-card small { color:#6b7280; font-weight:750; }
.impact { margin-top:clamp(3.5rem,8vw,6.5rem); padding:clamp(2rem,5vw,4.5rem); border-radius:2rem; background:#f6f6f4; color:#111; box-shadow:0 30px 80px rgba(0,0,0,.09), inset 0 0 0 1px rgba(0,0,0,.035); }
.impact-inner { width:100%; }
.impact-heading { max-width:47rem; margin-bottom:clamp(2rem,5vw,3.8rem); }
.impact-heading .eyebrow { color:#73767a; }
.impact-heading h2 { margin:.65rem 0 0; color:#111; font-size:clamp(2.5rem,6vw,5rem); line-height:.94; }
.impact-panel { display:grid; grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr); gap:clamp(1.5rem,4vw,4rem); align-items:stretch; padding:clamp(.65rem,1.5vw,1rem); border-radius:1.6rem; background:#fff; box-shadow:0 24px 65px rgba(0,0,0,.1); }
.impact-main { min-height:25rem; display:flex; flex-direction:column; justify-content:space-between; padding:clamp(1.5rem,4vw,2.5rem); border-radius:1.25rem; background:#111; color:#fff; opacity:0; transform:translateY(2.5rem) scale(.97); }
.impact-main > div { display:grid; gap:1rem; }
.impact-main strong { font-size:clamp(5.5rem,12vw,9.5rem); line-height:.78; letter-spacing:0; }
.impact-main > div span { color:#c8c8c4; font-size:.82rem; font-weight:900; text-transform:uppercase; letter-spacing:.08em; }
.impact-icon { width:3.3rem; height:3.3rem; flex:0 0 auto; display:grid; place-items:center; border-radius:50%; background:#f2f2f0; color:#111; box-shadow:0 10px 25px rgba(0,0,0,.1); }
.impact-icon-main { width:4rem; height:4rem; background:#fff; }
.impact-icon svg { width:1.55rem; height:1.55rem; stroke-width:1.8; }
.impact-list { display:grid; align-content:center; }
.impact-row { display:grid; grid-template-columns:auto minmax(0,1fr) auto; align-items:center; gap:1rem; padding:1.35rem .25rem; border-bottom:1px solid #deded9; opacity:0; transform:translateX(2rem); }
.impact-row:last-child { border-bottom:0; }
.impact-row > span:nth-child(2) { color:#626660; font-size:.9rem; font-weight:850; }
.impact-row strong { font-size:clamp(2.7rem,5vw,4.7rem); line-height:.86; letter-spacing:0; }
.impact.is-counting .impact-main { animation:softPanelIn .9s cubic-bezier(.2,.8,.2,1) both; }
.impact.is-counting .impact-row { animation:softRowIn .75s .18s cubic-bezier(.2,.8,.2,1) both; }
.impact.is-counting .impact-row:nth-child(2) { animation-delay:.3s; }
.impact.is-counting .impact-row:nth-child(3) { animation-delay:.42s; }
.impact.is-counting .impact-icon svg { animation:iconDrift 3.2s 1.2s ease-in-out infinite; }
.comments-panel { margin-top:clamp(2rem,5vw,4rem); border-radius:1.4rem; background:#fff; color:#000; border:1px solid var(--dark-line); padding:clamp(1rem,3vw,2rem); box-shadow:0 24px 70px rgba(0,0,0,.09); }
.comments-head { display:flex; align-items:end; justify-content:space-between; gap:1rem; margin-bottom:1rem; }
.comments-head h3 { margin:0; font-size:clamp(1.7rem,4vw,3rem); line-height:1; }
.comment-list-public { display:grid; gap:.75rem; margin-bottom:1rem; }
.public-comment { border:1px solid rgba(0,0,0,.1); border-radius:1rem; padding:1rem; background:#f8f8f6; animation:rise .28s ease both; }
.public-comment strong { display:block; margin-bottom:.25rem; }
.public-comment p { margin:.15rem 0 0; color:#5d625f; line-height:1.55; }
.comment-form-public { display:grid; grid-template-columns:minmax(8rem,.35fr) 1fr auto; gap:.6rem; }
.comment-form-public input { min-height:2.9rem; border:1px solid var(--dark-line); border-radius:.8rem; padding:0 .9rem; font:inherit; }
.comment-form-public button { border:0; cursor:pointer; }
.detail-hero { position:relative; overflow:hidden; padding:clamp(4rem,8vw,7rem) 0; }
.detail-hero.has-cover { min-height:34rem; display:grid; align-items:end; color:#fff; background:#050505; }
.detail-bg { position:absolute; inset:-2rem; z-index:0; background-size:cover; background-position:center; filter:blur(18px); transform:scale(1.08); opacity:.55; }
.detail-hero.has-cover::after { position:absolute; inset:0; z-index:1; content:""; background:linear-gradient(90deg, rgba(0,0,0,.84), rgba(0,0,0,.38) 58%, rgba(0,0,0,.72)); }
.detail-content { position:relative; z-index:2; }
.detail-hero.has-cover .section-copy { color:#e6e6e0; }
.detail-cover { width:min(26rem,100%); aspect-ratio:4/3; object-fit:cover; border-radius:1.2rem; display:block; margin-top:1.5rem; box-shadow:0 30px 90px rgba(0,0,0,.38); }
.video-frame { width:100%; aspect-ratio:16/9; border:0; border-radius:1.2rem; margin-top:1rem; }
.gallery { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:.75rem; margin-top:1rem; }
.gallery img { width:100%; aspect-ratio:1/1; object-fit:cover; border-radius:1rem; cursor:zoom-in; }
.gallery-page-hero { padding:clamp(4rem,8vw,6rem) 0; background:#111; }
.gallery-page-hero h1 { max-width:11ch; }
.gallery-page-hero-photo { position:relative; isolation:isolate; min-height:76svh; display:flex; align-items:flex-end; overflow:hidden; padding-bottom:clamp(4rem,9vw,7rem); }
.gallery-page-hero-photo::after { position:absolute; inset:0; z-index:-1; content:""; background:linear-gradient(90deg,rgba(0,0,0,.84),rgba(0,0,0,.34) 62%),linear-gradient(0deg,rgba(0,0,0,.76),transparent 62%); }
.gallery-page-hero-photo > img { position:absolute; inset:0; z-index:-2; width:100%; height:100%; object-fit:cover; object-position:center 52%; animation:galleryHeroIn 1.6s cubic-bezier(.2,.8,.2,1) both; }
.gallery-page-hero-content { position:relative; z-index:1; }
.gallery-page-hero-content h1 { margin-bottom:1.2rem; font-size:clamp(4rem,12vw,9rem); }
.gallery-page-hero-content .lead { max-width:42rem; color:rgba(255,255,255,.84); }
.gallery-intro { max-width:58rem; margin-bottom:clamp(2.5rem,7vw,5rem); }
.gallery-intro h2 { margin:.75rem 0 0; }
.gallery-wall { display:grid; grid-template-columns:repeat(12,minmax(0,1fr)); grid-auto-flow:dense; gap:1rem; }
.gallery-tile { position:relative; grid-column:span 4; overflow:hidden; min-height:18rem; border:0; border-radius:1.1rem; background:#111; color:#fff; box-shadow:0 20px 54px rgba(0,0,0,.11); content-visibility:auto; contain-intrinsic-size:18rem; }
.gallery-tile:nth-child(8n + 1) { grid-column:span 8; }
.gallery-tile:nth-child(8n + 5), .gallery-tile:nth-child(8n + 6) { grid-column:span 6; }
.gallery-tile button { display:block; width:100%; height:100%; border:0; padding:0; background:transparent; cursor:zoom-in; }
.gallery-tile img { display:block; width:100%; height:100%; min-height:18rem; aspect-ratio:4/3; object-fit:cover; transition:transform .7s cubic-bezier(.2,.8,.2,1),filter .3s ease; }
.gallery-tile:nth-child(8n + 1) img { aspect-ratio:16/9; }
.gallery-tile button:hover img { transform:scale(1.035); filter:saturate(1.05); }
.gallery-tile div { position:absolute; inset:auto 0 0; pointer-events:none; padding:3.8rem 1.15rem 1.1rem; background:linear-gradient(transparent,rgba(0,0,0,.82)); }
.gallery-tile p { margin:0; color:#fff; line-height:1.45; font-weight:850; }
.site-footer { background:#050505; color:#fff; border-top:1px solid var(--line); padding:clamp(2rem,5vw,3.5rem) 0; }
.footer-sponsors { margin:calc(clamp(2rem,5vw,3.5rem) * -1) 0 clamp(2rem,5vw,3.5rem); border-bottom:1px solid rgba(0,0,0,.08); padding:clamp(2rem,5vw,3.5rem) 0; background:#f3f3f0; color:#111; }
.footer-sponsors-head { display:flex; align-items:center; justify-content:space-between; gap:1rem; margin-bottom:1.25rem; }
.footer-sponsors-head > span { color:#111; font-size:.72rem; font-weight:950; letter-spacing:.08em; text-transform:uppercase; }
.footer-sponsors-head a { color:#626660; font-size:.78rem; font-weight:850; border-bottom:1px solid rgba(0,0,0,.22); padding-bottom:.2rem; }
.footer-sponsor-logos { display:grid; grid-template-columns:repeat(8,minmax(0,1fr)); align-items:stretch; gap:.5rem; padding:.2rem 0 .45rem; }
.footer-sponsor-logos a { width:100%; min-width:0; height:4rem; display:grid; place-items:center; overflow:hidden; padding:.45rem; opacity:.76; transition:transform .2s ease,opacity .2s ease; }
.footer-sponsor-logos a:hover { transform:translateY(-2px); opacity:1; }
.footer-sponsor-logos img { display:block; width:auto; height:auto; max-width:100%; max-height:2.8rem; object-fit:contain; object-position:center; }
.footer-inner { display:flex; align-items:center; justify-content:space-between; gap:1.5rem; }
.footer-inner > div { display:grid; gap:.35rem; }
.footer-inner strong { font-size:1.35rem; }
.footer-inner span { color:#bdbdb7; }
.social-links { display:flex; flex-wrap:wrap; gap:.75rem; }
.social-links a { min-height:3.2rem; display:inline-flex; align-items:center; gap:.55rem; border:1px solid var(--line); border-radius:.8rem; padding:.35rem .9rem; background:rgba(255,255,255,.06); font-weight:900; transition:transform .18s ease, background .18s ease; }
.social-links a:hover { transform:translateY(-2px); background:#fff; color:#000; }
.social-links svg { width:1.45rem; height:1.45rem; stroke-width:1.9; }
html.fmb-first-entry { background:#050505; }
html.fmb-first-entry .site-head,
html.fmb-first-entry main,
html.fmb-first-entry .site-footer,
html.fmb-first-entry .language-switcher { visibility:hidden; }
.page-transition { position:fixed; inset:0; z-index:999; display:grid; place-items:center; overflow:hidden; padding:2rem 1rem; color:#fff; visibility:hidden; pointer-events:none; }
.page-transition.is-active,.page-transition.is-opening { visibility:visible; }
.page-transition.is-active { pointer-events:auto; }
.page-transition.is-opening { pointer-events:none; }
.page-transition-panel { position:absolute; top:0; bottom:0; width:50.5%; background:#050505; transition:transform .48s cubic-bezier(.76,0,.24,1); }
.page-transition-panel-left { left:0; transform:translateX(-102%); }
.page-transition-panel-right { right:0; transform:translateX(102%); }
.page-transition.is-active .page-transition-panel { transform:translateX(0); }
.page-transition-content { position:relative; z-index:1; width:12rem; display:grid; justify-items:center; gap:1rem; opacity:0; transform:scale(.9); transition:opacity .32s ease,transform .48s cubic-bezier(.2,.8,.2,1),filter .32s ease; }
.page-transition.is-active .page-transition-content { animation:transitionCinematicLogo .38s .34s cubic-bezier(.2,.8,.2,1) both; }
.page-transition-fmb { width:6.6rem; filter:invert(1); }
.page-transition-line { width:5rem; height:1px; overflow:hidden; background:rgba(255,255,255,.12); }
.page-transition-line span { display:block; width:100%; height:100%; background:#fff; transform:translateX(-105%); }
.page-transition.is-active .page-transition-line span { animation:transitionCinematicLine .46s .4s cubic-bezier(.2,.8,.2,1) both; }
.page-transition.is-opening .page-transition-panel { transform:translateX(0); transition:none; }
.page-transition.is-opening .page-transition-content { opacity:1; transform:scale(1); }
.page-transition.is-opening .page-transition-line span { transform:translateX(0); }
.page-transition.is-opening.is-revealing .page-transition-panel { transition:transform .68s cubic-bezier(.76,0,.24,1); }
.page-transition.is-opening.is-revealing .page-transition-panel-left { transform:translateX(-102%); }
.page-transition.is-opening.is-revealing .page-transition-panel-right { transform:translateX(102%); }
.page-transition.is-opening.is-revealing .page-transition-content { opacity:0; transform:scale(1.08); filter:blur(8px); }
.sponsors-page { background:#f4f4f1; color:#111; }
.sponsors-hero { min-height:72svh; display:grid; align-items:end; overflow:hidden; padding:clamp(5rem,10vw,8rem) 0 clamp(4rem,8vw,6rem); color:#fff; background:#080808; }
.sponsors-hero-inner { position:relative; }
.sponsors-hero-inner::after { position:absolute; right:0; bottom:0; width:clamp(5rem,16vw,11rem); height:clamp(5rem,16vw,11rem); content:""; pointer-events:none; border:1px solid rgba(255,255,255,.12); border-radius:50%; box-shadow:0 0 0 1.7rem rgba(255,255,255,.025),0 0 0 3.4rem rgba(255,255,255,.015); }
.sponsors-hero h1 { max-width:11ch; margin:.8rem 0 1.2rem; font-size:clamp(3.5rem,9.5vw,7.5rem); line-height:.92; }
.sponsors-hero p { max-width:42rem; margin:0; color:rgba(255,255,255,.68); font-size:clamp(1rem,2vw,1.25rem); line-height:1.65; }
.sponsors-hero-link { width:max-content; display:inline-flex; align-items:center; gap:.75rem; margin-top:2rem; border-bottom:1px solid rgba(255,255,255,.42); padding-bottom:.35rem; font-weight:900; }
.sponsors-hero-link span { transition:transform .2s ease; }
.sponsors-hero-link:hover span { transform:translateY(.2rem); }
.sponsors-section-head { display:grid; grid-template-columns:minmax(0,1fr) minmax(15rem,25rem); align-items:end; gap:2rem; margin-bottom:clamp(2rem,5vw,4rem); }
.sponsors-section-head h2 { margin:.65rem 0 0; }
.sponsors-section-head > p { margin:0; color:#666a66; line-height:1.65; }
.sponsors-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:.75rem; }
.sponsor-public-card { position:relative; min-height:14.5rem; display:grid; grid-template-columns:1fr auto; grid-template-rows:auto 1fr; gap:.75rem; overflow:hidden; border:1px solid rgba(0,0,0,.08); border-radius:.8rem; padding:.8rem; background:#fff; color:#111; text-align:left; cursor:pointer; box-shadow:0 12px 34px rgba(0,0,0,.055); transition:transform .35s cubic-bezier(.2,.8,.2,1),box-shadow .35s ease,border-color .35s ease; }
.sponsor-public-card:hover { transform:translateY(-5px); border-color:rgba(0,0,0,.18); box-shadow:0 30px 80px rgba(0,0,0,.13); }
.sponsor-public-logo { grid-column:1/-1; height:8rem; display:grid; place-items:center; border-bottom:1px solid rgba(0,0,0,.07); padding:.8rem 1rem 1.15rem; background:transparent; }
.sponsor-public-logo img { display:block; width:auto; height:auto; max-width:86%; max-height:5.3rem; object-fit:contain; transition:transform .45s cubic-bezier(.2,.8,.2,1); }
.sponsor-public-card:hover .sponsor-public-logo img { transform:scale(1.04); }
.sponsor-public-copy { min-width:0; display:grid; align-content:end; gap:.32rem; }
.sponsor-public-copy small { color:#777b76; font-size:.68rem; font-weight:900; letter-spacing:.08em; text-transform:uppercase; }
.sponsor-public-copy strong { font-size:1rem; line-height:1.15; overflow-wrap:anywhere; }
.sponsor-public-copy > span { display:-webkit-box; overflow:hidden; color:#666a66; font-size:.78rem; line-height:1.4; -webkit-box-orient:vertical; -webkit-line-clamp:2; }
.sponsor-public-arrow { width:2.15rem; height:2.15rem; align-self:end; display:grid; place-items:center; border-radius:50%; background:#111; color:#fff; font-size:.85rem; }
.sponsors-empty { min-height:18rem; display:grid; place-items:center; align-content:center; gap:.8rem; border:1px dashed rgba(0,0,0,.17); border-radius:1rem; background:#fff; text-align:center; }
.sponsors-empty span { font-size:clamp(3rem,10vw,7rem); font-weight:950; }
.sponsors-empty p { margin:0; color:#666; }
.sponsor-apply { background:#090909; color:#fff; }
.sponsor-apply-grid { align-items:center; }
.sponsor-apply-copy h2 { margin:.7rem 0 1rem; }
.sponsor-apply-copy > p { max-width:32rem; color:rgba(255,255,255,.65); line-height:1.7; }
.sponsor-apply-note { max-width:29rem; display:grid; gap:.25rem; margin-top:2rem; border-left:2px solid #fff; padding-left:1rem; }
.sponsor-apply-note span { color:rgba(255,255,255,.6); line-height:1.45; }
.sponsor-dialog { width:min(54rem,calc(100% - 2rem)); max-height:min(46rem,calc(100dvh - 2rem)); overflow:auto; border:1px solid rgba(255,255,255,.14); border-radius:1.1rem; padding:0; background:rgba(10,10,10,.92); color:#fff; box-shadow:0 35px 120px rgba(0,0,0,.5); backdrop-filter:blur(20px); }
.sponsor-dialog[open] { display:grid; grid-template-columns:minmax(14rem,.85fr) minmax(0,1.15fr); animation:sponsorDialogIn .35s cubic-bezier(.2,.8,.2,1) both; }
.sponsor-dialog::backdrop { background:rgba(0,0,0,.72); backdrop-filter:blur(8px); }
.sponsor-dialog-close { position:absolute; top:.8rem; right:.8rem; z-index:2; width:2.6rem; height:2.6rem; display:grid; place-items:center; border:1px solid rgba(255,255,255,.15); border-radius:50%; background:rgba(0,0,0,.55); color:#fff; font-size:1.6rem; cursor:pointer; }
.sponsor-dialog-logo { min-height:26rem; display:grid; place-items:center; padding:2rem; background:#fff; }
.sponsor-dialog-logo img { max-width:100%; max-height:13rem; object-fit:contain; }
.sponsor-dialog-content { display:flex; flex-direction:column; padding:clamp(1.5rem,4vw,3rem); }
.sponsor-dialog-content > span { color:#aaa; font-size:.7rem; font-weight:900; letter-spacing:.08em; text-transform:uppercase; }
.sponsor-dialog-content h2 { margin:.45rem 0 .7rem; font-size:clamp(2.3rem,6vw,4.2rem); line-height:.95; }
.sponsor-dialog-content > strong { color:#d7d7d2; line-height:1.5; }
.sponsor-dialog-content > p { margin:1.4rem 0; color:#b6b6b0; line-height:1.7; }
.sponsor-dialog-links { display:flex; flex-wrap:wrap; gap:.5rem; margin-top:auto; }
.sponsor-dialog-links a { min-height:2.8rem; display:inline-flex; align-items:center; gap:.55rem; border:1px solid rgba(255,255,255,.15); border-radius:.55rem; padding:0 .85rem; background:rgba(255,255,255,.06); font-size:.82rem; font-weight:900; transition:background .2s ease,color .2s ease; }
.sponsor-dialog-links a:hover { background:#fff; color:#000; }
@keyframes transitionCinematicLogo { from { opacity:0; transform:scale(.9); filter:blur(7px); } to { opacity:1; transform:scale(1); filter:blur(0); } }
@keyframes transitionCinematicLine { 0% { transform:translateX(-105%); } 60% { transform:translateX(0); } 100% { transform:translateX(105%); } }
@keyframes sponsorDialogIn { from { opacity:0; transform:translateY(1.2rem) scale(.98); } to { opacity:1; transform:none; } }
.language-switcher { position:fixed; right:max(1rem,env(safe-area-inset-right)); bottom:max(1rem,env(safe-area-inset-bottom)); z-index:80; display:grid; justify-items:end; gap:.55rem; font-family:Inter,ui-sans-serif,system-ui,-apple-system,sans-serif; }
.language-toggle { min-width:3.8rem; height:2.8rem; display:flex; align-items:center; justify-content:center; gap:.42rem; border:1px solid rgba(255,255,255,.18); border-radius:.72rem; padding:0 .7rem; background:rgba(10,10,10,.88); color:#fff; box-shadow:0 12px 34px rgba(0,0,0,.2); -webkit-backdrop-filter:blur(14px); backdrop-filter:blur(14px); cursor:pointer; transition:transform .18s ease,background .18s ease; }
.language-toggle:hover { transform:translateY(-1px); background:#111; }
.language-toggle svg { width:1rem; height:1rem; stroke-width:1.7; }
.language-toggle span { font-size:.68rem; font-weight:900; letter-spacing:.04em; }
.language-options { display:grid; gap:.35rem; padding:.35rem; border:1px solid rgba(255,255,255,.16); border-radius:.72rem; background:rgba(10,10,10,.9); box-shadow:0 16px 42px rgba(0,0,0,.22); -webkit-backdrop-filter:blur(14px); backdrop-filter:blur(14px); opacity:0; visibility:hidden; transform:translateY(.45rem) scale(.96); transform-origin:bottom right; transition:opacity .18s ease,visibility .18s ease,transform .18s ease; }
.language-switcher.is-open .language-options { opacity:1; visibility:visible; transform:translateY(0) scale(1); }
.language-options button { width:2.75rem; height:2.25rem; border:0; border-radius:.48rem; background:transparent; color:#bbb; font:inherit; font-size:.7rem; font-weight:900; cursor:pointer; }
.language-options button:hover, .language-options button.is-active { background:#fff; color:#050505; }
.home-white { color:#111; background:#fff; }
.home-white .site-head { border-bottom:1px solid rgba(0,0,0,.1); background:rgba(255,255,255,.86); }
.home-white .brand img { filter:none; }
.home-white .public-menu-button { border-color:rgba(0,0,0,.13); background:rgba(255,255,255,.92); box-shadow:0 6px 18px rgba(0,0,0,.07); }
.home-white .public-menu-button:hover { background:#111; border-color:#111; box-shadow:0 9px 22px rgba(0,0,0,.14); }
.home-white .public-menu-button span { background:#111; }
.home-white .public-menu-button:hover span { background:#fff; }
.home-white .public-drawer { background:rgba(255,255,255,.96); }
.home-white .public-drawer.is-open { border-top:1px solid rgba(0,0,0,.1); }
.home-white .public-drawer-inner a { border-color:rgba(0,0,0,.1); background:#f5f5f3; color:#111; }
.home-white .public-drawer-inner a.primary { background:#111; color:#fff; }
.home-white .hero { color:#111; background:radial-gradient(circle at 78% 18%, rgba(0,0,0,.08), transparent 28rem), linear-gradient(180deg,#fff,#f7f7f4 62%,#fff); }
.home-white .eyebrow { color:#6b6f6a; }
.home-white .lead { color:#323631; }
.home-white .home-action-card { border-color:rgba(0,0,0,.1); box-shadow:0 20px 46px rgba(0,0,0,.12); }
.home-white .home-action-card.is-dark { background:#26333b; color:#fff; }
.home-white .home-action-card.volunteer-highlight { background:#050505; color:#fff; border-color:#050505; }
.home-white .home-action-card:hover { border-color:rgba(0,0,0,.2); box-shadow:0 28px 70px rgba(0,0,0,.16); }
.home-white .light { background:#fff; }
.home-white .site-footer { border-top:1px solid rgba(0,0,0,.08); background:#f5f5f3; color:#111; }
.home-white .footer-sponsors { border-bottom-color:rgba(0,0,0,.09); background:#f3f3f0; }
.home-white .footer-sponsors-head > span { color:#111; }
.home-white .footer-sponsors-head a { color:#5f625f; border-bottom-color:rgba(0,0,0,.25); }
.home-white .footer-sponsor-logos a { box-shadow:none; }
.home-white .footer-inner span { color:#60645f; }
.home-white .social-links a { border-color:rgba(0,0,0,.1); background:#fff; color:#111; }
.home-white .social-links a:hover { background:#111; color:#fff; }
.home-white .home-hero { position:relative; min-height:calc(100svh - 4.5rem); isolation:isolate; display:flex; align-items:flex-end; overflow:hidden; padding:clamp(5rem,12vw,8rem) 0 clamp(5.5rem,10vw,7rem); color:#fff; background:#111; }
.home-hero-slides { position:absolute; inset:0; z-index:-3; overflow:hidden; background:#111; }
.home-hero-media { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center 42%; opacity:0; transform:scale(1.055); transition:opacity 1.5s ease; }
.home-hero-media.is-active { z-index:1; opacity:1; animation:heroStill 8s ease-out both; }
.home-hero-media.hero-main-photo { object-position:43% center; filter:blur(1.6px); transform:scale(1.02); }
.home-hero-media.hero-main-photo.is-active { animation:none; }
.home-hero-media:nth-child(2) { object-position:center 46%; }
.home-hero-media:nth-child(3) { object-position:center 44%; }
.home-hero-media:nth-child(4) { object-position:center 45%; }
.home-hero-media:nth-child(5) { object-position:center 58%; }
.home-hero-shade { position:absolute; inset:0; z-index:-2; background:linear-gradient(90deg,rgba(0,0,0,.82) 0%,rgba(0,0,0,.58) 39%,rgba(0,0,0,.16) 72%),linear-gradient(0deg,rgba(0,0,0,.68),transparent 58%); }
.home-hero-content { position:relative; }
.home-white .home-hero .eyebrow { color:rgba(255,255,255,.76); }
.home-hero h1 { margin:.65rem 0 .9rem; font-size:clamp(5.5rem,16vw,11rem); text-shadow:0 18px 48px rgba(0,0,0,.3); }
.home-white .home-hero .lead { max-width:32rem; margin:0; color:#fff; font-size:clamp(1.25rem,2.4vw,1.65rem); line-height:1.45; font-weight:750; }
.home-hero-actions { display:flex; flex-wrap:wrap; gap:.7rem; margin-top:1.8rem; }
.hero-cta { min-height:3.25rem; display:inline-flex; align-items:center; justify-content:center; border:1px solid rgba(255,255,255,.4); border-radius:.7rem; padding:0 1.15rem; color:#fff; background:rgba(0,0,0,.16); backdrop-filter:blur(12px); font-weight:900; transition:transform .2s ease,background .2s ease,color .2s ease; }
.hero-cta.primary { background:#fff; color:#111; border-color:#fff; }
.hero-cta:hover { transform:translateY(-2px); background:#fff; color:#111; }
.hero-scroll { position:absolute; left:50%; bottom:1.15rem; display:flex; align-items:center; gap:.45rem; transform:translateX(-50%); color:rgba(255,255,255,.78); font-size:.74rem; font-weight:900; text-transform:uppercase; letter-spacing:.08em; }
.hero-scroll svg { width:1.25rem; height:1.25rem; stroke-width:1.8; animation:scrollCue 1.8s ease-in-out infinite; }
.hero-slide-nav { position:absolute; right:max(1rem,calc((100vw - 1120px)/2)); bottom:1.55rem; z-index:3; display:flex; align-items:center; gap:.45rem; }
.hero-slide-nav button { width:1.8rem; height:.22rem; overflow:hidden; border:0; border-radius:999px; padding:0; background:rgba(255,255,255,.38); cursor:pointer; transition:width .3s ease,background .3s ease; }
.hero-slide-nav button.is-active { width:3.6rem; background:#fff; }
.christmas-edition { position:relative; overflow:hidden; border-bottom:1px solid rgba(255,255,255,.1); background:#0b0b0b; color:#fff; }
.christmas-edition::before { position:absolute; top:0; left:0; width:36%; height:1px; content:""; background:linear-gradient(90deg,transparent,#58b981,transparent); animation:editionLine 5.5s ease-in-out infinite; }
.christmas-edition-inner { min-height:7rem; display:grid; grid-template-columns:auto minmax(0,1fr) auto; align-items:center; gap:clamp(1.25rem,4vw,4rem); padding-top:1.15rem; padding-bottom:1.15rem; }
.christmas-edition-status { position:relative; display:flex; align-items:center; gap:.65rem; overflow:hidden; border:1px solid rgba(117,211,157,.48); border-radius:999px; padding:.62rem .88rem; background:rgba(75,177,119,.11); color:#b7ebcc; box-shadow:inset 0 1px 0 rgba(255,255,255,.08),0 8px 28px rgba(75,177,119,.11); font-size:.68rem; text-transform:uppercase; animation:editionStatusGlow 3.2s ease-in-out infinite; }
.christmas-edition-status::after { position:absolute; top:-80%; bottom:-80%; left:-35%; width:22%; content:""; background:rgba(255,255,255,.16); transform:rotate(18deg); animation:editionStatusSweep 4.8s ease-in-out infinite; pointer-events:none; }
.christmas-edition-status > span { width:.55rem; height:.55rem; flex:0 0 auto; border-radius:50%; background:#8be0ae; box-shadow:0 0 0 0 rgba(139,224,174,.38); animation:editionPulse 2.4s ease-out infinite; }
.christmas-edition-status strong { font-weight:950; letter-spacing:.08em; }
.christmas-edition-copy { min-width:0; display:flex; align-items:baseline; gap:1rem; }
.christmas-edition-copy strong { font-size:clamp(1.2rem,2.4vw,1.8rem); line-height:1.1; }
.christmas-edition-copy span { color:rgba(255,255,255,.56); font-size:.9rem; }
.christmas-edition-link { min-height:2.8rem; display:inline-flex; align-items:center; gap:.7rem; border:0; border-bottom:1px solid rgba(255,255,255,.42); padding:0; background:transparent; color:inherit; font:inherit; font-size:.78rem; font-weight:900; cursor:pointer; transition:border-color .2s ease,color .2s ease; }
.christmas-edition-link:hover { color:#83d8a7; border-color:#83d8a7; }
.christmas-edition-link svg { width:1.15rem; height:1.15rem; stroke-width:1.8; transition:transform .2s ease; }
.christmas-edition-link:hover svg { transform:translateX(.25rem); }
.campaign-secret { display:inline-block; transition:filter .7s ease,opacity .7s ease; }
.christmas-edition.is-teaser .campaign-secret { filter:blur(.34rem); opacity:.42; user-select:none; }
.campaign-dialog { width:min(62rem,calc(100% - 2rem)); max-height:calc(100dvh - 2rem); overflow:auto; border:1px solid rgba(255,255,255,.14); border-radius:1.1rem; padding:0; background:#080908; color:#fff; box-shadow:0 40px 140px rgba(0,0,0,.58); }
.campaign-dialog[open] { display:block; animation:campaignDialogIn .55s cubic-bezier(.2,.8,.2,1) both; }
.campaign-dialog::backdrop { background:rgba(0,0,0,.76); -webkit-backdrop-filter:blur(10px); backdrop-filter:blur(10px); animation:campaignBackdropIn .35s ease both; }
.campaign-dialog-glow { position:absolute; top:-13rem; right:-10rem; width:29rem; height:29rem; pointer-events:none; border-radius:50%; background:radial-gradient(circle,rgba(72,176,116,.17),transparent 67%); }
.campaign-dialog-close { position:sticky; z-index:4; top:.8rem; float:right; width:2.7rem; height:2.7rem; display:grid; place-items:center; margin:.8rem .8rem -3.5rem 0; border:1px solid rgba(255,255,255,.15); border-radius:50%; background:rgba(20,20,18,.78); color:#fff; font-size:1.55rem; line-height:1; cursor:pointer; -webkit-backdrop-filter:blur(12px); backdrop-filter:blur(12px); transition:transform .2s ease,background .2s ease; }
.campaign-dialog-close:hover { transform:rotate(7deg); background:#fff; color:#090909; }
.campaign-dialog-head { position:relative; padding:clamp(1.6rem,4vw,3rem) clamp(1.25rem,6vw,4.5rem) 1rem; }
.campaign-live { width:max-content; display:inline-flex; align-items:center; gap:.55rem; border:1px solid rgba(117,211,157,.36); border-radius:999px; padding:.5rem .72rem; background:rgba(75,177,119,.08); color:#9ce3b9; font-size:.66rem; font-weight:900; letter-spacing:.06em; text-transform:uppercase; }
.campaign-live i { width:.48rem; height:.48rem; border-radius:50%; background:#8be0ae; box-shadow:0 0 0 0 rgba(139,224,174,.4); animation:campaignLivePulse 2s ease-out infinite; }
.campaign-kicker { display:block; margin-top:clamp(1.35rem,3vw,2.2rem); color:rgba(255,255,255,.48); font-size:.7rem; font-weight:900; letter-spacing:.16em; text-transform:uppercase; }
.campaign-dialog h2 { max-width:13ch; margin:.45rem 0 .8rem; font-size:clamp(3rem,7vw,5.7rem); line-height:.86; letter-spacing:0; }
.campaign-dialog-head > p { max-width:43rem; margin:0; color:rgba(255,255,255,.63); font-size:clamp(.92rem,1.8vw,1.08rem); line-height:1.7; }
.campaign-route { position:relative; min-height:10.5rem; margin:0 clamp(1.25rem,6vw,4.5rem); }
.campaign-route-line { position:absolute; inset:1.2rem 0 auto; width:100%; height:8.2rem; overflow:visible; }
.campaign-route-line path { fill:none; stroke:#65c58d; stroke-width:1.6; stroke-linecap:round; stroke-dasharray:950; stroke-dashoffset:950; filter:drop-shadow(0 0 6px rgba(101,197,141,.32)); }
.campaign-dialog[open] .campaign-route-line path { animation:campaignRouteDraw 1.35s .42s cubic-bezier(.65,0,.35,1) forwards; }
.campaign-stops { position:relative; z-index:1; display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:1rem; padding-top:2.1rem; }
.campaign-stops article { min-width:0; display:grid; justify-items:center; gap:.25rem; opacity:0; transform:translateY(1rem); text-align:center; }
.campaign-stops article:nth-child(1) { margin-top:2.7rem; }
.campaign-stops article:nth-child(2) { margin-top:.2rem; }
.campaign-stops article:nth-child(3) { margin-top:2.25rem; }
.campaign-stops article:nth-child(4) { margin-top:0; }
.campaign-dialog[open] .campaign-stops article { animation:campaignStopIn .46s cubic-bezier(.2,.8,.2,1) forwards; }
.campaign-dialog[open] .campaign-stops article:nth-child(1) { animation-delay:.72s; }
.campaign-dialog[open] .campaign-stops article:nth-child(2) { animation-delay:.91s; }
.campaign-dialog[open] .campaign-stops article:nth-child(3) { animation-delay:1.1s; }
.campaign-dialog[open] .campaign-stops article:nth-child(4) { animation-delay:1.29s; }
.campaign-stops article > span { color:rgba(255,255,255,.34); font-size:.62rem; font-weight:900; letter-spacing:.1em; }
.campaign-stops article > i { width:.85rem; height:.85rem; margin:.2rem 0 .35rem; border:3px solid #080908; border-radius:50%; background:#fff; box-shadow:0 0 0 1.5px #65c58d,0 0 18px rgba(101,197,141,.55); }
.campaign-stops strong { overflow-wrap:anywhere; font-size:1rem; }
.campaign-stops small { color:#65c58d; font-size:.72rem; font-weight:800; }
.campaign-dialog.is-teaser .campaign-stops strong,.campaign-dialog.is-teaser .campaign-stops small,.campaign-dialog.is-teaser .campaign-secret { filter:blur(.4rem); opacity:.35; user-select:none; pointer-events:none; }
.campaign-reveal-note { position:absolute; z-index:3; left:50%; bottom:.15rem; display:none; align-items:center; gap:.5rem; border:1px solid rgba(117,211,157,.26); border-radius:999px; padding:.52rem .75rem; background:rgba(8,9,8,.82); color:#9ce3b9; box-shadow:0 10px 34px rgba(0,0,0,.34); font-size:.69rem; font-weight:900; white-space:nowrap; transform:translateX(-50%); -webkit-backdrop-filter:blur(12px); backdrop-filter:blur(12px); }
.campaign-reveal-note svg { width:1rem; height:1rem; stroke-width:1.8; }
.campaign-dialog.is-teaser .campaign-reveal-note { display:inline-flex; animation:campaignRevealNoteIn .45s 1.25s ease both; }
.campaign-dialog-foot { display:flex; align-items:center; justify-content:space-between; gap:1.5rem; border-top:1px solid rgba(255,255,255,.1); padding:1rem clamp(1.25rem,6vw,4.5rem); background:rgba(255,255,255,.025); }
.campaign-dialog-foot > div { display:flex; align-items:center; gap:.7rem; }
.campaign-dialog-foot > div strong { color:#9ce3b9; font-size:2rem; line-height:1; }
.campaign-dialog-foot > div span { max-width:11rem; color:rgba(255,255,255,.55); font-size:.75rem; line-height:1.3; }
.campaign-dialog-foot > a { min-height:3.15rem; display:inline-flex; align-items:center; justify-content:center; gap:.7rem; border-radius:.6rem; padding:0 1.15rem; background:#fff; color:#080908; font-size:.82rem; font-weight:950; transition:transform .2s ease,background .2s ease; }
.campaign-dialog-foot > a:hover { transform:translateY(-2px); background:#9ce3b9; }
.campaign-dialog button:focus-visible,.campaign-dialog a:focus-visible { outline:2px solid #9ce3b9; outline-offset:2px; }
body.campaign-open { overflow:hidden; }
@keyframes campaignDialogIn { from { opacity:0; transform:translateY(1.2rem) scale(.975); } to { opacity:1; transform:none; } }
@keyframes campaignBackdropIn { from { opacity:0; } to { opacity:1; } }
@keyframes campaignRouteDraw { to { stroke-dashoffset:0; } }
@keyframes campaignStopIn { to { opacity:1; transform:none; } }
@keyframes campaignLivePulse { 70% { box-shadow:0 0 0 .55rem rgba(139,224,174,0); } 100% { box-shadow:0 0 0 0 rgba(139,224,174,0); } }
@keyframes campaignRevealNoteIn { from { opacity:0; transform:translate(-50%,.45rem); } to { opacity:1; transform:translate(-50%,0); } }
.home-actions-section { padding:clamp(4rem,8vw,6.5rem) 0; background:#fff; color:#111; }
.home-section-heading { max-width:54rem; }
.home-section-heading h2 { margin:.75rem 0 0; font-size:clamp(2.8rem,7vw,5.7rem); line-height:.92; letter-spacing:0; }
.home-actions-section .hero-card-actions { grid-template-columns:repeat(3,minmax(0,1fr)); max-width:none; }
.home-white .home-actions-section .home-action-card.is-dark { background:#111; color:#fff; }
.home-story { gap:clamp(3rem,8vw,7rem); }
.home-story-intro { display:grid; grid-template-columns:1fr; gap:clamp(2rem,7vw,6rem); align-items:center; }
.home-story-copy h2 { max-width:13ch; margin:.75rem 0 1.4rem; font-size:clamp(2.8rem,6.5vw,5.6rem); line-height:.94; }
.home-story-copy p { max-width:40rem; color:#5d625f; font-size:1.12rem; line-height:1.75; }
.text-link { display:inline-flex; align-items:center; gap:.5rem; margin-top:.75rem; padding-bottom:.25rem; border-bottom:1px solid #111; color:#111; font-weight:900; }
.text-link span { transition:transform .2s ease; }
.text-link:hover span { transform:translateX(.25rem); }
.home-story-visual { position:relative; min-height:34rem; margin:0; overflow:hidden; border-radius:1.35rem; background:#e8e8e5; box-shadow:0 28px 70px rgba(0,0,0,.14); }
.home-story-visual img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center; transition:transform .7s cubic-bezier(.2,.8,.2,1); }
.home-story-visual:hover img { transform:scale(1.035); }
.home-story-visual figcaption { position:absolute; left:1rem; bottom:1rem; padding:.65rem .85rem; border-radius:.65rem; background:rgba(255,255,255,.9); color:#111; backdrop-filter:blur(10px); font-size:.82rem; font-weight:900; }
.home-story .wide-cards { margin-top:clamp(1.5rem,4vw,3rem); }
.home-story .black-card { position:relative; min-height:13rem; display:flex; align-items:flex-end; padding-top:4.2rem; }
.home-story .black-card::before { position:absolute; top:1.4rem; left:1.5rem; content:""; width:2.1rem; height:.22rem; border-radius:999px; background:#111; }
.home-story .black-card p { margin:0; }
.home-moments { margin-top:clamp(4rem,10vw,8rem); }
.home-moments-head { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:end; gap:1rem; margin-bottom:2rem; }
.home-moments-head .eyebrow { grid-column:1/-1; }
.home-moments-head h2 { margin:0; font-size:clamp(2.8rem,6.5vw,5.5rem); }
.home-moments-head .text-link { margin-bottom:.5rem; }
.home-photo-grid { display:grid; grid-template-columns:1.05fr .95fr .95fr; grid-template-rows:17rem 17rem; gap:1rem; }
.home-photo { min-width:0; min-height:0; margin:0; overflow:hidden; border-radius:1.25rem; background:#ddd; }
.home-photo-tall { grid-row:span 2; }
.home-photo-wide { grid-column:span 2; }
.home-photo img { width:100%; height:100%; display:block; object-fit:cover; transition:transform .75s cubic-bezier(.2,.8,.2,1),filter .3s ease; }
.home-photo:hover img { transform:scale(1.04); filter:saturate(1.05); }
.home-photo-tall img { object-position:center 44%; }
.home-photo-wide img { object-position:center 48%; }
@keyframes heroStill { from { transform:scale(1.055); } to { transform:scale(1.005); } }
@keyframes galleryHeroIn { from { opacity:0; transform:scale(1.07); } to { opacity:1; transform:scale(1.01); } }
@keyframes scrollCue { 0%,100% { transform:translateY(0); } 50% { transform:translateY(.3rem); } }
@keyframes editionPulse { 0% { box-shadow:0 0 0 0 rgba(75,177,119,.34); } 70%,100% { box-shadow:0 0 0 .65rem rgba(75,177,119,0); } }
@keyframes editionLine { 0%,100% { transform:translateX(-105%); opacity:.25; } 50% { transform:translateX(380%); opacity:.9; } }
@keyframes editionStatusGlow { 0%,100% { border-color:rgba(117,211,157,.38); box-shadow:inset 0 1px 0 rgba(255,255,255,.07),0 8px 24px rgba(75,177,119,.08); } 50% { border-color:rgba(139,224,174,.72); box-shadow:inset 0 1px 0 rgba(255,255,255,.11),0 10px 34px rgba(75,177,119,.2); } }
@keyframes editionStatusSweep { 0%,55% { transform:translateX(-160%) rotate(18deg); opacity:0; } 68% { opacity:.7; } 88%,100% { transform:translateX(760%) rotate(18deg); opacity:0; } }
.viewer { position:fixed; inset:0; z-index:60; display:none; align-items:center; justify-content:center; background:rgba(0,0,0,.92); padding:4rem 1rem; }
.viewer.is-open { display:flex; }
.viewer img { max-width:100%; max-height:86vh; object-fit:contain; }
.viewer button { position:absolute; border:0; border-radius:999px; background:#fff; color:#000; min-width:3rem; min-height:3rem; font-size:1.5rem; font-weight:900; }
.viewer .close { top:1rem; right:1rem; }
.viewer .prev { left:1rem; }
.viewer .next { right:1rem; }
@keyframes rise { from { opacity:0; transform:translateY(14px); } to { opacity:1; transform:translateY(0); } }
@keyframes softPanelIn { to { opacity:1; transform:translateY(0) scale(1); } }
@keyframes softRowIn { to { opacity:1; transform:translateX(0); } }
@keyframes iconDrift { 0%, 100% { transform:translateY(0) rotate(0); } 50% { transform:translateY(-4px) rotate(5deg); } }
.reveal { opacity:0; transform:translateY(1.6rem); transition:opacity .7s cubic-bezier(.2,.8,.2,1) var(--reveal-delay,0ms), transform .7s cubic-bezier(.2,.8,.2,1) var(--reveal-delay,0ms); }
.reveal.is-visible { opacity:1; transform:translateY(0); }
.home-moments, .impact, .comments-panel { content-visibility:auto; contain-intrinsic-size:auto 850px; }
@media (max-width: 1000px) {
  .sponsors-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .footer-sponsor-logos { grid-template-columns:repeat(6,minmax(0,1fr)); }
}
@media (max-width: 760px) {
  .nav { align-items:center; padding:.65rem 0; }
  .nav-links { justify-content:flex-end; gap:.45rem; }
  .nav-links a { min-height:2.35rem; padding:0 .72rem; font-size:.82rem; }
  .public-drawer-inner { grid-template-columns:1fr 1fr; }
  .story, .cards-grid, .project-grid, .gallery { grid-template-columns:1fr; }
  .gallery-page-hero-photo { min-height:68svh; }
  .gallery-page-hero-photo > img { object-position:center; }
  .gallery-page-hero-content h1 { font-size:clamp(3.6rem,17vw,6rem); }
  .gallery-wall { grid-template-columns:1fr 1fr; gap:.65rem; }
  .gallery-tile, .gallery-tile:nth-child(8n + 1), .gallery-tile:nth-child(8n + 5), .gallery-tile:nth-child(8n + 6) { grid-column:span 1; min-height:13rem; border-radius:.8rem; }
  .gallery-tile:nth-child(5n + 1) { grid-column:span 2; }
  .gallery-tile img, .gallery-tile:nth-child(8n + 1) img { min-height:13rem; aspect-ratio:1/1; }
  .gallery-tile:nth-child(5n + 1) img { aspect-ratio:16/10; }
  .gallery-tile div { padding:3rem .8rem .75rem; }
  .gallery-tile p { font-size:.82rem; }
  .hero-card-actions, .home-actions-section .hero-card-actions { grid-template-columns:1fr; }
  .home-white .home-hero { min-height:calc(100svh - 4.5rem); padding:5rem 0 5.25rem; }
  .home-hero-media { object-position:56% center; }
  .home-hero-media:nth-child(2) { object-position:61% center; }
  .home-hero-media:nth-child(3) { object-position:center; }
  .home-hero-media:nth-child(4) { object-position:center; }
  .home-hero-media:nth-child(5) { object-position:52% center; }
  .home-hero-shade { background:linear-gradient(0deg,rgba(0,0,0,.88) 0%,rgba(0,0,0,.5) 58%,rgba(0,0,0,.2)); }
  .home-hero h1 { font-size:clamp(5rem,26vw,7.5rem); }
  .home-hero-actions { display:grid; grid-template-columns:1fr; max-width:25rem; }
  .hero-cta { width:100%; }
  .hero-scroll span { display:none; }
  .hero-slide-nav { right:1rem; bottom:1.55rem; }
  .hero-slide-nav button { width:1.2rem; }
  .hero-slide-nav button.is-active { width:2.4rem; }
  .christmas-edition-inner { min-height:auto; grid-template-columns:1fr auto; gap:.7rem 1rem; padding-top:1rem; padding-bottom:1rem; }
  .christmas-edition-status { grid-column:1/-1; justify-self:start; padding:.56rem .78rem; }
  .christmas-edition-copy { display:grid; gap:.2rem; }
  .christmas-edition-copy strong { font-size:1.18rem; }
  .christmas-edition-copy span { font-size:.78rem; }
  .christmas-edition-link { min-height:2.5rem; }
  .christmas-edition-link > span { display:none; }
  .christmas-edition-link svg { width:1.4rem; height:1.4rem; }
  .campaign-dialog { width:calc(100% - 1rem); max-height:calc(100dvh - 1rem); border-radius:.85rem; }
  .campaign-dialog-head { padding-top:2.6rem; padding-bottom:.75rem; }
  .campaign-kicker { margin-top:1.2rem; }
  .campaign-dialog h2 { max-width:none; font-size:clamp(2.65rem,12vw,3.8rem); }
  .campaign-dialog-head > p { font-size:.86rem; line-height:1.55; }
  .campaign-route { min-height:0; margin-top:.7rem; margin-bottom:1.2rem; }
  .campaign-route-line { display:none; }
  .campaign-stops { grid-template-columns:1fr; gap:0; padding:0; border-top:1px solid rgba(255,255,255,.1); }
  .campaign-stops article,.campaign-stops article:nth-child(n) { grid-template-columns:2rem 1rem minmax(0,1fr) auto; justify-items:start; align-items:center; gap:.6rem; min-height:3.35rem; margin:0; border-bottom:1px solid rgba(255,255,255,.1); text-align:left; }
  .campaign-stops article > i { margin:0; }
  .campaign-stops article > strong { font-size:.92rem; }
  .campaign-stops article > small { justify-self:end; }
  .campaign-reveal-note { position:static; width:max-content; max-width:100%; margin:1rem auto 0; white-space:normal; transform:none; text-align:center; }
  .campaign-dialog.is-teaser .campaign-reveal-note { animation:campaignRevealNoteMobileIn .45s 1s ease both; }
  .campaign-dialog-foot { align-items:stretch; flex-direction:column; gap:.75rem; padding:.8rem 1.25rem 1rem; }
  .campaign-dialog-foot > a { width:100%; }
  .home-actions-section { padding:3.5rem 0 4.5rem; }
  .home-actions-section .home-action-card { min-height:6.8rem; }
  .home-story-intro { grid-template-columns:1fr; }
  .home-story-visual { min-height:30rem; }
  .home-moments-head { grid-template-columns:1fr; }
  .home-moments-head .eyebrow { grid-column:auto; }
  .home-moments-head .text-link { width:max-content; margin:0; }
  .home-photo-grid { grid-template-columns:1fr 1fr; grid-template-rows:20rem 12rem 12rem; }
  .home-photo-tall { grid-row:span 1; grid-column:span 2; }
  .home-photo-wide { grid-column:span 2; }
  .impact { padding:2rem 1rem 1rem; border-radius:1.5rem; }
  .impact-panel { grid-template-columns:1fr; gap:.5rem; padding:.5rem; border-radius:1.25rem; }
  .impact-main { min-height:18rem; padding:1.35rem; border-radius:1rem; }
  .impact-row { padding:1rem .45rem; gap:.75rem; }
  .impact-icon { width:2.75rem; height:2.75rem; }
  .impact-icon-main { width:3.4rem; height:3.4rem; }
  .impact-icon svg { width:1.3rem; height:1.3rem; }
  .pay-buttons, .comment-form-public { grid-template-columns:1fr; }
  .footer-inner { align-items:flex-start; flex-direction:column; }
  .footer-sponsors-head { align-items:flex-end; }
  .footer-sponsor-logos { grid-template-columns:repeat(4,minmax(0,1fr)); gap:.4rem; }
  .footer-sponsor-logos a { height:3.55rem; padding:.4rem; }
  .footer-sponsor-logos img { max-height:2.5rem; }
  .social-links { width:100%; display:grid; grid-template-columns:1fr 1fr; }
  .social-links a { justify-content:center; }
  .language-switcher { right:.75rem; bottom:max(5.25rem,calc(env(safe-area-inset-bottom) + .75rem)); }
  .language-toggle { min-width:3.5rem; height:2.65rem; }
  .hero { min-height:auto; padding:4rem 0 3rem; }
  h1 { font-size:clamp(4rem, 23vw, 7rem); }
  .site-head { backdrop-filter:none; }
  .sponsors-hero { min-height:68svh; }
  .sponsors-hero-inner::after { right:-2.2rem; bottom:1rem; opacity:.65; }
  .sponsors-section-head { grid-template-columns:1fr; }
  .sponsors-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:.55rem; }
  .sponsors-section-head { align-items:start; gap:1rem; }
  .sponsor-public-card { min-height:12.5rem; gap:.55rem; padding:.6rem; border-radius:.7rem; }
  .sponsor-public-logo { height:6.6rem; padding:.65rem; }
  .sponsor-public-logo img { max-width:88%; max-height:4.2rem; }
  .sponsor-public-copy small { font-size:.58rem; }
  .sponsor-public-copy strong { font-size:.9rem; }
  .sponsor-public-copy > span { font-size:.7rem; }
  .sponsor-public-arrow { width:1.85rem; height:1.85rem; font-size:.72rem; }
  .sponsor-dialog[open] { grid-template-columns:1fr; }
  .sponsor-dialog-logo { min-height:11rem; padding:1.5rem; }
  .sponsor-dialog-logo img { max-height:7rem; }
  .sponsor-dialog-content { padding:1.35rem; }
  .sponsor-dialog-close { position:fixed; top:max(1.3rem,env(safe-area-inset-top)); right:1.3rem; }
  .page-transition-fmb { width:5.8rem; }
}
@media (hover:none) {
  .home-photo img, .gallery-tile img, .home-story-visual img { transition:none; }
}
@media (prefers-reduced-motion: reduce) {
  .reveal { opacity:1; transform:none; transition:none; }
  .impact-main, .impact-row { opacity:1; transform:none; }
  .impact.is-counting .impact-main, .impact.is-counting .impact-row, .impact.is-counting .impact-icon svg { animation:none; }
  .home-hero-media, .gallery-page-hero-photo > img, .hero-scroll svg, .christmas-edition::before, .christmas-edition-status, .christmas-edition-status::after, .christmas-edition-status > span, .campaign-live i, .campaign-route-line path, .campaign-stops article { animation:none; }
  .campaign-route-line path { stroke-dashoffset:0; }
  .campaign-stops article { opacity:1; transform:none; }
  .campaign-dialog.is-teaser .campaign-reveal-note { animation:none; opacity:1; }
  .page-transition, .page-transition-panel, .page-transition-content, .page-transition-fmb, .page-transition-line span, .sponsor-dialog[open] { animation:none; transition:none; }
  .page-transition.is-active .page-transition-content, .page-transition.is-active .page-transition-fmb { opacity:1; transform:none; }
  .page-transition.is-active .page-transition-panel { transform:translateX(0); }
  .page-transition-line { display:none; }
}
@keyframes campaignRevealNoteMobileIn { from { opacity:0; transform:translateY(.4rem); } to { opacity:1; transform:none; } }

/* Public navigation: compact popover, separate from the member app navigation. */
.site-head .public-menu-button{width:42px;height:42px;min-width:42px;border-radius:8px;border:1px solid #ccd8d0;background:#fff;color:#183e29;box-shadow:0 2px 8px #00000008}
.site-head .public-menu-button span{background:#183e29;width:18px}
.site-head .public-drawer{display:none;position:absolute;top:calc(100% + 10px);right:max(16px,calc((100% - 1120px)/2));left:auto;width:360px;max-width:calc(100vw - 32px);max-height:calc(100dvh - 110px);overflow:auto;background:#fff;border:1px solid #dbe4de;border-radius:8px;box-shadow:0 20px 64px #12291c24;opacity:1;transform:none}
.site-head .public-drawer.is-open{display:block;animation:public-menu-enter .2s ease-out;max-height:calc(100dvh - 110px)}
.site-head .public-drawer-inner{display:flex;flex-direction:column;gap:2px;width:auto;max-width:none;padding:12px;margin:0}
.site-head .public-drawer-inner a{display:flex;justify-content:space-between;align-items:center;gap:16px;min-height:48px;padding:12px 14px;box-sizing:border-box;border:0;border-bottom:1px solid #f0f3f1;border-radius:6px;background:transparent;box-shadow:none;color:#1a3224;font-size:15px;line-height:1.4;font-weight:600;text-align:left;text-decoration:none;transition:background .18s,color .18s;transform:none}
.site-head .public-drawer-inner a::after{content:'↗';font-size:18px;color:#789081;flex:none}
.site-head .public-drawer-inner a:hover,.site-head .public-drawer-inner a:focus-visible{background:#edf4ef;color:#184d32;outline:2px solid transparent}
.site-head .public-drawer-inner a:focus-visible{outline-color:#2c724b;outline-offset:-2px}
.site-head .public-drawer-inner a.primary{background:#174b35;color:white;margin-top:6px}.site-head .public-drawer-inner a.primary::after{color:white}
.public-menu-backdrop{position:fixed;inset:0;z-index:19;border:0;background:#10221933;cursor:default;padding:0}.public-menu-backdrop[hidden]{display:none!important}
@keyframes public-menu-enter{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}
@media(max-width:600px){.site-head .public-drawer{right:12px;max-width:calc(100vw - 24px);width:calc(100vw - 24px);top:calc(100% + 8px)}.site-head .public-drawer-inner{padding:10px}.site-head .public-drawer-inner a{min-height:49px;font-size:16px}}
@media(prefers-reduced-motion:reduce){.site-head .public-drawer.is-open{animation:none}}
