:root{--sky:#3d7cf0;--blue:#2f7bff;--violet:#7b5cff;--pink:#ff5fa2;--coral:#ff6a5c;--mint:#2fc79a;--sun:#ffbe2e;--ink:#1d1d1f;--mute:#6e6e73;--bg:#fff;--card:#f5f6f9;--grad:linear-gradient(100deg,#2f7bff,#7b5cff 50%,#ff5fa2)}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:'Inter Display',Inter,-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;color:var(--ink);background:var(--bg);overflow-x:hidden;-webkit-font-smoothing:antialiased}
a{color:inherit}
.wrap{max-width:1100px;margin:0 auto;padding:0 24px}
nav{position:fixed;top:0;left:0;right:0;z-index:50;display:flex;justify-content:space-between;align-items:center;padding:14px 28px;backdrop-filter:blur(14px);background:rgba(255,255,255,.72);border-bottom:1px solid rgba(0,0,0,.05)}
nav b{font-weight:900;letter-spacing:-.02em;font-size:20px}
nav a.cta{background:var(--ink);color:#fff;text-decoration:none;padding:9px 18px;border-radius:99px;font-weight:700;font-size:14px;transition:.25s}
nav a.cta:hover{background:var(--blue);transform:translateY(-1px)}
/* hero */
.hero{position:relative;min-height:100vh;display:flex;align-items:center;justify-content:center;text-align:center;padding:120px 24px 80px;overflow:hidden;background:radial-gradient(ellipse at 50% 40%,#fff 0%,#fff 45%,#eef0f4 100%)}
.blob{position:absolute;border-radius:50%;filter:blur(70px);opacity:.5;animation:float 14s ease-in-out infinite}
.b1{width:420px;height:420px;background:var(--blue);left:-100px;top:10%}
.b2{width:360px;height:360px;background:var(--pink);right:-80px;top:30%;animation-delay:-4s}
.b3{width:300px;height:300px;background:var(--mint);left:35%;bottom:-120px;animation-delay:-8s}
@keyframes float{50%{transform:translate(40px,-50px) scale(1.12)}}
.hero-in{position:relative;z-index:2;max-width:880px}
.eyebrow{display:inline-block;font-weight:700;font-size:13px;letter-spacing:.14em;text-transform:uppercase;color:var(--violet);background:rgba(123,92,255,.1);padding:7px 14px;border-radius:99px;margin-bottom:22px}
h1{font-size:clamp(46px,9vw,112px);line-height:.98;font-weight:900;letter-spacing:-.045em}
h1 .grad,.grad{background:var(--grad);background-size:200% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;animation:shift 6s linear infinite}
@keyframes shift{to{background-position:200% 0}}
.word{display:inline-block;opacity:0;transform:translateY(60px) rotate(4deg);animation:drop .8s cubic-bezier(.2,.9,.2,1.2) forwards}
@keyframes drop{to{opacity:1;transform:none}}
.sub{margin:26px auto 34px;max-width:640px;font-size:clamp(17px,2.2vw,22px);color:var(--mute);line-height:1.5;opacity:0;animation:fade 1s .9s forwards}
@keyframes fade{to{opacity:1}}
.btn{display:inline-block;background:var(--grad);background-size:200% 100%;color:#fff;font-weight:800;font-size:18px;padding:17px 34px;border-radius:99px;text-decoration:none;box-shadow:0 14px 40px rgba(123,92,255,.35);transition:.3s;border:0;cursor:pointer;font-family:inherit}
.btn:hover{transform:translateY(-3px) scale(1.03);background-position:100% 0}
.btn.ghost{background:transparent;color:var(--ink);box-shadow:inset 0 0 0 2px var(--ink);margin-left:10px}
.scroll{position:absolute;bottom:26px;left:50%;width:22px;height:36px;border:2px solid var(--ink);border-radius:12px;opacity:.35;transform:translateX(-50%)}
.scroll::after{content:"";position:absolute;left:50%;top:6px;width:4px;height:7px;border-radius:2px;background:var(--ink);transform:translateX(-50%);animation:wheel 1.6s infinite}
@keyframes wheel{to{transform:translate(-50%,12px);opacity:0}}
/* sections */
section{padding:110px 0}
h2{font-size:clamp(34px,6vw,64px);font-weight:900;letter-spacing:-.035em;line-height:1.02;margin-bottom:18px}
.lead{font-size:clamp(17px,2vw,21px);color:var(--mute);max-width:680px;line-height:1.55}
.reveal{opacity:0;transform:translateY(40px);transition:opacity .8s,transform .8s cubic-bezier(.2,.8,.2,1)}
.reveal.in{opacity:1;transform:none}
.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:18px;margin-top:44px}
.card{background:var(--card);border-radius:26px;padding:30px;transition:.35s;position:relative;overflow:hidden}
.card:hover{transform:translateY(-8px) rotate(-.6deg);box-shadow:0 24px 50px rgba(0,0,0,.09)}
.card i{display:block;font-style:normal;font-size:34px;margin-bottom:14px}
.card h3{font-size:22px;font-weight:800;margin-bottom:8px;letter-spacing:-.02em}
.card p{color:var(--mute);line-height:1.5;font-size:15.5px}
.card::after{content:"";position:absolute;inset:auto -30% -60% auto;width:160px;height:160px;border-radius:50%;background:var(--c,var(--blue));opacity:.14;transition:.5s}
.card:hover::after{transform:scale(2.4);opacity:.2}
/* marquee words */
.marq{background:var(--ink);color:#fff;padding:26px 0;overflow:hidden;white-space:nowrap}
.marq div{display:inline-block;animation:mq 26s linear infinite;font-size:clamp(28px,5vw,54px);font-weight:900;letter-spacing:-.03em}
.marq span{margin:0 26px}.marq em{font-style:normal;color:var(--pink)}
@keyframes mq{to{transform:translateX(-50%)}}
/* photos */
.dark{background:#0a0a0c;color:#fff}.dark .lead{color:#b5b5bb}
.photos{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:20px;margin-top:44px}
figure{border-radius:26px;overflow:hidden;background:#16161a;position:relative}
figure img{width:100%;display:block;transition:transform .8s}
figure:hover img{transform:scale(1.05)}
figcaption{padding:16px 20px;font-size:14px;color:#b5b5bb}
.tag{display:inline-block;font-weight:800;font-size:11px;letter-spacing:.1em;text-transform:uppercase;padding:4px 9px;border-radius:6px;margin-right:8px}
.tag.real{background:var(--mint);color:#03251a}.tag.con{background:#2b2b33;color:#ffbe2e}
/* fund */
.fund{background:linear-gradient(180deg,#fff,#f1f3f9)}
.meter{margin:40px 0 10px;height:26px;border-radius:99px;background:#e6e8ef;overflow:hidden}
.meter>div{height:100%;width:0;border-radius:99px;background:var(--grad);background-size:200% 100%;animation:shift 4s linear infinite;transition:width 1.6s cubic-bezier(.2,.8,.2,1)}
.stats{display:flex;gap:40px;flex-wrap:wrap;margin-bottom:34px}
.stats b{display:block;font-size:42px;font-weight:900;letter-spacing:-.03em}
.stats span{color:var(--mute);font-size:14px}
.tiers{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px;margin-top:16px}
.tier{background:#fff;border-radius:24px;padding:26px;text-align:center;text-decoration:none;box-shadow:0 2px 0 rgba(0,0,0,.04),0 12px 30px rgba(20,30,70,.07);transition:.3s;display:block}
.tier:hover{transform:translateY(-8px) scale(1.02);box-shadow:0 24px 50px rgba(123,92,255,.22)}
.tier b{font-size:44px;font-weight:900;letter-spacing:-.03em;display:block}
.tier span{color:var(--mute);font-size:14px;line-height:1.4;display:block;margin-top:8px}
.tier.off{opacity:.55}
.note{margin-top:22px;font-size:14px;color:var(--mute);max-width:720px;line-height:1.55}
/* spend list */
.spend{list-style:none;margin-top:34px;max-width:620px}
.spend li{display:flex;justify-content:space-between;padding:18px 0;border-bottom:1px solid rgba(0,0,0,.08);font-size:18px;font-weight:600}
.spend li span:last-child{font-weight:900;background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}
/* story */
.story{max-width:720px}.story p{font-size:20px;line-height:1.65;margin:0 0 20px;color:#3a3a3f}
footer{padding:50px 24px 70px;text-align:center;color:var(--mute);font-size:14px;line-height:1.7}
footer b{color:var(--ink);font-size:18px}
.confetti{position:fixed;pointer-events:none;width:10px;height:14px;z-index:99;animation:fall 1.4s ease-in forwards}
@keyframes fall{to{transform:translate(var(--dx),110vh) rotate(720deg);opacity:0}}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}.reveal,.word,.sub{opacity:1;transform:none}}
.word.grad{animation:drop .8s cubic-bezier(.2,.9,.2,1.2) forwards,shift 6s linear infinite}
.tier.off{opacity:.9}
/* hero extras */
.hero-badge{display:block;width:min(240px,55vw);margin:0 auto 28px;border-radius:50%;mix-blend-mode:multiply;opacity:0;animation:fade 1s 1.1s forwards,bob 5s 2s ease-in-out infinite}
@keyframes bob{50%{transform:translateY(-12px)}}
.hero-btns{opacity:0;animation:fade 1s 1.3s forwards}
.warm{margin-top:26px;font-size:17px;color:var(--mute);font-weight:600;opacity:0;animation:fade 1s 1.6s forwards}
/* the one donate button */
.btn.donate:not(.ghost){animation:glow 2.4s ease-in-out infinite}
@keyframes glow{50%{box-shadow:0 14px 50px rgba(255,95,162,.55),0 0 0 8px rgba(123,92,255,.12)}}
.big-wrap{text-align:center;margin:20px 0 10px}
.btn.big{font-size:clamp(22px,4vw,32px);padding:26px 56px;animation:glow 2.4s ease-in-out infinite,pulse 2.4s ease-in-out infinite,shift 5s linear infinite}
@keyframes pulse{50%{transform:scale(1.05)}}
.btn.big:hover{transform:scale(1.08)}
@property --ang{syntax:'<angle>';inherits:false;initial-value:0deg}
.bb-wrap{display:grid;justify-items:center;text-align:center;margin:44px 0 10px;padding:0 4px}
.bb-wrap>*{grid-area:1/1}
.bb-aura{width:min(480px,100%);height:100%;border-radius:50px;background:conic-gradient(from var(--ang),#2f7bff,#7b5cff,#ff5fa2,#7b5cff,#2f7bff);filter:blur(36px);opacity:.38;transform:scale(1.06);animation:spin 5s linear infinite,float 6s ease-in-out infinite}
.bb-glow{position:relative;display:block;width:min(480px,100%);padding:36px 28px 26px;border-radius:34px;border:4px solid transparent;
 background:linear-gradient(#fff,#fff) padding-box,conic-gradient(from var(--ang),#2f7bff,#7b5cff,#ff5fa2,#7b5cff,#2f7bff) border-box;
 animation:spin 5s linear infinite,float 6s ease-in-out infinite;scroll-margin:120px;box-shadow:0 30px 70px rgba(123,92,255,.22)}
@keyframes spin{to{--ang:360deg}}
@keyframes float{50%{translate:0 -8px}}
.bb-glow .chips{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;margin-top:16px}
.bb-glow .chips span{font-size:12.5px;font-weight:700;color:#3a3a3f;background:var(--card);border-radius:99px;padding:7px 12px}
@media(max-width:560px){.bb-wrap{padding:0}.bb-glow{width:100%;padding:30px 16px 20px}}
.bb-head h3{font-size:clamp(26px,4vw,32px);font-weight:900;letter-spacing:-.03em;margin:6px 0 6px}
.bb-head p{color:var(--mute);font-size:16px;line-height:1.45;margin-bottom:18px}
.bb-heart{display:inline-block;font-size:40px;animation:beat 1.6s ease-in-out infinite}
@keyframes beat{0%,100%{transform:scale(1)}15%{transform:scale(1.2)}30%{transform:scale(1)}45%{transform:scale(1.12)}}
.bb-widget{min-height:240px;display:flex;justify-content:center}
.bb-foot{margin-top:14px;font-size:13px;color:var(--mute);font-weight:600}
.bb-glow.flash{animation:spin 5s linear infinite,float 6s ease-in-out infinite,flash 1.2s ease-out}
@keyframes flash{0%{transform:scale(1)}30%{transform:scale(1.08);box-shadow:0 0 0 14px rgba(255,95,162,.35),0 20px 60px rgba(123,92,255,.5)}100%{transform:scale(1)}}
.thanks{text-align:center;font-size:18px;font-weight:700;margin-top:18px}
.spend li.total{border-bottom:0;font-size:20px}
.spend li.total span:first-child{font-weight:900}
@media(max-width:560px){
 nav{padding:12px 16px}
 .btn{font-size:16px;padding:15px 26px}
 .btn.ghost{margin-left:0;margin-top:10px}
 .hero-btns .btn{display:block;max-width:300px;margin:10px auto 0}
 .btn.big{padding:22px 30px}
 .spend li{font-size:16px;gap:12px}
 .stats{gap:24px}
}
.vid .vimeo{position:relative;aspect-ratio:16/9;margin-top:34px;border-radius:26px;overflow:hidden;background:#000;box-shadow:0 30px 70px rgba(20,30,70,.18)}
.vid .vimeo iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.vid .soon{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;color:#fff;background:linear-gradient(rgba(10,10,20,.55),rgba(10,10,20,.7)),url(assets/concept-hero.jpg) center/cover}
.vid .soon span{width:74px;height:74px;border-radius:50%;display:grid;place-items:center;font-size:26px;background:var(--grad);background-size:200% 100%;animation:shift 5s linear infinite,pulse 2.4s ease-in-out infinite;box-shadow:0 14px 40px rgba(123,92,255,.5)}
.vid .soon b{font-size:clamp(20px,3vw,28px);font-weight:900;letter-spacing:-.02em}
.vid{padding-bottom:0}.vid video{width:100%;margin-top:34px;border-radius:26px;background:#000;box-shadow:0 30px 70px rgba(20,30,70,.18)}
