:root{--campaign-navy:#003057;--campaign-aqua:#00bfb2;--campaign-pale:#bbe5f0;--campaign-peach:#ffdbb2}body{background:var(--campaign-navy);color:#fff}.back-link{color:#fff;text-decoration:none;font-size:14px;font-weight:700}.campaign-layout{min-height:calc(100svh - 145px);display:flex;align-items:center;padding:28px 0 42px}.campaign-grid{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);align-items:center;gap:clamp(36px,6vw,100px)}.campaign-label{display:flex;align-items:center;gap:12px;font-size:11px;letter-spacing:.16em;font-weight:700;color:var(--campaign-pale)}.campaign-label span{width:28px;height:2px;background:var(--campaign-peach)}.campaign-copy h1{font-size:clamp(62px,6.8vw,104px);line-height:.98;letter-spacing:-.065em;margin:26px 0}.campaign-copy h1 em{color:var(--campaign-peach)}.campaign-description{max-width:420px;font-size:clamp(16px,1.35vw,19px);line-height:1.65;color:#fff}.campaign-date{color:var(--campaign-pale);font-size:11px;font-weight:700;letter-spacing:.09em;margin-top:28px}.campaign-date span{color:var(--campaign-peach);margin:0 6px}.campaign-button{display:inline-flex;justify-content:space-between;gap:45px;background:var(--campaign-peach);color:var(--campaign-navy);padding:17px 20px;margin-top:22px;font-size:14px;font-weight:700;text-decoration:none}.fund-card{background:#fff;color:var(--campaign-navy);border-radius:10px;padding:clamp(25px,3.1vw,48px);box-shadow:0 18px 60px rgba(0,0,0,.1)}.card-heading{display:flex;justify-content:space-between;align-items:start;gap:20px}.small-label,.milestone small{font-size:10px;letter-spacing:.12em;font-weight:700}.total{font-weight:700;font-size:clamp(48px,5vw,72px);letter-spacing:-.065em;line-height:1;margin:18px 0 8px}.goal{margin:0;color:#526b79;font-size:14px}.goal strong{color:var(--campaign-navy)}.percent-badge{width:92px;height:92px;border-radius:50%;background:var(--campaign-pale);display:flex;flex-direction:column;justify-content:center;align-items:center;flex:none}.percent-badge span{font-size:24px;font-weight:700;letter-spacing:-.05em}.percent-badge small{font-size:9px;font-weight:700;letter-spacing:.08em}.chart{margin-top:38px}.chart-rail{height:20px;background:#e6f2f3;border-radius:30px;overflow:hidden}.chart-fill{height:100%;width:0;background:linear-gradient(90deg,#00bfb2,#39d8c8);border-radius:inherit;transition:width 2s cubic-bezier(.22,1,.36,1)}.chart-labels{display:flex;justify-content:space-between;font-weight:700;font-size:12px;margin-top:10px}.update-note{color:#627986;font-size:12px;margin-top:17px}.milestones{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid #dce8e9;margin-top:25px;padding-top:25px}.milestone{padding:0 12px;border-left:1px solid #dce8e9}.milestone:first-child{border:0;padding-left:0}.milestone-icon{display:block;color:#00a99d;font-size:20px;margin-bottom:10px}.milestone span:nth-child(2){display:block;font-size:13px;font-weight:700}.milestone strong{display:block;font-size:clamp(14px,1.4vw,18px);margin-top:4px}.milestone small{display:block;color:#718993;margin-top:10px;font-size:8px;line-height:1.4}.milestone.reached .milestone-icon{color:var(--campaign-navy)}.data-message{font-size:12px;color:#516b79;margin:0}.data-message:not(:empty){margin-top:16px}.campaign-footer{color:#bbe5f0;padding:18px 0;font-size:12px}.campaign-footer .shell{display:flex;justify-content:space-between;gap:20px}@media(max-width:900px){.campaign-layout{padding:45px 0 55px;min-height:0}.campaign-grid{grid-template-columns:1fr;gap:35px}.campaign-copy h1{font-size:clamp(62px,10vw,90px)}.campaign-description{max-width:580px}}@media(max-width:500px){.back-link{font-size:12px}.campaign-layout{padding:35px 0}.campaign-copy h1{font-size:57px}.campaign-date{font-size:10px}.fund-card{padding:24px}.percent-badge{width:76px;height:76px}.percent-badge span{font-size:20px}.total{font-size:44px}.milestones{grid-template-columns:repeat(2,1fr);gap:22px 0}.milestone:nth-child(3){border:0;padding-left:0}.campaign-footer .shell{flex-direction:column;gap:6px}}@media(prefers-reduced-motion:reduce){.chart-fill{transition:none}}
.chart{position:relative;padding-top:14px}.chart-rail{position:relative}.chart-markers{position:absolute;top:4px;left:0;right:0;height:40px;pointer-events:none}.chart-marker{position:absolute;top:0;display:flex;align-items:center;justify-content:center;width:40px;height:40px;margin-left:-20px;border-radius:50%;border:3px solid white;background:#e6f2f3;color:#6a9d9f;font-size:17px;box-shadow:0 2px 7px #0030571a}.chart-marker:nth-child(1){left:25%}.chart-marker:nth-child(2){left:50%}.chart-marker:nth-child(3){left:75%}.chart-marker:nth-child(4){left:100%;margin-left:-40px}.chart-marker.reached{background:#00bfb2;color:#fff;animation:milestone-pop .7s ease both;animation-delay:1.3s}.chart-marker.reached:last-child{background:#ffdbb2;color:#003057}.chart-labels{margin-top:20px}.celebration{color:#006d68;font-size:12px;font-weight:700;margin:16px 0 0}.celebration.visible{animation:celebrate-in .65s ease both;animation-delay:1.5s}.update-note{margin-top:8px}.milestone.reached strong,.milestone.reached small{color:#008a80}@keyframes milestone-pop{0%{transform:scale(.6)}65%{transform:scale(1.25)}100%{transform:scale(1)}}@keyframes celebrate-in{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@media(max-width:500px){.chart-marker{width:32px;height:32px;margin-left:-16px;font-size:14px}.chart-markers{top:8px}.chart-marker:last-child{margin-left:-32px}}@media(prefers-reduced-motion:reduce){.chart-marker.reached,.celebration.visible{animation:none}}
/* An illustrative journey toward the goal, not a history of donations. */
.chart{padding-top:0;margin-top:22px}.journey-chart{display:block;width:100%;height:clamp(105px,15vh,150px);overflow:visible}.gridline{fill:none;stroke:#e4eff0;stroke-width:1}.future-line{fill:none;stroke:#c7dede;stroke-width:2.5;stroke-dasharray:5 6}.progress-line{fill:none;stroke:#00bfb2;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke}#fill{transition:width 2s cubic-bezier(.22,1,.36,1)}.chart-marker{position:static;margin:0;width:auto;height:auto;border:0;box-shadow:none;animation:none}.chart-marker circle{fill:#e6f2f3;stroke:#fff;stroke-width:3;vector-effect:non-scaling-stroke}.chart-marker text{fill:#669494;text-anchor:middle;font-size:9px;font-weight:bold}.chart-marker.reached{background:none;animation:none}.chart-marker.reached circle{fill:#00bfb2}.chart-marker.reached text{fill:white}.chart-marker.reached:last-child circle{fill:#ffdbb2}.chart-marker.reached:last-child text{fill:#003057}.chart-labels{margin-top:0}.milestones{margin-top:17px;padding-top:17px}.celebration{margin-top:10px}@media(prefers-reduced-motion:reduce){#fill{transition:none}}
/* Keep the milestone badges round while the chart scales to the available width. */
.chart{position:relative}.journey-markers{position:absolute;top:0;left:0;right:0;height:clamp(105px,15vh,150px);pointer-events:none}.journey-marker{position:absolute;display:grid;place-items:center;width:26px;height:26px;border:3px solid white;border-radius:50%;transform:translate(-50%,-50%);background:#e6f2f3;color:#669494;font-size:12px;font-weight:700;box-shadow:0 2px 7px #0030571a}.journey-marker:nth-child(1){left:26.25%;top:65.833%}.journey-marker:nth-child(2){left:50%;top:48.333%}.journey-marker:nth-child(3){left:73.75%;top:30.833%}.journey-marker:nth-child(4){left:97.5%;top:13.333%}.journey-marker.reached{background:#00bfb2;color:white}.journey-marker.reached:last-child{background:#ffdbb2;color:#003057}
.time-axis{display:grid;grid-template-columns:repeat(5,1fr);margin-top:3px}.axis-month{display:flex;flex-direction:column-reverse;gap:4px;text-align:center;font-size:10px;font-weight:700;color:#466675}.week-ticks{display:grid;grid-template-columns:repeat(4,1fr);height:6px}.week-ticks i{border-left:1px solid #9ab7bb;height:5px}.chart-caption{font-size:10px;color:#627986;margin:8px 0 0}.progress-line{stroke-dasharray:1;stroke-dashoffset:1;transition:stroke-dashoffset 2s ease}.progress-line.drawn{stroke-dashoffset:0}.journey-chart{height:clamp(90px,13vh,135px)}@media(prefers-reduced-motion:reduce){.progress-line{transition:none}}
.chart-point{fill:#00bfb2;stroke:#fff;stroke-width:2;vector-effect:non-scaling-stroke}
.chart-plot{position:relative;padding-left:45px}.y-axis{position:absolute;left:0;top:13.333%;height:70%;display:flex;flex-direction:column;justify-content:space-between;text-align:right;width:39px;color:#627986;font-size:10px;font-weight:700;line-height:1;transform:translateY(-.5em)}.time-axis{margin-left:45px}.chart-point{stroke-width:3}@media(max-width:500px){.chart-plot{padding-left:38px}.y-axis{width:33px;font-size:9px}.time-axis{margin-left:38px}}
.chart-points{position:absolute;left:45px;right:0;top:0;bottom:0;pointer-events:none}.chart-point{position:absolute;width:14px;height:14px;border-radius:50%;background:#00bfb2;border:3px solid white;box-shadow:0 1px 6px #00305755;transform:translate(-50%,-50%)}@media(max-width:500px){.chart-points{left:38px}}
.chart-plot{padding-left:0;padding-right:48px}.y-axis{left:auto;right:0;text-align:left;width:42px}.chart-points{left:0;right:48px}.time-axis{display:block;margin-left:0;margin-right:48px}.time-axis .week-ticks{display:grid;grid-template-columns:repeat(20,1fr)}.axis-labels{display:flex;justify-content:space-between;margin-top:5px;color:#466675;font-size:10px;font-weight:700}@media(max-width:500px){.chart-plot{padding-left:0;padding-right:40px}.y-axis{width:35px}.chart-points{left:0;right:40px}.time-axis{margin-left:0;margin-right:40px}}
.axis-labels{position:relative;display:block;height:15px}.axis-labels span{position:absolute;top:0;transform:translateX(-50%)}.axis-labels span:nth-child(1){left:5.56%}.axis-labels span:nth-child(2){left:29.37%}.axis-labels span:nth-child(3){left:53.97%}.axis-labels span:nth-child(4){left:78.57%}.axis-labels span:last-child{right:0;transform:none}
/* Keep the right-hand dollar scale in front of the SVG at every width. */
.y-axis{z-index:2;color:#003057;opacity:1;visibility:visible;white-space:nowrap}.y-axis span{display:block;color:#003057}.journey-chart{position:relative;z-index:0}.chart-points{z-index:1}
.gridline{stroke:#e6edef;stroke-width:1}
.future-line{stroke:#b7d1d2;stroke-width:2;stroke-dasharray:4 6}
.progress-line{stroke:#00a99d;stroke-width:4;stroke-dasharray:none;stroke-dashoffset:0;filter:drop-shadow(0 2px 3px #00a99d40);transition:none}
.chart-point{width:9px;height:9px;border:2px solid #fff;box-shadow:0 1px 4px #00305733}
.chart-caption{display:flex;align-items:center;flex-wrap:wrap;gap:8px 24px;line-height:1.5}
.legend-item{display:inline-flex;align-items:center;gap:8px}
.legend-point{width:9px;height:9px;border:2px solid #fff;border-radius:50%;background:#00bfb2;box-shadow:0 1px 4px #00305733;flex:none}
.legend-raised{width:26px;border-top:3px solid #00a99d;border-radius:2px;flex:none}
.legend-line{width:26px;border-top:2px dashed #9dbfc0;flex:none}
body{background:radial-gradient(ellipse at 82% 28%,#0b5270 0,transparent 42%),radial-gradient(ellipse at 12% 78%,#06436a 0,transparent 38%),var(--campaign-navy)}
.header{background:transparent}
#progress-reveal.animate{transform-box:fill-box;transform-origin:left center;animation:reveal-progress var(--reveal-duration,5s) linear both}
.chart-point{animation:point-bounce .65s ease-out var(--bounce-delay,0s) both}
@keyframes reveal-progress{from{transform:scaleX(0)}to{transform:scaleX(1)}}
@keyframes point-bounce{
  0%,100%{transform:translate(-50%,-50%) scale(1)}
  35%{transform:translate(-50%,-50%) scale(1.9)}
  65%{transform:translate(-50%,-50%) scale(.85)}
  85%{transform:translate(-50%,-50%) scale(1.12)}
}
@media(prefers-reduced-motion:reduce){#progress-reveal.animate,.chart-point{animation:none}}
.fund-card{background:linear-gradient(145deg,rgba(255,255,255,.96),rgba(235,248,249,.9));border:1px solid rgba(255,255,255,.78);box-shadow:0 24px 70px rgba(0,18,38,.22),inset 0 1px rgba(255,255,255,.8);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px)}
.journey-chart{height:clamp(150px,21vh,220px)}
.gridline{stroke:#dbe8eb;stroke-width:1}
.y-axis span:nth-child(2),.y-axis span:nth-child(4){display:none}
.week-ticks i{visibility:hidden}
.week-ticks i:nth-child(5n + 1){visibility:visible}
@media(min-width:1100px){
  .campaign-grid.shell{width:min(100% - 80px,1600px);grid-template-columns:minmax(300px,.82fr) minmax(0,1.65fr);gap:clamp(42px,4vw,76px)}
  .campaign-copy h1{font-size:clamp(62px,5vw,84px)}
}
@media(max-width:600px){
  .journey-chart{height:clamp(130px,18vh,180px)}
}
@media(min-width:1400px) and (min-height:850px){
  .nav-wrap{height:94px}
  .nav-wrap.shell,.campaign-footer .shell{width:min(100% - 80px,1840px)}
  .brand img{width:72px;height:72px}
  .campaign-grid.shell{width:min(100% - 80px,1840px);grid-template-columns:minmax(520px,.8fr) minmax(0,1.9fr);gap:clamp(64px,4vw,84px)}
  .campaign-layout{min-height:calc(100svh - 153px);padding:24px 0 36px}
  .campaign-copy h1{font-size:clamp(76px,4.8vw,92px);margin:28px 0}
  .campaign-label{font-size:13px}
  .campaign-description{max-width:500px;font-size:23px}
  .campaign-date{font-size:14px;margin-top:36px}
  .fund-card{padding:40px clamp(48px,2.8vw,56px);border-radius:18px;background:linear-gradient(145deg,rgba(255,255,255,.92),rgba(235,248,249,.82));box-shadow:0 30px 90px rgba(0,18,38,.26),inset 0 1px rgba(255,255,255,.9);backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px)}
  .small-label,.milestone small{font-size:12px}
  .total{font-size:clamp(76px,4.6vw,88px);margin:20px 0 10px}
  .goal{font-size:19px}
  .percent-badge{width:108px;height:108px}
  .percent-badge span{font-size:28px}
  .percent-badge small{font-size:10px}
  .chart{margin-top:34px}
  .journey-chart{height:clamp(200px,21vh,228px)}
  .y-axis{font-size:13px}
  .time-axis{margin-top:8px}
  .axis-labels{height:22px}
  .axis-labels,.chart-caption{font-size:13px}
  .chart-caption{margin-top:12px}
  .celebration,.update-note{font-size:15px}
  .milestones{margin-top:20px;padding-top:20px}
  .milestone{padding:0 20px}
  .milestone-icon{font-size:24px;margin-bottom:10px}
  .milestone span:nth-child(2){font-size:17px}
  .milestone strong{font-size:23px}
  .milestone small{font-size:10px}
  .campaign-footer{font-size:14px}
}
:root{--campaign-navy:#052d50;--campaign-coral:#ef896a;--campaign-cream:#ffe3ad;--campaign-chart:#bb533b}
body{background:radial-gradient(ellipse at 82% 28%,#09486c 0,transparent 42%),radial-gradient(ellipse at 12% 78%,#073c60 0,transparent 38%),var(--campaign-navy)}
.campaign-copy h1{color:var(--campaign-coral)}
.campaign-copy h1 em,.campaign-label,.campaign-date,.campaign-footer{color:var(--campaign-cream)}
.campaign-label span,.campaign-date span{color:var(--campaign-coral)}
.campaign-label span{background:var(--campaign-coral)}
.fund-card{background:linear-gradient(145deg,rgba(255,255,255,.96),rgba(255,244,226,.9));color:var(--campaign-navy)}
.percent-badge{background:var(--campaign-cream)}
.progress-line{stroke:var(--campaign-chart);filter:drop-shadow(0 2px 3px #bb533b40)}
.chart-point,.legend-point{background:var(--campaign-chart)}
.legend-raised{border-color:var(--campaign-chart)}
.future-line{stroke:#89a9b9}
.legend-line{border-color:#89a9b9}
.celebration{color:#8f402d}
.countdown{color:var(--campaign-navy);font-size:12px;font-weight:600;margin:6px 0 0}
@media(min-width:1400px) and (min-height:850px){.countdown{font-size:15px}}
.milestone-icon{color:var(--campaign-chart)}
.milestone.reached strong,.milestone.reached small{color:#8f402d}
.campaign-copy h1.campaign-name{color:var(--campaign-coral);font-size:clamp(54px,5vw,92px);line-height:1;letter-spacing:-.045em;margin:0 0 34px}
.campaign-name span{display:block;color:var(--campaign-cream);font-size:.44em;letter-spacing:-.025em;margin-top:12px}
.campaign-tagline{font-size:clamp(36px,3vw,54px);font-weight:600;letter-spacing:-.04em;line-height:1.12;margin:0 0 26px}
.campaign-tagline em{font-family:'PRBC Noto Serif',serif;color:var(--campaign-cream);font-weight:300;letter-spacing:-.025em}
.percent-badge small{text-align:center;line-height:1.2;letter-spacing:.02em}
@media(min-width:1400px) and (min-height:850px){.journey-chart{height:clamp(240px,27vh,292px)}}
@media(max-width:500px){.campaign-copy h1.campaign-name{font-size:clamp(50px,13vw,64px)}.percent-badge small{font-size:8px}}
