.festival-intro{text-align:center;padding:3rem 0 0}.festival-intro h1{font-family:var(--font-subheading);color:var(--color-black);font-size:2.5rem;font-weight:600}.festival-intro p{color:#7a7a7a;max-width:62ch;margin:0 auto;font-size:.875rem;font-weight:600;line-height:1.8}.charity-totaliser-wrapper{--primary-color:#4caf50;--secondary-color:#ffc107;--background-color:#f5f5f5;--text-color:#333;box-sizing:border-box;background-color:#0000;max-width:1200px;margin:0 auto;padding:30px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,sans-serif}.charity-totaliser-header{text-align:center;margin-bottom:40px;animation:.6s ease-out fadeInDown}.charity-name{color:var(--text-color,#333);margin:0 0 20px;font-size:2.5em;font-weight:700;line-height:1.2}.campaign-dates{flex-wrap:wrap;justify-content:center;align-items:center;gap:15px;display:flex}.date-badge{background:var(--background-color,#f5f5f5);color:var(--text-color,#333);border-radius:25px;padding:8px 20px;font-size:.95em;font-weight:600;box-shadow:0 2px 8px #0000001a}.charity-totaliser-main{grid-template-columns:2fr 1fr;gap:40px;animation:.6s ease-out fadeInUp;display:grid}.totaliser-container{border-radius:20px;padding:40px;box-shadow:0 10px 40px #0000001a;background:#fff!important}.totaliser-goal{text-align:center;margin-bottom:30px}.goal-label{text-transform:uppercase;letter-spacing:2px;color:#888;margin-bottom:10px;font-size:.9em;font-weight:600}.goal-amount{color:var(--text-color,#333);font-size:3em;font-weight:700}.totaliser-thermometer{margin:40px 0;position:relative}.thermometer-background{background:var(--background-color,#f5f5f5);border-radius:30px;height:60px;position:relative;overflow:hidden;box-shadow:inset 0 2px 8px #0000001a}.thermometer-fill{height:100%;transition:width 1.5s cubic-bezier(.4,0,.2,1);position:absolute;top:0}.thermometer-fill.donated{background:linear-gradient(90deg, var(--primary-color,#4caf50), var(--primary-color,#4caf50));z-index:2;box-shadow:0 0 20px #4caf5080}.thermometer-fill.pledged{background:linear-gradient(90deg, var(--secondary-color,#ffc107), var(--secondary-color,#ffc107));z-index:1;box-shadow:0 0 20px #ffc10780}.totaliser-stats{grid-template-columns:repeat(3,1fr);gap:20px;margin-top:40px;display:grid}.stat-item{text-align:center;background:var(--background-color,#f5f5f5);border-radius:15px;padding:20px;transition:transform .3s,box-shadow .3s}.stat-item:hover{transform:translateY(-5px);box-shadow:0 10px 25px #0000001a}.stat-color-box{border-radius:10px;width:40px;height:40px;margin:0 auto 15px}.donated-stat .stat-color-box{background:linear-gradient(135deg, var(--primary-color,#4caf50), var(--primary-color,#4caf50));box-shadow:0 4px 15px #4caf504d}.pledged-stat .stat-color-box{background:linear-gradient(135deg, var(--secondary-color,#ffc107), var(--secondary-color,#ffc107));box-shadow:0 4px 15px #ffc1074d}.stat-label{text-transform:uppercase;letter-spacing:1px;color:#888;margin-bottom:10px;font-size:.85em;font-weight:600}.stat-amount{color:var(--text-color,#333);margin-bottom:5px;font-size:1.8em;font-weight:700}.stat-percentage{color:#888;font-size:1.1em;font-weight:600}.total-stat{background:linear-gradient(135deg, var(--primary-color,#4caf50), var(--secondary-color,#ffc107));color:#fff;transition:all .5s}.total-stat .stat-label,.total-stat .stat-amount,.total-stat .stat-percentage{color:#fff}.total-stat.goal-reached{animation:2s ease-in-out infinite goalPulse;transform:scale(1.02);box-shadow:0 0 30px #4caf5099;background:var(--primary-color,#4caf50)!important}.total-stat.goal-reached .stat-label:after{content:" ❤️";font-size:1.2em}.milestones-timeline{border-radius:20px;padding:30px;box-shadow:0 10px 40px #0000001a;background:#fff!important}.timeline-title{color:var(--text-color,#333);text-align:center;margin:0 0 25px;font-size:1.5em;font-weight:700}.timeline-items{flex-direction:column;gap:20px;display:flex}.timeline-item{background:var(--background-color,#f5f5f5);opacity:0;border-radius:12px;align-items:flex-start;gap:15px;padding:15px;transition:opacity .5s,transform .5s;display:flex;transform:translate(-20px)}.timeline-item.visible{opacity:1;transform:translate(0)}.timeline-item.reached{border-left:4px solid var(--primary-color,#4caf50);background:linear-gradient(90deg,#4caf501a,#4caf500d)}.timeline-item:hover{transform:translate(5px);box-shadow:0 4px 15px #0000001a}.timeline-item.visible:hover{transform:translate(5px)}.timeline-marker{flex-shrink:0}.marker-icon{background:#fff;border-radius:50%;justify-content:center;align-items:center;width:35px;height:35px;display:flex;box-shadow:0 2px 8px #0000001a}.timeline-item.reached .marker-icon{background:var(--primary-color,#4caf50);color:#fff}.timeline-item.unreached .marker-icon{color:#fff;background:#e0e0e0}.marker-icon svg{width:20px;height:20px}.timeline-content{flex-grow:1}.timeline-percentage{color:var(--text-color,#333);margin-bottom:5px;font-size:1.3em;font-weight:700}.timeline-item.reached .timeline-percentage{color:var(--primary-color,#4caf50)}.timeline-amount{color:#666;margin-bottom:5px;font-size:1.1em;font-weight:600}.timeline-date{color:#888;font-size:.9em;font-style:italic}.timeline-item.reached .timeline-date{color:var(--primary-color,#4caf50);font-weight:600}@keyframes fadeInDown{0%{opacity:0;transform:translateY(-30px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}@keyframes goalPulse{0%,to{transform:scale(1.02);box-shadow:0 0 30px #4caf5099}50%{transform:scale(1.05);box-shadow:0 0 50px #4caf50e6,0 0 80px #4caf5066}}@media (width<=800px){.charity-totaliser-main,.totaliser-stats{grid-template-columns:1fr}}
