PageSourceSearch

https://www.ecoflix.com/mission/

html ecoflix.com collected 2026-10-02 06:10:11 UTC 48,064 bytes, 591 lines download raw bytes

1<!DOCTYPE html>
2<html lang="en">
3<head>
4<meta charset="UTF-8" />
5<meta name="viewport" content="width=device-width, initial-scale=1.0" />
6<title>The mission · Ecoflix Foundation</title>
7<meta name="description" content="Ecoflix Foundation exists for one reason: to close the gap between the wildlife stories the world needs to see and the NGOs doing the work to keep them alive." />
8<meta name="theme-color" content="#020718" />
9<link rel="canonical" href="https://www.ecoflix.com/mission/" />
10<link rel="preconnect" href="https://fonts.googleapis.com" />
11<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
12<link rel="preconnect" href="https://images.unsplash.com" crossorigin />
13<link href="https://fonts.googleapis.com/css2?family=Manrope:wght@400;500;700&family=Red+Hat+Display:ital,wght@0,500;0,800;0,900;1,500&display=swap" rel="stylesheet" />
14<link rel="icon" type="image/png" href="/assets/favicon.png" />
15<link rel="stylesheet" href="/assets/site.css" />
16<link rel="stylesheet" href="/assets/i18n.css" />
17<style>
18  /* ============ HERO — cinematic poster ============ */
19  .pg-hero{position:relative;min-height:88vh;padding:200px var(--pad-x) 120px;text-align:center;overflow:hidden;isolation:isolate;display:flex;flex-direction:column;justify-content:center;align-items:center}
20  .pg-hero::before{content:"";position:absolute;inset:-15%;z-index:0;background:radial-gradient(45% 40% at 50% 38%,rgba(168,243,65,.22),transparent 70%);filter:blur(60px);pointer-events:none}
21  .hero-photo{position:absolute;inset:0;z-index:-2;background-size:cover;background-position:center;background-repeat:no-repeat;transform:scale(1.04);animation:heroDrift 28s ease-in-out infinite alternate}
22  .hero-photo::after{content:"";position:absolute;inset:0;background:
23    radial-gradient(60% 55% at 50% 45%, rgba(2,7,24,.22) 0%, rgba(2,7,24,.31) 60%, rgba(2,7,24,.38) 100%),
24    linear-gradient(180deg,rgba(2,7,24,.22) 0%,rgba(2,7,24,.16) 35%,rgba(2,7,24,.37) 100%);
25    pointer-events:none}
26  @keyframes heroDrift{0%{transform:scale(1.04) translate3d(0,0,0)}100%{transform:scale(1.08) translate3d(-1.5%,-1%,0)}}
27  @media (prefers-reduced-motion:reduce){.hero-photo{animation:none}}
28  /* Lift the hero copy above the photo/glow — but NOT the .hero-photo itself,
29     which must keep its absolute, z-index:-2 placement. Without :not() this
30     greedy rule forced .hero-photo to position:relative and it collapsed to
31     0x0, hiding the hero image entirely (page rendered as a black banner). */
32  .pg-hero > *:not(.hero-photo){position:relative;z-index:2}
33  .pg-hero .bg-cartograph{z-index:1}
34  .pg-hero h1{font-family:var(--display);font-weight:800;font-size:clamp(56px,8.5vw,128px);line-height:.94;letter-spacing:-.035em;margin:0 auto 26px;max-width:18ch;text-shadow:none}
35  .pg-hero h1 em{font-style:italic;font-weight:500;background:linear-gradient(120deg,var(--leaf) 0%,#D3FA9E 45%,var(--leaf) 100%);background-size:200% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;animation:shine 7s linear infinite}
36  .pg-hero .lede{max-width:62ch;margin:0 auto;font-size:clamp(17px,1.5vw,21px);color:var(--bone);opacity:.92;line-height:1.55}
37  .pg-hero .coord-stamp{display:inline-flex;align-items:center;gap:10px;margin-top:32px;padding:9px 18px;border-radius:999px;background:rgba(7,13,35,.55);border:1px solid rgba(168,243,65,.22);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);font-family:var(--display);font-size:11px;font-weight:800;letter-spacing:.22em;text-transform:uppercase;color:var(--leaf)}
38  .pg-hero .coord-stamp::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--leaf);box-shadow:0 0 10px var(--leaf-glow);animation:pulse 2.4s ease-out infinite}
39  .pg-hero .coord-stamp .cs-sep{color:rgba(168,243,65,.4);margin:0 4px}
40  .pg-hero .coord-stamp .cs-val{color:var(--bone);font-weight:500;letter-spacing:.12em;font-family:var(--body)}
41  @keyframes shine{0%{background-position:0% 50%}100%{background-position:200% 50%}}
42  @keyframes pulse{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(.85)}}
43
44  /* Scroll-hint ribbon under hero */
45  .hero-scrollhint{position:relative;display:flex;align-items:center;justify-content:center;gap:12px;padding:18px var(--pad-x);font-family:var(--display);font-size:11px;font-weight:800;letter-spacing:.22em;text-transform:uppercase;
45color:var(--mist);border-top:1px solid rgba(168,243,65,.1);border-bottom:1px solid rgba(168,243,65,.1);background:rgba(7,13,35,.4)}
46  .hero-scrollhint::before,.hero-scrollhint::after{content:"";flex:0 0 60px;height:1px;background:linear-gradient(90deg,transparent,rgba(168,243,65,.4),transparent)}
47
48  /* ============ FIRST PRINCIPLES — numbered rows ============ */
49  .principles-band{position:relative;padding:120px var(--pad-x);overflow:hidden;isolation:isolate}
50  .principles-band::before{content:"";position:absolute;inset:-10% -20% 30% -20%;z-index:0;background:radial-gradient(55% 40% at 50% 30%,rgba(168,243,65,.14),transparent 70%);filter:blur(70px);pointer-events:none}
51  .pb-head{max-width:1080px;margin:0 auto 64px;text-align:center;position:relative;z-index:2}
52  .pb-head h2{font-family:var(--display);font-weight:800;font-size:clamp(36px,5vw,68px);line-height:1;letter-spacing:-.025em;margin:18px auto 0;max-width:24ch}
53  .pb-head h2 em{font-style:italic;font-weight:500;color:var(--leaf)}
54  .pb-head p{max-width:60ch;color:var(--mist);font-size:18px;margin:22px auto 0}
55  .pb-list{max-width:1240px;margin:0 auto;position:relative;z-index:2;display:flex;flex-direction:column;gap:8px;list-style:none;padding:0}
56  .pb-item{position:relative;padding:48px 36px;display:grid;grid-template-columns:90px 220px 1fr;gap:36px;align-items:center;border-top:1px solid rgba(168,243,65,.14);overflow:hidden;isolation:isolate;transition:background .35s ease}
57  .pb-item:last-child{border-bottom:1px solid rgba(168,243,65,.14)}
58  .pb-item:hover{background:rgba(168,243,65,.025)}
59  .pb-item::before{content:"";position:absolute;inset:0;z-index:-1;opacity:.18;background-image:
60    radial-gradient(circle 1.5px at 20% 30%, rgba(168,243,65,.4) 0, transparent 100%),
61    radial-gradient(circle 1.5px at 80% 70%, rgba(168,243,65,.3) 0, transparent 100%),
62    linear-gradient(90deg, transparent 0%, transparent 49.7%, rgba(168,243,65,.08) 50%, transparent 50.3%);
63    background-size:auto, auto, 80px 100%}
64  .pb-item::after{content:"";position:absolute;left:36px;right:36px;bottom:0;height:1px;background:linear-gradient(90deg,transparent,var(--leaf),transparent);transform:scaleX(.15);transform-origin:left;opacity:.6;transition:transform .9s cubic-bezier(.22,.9,.3,1)}
65  .pb-item:hover::after{transform:scaleX(1)}
66  .pb-num{font-family:var(--display);font-weight:900;font-size:clamp(48px,5vw,72px);line-height:1;letter-spacing:-.04em;color:transparent;-webkit-text-stroke:1px rgba(168,243,65,.55);font-feature-settings:"tnum"}
67  .pb-coord{font-family:var(--display);font-size:11px;font-weight:800;letter-spacing:.22em;text-transform:uppercase;color:var(--leaf);display:inline-flex;flex-direction:column;align-items:flex-start;gap:8px}
68  .pb-coord .pbc-tag{display:inline-flex;align-items:center;gap:8px}
69  .pb-coord .pbc-tag::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--leaf);box-shadow:0 0 8px var(--leaf-glow)}
70  .pb-coord .pbc-loc{color:var(--mist-2);font-weight:500;letter-spacing:.1em;font-family:var(--body);font-size:11.5px;text-transform:none}
71  .pb-statement{font-family:var(--display);font-style:italic;font-weight:500;font-size:clamp(28px,3.6vw,48px);line-height:1.08;letter-spacing:-.02em;color:var(--bone);margin:0}
72  .pb-statement b{color:var(--leaf);font-style:italic;font-weight:500}
73  @media (max-width:880px){
74    .pb-item{grid-template-columns:1fr;gap:14px;padding:36px 18px}
75    .pb-num{font-size:48px}
76  }
77
78  /* ============ PILLAR GRID — WATCH/GIVE/TRACK with photo strip ============ */
79  .pillars-sec{position:relative;padding:140px var(--pad-x);overflow:hidden;isolation:isolate;background:var(--ink-80)}
80  .pillars-sec::before{content:"";position:absolute;inset:0;z-index:0;background:
81    radial-gradient(50% 50% at 18% 60%,rgba(168,243,65,.12),transparent 70%),
82    radial-gradient(45% 50% at 88% 30%,rgba(42,122,59,.14),transparent 70%);
83    filter:blur(60px);pointer-events:none}
84  .pillars-wrap{max-width:1240px;margin:0 auto;position:relative;z-index:2}
85  .pillars-head{text-align:center;margin-bottom:64px}
86  .pillars-head h2{font-family:var(--display);font-weight:800;font-size:clamp(36px,5vw,68px);line-height:1;letter-spacing:-.025em;margin:14px 0 0}
87  .pillars-head h2 em{font-style:italic;font-weight:500;color:var(--leaf)}
88  .pillars-head p{max-width:54ch;margin:18px auto 0;
88color:var(--mist);font-size:18px}
89  .pillars-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
90  @media (max-width:960px){.pillars-grid{grid-template-columns:1fr;gap:18px}}
91  .pillar{position:relative;border-radius:var(--r-lg);background:linear-gradient(180deg, rgba(2,7,24,.6) 0%, rgba(2,7,24,.92) 100%);border:1px solid rgba(255,255,255,.07);overflow:hidden;transition:border-color .35s ease, transform .35s ease, box-shadow .35s ease;display:flex;flex-direction:column;isolation:isolate}
92  .pillar:hover{border-color:rgba(168,243,65,.4);transform:translateY(-4px);box-shadow:0 18px 50px -20px rgba(168,243,65,.18)}
93  .pillar-media{position:relative;aspect-ratio:4/3;overflow:hidden;background:#0a1024}
94  .pillar-media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform 1.2s cubic-bezier(.22,.9,.3,1);filter:saturate(1.05) contrast(1.03)}
95  .pillar:hover .pillar-media img{transform:scale(1.06)}
96  .pillar-media::after{content:"";position:absolute;inset:0;background:
97    linear-gradient(180deg,rgba(2,7,24,0) 50%,rgba(2,7,24,.22) 88%,rgba(2,7,24,.38) 100%),
98    radial-gradient(70% 50% at 50% 30%, transparent, rgba(2,7,24,.1));
99    pointer-events:none}
100  /* Scan-line sweep on hover */
101  .pillar-media::before{content:"";position:absolute;top:-2px;left:-30%;width:50%;height:calc(100% + 4px);background:linear-gradient(90deg,transparent 0%,rgba(168,243,65,0) 35%,rgba(168,243,65,.45) 50%,rgba(168,243,65,0) 65%,transparent 100%);transform:skewX(-18deg);opacity:0;pointer-events:none;z-index:2}
102  .pillar:hover .pillar-media::before{animation:scanSweep 1.1s ease-out forwards}
103  @keyframes scanSweep{0%{left:-30%;opacity:0}
10310%{opacity:.85}100%{left:130%;opacity:0}}
104  @media (prefers-reduced-motion:reduce){.pillar:hover .pillar-media img{transform:none}.pillar:hover .pillar-media::before{animation:none}}
105  .pillar-tag{position:absolute;left:18px;top:18px;z-index:3;display:inline-flex;align-items:center;gap:8px;padding:7px 12px 7px 10px;border-radius:999px;background:rgba(7,13,35,.7);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border:1px solid rgba(168,243,65,.3);font-family:var(--display);font-size:10.5px;font-weight:800;letter-spacing:.22em;text-transform:uppercase;color:var(--leaf)}
106  .pillar-tag::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--leaf);box-shadow:0 0 8px var(--leaf-glow)}
107  .pillar-body{padding:30px 30px 36px;display:flex;flex-direction:column;gap:14px;position:relative}
108  .pillar-icon{position:absolute;right:24px;top:-28px;width:56px;height:56px;border-radius:14px;background:linear-gradient(180deg,rgba(168,243,65,.18),rgba(168,243,65,.05));border:1px solid rgba(168,243,65,.4);display:flex;align-items:center;justify-content:center;color:var(--leaf);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);box-shadow:0 8px 22px rgba(0,0,0,.3)}
109  .pillar-icon svg{width:26px;height:26px}
110  .pillar h3{font-family:var(--display);font-weight:800;font-size:clamp(24px,2.4vw,30px);letter-spacing:-.02em;line-height:1.1;margin:0;color:var(--bone);padding-right:60px}
111  .pillar h3 em{font-style:italic;font-weight:500;color:var(--leaf)}
112  .pillar p{color:var(--mist);font-size:15.5px;line-height:1.6;margin:0}
113
114  /* ============ OPERATING PRINCIPLES (6 grid) ============ */
115  .ops-sec{position:relative;padding:140px var(--pad-x);overflow:hidden;isolation:isolate}
116  .ops-sec::before{content:"";position:absolute;inset:0;z-index:0;background:radial-gradient(60% 50% at 75% 40%,rgba(168,243,65,.10),transparent 70%);filter:blur(60px);pointer-events:none}
117  .ops-wrap{max-width:1240px;margin:0 auto;position:relative;z-index:2}
118  .ops-head{text-align:center;margin-bottom:64px}
119  .ops-head h2{font-family:var(--display);font-weight:800;font-size:clamp(36px,5vw,68px);line-height:1;letter-spacing:-.025em;margin:14px auto 0;max-width:22ch}
120  .ops-head h2 em{font-style:italic;font-weight:500;color:var(--leaf)}
121  .ops-head p{max-width:60ch;margin:22px auto 0;color:var(--mist);font-size:18px}
122  .ops-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
123  @media (max-width:960px){.ops-grid{grid-template-columns:repeat(2,1fr)}}
124  @media (max-width:720px){.ops-grid{grid-template-columns:1fr}}
125  .op-card{padding:30px 28px;border-radius:var(--r-md);background:linear-gradient(180deg,rgba(7,13,35,.55) 0%,rgba(7,13,35,.85) 100%);border:1px solid rgba(168,243,65,.1);transition:border-color .3s ease, transform .3s ease, background .3s ease;display:flex;flex-direction:column;gap:14px;position:relative;overflow:hidden;isolation:isolate}
126  .op-card::after{content:"";position:absolute;left:0;top:0;bottom:0;width:2px;background:linear-gradient(180deg,var(--leaf),transparent);opacity:.55;transition:opacity .3s ease, width .3s ease}
127  .op-card:hover{border-color:rgba(168,243,65,.45);background:linear-gradient(180deg,rgba(7,13,35,.7) 0%,rgba(7,13,35,.95) 100%);transform:translateY(-3px)}
128  .op-card:hover::after{opacity:1;width:3px}
129  .op-card.has-photo{padding-top:38px}
130  .op-photo-strip{position:absolute;top:0;left:0;right:0;height:6px;background-size:cover;background-position:center;filter:saturate(1.1) contrast(1.05)}
131  .op-photo-strip::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent,rgba(168,243,65,.18))}
132  .op-icon{width:42px;height:42px;border-radius:10px;background:rgba(168,243,65,.08);border:1px solid rgba(168,243,65,.22);display:flex;align-items:center;justify-content:center;color:var(--leaf)}
133  .op-icon svg{width:20px;height:20px}
134  .op-coord{font-family:var(--display);font-size:10.5px;font-weight:800;letter-spacing:.2em;text-transform:uppercase;color:var(--leaf);display:inline-flex;align-items:center;gap:8px;margin-top:-4px}
135  .op-coord::before{content:"";width:5px;height:5px;border-radius:50%;background:var(--leaf);box-shadow:0 0 6px var(--leaf-glow)}
136  .op-card h3{font-family:var(--display);font-weight:800;font-size:22px;letter-spacing:-.015em;line-height:1.15;color:var(--bone);margin:0}
137  .op-card h3 em{font-style:italic;font-weight:500;color:var(--leaf)}
138  .op-card p{color:var(--mist);font-size:15px;line-height:1.6;margin:0}
139
140  /* ============ FOUNDER QUOTE BAND — cinematic ============ */
141  .fq-band{position:relative;padding:180px var(--pad-x);overflow:hidden;isolation:isolate;background:#000;text-align:center}
142  .fq-bg{position:absolute;inset:0;z-index:0;background-size:cover;background-position:center;filter:saturate(.6) contrast(1.15) brightness(.45)}
143  .fq-bg::after{content:"";position:absolute;inset:0;background:
144    radial-gradient(60% 50% at 50% 50%, transparent 0%, rgba(2,7,24,.16) 55%, rgba(0,0,0,.38) 100%),
145    linear-gradient(180deg,rgba(2,7,24,.2),rgba(0,0,0,.34));
146    pointer-events:none}
147  .fq-wrap{max-width:1100px;margin:0 auto;position:relative;z-index:2;display:grid;justify-items:center;gap:14px}
148  .fq-mark{font-family:var(--display);font-weight:900;font-size:clamp(120px,18vw,200px);line-height:.8;color:var(--leaf);opacity:.32;margin-bottom:-40px;letter-spacing:-.05em;text-shadow:0 0 60px rgba(168,243,65,.35)}
149  .fq-text{font-family:var(--display);font-style:italic;font-weight:500;font-size:clamp(32px,4.4vw,60px);line-height:1.16;letter-spacing:-.02em;color:var(--bone);margin:0 auto;max-width:22ch;text-shadow:none}
150  .fq-text b{color:var(--leaf);font-style:italic;font-weight:500}
151  .fq-rule{display:flex;align-items:center;gap:14px;margin-top:42px;font-family:var(--display);font-weight:800;font-size:12px;letter-spacing:.22em;text-transform:uppercase;color:var(--leaf)}
152  .fq-rule::before,.fq-rule::after{content:"";width:60px;height:1px;background:linear-gradient(90deg,transparent,var(--leaf),transparent)}
153  .fq-name{color:var(--bone);font-family:var(--display);font-weight:800;font-size:17px;letter-spacing:.02em;text-transform:none;margin-top:6px}
154  .fq-role{color:var(--mist);font-family:var(--body);font-weight:500;font-size:13px;letter-spacing:.04em;text-transform:none;margin-top:2px}
155
156  /* ============ CINEMA BAND ============ */
157  .cinema-band{position:relative;height:62vh;min-height:420px;overflow:hidden;isolation:isolate}
158  .cinema-band-img{position:absolute;inset:0;background-size:cover;background-position:center;background-attachment:fixed;filter:saturate(1.08) contrast(1.03)}
159  @media (max-width:820px){.cinema-band-img{background-attachment:scroll}.cinema-band{height:48vh;min-height:300px}}
160  .cinema-band::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(2,7,24,.22),rgba(2,7,24,.08) 50%,rgba(2,7,24,.35));pointer-events:none}
161  .cinema-band-caption{position:absolute;left:0;right:0;bottom:48px;text-align:center;z-index:2;font-family:var(--display);font-weight:500;font-style:italic;font-size:clamp(22px,2.4vw,32px);color:var(--bone);max-width:48ch;margin:0 auto;padding:0 var(--pad-x);letter-spacing:-.005em;text-shadow:none}
162  .cinema-band-caption .cs{display:inline-flex;align-items:center;gap:8px;margin-top:16px;font-style:normal;font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:var(--leaf);font-weight:800}
163  .cinema-band-caption .cs::before{content:"⊕";font-size:13px}
164
165  /* ============ CTA ============ */
166  .cta-band{position:relative;padding:160px var(--pad-x) 180px;text-align:center;overflow:hidden;isolation:isolate}
167  .cta-band-bg{position:absolute;inset:0;z-index:-2;background-size:cover;background-position:center;filter:saturate(.7) brightness(.35)}
168  .cta-band-bg::after{content:"";position:absolute;inset:0;background:
169    radial-gradient(55% 60% at 50% 55%, rgba(2,7,24,.24), rgba(2,7,24,.38)),
170    linear-gradient(180deg,rgba(2,7,24,.34),rgba(2,7,24,.39));
171    pointer-events:none}
172  .cta-band::before{content:"";position:absolute;inset:-10%;z-index:-1;background:radial-gradient(45% 50% at 50% 50%,rgba(168,243,65,.28),transparent 70%);filter:blur(60px);pointer-events:none}
173  .cta-particles{position:absolute;inset:0;z-index:0;pointer-events:none;overflow:hidden}
174  .cta-particles span{position:absolute;width:4px;height:4px;border-radius:50%;background:var(--leaf);box-shadow:0 0 12px var(--leaf-glow);opacity:0;animation:ctaSpark 6s ease-in-out infinite}
175  .cta-particles span:nth-child(1){left:12%;top:22%;animation-delay:0s}
176  .cta-particles span:nth-child(2){left:78%;top:34%;animation-delay:1.2s;width:3px;height:3px}
177  .cta-particles span:nth-child(3){left:32%;top:68%;animation-delay:2.4s}
178  .cta-particles span:nth-child(4){left:86%;top:72%;animation-delay:3.6s;width:5px;height:5px}
179  .cta-particles span:nth-child(5){left:22%;top:42%;animation-delay:4.8s;width:3px;height:3px}
180  .cta-particles span:nth-child(6){left:62%;top:18%;animation-delay:.6s}
181  @keyframes ctaSpark{0%,100%{opacity:0;transform:translateY(0) scale(.6)}40%{opacity:.85;transform:translateY(-14px) scale(1)}80%{opacity:.4;transform:translateY(-30px) scale(.8)}}
182  @media (prefers-reduced-motion:reduce){.cta-particles span{animation:none;opacity:.4}}
183  /* Exclude the absolute background layer, or this greedy rule forces it to
184     position:relative and it collapses to 0 height (CTA photo disappears). */
185  .cta-band > *:not(.cta-band-bg){position:relative;z-index:2}
186  .cta-band h2{font-family:var(--display);font-weight:800;font-size:clamp(44px,7vw,96px);line-height:.96;letter-spacing:-.03em;margin:22px auto 0;max-width:14ch}
187  .cta-band h2 em{font-style:italic;font-weight:500;color:var(--leaf)}
188  .cta-band p{max-width:50ch;margin:24px auto 0;color:var(--bone);opacity:.88;font-size:clamp(17px,1.5vw,21px)}
189  .cta-actions{display:flex;gap:14px;justify-content:center;flex-wrap:wrap;margin-top:42px}
190  .cta-actions .btn-primary{padding:18px 32px;font-size:16px;letter-spacing:.04em;box-shadow:0 14px 40px -10px rgba(168,243,65,.45)}
191
192  /* Image fade-in once loaded */
193  .pillar-media img,.op-photo-strip{opacity:0;animation:imgIn .9s .15s ease forwards}
194  @keyframes imgIn{to{opacity:1}}
195  @media (prefers-reduced-motion:reduce){.pillar-media img,.op-photo-strip{opacity:1;animation:none}}
196</style>
197<!-- seo:auto -->
198<meta property="og:type" content="website" />
199<meta property="og:site_name" content="Ecoflix Foundation" />
200<meta property="og:title" content="The mission · Ecoflix Foundation" />
201<meta property="og:description" content="Ecoflix Foundation exists for one reason: to close the gap between the wildlife stories the world needs to see and the NGOs doing the work to keep them alive." />
202<meta property="og:url" content="https://www.ecoflix.com/mission/" />
203<meta property="og:image" content="https://www.ecoflix.com/assets/og-cover.png" />
204<meta name="twitter:card" content="summary_large_image" />
205<meta name="twitter:title" content="The mission · Ecoflix Foundation" />
206<meta name="twitter:description" content="Ecoflix Foundation exists for one reason: to close the gap between the wildlife stories the world needs to see and the NGOs doing the work to keep them alive." />
207<meta name="twitter:image" content="https://www.ecoflix.com/assets/og-cover.png" />
208<script type="application/ld+json">{"@context":"https://schema.org","@type":["NGO","Organization"],"name":"Ecoflix Foundation","alternateName":"Ecoflix","url":"https://www.ecoflix.com/","logo":"https://www.ecoflix.com/assets/logo.png","description":"The not-for-profit foundation behind the Ecoflix channel. We fund the NGOs on the front line of wildlife conservation.","sameAs":["https://www.instagram.com/ecoflixofficial/","https://www.facebook.com/ecoflixofficial","https://twitter.com/ecoflixofficial","https://www.youtube.com/@ecoflixofficial","https://www.linkedin.com/company/ecoflix/","https://www.tiktok.com/@ecoflixofficial"]}</script>
208
209<!-- /seo:auto -->
210</head>
211<body>
212<a href="#main" class="skip-to-content">Skip to content</a>
213<button class="bttop" id="backToTop" type="button" aria-label="Back to top"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M12 19V5M5 12l7-7 7 7"/></svg></button>
214
215<header class="header" id="header">
216  <a href="/" class="brand" aria-label="Ecoflix home"><img src="/assets/logo.png" alt="Ecoflix" style="height:34px;width:auto;display:block" /></a>
217  <nav class="nav" aria-label="Main"><a href="/mission/" aria-current="page">Mission</a><a href="/how-we-help/">How we help</a><a href="/projects/">Projects</a>
218<a href="/ngo-partners/">NGO Partners</a><a href="/watch/">Watch</a><a href="/news/">News</a><a href="/features/">Features</a></nav>
219  <div class="header-cta"><a class="btn btn-ghost" href="https://watch.ecoflix.com/" data-i18n="cta.channel">Channel <span class="arrow">→</span></a><a class="btn btn-primary" href="/donate/" data-i18n="cta.support">Support our work</a></div>
220  <button class="menu-btn" id="menuBtn" aria-label="Open menu" aria-expanded="false" aria-controls="drawer"><span></span><span></span><span></span></button>
221</header>
222<div class="drawer" id="drawer" aria-hidden="true">
223  <span class="drawer-eyebrow">Menu</span>
224  <nav class="drawer-nav" aria-label="Mobile">
225    <a href="/mission/"><span class="drawer-icon" aria-hidden="true"><svg viewBox="0 0 24 24"><circle cx="12" cy="12" r="9"/><circle cx="12" cy="12" r="5"/><circle cx="12" cy="12" r="1.5" fill="currentColor" stroke="none"/></svg></span>Mission<span class="drawer-arrow" aria-hidden="true">→</span></a>
226    <a href="/how-we-help/"><span class="drawer-icon" aria-hidden="true"><svg viewBox="0 0 24 24"><path d="M3 12h4l3-7 4 14 3-7h4"/></svg></span>How we help<span class="drawer-arrow" aria-hidden="true">→</span></a>
227    <a href="/projects/"><span class="drawer-icon" aria-hidden="true"><svg viewBox="0 0 24 24"><path d="M12 2C8 2 5 5 5 9c0 5.5 7 13 7 13s7-7.5 7-13c0-4-3-7-7-7z"/><circle cx="12" cy="9" r="2.5"/></svg></span>Projects<span class="drawer-arrow" aria-hidden="true">→</span></a>
228    <a href="/watch/"><span class="drawer-icon" aria-hidden="true"><svg viewBox="0 0 24 24"><rect x="3" y="5" width="18" height="14" rx="2"/><path d="M10 9l5 3-5 3z" fill="currentColor" stroke="none"/></svg></span>Watch<span class="drawer-arrow" aria-hidden="true">→</span></a>
229    <a href="/news/"><span class="drawer-icon" aria-hidden="true"><svg viewBox="0 0 24 24"><rect x="3" y="4" width="18" height="16" rx="2"/><path d="M7 8h10M7 12h10M7 16h6"/></svg></span>News<span class="drawer-arrow" aria-hidden="true">→</span></a>
230    <a href="/features/"><span class="drawer-icon" aria-hidden="true"><svg viewBox="0 0 24 24"><path d="M4 5h16M4 10h16M4 15h10"/></svg></span>Features<span class="drawer-arrow" aria-hidden="true">→</span></a>
231  </nav>
232  <a class="btn btn-primary" href="/donate/">Support our work <span class="arrow">→</span></a>
233  <div class="drawer-footer"><span class="dot"></span>100% of every donation reaches the project.</div>
234</div>
235
236
237<main id="main">
238
239<!-- ============ 1 · HERO ============ -->
240<section class="pg-hero" aria-labelledby="missionTitle">
241  <div class="hero-photo" aria-hidden="true" style="background-image:url('/assets/projects/returning-orphaned-orangutans-to-the-wild-hd.jpg')"></div>
242  <div class="bg-cartograph" aria-hidden="true">
243    <svg viewBox="0 0 1600 900" preserveAspectRatio="xMidYMid slice">
244      <line class="bg-lat" x1="-50" y1="200" x2="1650" y2="200"/>
245      <line class="bg-lat" x1="-50" y1="450" x2="1650" y2="450"/>
246      <line class="bg-lat" x1="-50" y1="700" x2="1650" y2="700"/>
247      <path class="bg-trail" d="M-50,720 C220,540 380,440 620,420 C870,400 1010,300 1220,240 C1400,190 1520,180 1700,220"/>
248      <path class="bg-trail-soft" d="M-30,540 C260,400 540,520 800,440 C1060,360 1340,460 1660,420"/>
249      <circle class="bg-track" cx="200" cy="640" r="3"/>
250      <circle class="bg-track" cx="340" cy="540" r="2.8"/>
251      <circle class="bg-track" cx="500" cy="470" r="3"/>
252      <circle class="bg-track" cx="700" cy="420" r="2.8"/>
253      <circle class="bg-track" cx="900" cy="360" r="3"/>
254      <circle class="bg-track" cx="1140" cy="270" r="3.2"/>
254
255      <g class="bg-compass" transform="translate(1430,180)">
256        <circle class="bg-compass-ring" r="52"/>
257        <circle class="bg-compass-ring" r="38"/>
258        <line class="bg-compass-tick" x1="0" y1="-56" x2="0" y2="56"/>
259        <line class="bg-compass-tick" x1="-56" y1="0" x2="56" y2="0"/>
260        <line class="bg-compass-tick" x1="-40" y1="-40" x2="40" y2="40"/>
261        <line class="bg-compass-tick" x1="40" y1="-40" x2="-40" y2="40"/>
262        <polygon class="bg-compass-arrow" points="0,-52 7,0 0,52 -7,0"/>
263        <polygon class="bg-compass-arrow" points="-52,0 0,7 52,0 0,-7"/>
264        <text class="bg-compass-label" x="0" y="-62" text-anchor="middle">N</text>
265        <text class="bg-compass-label" x="64" y="4" text-anchor="middle">E</text>
266        <text class="bg-compass-label" x="0" y="74" text-anchor="middle">S</text>
267        <text class="bg-compass-label" x="-64" y="4" text-anchor="middle">W</text>
268      </g>
269      <g transform="translate(140,820)"><text class="bg-coord-text" x="0" y="0">02 · MISSION</text></g>
270      <g class="bg-marker" transform="translate(1140,270)"><circle r="18" fill="none"/><circle r="5" class="bg-marker-dot"/></g>
271    </svg>
272  </div>
273  <span class="eyebrow">The mission</span>
274  <h1 id="missionTitle">Make the films. <em>Fund the solution.</em></h1>
275  <p class="lede">Ecoflix Foundation exists for one reason: to close the gap between the wildlife stories the world needs to see and the NGOs doing the work to keep them alive.</p>
276  <div class="coord-stamp" aria-label="Filing coordinates">
277    <span>Filed 02 · Mission</span>
278    <span class="cs-sep">·</span>
279    <span class="cs-val">34.05°N · 118.24°W</span>
280    <span class="cs-sep">·</span>
281    <span class="cs-val">Est. 2021</span>
282  </div>
283</section>
284
285<!-- Scroll-hint ribbon -->
286<div class="hero-scrollhint" aria-hidden="true">Three principles · Three pillars · Six rules</div>
287
288<!-- ============ 2 · FIRST PRINCIPLES ============ -->
289<section class="principles-band" aria-labelledby="principlesTitle">
290  <div class="bg-cartograph is-mirror" aria-hidden="true">
291    <svg viewBox="0 0 1600 900" preserveAspectRatio="xMidYMid slice">
292      <line class="bg-lat" x1="-50" y1="160" x2="1650" y2="160"/>
293      <line class="bg-lat" x1="-50" y1="380" x2="1650" y2="380"/>
294      <line class="bg-lat" x1="-50" y1="600" x2="1650" y2="600"/>
295      <line class="bg-lat" x1="-50" y1="820" x2="1650" y2="820"/>
296      <path class="bg-trail-soft" d="M-30,200 C260,280 540,180 800,220 C1060,260 1340,160 1660,200"/>
297      <path class="bg-trail-soft" d="M-30,720 C260,640 540,740 800,700 C1060,660 1340,760 1660,720"/>
298      <g class="bg-marker" transform="translate(220,160)"><circle r="14"/><circle r="6" class="bg-marker-dot"/></g>
299      <g class="bg-marker" transform="translate(1400,820)"><circle r="14"/><circle r="6" class="bg-marker-dot"/></g>
300    </svg>
301  </div>
302  <header class="pb-head">
303    <span class="eyebrow" style="margin:0 auto">First principles</span>
304    <h2 id="principlesTitle">Three sentences. <em>One operating model.</em></h2>
305    <p>Everything else flows from these. If a decision conflicts with one of them, it doesn't happen — no exceptions, no quietly-worded compromises, no "just this once".</p>
306  </header>
307  <ol class="pb-list" aria-label="Foundation principles">
308    <li class="pb-item">
309      <span class="pb-num" aria-hidden="true">01</span>
310      <span class="pb-coord">
311        <span class="pbc-tag">⊕ Principle one</span>
312        <span class="pbc-loc">Origin · the camera</span>
313      </span>
314      <p class="pb-statement">"We make films that <b>move people to act.</b>"</p>
315    </li>
316    <li class="pb-item">
317      <span class="pb-num" aria-hidden="true">02</span>
318      <span class="pb-coord">
319        <span class="pbc-tag">⊕ Principle two</span>
320        <span class="pbc-loc">Pass-through · the gift</span>
321      </span>
322      <p class="pb-statement">"We route <b>100%</b> of every donation to the partner NGO."</p>
323    </li>
324    <li class="pb-item">
325      <span class="pb-num" aria-hidden="true">03</span>
326      <span class="pb-coord">
327        <span class="pbc-tag">⊕ Principle three</span>
328        <span class="pbc-loc">Receipts · the field</span>
329      </span>
330      <p class="pb-statement">"We show, in detail, <b>where the money went.</b>"</p>
331    </li>
332  </ol>
333</section>
334
335<!-- ============ CINEMA BAND · A ============ -->
336<section class="cinema-band" aria-hidden="true">
337  <video class="cinema-band-video" autoplay muted loop playsinline preload="metadata"
338         poster="/assets/watch/the-last-stand.jpg"
339         data-rate="0.75"
340         aria-hidden="true">
341    <source src="https://videos.pexels.com/video-files/32718521/13948174_1080_1920_60fps.mp4" type="video/mp4" />
342  </video>
343  <div class="cinema-band-caption">"The forest doesn't need our pity. It needs our <em>funding</em>."<span class="cs">02 · 1.50°S 35.14°E</span></div>
344</section>
345
346<!-- ============ 3 · THE MODEL — WATCH / GIVE / TRACK ============ -->
347<section class="pillars-sec section-lift-soft" aria-labelledby="modelTitle">
348  <div class="bg-cartograph" aria-hidden="true">
349    <svg viewBox="0 0 1600 900" preserveAspectRatio="xMidYMid slice">
350      <line class="bg-lat" x1="-50" y1="220" x2="1650" y2="220"/>
351      <line class="bg-lat" x1="-50" y1="680" x2="1650" y2="680"/>
352      <path class="bg-trail" d="M-50,440 C260,360 540,500 800,440 C1060,380 1340,500 1660,440"/>
353      <circle class="bg-track" cx="240" cy="395" r="3"/>
354      <circle class="bg-track" cx="520" cy="460" r="3"/>
355      <circle class="bg-track" cx="820" cy="445" r="3"/>
356      <circle class="bg-track" cx="1120" cy="440" r="3"/>
357    </svg>
358  </div>
359  <div class="pillars-wrap">
360    <header class="pillars-head">
361      <span class="eyebrow" style="margin:0 auto">The model</span>
362      <h2 id="modelTitle">Watch. Give. <em>Track.</em></h2>
363      <p>It's the same loop now as it was on day one. The whole point of the foundation is that the loop never breaks — and you can see it the whole way through.</p>
364    </header>
365    <div class="pillars-grid">
366
367      <article class="pillar">
368        <div class="pillar-media">
369          <span class="pillar-tag">01 · Watch</span>
370          <img src="https://images.unsplash.com/photo-1485846234645-a62644f84728?w=1200&q=80&auto=format&fit=crop" alt="Filmmaking equipment in a desert landscape at golden hour — an Ecoflix shoot in preparation." loading="lazy" referrerpolicy="no-referrer" decoding="async" />
371        </div>
372        <div class="pillar-body">
373          <div class="pillar-icon" aria-hidden="true"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><path d="M3 6.5A2.5 2.5 0 015.5 4h13A2.5 2.5 0 0121 6.5v9A2.5 2.5 0 0118.5 18h-13A2.5 2.5 0 013 15.5v-9z"/><path d="M10 9l5 3-5 3z" fill="currentColor"/></svg></div>
374          <h3>Films that <em>move you.</em></h3>
375          <p>A streaming channel of documentaries made by conservationists, not advertisers. No paywalls between you and the story. Watch on any device, free forever.</p>
376        </div>
377      </article>
378
379      <article class="pillar">
380        <div class="pillar-media">
381          <span class="pillar-tag">02 · Give</span>
382          <img src="/assets/projects/a-free-life-for-thailands-rescued-elephants-hd.jpg" alt="Rescued Asian elephants at a Thailand sanctuary — the kind of work your gift protects." loading="lazy" decoding="async" />
383        </div>
384        <div class="pillar-body">
385          <div class="pillar-icon" aria-hidden="true"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><path d="M12 21s-7-4.35-7-10a4 4 0 017-2.65A4 4 0 0119 11c0 5.65-7 10-7 10z"/></svg></div>
386          <h3>100% <em>pass-through.</em></h3>
387          <p>Every donation lands in full at one of 64 partner NGOs. Independently audited. Founders cover platform overhead separately so your gift never gets nibbled at.</p>
388        </div>
389      </article>
390
391      <article class="pillar">
392        <div class="pillar-media">
393          <span class="pillar-tag">03 · Track</span>
394          <img src="/assets/projects/standing-with-wildlife-rangers-hd.jpg" alt="Wildlife rangers in the field — the frontline teams each donation is tracked through to." loading="lazy" decoding="async" />
395        </div>
396        <div class="pillar-body">
397          <div class="pillar-icon" aria-hidden="true"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="9"/><path d="M3 12h18"/><path d="M12 3a14 14 0 010 18"/><path d="M12 3a14 14 0 000 18"/></svg></div>
398          <h3>Where it <em>actually went.</em></h3>
399          <p>Each project page shows the work funded, the team running it, and the receipts. No black-box wire transfers — the chain of custody is published, in plain English.</p>
400        </div>
401      </article>
402
403    </div>
404  </div>
405</section>
406
407<!-- ============ 4 · OPERATING PRINCIPLES ============ -->
408<section class="ops-sec" aria-labelledby="opsTitle">
409  <div class="bg-cartograph is-mirror" aria-hidden="true">
410    <svg viewBox="0 0 1600 900" preserveAspectRatio="xMidYMid slice">
411      <line class="bg-lat" x1="-50" y1="180" x2="1650" y2="180"/>
412      <line class="bg-lat" x1="-50" y1="420" x2="1650" y2="420"/>
413      <line class="bg-lat" x1="-50" y1="660" x2="1650" y2="660"/>
414      <path class="bg-trail-soft" d="M-30,260 C260,360 540,200 800,300 C1060,400 1340,260 1660,340"/>
415      <path class="bg-trail-soft" d="M-30,540 C260,640 540,480 800,580 C1060,680 1340,540 1660,620"/>
416      <g class="bg-marker" transform="translate(280,300)"><circle r="14"/><circle r="6" class="bg-marker-dot"/></g>
417      <g class="bg-marker" transform="translate(1320,580)"><circle r="14"/><circle r="6" class="bg-marker-dot"/></g>
418    </svg>
419  </div>
420  <div class="ops-wrap">
421    <header class="ops-head">
422      <span class="eyebrow" style="margin:0 auto">Operating principles</span>
423      <h2 id="opsTitle">How we behave when nobody's <em>watching.</em></h2>
424      <p>Six rules of the road. The kind of small decisions that, made the right way every day, add up to a foundation worth donating to.</p>
425    </header>
426    <div class="ops-grid">
427
428      <article class="op-card has-photo">
429        <div class="op-photo-strip" aria-hidden="true" style="background-image:url('https://images.unsplash.com/photo-1465056836041-7f43ac27dcb5?w=1200&q=70&auto=format&fit=crop')"></div>
430        <div class="op-icon" aria-hidden="true"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><path d="M3 7h18M3 12h18M3 17h12"/></svg></div>
431        <span class="op-coord">⊕ 01 · 34.05°N 118.24°W</span>
432        <h3>Operations covered <em>separately.</em></h3>
433        <p>Corporate partners and founders pay our salaries, hosting, legal, and finance. Donors fund only the field — that line never blurs, even by a dollar.</p>
434      </article>
435
436      <article class="op-card">
437        <div class="op-icon" aria-hidden="true"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><path d="M4 4h16v12H5.5L4 20z"/><path d="M8 9h8M8 12h5"/></svg></div>
438        <span class="op-coord">⊕ 02 · 1.50°S 35.14°E</span>
439        <h3>Project pages over <em>PR.</em></h3>
440        <p>Every dollar shows up on a real project page with named partners, named field staff, and named outputs. The receipts are the marketing.</p>
441      </article>
442
443      <article class="op-card">
444        <div class="op-icon" aria-hidden="true"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="8"/><path d="M12 4v8l5 3"/></svg></div>
445        <span class="op-coord">⊕ 03 · 18.79°N 98.98°E</span>
446        <h3>NGO-first <em>content.</em></h3>
447        <p>We don't produce films without an on-the-ground partner already in motion. The story serves the work. Never the reverse.</p>
448      </article>
449
450      <article class="op-card">
451        <div class="op-icon" aria-hidden="true"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><path d="M9 12l2 2 4-4"/><path d="M20 12a8 8 0 11-16 0 8 8 0 0116 0z"/></svg></div>
452        <span class="op-coord">⊕ 04 · 47.04°N 8.30°E</span>
453        <h3>Audit, then <em>publish.</em></h3>
454        <p>Quarterly numbers are independently reviewed before the press release. If the audit isn't done, the headline waits.</p>
455      </article>
456
457      <article class="op-card has-photo">
458        <div class="op-photo-strip" aria-hidden="true" style="background-image:url('https://images.unsplash.com/photo-1559827260-dc66d52bef19?w=1200&q=70&auto=format&fit=crop')"></div>
459        <div class="op-icon" aria-hidden="true"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><path d="M3 20h18"/><path d="M5 20V8l7-4 7 4v12"/><path d="M9 20v-6h6v6"/></svg></div>
460        <span class="op-coord">⊕ 05 · 0.79°S 113.92°E</span>
461        <h3>Field over <em>headquarters.</em></h3>
462        <p>Field budgets &gt; overhead. Always. When a number has to give, it gives at HQ — never on the ground where the work happens.</p>
463      </article>
464
465      <article class="op-card">
466        <div class="op-icon" aria-hidden="true"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><path d="M5 4h14v6l-7 4-7-4z"/><path d="M12 14v6"/><path d="M9 20h6"/></svg></div>
467        <span class="op-coord">⊕ 06 · 18.29°S 147.70°E</span>
468        <h3>Films are tools, <em>not trophies.</em></h3>
469        <p>Every Ecoflix Original ships with a donate link tied to the NGO in the film. If the film can't drive money to a partner, it doesn't get made.</p>
470      </article>
471
472    </div>
473  </div>
474</section>
475
476<!-- ============ CINEMA BAND · B ============ -->
477<section class="cinema-band" aria-hidden="true">
478  <video class="cinema-band-video" autoplay muted loop playsinline preload="metadata"
479         poster="https://images.unsplash.com/photo-1564349683136-77e08dba1ef7?w=2400&q=80&auto=format&fit=crop"
480         data-rate="0.75"
481         aria-hidden="true">
482    <source src="https://videos.pexels.com/video-files/28965050/12530327_1440_2560_30fps.mp4" type="video/mp4" />
483  </video>
484  <div class="cinema-band-caption">"Every frame paid for the next <em>ranger patrol</em>."<span class="cs">04 · 0.79°S 113.92°E</span></div>
485</section>
486
487<!-- ============ 5 · FOUNDER QUOTE BAND ============ -->
488<section class="fq-band section-lift-soft" aria-label="Founder quote">
489  <div class="fq-bg" aria-hidden="true" style="background-image:url('https://images.unsplash.com/photo-1559666126-84f389727b9a?w=2400&q=80&auto=format&fit=crop')"></div>
490  <div class="bg-cartograph" aria-hidden="true">
491    <svg viewBox="0 0 1600 900" preserveAspectRatio="xMidYMid slice">
492      <line class="bg-lat" x1="-50" y1="220" x2="1650" y2="220"/>
493      <line class="bg-lat" x1="-50" y1="680" x2="1650" y2="680"/>
494      <path class="bg-trail" d="M-50,460 C260,380 540,540 800,460 C1060,380 1340,540 1660,460"/>
495      <g class="bg-marker" transform="translate(800,460)">
496        <circle r="22" fill="none"/>
497        <circle r="6" class="bg-marker-dot"/>
498        <line class="bg-compass-tick" x1="-32" y1="0" x2="-24" y2="0"/>
499        <line class="bg-compass-tick" x1="24" y1="0" x2="32" y2="0"/>
500        <line class="bg-compass-tick" x1="0" y1="-32" x2="0" y2="-24"/>
501        <line class="bg-compass-tick" x1="0" y1="24" x2="0" y2="32"/>
502      </g>
503    </svg>
504  </div>
505  <div class="fq-wrap">
506    <div class="fq-mark" aria-hidden="true">"</div>
507    <blockquote class="fq-text">We didn't start a streaming platform. We started a <b>routing layer for conservation money</b> — that happens to play beautiful films.</blockquote>
508    <div class="fq-rule">Founder</div>
509    <div class="fq-name">David B. Casselman</div>
510    <div class="fq-role">Founder &amp; CEO · Ecoflix Foundation</div>
511  </div>
512</section>
513
514<!-- ============ 6 · CTA ============ -->
515<section class="cta-band" aria-labelledby="ctaTitle">
516  <div class="cta-band-bg" aria-hidden="true" style="background-image:url('https://images.unsplash.com/photo-1547036967-23d11aacaee0?w=2400&q=80&auto=format&fit=crop')"></div>
517  <div class="cta-particles" aria-hidden="true"><span></span><span></span><span></span><span></span><span></span><span></span></div>
518  <div class="bg-cartograph" aria-hidden="true">
519    <svg viewBox="0 0 1600 900" preserveAspectRatio="xMidYMid slice">
520      <line class="bg-lat" x1="-50" y1="200" x2="1650" y2="200"/>
521      <line class="bg-lat" x1="-50" y1="700" x2="1650" y2="700"/>
522      <path class="bg-trail" d="M-50,460 C260,380 540,540 800,460 C1060,380 1340,540 1660,460"/>
523      <g class="bg-marker" transform="translate(800,460)">
524        <circle r="22" fill="none"/>
525        <circle r="6" class="bg-marker-dot"/>
526        <line class="bg-compass-tick" x1="-32" y1="0" x2="-24" y2="0"/>
527        <line class="bg-compass-tick" x1="24" y1="0" x2="32" y2="0"/>
528        <line class="bg-compass-tick" x1="0" y1="-32" x2="0" y2="-24"/>
529        <line class="bg-compass-tick" x1="0" y1="24" x2="0" y2="32"/>
530      </g>
531    </svg>
532  </div>
533  <span class="eyebrow" style="display:inline-flex;margin:0 auto">Stand with us</span>
534  <h2 id="ctaTitle">Stand with the <em>mission.</em></h2>
535  <p>Read it. Believe it. Then turn up — as a donor, as a partner, as someone who passes the link along.</p>
536  <div class="cta-actions">
537    <a class="btn btn-primary" href="/donate/">Donate now <span class="arrow">→</span></a>
538    <a class="btn btn-ghost" href="/ngo-partners/">Become a partner <span class="arrow">→</span></a>
539  </div>
540</section>
541
542</main>
543
544<!-- ============ FOOTER ============ -->
545<footer class="footer" style="position:relative;overflow:hidden;isolation:isolate">
546  <div class="bg-cartograph" aria-hidden="true"><svg viewBox="0 0 1600 900" preserveAspectRatio="xMidYMid slice">
546<line class="bg-lat" x1="-50" y1="120" x2="1650" y2="120"/></svg></div>
547  <div class="wrap" style="position:relative;z-index:2"><div class="footer-grid">
548    <div class="footer-brand"><a href="/" class="brand"><img src="/assets/logo.png" alt="Ecoflix" style="height:34px;width:auto;display:block" /></a><p style="font-family:var(--display);font-style:italic;font-size:18px;color:var(--bone);margin-top:14px">Be part of the solution.</p></div>
549    <div><h4 data-i18n="footer.foundation">Foundation</h4><ul><li><a href="/mission/">Mission</a></li><li><a href="/how-we-help/">How we help</a></li><li><a href="/projects/">Projects</a></li><li><a href="/team/">Team</a></li></ul></div>
550    <div><h4 data-i18n="footer.give">Give</h4><ul><li><a href="/donate/">Donate</a></li><li><a href="/circle-of-giving/">Circle of Giving</a></li></ul></div>
551    <div><h4 data-i18n="footer.watch">Watch</h4><ul><li><a href="https://watch.ecoflix.com/">The channel</a></li><li><a href="/podcasts/">Podcasts</a></li><li><a href="/distribution/">Distribution &amp; ads</a></li><li><a href="/news/">Press &amp; news</a></li><li><a href="/contact/">Contact</a></li></ul></div>
552  </div>
553    <!-- Charity registration disclosure — mirrors ecoflix.com so
554         visitors see the same legal entities, EIN/charity numbers
555         and addresses across every page. CSS lives in site.css. -->
556    <div class="footer-charity">
557      <div class="fc-col">
558        <div class="fc-eyebrow"><span class="fc-flag" aria-hidden="true">🇺🇸</span> Registered in the United States</div>
559        <div class="fc-body">
560          <strong>Ecoflix Foundation Inc.</strong> · 501(c)(3) not-for-profit · EIN <b>65-1212560</b><br/>
561          24730 Long Valley Road, Hidden Hills, Los Angeles, CA 91302, USA
562        </div>
563      </div>
564      <div class="fc-col">
565        <div class="fc-eyebrow"><span class="fc-flag" aria-hidden="true">🇬🇧</span> Registered in the United Kingdom</div>
566        <div class="fc-body">
567          <strong>Ecoflix Foundation UK</strong> · Registered charity <b>1200441</b><br/>
568          Aston House, Redburn Road, Newcastle Upon Tyne, NE5 1NB, United Kingdom
569        </div>
570      </div>
571      <div class="fc-col fc-col-note">
572        <div class="fc-eyebrow">100% pass-through</div>
573        <div class="fc-body">
574          All donations route directly to partner NGOs. Ecoflix Foundation's
575          operating costs are covered separately by founders and corporate
576          partners — no deductions are taken from donor gifts.
577        </div>
578      </div>
579    </div>
580
581<div class="footer-base"><div>© <span id="yr"></span> Ecoflix Foundation.</div>
582      <div><a href="/privacy/">Privacy</a> &nbsp; <a href="/terms/">Terms</a> &nbsp; <a href="/cookies/">Cookies</a> &nbsp; <a href="/news/">Press</a> &nbsp; <a href="mailto:[email protected]">[email protected]</a></div></div></div>
583</footer>
584<script>document.getElementById('yr').textContent = new Date().getFullYear();</script>
vendor: 1 bytes, line 584
584
585<script src="/assets/site.js"></script>
vendor: 1 bytes, line 585
585
586<script src="/assets/i18n.js" defer></script>
586
587  
587<script src="/assets/nav.js" defer></script>
587
588  
588<script src="/assets/social-proof.js" defer></script>
588
589  
589<script src="/assets/share.js" defer></script>
589
590</body>
591</html>

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.