
@font-face{font-family:"Bricolage";src:url(../fonts/bricolage.woff2) format("woff2");font-weight:200 800;font-display:block}
@font-face{font-family:"Instrument";src:url(../fonts/instrument-it.woff2) format("woff2");font-style:italic;font-weight:400;font-display:swap}
:root{--deep:#10221A;--green:#2B5E2E;--green-2:#3E7A3F;--red:#D7262A;--gold:#F2B33D;--cream:#F6F0E4;--card:#FFFBF3;--ink:#16130F;--muted:#6A6458;--line:rgba(22,19,15,.12);
  --fd:"Bricolage",system-ui,sans-serif;--fi:"Instrument",Georgia,serif;--pad:clamp(18px,4vw,56px);--ease:cubic-bezier(.16,1,.3,1)}
*{box-sizing:border-box}
html{overflow-x:clip}
body{margin:0;background:var(--cream);color:var(--ink);font:400 16.5px/1.6 var(--fd);-webkit-font-smoothing:antialiased;overflow-x:clip}
img,video{display:block;max-width:100%}
a{color:inherit}
button{font:inherit;color:inherit}
em{font-family:var(--fi);font-style:italic;font-weight:400}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:52px;padding:0 24px;border-radius:999px;border:0;font-weight:700;font-size:15.5px;text-decoration:none;cursor:pointer;transition:transform .3s var(--ease),background-color .3s}
.btn:hover{transform:translateY(-2px)}
.btn--g{background:var(--gold);color:var(--deep)}.btn--o{box-shadow:inset 0 0 0 1.5px currentColor}
:focus-visible{outline:3px solid var(--gold);outline-offset:3px}
.proto{display:none;position:fixed;left:50%;bottom:14px;transform:translateX(-50%);z-index:90;background:#000;color:#cfc8b8;font-size:12.5px;padding:7px 14px;border-radius:999px;white-space:nowrap;box-shadow:0 10px 30px -10px rgba(0,0,0,.6)}
.proto b{color:#fff}

/* nav */
.nav{position:fixed;inset:0 0 auto;z-index:50;display:flex;align-items:center;gap:16px;height:72px;padding:0 var(--pad);color:#fff;transition:background-color .4s,color .4s}
.nav.solid{background:rgba(246,240,228,.9);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);color:var(--ink);box-shadow:0 1px 0 var(--line)}
.nav img{width:46px;height:auto;background:#fff;border-radius:50%;padding:3px}
.nav .name{font-weight:800;line-height:1;font-size:15px;letter-spacing:-.01em}
.nav .sp{flex:1}
.nav .btn{min-height:42px;padding:0 18px;font-size:14px;background:var(--red);color:#fff}

/* ---------- HERO: text mask → full-bleed, pinned + scroll-scrubbed ---------- */
.hero{position:relative;height:380svh;background:var(--deep)}
.stage{position:sticky;top:0;height:100svh;overflow:hidden}
.media{position:absolute;inset:0;transform:scale(var(--ms,1.18));transform-origin:50% 50%}
.media img,.media video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity 1.6s ease}
.media .on{opacity:1}
.media .kb{animation:kb 9s linear both}
@keyframes kb{from{transform:scale(1.08)}to{transform:scale(1)}}
.shade{position:absolute;inset:0;background:linear-gradient(0deg,rgba(10,22,16,.9) 0%,rgba(10,22,16,.25) 55%,rgba(10,22,16,.35) 100%);opacity:var(--sh,0)}
svg.mask{position:absolute;inset:0;width:100%;height:100%;display:block}
.mask .stroke{fill:none;stroke:var(--gold);stroke-width:1.2;opacity:var(--so,.55)}
.h-top{position:absolute;left:var(--pad);right:var(--pad);top:96px;display:flex;justify-content:space-between;gap:16px;color:var(--gold);font-weight:700;font-size:12.5px;letter-spacing:.18em;text-transform:uppercase;opacity:var(--uo,1)}
.h-bot{position:absolute;left:var(--pad);right:var(--pad);bottom:clamp(26px,6vh,56px);display:flex;flex-wrap:wrap;align-items:end;justify-content:space-between;gap:20px;color:#fff;opacity:var(--uo,1);transform:translateY(calc((1 - var(--uo,1)) * 30px))}
.h-bot p{margin:0;max-width:42ch;color:rgba(255,255,255,.82);font-size:clamp(1rem,1.4vw,1.15rem)}
.cue{display:flex;align-items:center;gap:10px;font-size:13px;font-weight:700;color:rgba(255,255,255,.75)}
.cue i{width:22px;height:36px;border:1.5px solid rgba(255,255,255,.6);border-radius:12px;position:relative}
.cue i::after{content:"";position:absolute;left:50%;top:7px;width:4px;height:7px;margin-left:-2px;border-radius:2px;background:var(--gold);animation:cue 1.6s var(--ease) infinite}
@keyframes cue{to{transform:translateY(12px);opacity:0}}
/* second beat */
.beat{position:absolute;left:var(--pad);right:var(--pad);bottom:clamp(34px,9vh,90px);color:#fff;max-width:1360px;pointer-events:none}
.beat.in{pointer-events:auto}
.beat .eyebrow{color:var(--gold);font-weight:700;font-size:12.5px;letter-spacing:.18em;text-transform:uppercase;margin:0 0 12px;opacity:0;transition:opacity .6s}
.beat h1{margin:0;font-weight:800;font-size:clamp(3rem,9vw,8.4rem);line-height:.9;letter-spacing:-.045em;max-width:11ch}
.beat h1 em{color:var(--gold);letter-spacing:-.02em}
.beat .ln{display:block;overflow:hidden;padding-bottom:.08em;margin-bottom:-.08em}
.beat .ln>span{display:block;transform:translateY(108%);transition:transform 1s var(--ease) calc(var(--i)*.09s)}
.beat .row{display:flex;flex-wrap:wrap;gap:12px;margin-top:24px;opacity:0;transform:translateY(16px);transition:opacity .7s .35s,transform .9s .35s var(--ease)}
.beat.in .ln>span{transform:none}.beat.in .eyebrow{opacity:1}.beat.in .row{opacity:1;transform:none}
.prog{position:absolute;right:var(--pad);top:50%;transform:translateY(-50%);width:2px;height:120px;background:rgba(255,255,255,.18);border-radius:2px;overflow:hidden}
.prog i{position:absolute;left:0;right:0;top:0;height:calc(var(--p,0)*100%);background:var(--gold)}
@media (max-width:700px){.prog{display:none}.h-top span:last-child{display:none}}

/* stripe */
.stripe{height:14px;background:repeating-linear-gradient(90deg,var(--red) 0 40px,var(--gold) 40px 56px,var(--green) 56px 110px,var(--deep) 110px 118px,var(--gold) 118px 130px);animation:sl 18s linear infinite}
@keyframes sl{to{background-position:520px 0}}

/* ---------- BENTO ---------- */
.ways{padding:clamp(70px,9vw,130px) var(--pad)}
.ways .wrap{max-width:1360px;margin:0 auto}
.whead{display:flex;flex-wrap:wrap;align-items:end;justify-content:space-between;gap:16px 40px;margin-bottom:clamp(24px,3vw,40px)}
.whead h2{margin:0;font-weight:800;font-size:clamp(2.6rem,6.5vw,5.6rem);line-height:.92;letter-spacing:-.04em;max-width:12ch}
.whead h2 em{color:var(--green)}
.whead p{margin:0;max-width:38ch;color:var(--muted)}
.bento{display:grid;gap:12px;grid-template-columns:repeat(2,minmax(0,1fr))}
@media (min-width:980px){.bento{grid-template-columns:repeat(4,minmax(0,1fr));grid-template-rows:repeat(3,minmax(230px,auto));grid-template-areas:"mem mem act don" "mem mem num don" "vol vol par kc"}}
.tile{position:relative;border-radius:26px;overflow:hidden;padding:22px;min-height:220px;display:flex;flex-direction:column;justify-content:space-between;gap:14px;text-decoration:none;isolation:isolate;transition:transform .5s var(--ease),box-shadow .5s;transform:translateY(0)}
.tile:hover{transform:translateY(-5px);box-shadow:0 30px 60px -32px rgba(16,34,26,.6)}
.tile .k{font-size:12px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;opacity:.75}
.tile h3{margin:0;font-weight:800;letter-spacing:-.035em;line-height:.95;font-size:clamp(1.7rem,2.4vw,2.3rem)}
.tile p{margin:0;font-size:14.5px;opacity:.85;max-width:34ch}
.tile .go{position:absolute;right:18px;top:18px;width:44px;height:44px;border-radius:50%;display:grid;place-items:center;background:rgba(255,255,255,.16);font-size:20px;transition:transform .5s var(--ease),background-color .3s}
.tile:hover .go{transform:rotate(-45deg);background:var(--gold);color:var(--deep)}
.ph{position:absolute;inset:0;z-index:-1}
.ph img{width:100%;height:100%;object-fit:cover;transform:scale(1.06);transition:transform 1.2s var(--ease)}
.tile:hover .ph img{transform:scale(1)}
.ph::after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(10,22,16,.92),rgba(10,22,16,.1) 60%)}
.t-mem{grid-column:1/-1;min-height:440px;color:#fff}
.t-don h3{font-size:clamp(1.7rem,2.4vw,2.3rem)}
@media (min-width:980px){.t-don{grid-column:auto}.t-mem{grid-area:mem}.t-act{grid-area:act}.t-don{grid-area:don}.t-num{grid-area:num}.t-vol{grid-area:vol}.t-par{grid-area:par}.t-kc{grid-area:kc}}
.t-mem .price{font-weight:800;font-size:clamp(5rem,10vw,8.6rem);line-height:.8;letter-spacing:-.06em}
.t-mem .price small{font-family:var(--fi);font-style:italic;font-weight:400;font-size:.26em;letter-spacing:0;color:var(--gold);margin-left:6px}
.t-mem .btn{justify-self:start;align-self:flex-start}
.t-act{background:var(--card);box-shadow:inset 0 0 0 1px var(--line)}
.ticker{height:1.05em;overflow:hidden;font-weight:800;font-size:clamp(1.7rem,2.4vw,2.3rem);letter-spacing:-.035em;line-height:1.05;color:var(--green)}
.ticker span{display:block;animation:tick 16s var(--ease) infinite}
@keyframes tick{0%,10%{transform:translateY(0)}12.5%,22.5%{transform:translateY(-100%)}25%,35%{transform:translateY(-200%)}37.5%,47.5%{transform:translateY(-300%)}50%,60%{transform:translateY(-400%)}62.5%,72.5%{transform:translateY(-500%)}75%,85%{transform:translateY(-600%)}87.5%,97.5%{transform:translateY(-700%)}100%{transform:translateY(-800%)}}
.t-don{grid-column:1/-1;background:var(--red);color:#fff;min-height:300px}
.t-don .sw{background:rgba(0,0,0,.16);border-radius:16px;padding:12px 14px;display:grid;gap:2px}
.t-don .sw small{font-size:11px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;opacity:.75}
.t-don .sw b{font-size:1.35rem;letter-spacing:-.01em;font-variant-numeric:tabular-nums}
.t-don .cp{justify-self:start;margin-top:6px;border:0;background:#fff;color:var(--red);border-radius:999px;padding:6px 12px;font-size:12.5px;font-weight:700;cursor:pointer}
.t-num{background:var(--deep);color:#fff}
.t-num b{font-weight:800;font-size:clamp(3.6rem,6vw,5.4rem);line-height:.85;letter-spacing:-.05em;color:var(--gold);font-variant-numeric:tabular-nums}
.t-vol{grid-column:1/-1;background:var(--gold);color:var(--deep)}
@media (min-width:980px){.t-vol{grid-column:auto}}
.t-vol h3{font-size:clamp(2rem,3vw,2.8rem)}
.t-vol .go{background:rgba(16,34,26,.1)}
.t-par{background:var(--card);box-shadow:inset 0 0 0 1.5px var(--green)}
.t-par .go{background:rgba(43,94,46,.12)}
.t-kc{color:#fff}
.t-act .go,.t-par .go{color:var(--ink)}
.rv{opacity:1;transform:none}
.js .rv{opacity:0;transform:translateY(34px) scale(.98);transition:opacity .9s var(--ease),transform 1.1s var(--ease);transition-delay:calc(var(--i,0)*80ms)}
.js .rv.in{opacity:1;transform:none}
.next{padding:40px var(--pad) 110px;text-align:center;color:var(--muted);font-size:14px}
@media (min-width:980px){.t-don{grid-area:don}.t-vol{grid-area:vol}}
@media (prefers-reduced-motion:reduce){
  .hero{height:auto}.stage{position:relative}.ticker span,.stripe,.cue i::after,.media .kb{animation:none}
  .js .rv{opacity:1;transform:none}
}

/* ---------- bento v4: masked numerals, odometers, spotlight tilt, magnetic, split-flap ---------- */
.bento{perspective:1400px}
.tile{transform-style:preserve-3d;transition:transform .7s var(--ease),box-shadow .5s}
.tile:hover{transform:translateY(-4px) rotateX(var(--ry,0deg)) rotateY(var(--rx,0deg))}
.tile .spot{position:absolute;inset:0;pointer-events:none;z-index:3;border-radius:inherit;opacity:0;transition:opacity .4s;background:radial-gradient(420px circle at var(--mx,50%) var(--my,50%),rgba(255,255,255,.18),transparent 45%)}
.tile:hover .spot{opacity:1}
.t-act .spot,.t-par .spot{background:radial-gradient(420px circle at var(--mx,50%) var(--my,50%),rgba(43,94,46,.12),transparent 45%)}
.tile.gr::before{content:"";position:absolute;inset:0;z-index:2;pointer-events:none;opacity:.22;mix-blend-mode:overlay;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}
/* entrance: tiles open with a clip-path, content rises after (one timeline, set order) */
.js .bento .bt{clip-path:inset(100% 0 0 0 round 26px);transition:clip-path 1.15s var(--ease) calc(var(--i,0)*95ms),transform .7s var(--ease),box-shadow .5s}
.js .bento .bt>*:not(.ph):not(.spot){opacity:0;transform:translateY(22px);transition:opacity .7s calc(var(--i,0)*95ms + .35s),transform 1s var(--ease) calc(var(--i,0)*95ms + .35s)}
.js .bento .bt.in{clip-path:inset(0 0 0 0 round 26px)}
.js .bento .bt.in>*:not(.ph):not(.spot){opacity:1;transform:none}
.js .bento .bt .ph img{transform:scale(1.35);transition:transform 1.6s var(--ease) calc(var(--i,0)*95ms)}
.js .bento .bt.in .ph img{transform:scale(1.06)}
.js .bento .bt.in:hover .ph img{transform:scale(1)}
/* 150: the photo lives inside the numerals; hover wipes the photo over the whole tile */
.t-mem{background:var(--deep)}
.t-mem .ph{clip-path:inset(100% 0 0 0);transition:clip-path .9s var(--ease)}
.t-mem:hover .ph,.t-mem:focus-visible .ph{clip-path:inset(0 0 0 0)}
.js .bento .t-mem.bt .ph img,.js .bento .t-mem.bt.in .ph img{transform:scale(1.08)}
.t-mem .price{display:flex;align-items:flex-end;font-size:clamp(7rem,15vw,13.5rem);line-height:.8}
.t-mem .price .od{display:flex;background:url(../img/kk-afrostep.webp) center var(--py,50%)/cover;-webkit-background-clip:text;background-clip:text;color:transparent;-webkit-text-stroke:1px rgba(242,179,61,.55);transition:color .6s,-webkit-text-stroke-color .6s}
.t-mem:hover .price .od{color:#fff;-webkit-text-stroke-color:transparent}
.od2 .dg{display:block;height:.8em;overflow:hidden;margin-right:-.045em}
.t-mem .price .od.st{display:block;letter-spacing:-.06em;line-height:.8}
.od2 .dg i{display:block;font-style:normal;transform:translateY(calc(var(--v,0)*-10%));transition:transform 1.6s var(--ease) calc(var(--j,0)*.12s + var(--dl,0s))}
.od2 .dg i span{display:block;height:.8em;line-height:.8}
.t-num b.od2{display:flex}
/* split-flap Swish */
.t-don .sw b .fl{display:inline-block;transform-origin:50% 55%;transition:transform .32s cubic-bezier(.5,0,.5,1)}
.t-don .sw b .fl.dn{transform:rotateX(90deg)}
.t-don .cp{transition:background-color .3s,color .3s,transform .5s var(--ease)}
.t-don .cp.ok{background:var(--gold);color:var(--deep)}
/* magnetic */
.mag{transition:transform .6s var(--ease)!important}
.whead h2 .w{display:inline-block;overflow:hidden;vertical-align:top;padding-bottom:.08em;margin-bottom:-.08em}
.whead h2 .w>span{display:inline-block;transition:transform 1.1s var(--ease) calc(var(--k,0)*70ms)}
.js .whead h2.pre .w>span{transform:translateY(105%)}
@media (prefers-reduced-motion:reduce){.js .bento .bt,.js .bento .bt>*{clip-path:none!important;opacity:1!important;transform:none!important}.tile:hover{transform:none}.js .whead h2.pre .w>span{transform:none}}

/* ---------- shared ---------- */
.wrap{max-width:1360px;margin:0 auto}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.eb{margin:0;font-weight:700;font-size:12.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--green)}
.shead{display:grid;gap:12px;margin-bottom:clamp(24px,3vw,40px)}
.shead h2{margin:0;font-weight:800;font-size:clamp(2.6rem,6.5vw,5.6rem);line-height:.92;letter-spacing:-.04em;max-width:13ch}
.shead h2 em{color:var(--green)}
.shead p{margin:0;max-width:52ch;color:var(--muted)}
.shead.light .eb{color:var(--gold)}.shead.light h2{color:#fff}.shead.light h2 em{color:var(--gold)}.shead.light p{color:rgba(255,255,255,.72)}
.fine{font-size:12.5px;color:var(--muted);margin:16px 0 0}
.row{display:flex;flex-wrap:wrap;gap:12px}
.lang{display:flex;padding:3px;border-radius:999px;background:rgba(255,255,255,.14)}
.nav.solid .lang{background:rgba(22,19,15,.07)}
.lang button{border:0;background:none;font-weight:700;font-size:12px;padding:6px 9px;border-radius:999px;cursor:pointer;min-width:34px;min-height:30px}
.lang button[aria-pressed=true]{background:#fff;color:var(--ink)}
.nav.solid .lang button[aria-pressed=true]{background:var(--deep);color:#fff}
.nl{display:none;gap:22px;font-weight:600;font-size:14.5px}
.nl a{text-decoration:none;opacity:.85}.nl a:hover{opacity:1}
@media (min-width:1050px){.nl{display:flex}}
@media (max-width:520px){.nav .name{display:none}.nav{gap:10px}}

/* ---------- activities (v4: kinetic type, FLIP filter, clip-path reveal) ---------- */
.act{position:relative;padding:clamp(40px,6vw,90px) var(--pad) clamp(70px,9vw,120px)}
.act .shead{grid-template-columns:1fr;align-items:end}
@media (min-width:900px){.act .shead{grid-template-columns:1fr auto}.act .shead .eb,.act .shead p{grid-column:1}.act .shead h2{grid-column:1}.acount{grid-column:2;grid-row:1/4}}
.act .shead h2{max-width:none}
.rot{display:inline-block;color:var(--green);white-space:nowrap}
.rot .sc{color:var(--gold);font-family:var(--fd);font-style:normal;font-weight:800}
.acount{display:flex;align-items:flex-end;gap:10px;line-height:.8}
.acount .od{display:flex;font-weight:800;font-size:clamp(5rem,13vw,11rem);letter-spacing:-.06em;color:transparent;-webkit-text-stroke:1.5px var(--green);font-variant-numeric:tabular-nums}
.od .dg{display:block;height:.8em;overflow:hidden}
.od .dg i{display:block;font-style:normal;transition:transform 1.1s var(--ease);transform:translateY(calc(var(--v,0)*-10%))}
.od .dg i span{display:block;height:.8em;line-height:.8}
.acount small{font-family:var(--fi);font-style:italic;font-size:clamp(1.1rem,1.8vw,1.5rem);color:var(--green);max-width:12ch;line-height:1.05;padding-bottom:.5em}
.chips{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:18px}
.chip{position:relative;border:0;cursor:pointer;border-radius:999px;min-height:42px;padding:0 16px;background:#EADFCB;font-weight:700;font-size:14px;overflow:hidden;isolation:isolate;transition:color .35s}
.chip::before{content:"";position:absolute;inset:0;background:var(--deep);border-radius:inherit;z-index:-1;clip-path:circle(0% at 50% 50%);transition:clip-path .55s var(--ease)}
.chip[aria-pressed=true]{color:#fff}.chip[aria-pressed=true]::before{clip-path:circle(75% at 50% 50%)}
.chip sup{font-size:10px;margin-left:3px;opacity:.6;font-variant-numeric:tabular-nums}
.rows{list-style:none;margin:0;padding:0;position:relative}
.rows::before{content:"";position:absolute;left:0;right:0;top:0;height:1.5px;background:var(--ink);transform-origin:left;transform:scaleX(var(--ln,1));transition:transform 1.4s var(--ease)}
.rows li{position:relative}
.rows li::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:var(--line);transform-origin:left;transform:scaleX(var(--ln,1));transition:transform 1.2s var(--ease) calc(var(--n,0)*70ms + .1s)}
.rows li[hidden]{display:none}
.rows a{display:grid;grid-template-columns:auto 1fr auto;gap:4px 16px;align-items:center;padding:20px 6px;text-decoration:none;position:relative;isolation:isolate;transition:padding .6s var(--ease),color .3s;border-radius:14px}
.rows a::before{content:"";position:absolute;inset:0;border-radius:inherit;background:var(--deep);z-index:-1;clip-path:inset(0 100% 0 0 round 14px);transition:clip-path .6s var(--ease)}
.rows .ix{grid-row:1/3;font:500 12px/1 ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.06em;color:var(--muted);align-self:start;padding-top:.7em;transition:color .3s}
.rows b{display:block;font-weight:800;font-size:clamp(1.5rem,3.4vw,2.6rem);letter-spacing:-.035em;line-height:1.02;overflow:hidden;padding-bottom:.06em}
.rows b .w{display:inline-block;white-space:nowrap}
.rows b .c{display:inline-block;position:relative;transition:transform .7s var(--ease) calc(var(--d)*16ms)}
.rows b .c::after{content:attr(data-c);position:absolute;left:0;top:100%;color:var(--gold)}
.rows .who,.rows .where{font-size:13.5px;color:var(--muted);transition:color .3s}
.rows .who,.rows .where{grid-column:2}
.rows .bk{grid-row:1/3;grid-column:3;font-weight:700;color:var(--green);white-space:nowrap;display:inline-flex;align-items:center;gap:8px;transition:color .3s}
.rows .bk i{display:inline-grid;place-items:center;width:34px;height:34px;border-radius:50%;box-shadow:inset 0 0 0 1.5px currentColor;font-style:normal;transition:transform .6s var(--ease),background-color .3s,color .3s}
@media (min-width:900px){.rows a{grid-template-columns:44px minmax(0,1.3fr) minmax(0,.7fr) minmax(0,1fr) auto}.rows .ix{grid-row:auto;align-self:center;padding:0}.rows .who,.rows .where{grid-column:auto}.rows .bk{grid-row:auto;grid-column:auto}}
@media (hover:hover){
.rows a:hover,.rows a:focus-visible{color:#fff;padding-left:22px;padding-right:22px}
.rows a:hover::before,.rows a:focus-visible::before{clip-path:inset(0 0 0 0 round 14px)}
.rows a:hover b .c,.rows a:focus-visible b .c{transform:translateY(-100%)}
.rows a:hover .who,.rows a:hover .where,.rows a:hover .ix{color:rgba(255,255,255,.7)}
.rows a:hover .bk{color:var(--gold)}.rows a:hover .bk i{transform:rotate(-45deg);background:var(--gold);color:var(--deep)}}
@media (hover:none){.rows a:focus-visible{background:var(--deep);color:#fff}}
/* scroll entrance timeline */
.js .rows.pre{--ln:0}
.js .rows.pre b .w{transform:translateY(110%)}
.js .rows.pre .who,.js .rows.pre .where,.js .rows.pre .bk,.js .rows.pre .ix{opacity:0;transform:translateY(10px)}
.rows b .w{transition:transform 1.1s var(--ease) calc(var(--n,0)*70ms)}
.rows .who,.rows .where,.rows .bk,.rows .ix{transition:opacity .8s calc(var(--n,0)*70ms + .25s),transform .9s var(--ease) calc(var(--n,0)*70ms + .25s),color .3s}
/* FLIP filter */
.rows li.out{opacity:0;transform:translateX(-24px);transition:opacity .22s,transform .22s}
.rows li.in0{opacity:0;transform:translateY(26px)}
/* cursor preview: clip-path reveal + velocity tilt */
.peek{position:fixed;left:0;top:0;width:min(24vw,300px);aspect-ratio:4/5;pointer-events:none;z-index:40;transform:translate(-50%,-50%) rotate(var(--rt,0deg));will-change:transform,left,top}
.peek .fr{position:absolute;inset:0;border-radius:18px;overflow:hidden;clip-path:inset(50% 50% 50% 50% round 18px);transition:clip-path .7s var(--ease);background:var(--deep)}
.peek.on .fr{clip-path:inset(0 0 0 0 round 18px)}
.peek img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transform:scale(1.3);transition:transform 1.2s var(--ease),clip-path .7s var(--ease)}
.peek.on img{transform:scale(1)}
.peek img.nx{clip-path:inset(100% 0 0 0)}.peek img.nx.go{clip-path:inset(0 0 0 0)}
.peek .lb{position:absolute;left:14px;bottom:14px;z-index:2;background:var(--gold);color:var(--deep);font-weight:800;font-size:13px;padding:6px 12px;border-radius:999px;opacity:0;transform:translateY(8px);transition:opacity .4s .25s,transform .6s var(--ease) .25s}
.peek.on .lb{opacity:1;transform:none}
@media (hover:none){.peek{display:none}}
@media (prefers-reduced-motion:reduce){.rows b .c,.rows b .w,.od .dg i{transition:none!important}.js .rows.pre b .w{transform:none}.js .rows.pre .who,.js .rows.pre .where,.js .rows.pre .bk,.js .rows.pre .ix{opacity:1;transform:none}.js .rows.pre{--ln:1}}

/* ---------- events film strip ---------- */
.ev{position:relative;background:var(--deep);color:#fff;padding:clamp(70px,9vw,120px) 0;overflow:hidden}
.ev .wrap{padding:0 var(--pad)}
.strip{overflow-x:auto;overscroll-behavior-x:contain;scrollbar-width:none;cursor:none;padding:8px 0 20px;outline:none}
.strip::-webkit-scrollbar{display:none}
@media (hover:none){.strip{cursor:auto;scroll-snap-type:x mandatory}}
.trk{display:flex;gap:16px;width:max-content;padding:0 var(--pad);position:relative}
.trk::before,.trk::after{content:"";position:absolute;left:0;right:0;height:10px;background:repeating-linear-gradient(90deg,transparent 0 14px,rgba(255,255,255,.18) 14px 26px)}
.trk::before{top:-14px}.trk::after{bottom:-14px}
.fr{flex:none;width:min(78vw,430px);aspect-ratio:4/5;border-radius:22px;overflow:hidden;position:relative;background:#0b1812;scroll-snap-align:start;transition:transform .4s var(--ease)}
.fr img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transform:scale(1.08);transition:transform 1s var(--ease);user-select:none}
.fr:hover img{transform:scale(1)}
.fr::after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(8,18,13,.92),rgba(8,18,13,0) 58%)}
.fr div{position:absolute;left:0;right:0;bottom:0;padding:20px;z-index:2}
.fr .tag{display:inline-block;background:var(--gold);color:var(--deep);border-radius:999px;padding:4px 11px;font-weight:780;font-size:12.5px;margin-bottom:10px}
.fr h3{margin:0;font-weight:800;font-size:clamp(1.6rem,2.6vw,2.2rem);line-height:.95;letter-spacing:-.03em}
.fr p{margin:8px 0 0;color:rgba(255,255,255,.78);font-size:14px}
.dragc{position:fixed;left:0;top:0;width:86px;height:86px;margin:-43px 0 0 -43px;border-radius:50%;background:var(--gold);color:var(--deep);display:grid;place-items:center;font-weight:800;font-size:15px;pointer-events:none;z-index:45;transform:scale(0);transition:transform .35s var(--ease)}
.dragc.on{transform:scale(1)}.dragc.down{transform:scale(.8)}
@media (hover:none){.dragc{display:none}}

/* ---------- impact story ---------- */
.imp{padding:clamp(70px,9vw,130px) var(--pad)}
.igrid{display:grid;gap:20px}
@media (min-width:900px){.igrid{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:60px}}
.isticky{position:sticky;top:72px;align-self:start;background:var(--cream);z-index:2;padding:10px 0 14px}
@media (min-width:900px){.isticky{top:18vh;padding:0}}
.isticky .big{font-weight:800;font-size:clamp(5rem,15vw,13rem);line-height:.82;letter-spacing:-.06em;color:var(--deep);overflow:hidden;height:.9em;margin-top:10px}
.isticky .big span{display:block;font-variant-numeric:tabular-nums}
.isticky .big span.out{transform:translateY(-100%);opacity:0;transition:transform .4s var(--ease),opacity .3s}
.isticky .big span.in{animation:numin .7s var(--ease)}
@keyframes numin{from{transform:translateY(100%)}}
.steps{list-style:none;margin:0;padding:0;display:grid;gap:clamp(60px,22vh,220px);padding-block:clamp(10px,8vh,90px) clamp(40px,20vh,200px)}
.steps li{display:grid;gap:8px;max-width:30ch;opacity:.28;transition:opacity .5s}
.steps li.on{opacity:1}
.steps .mv{font-weight:800;font-size:1.3rem;color:var(--green);letter-spacing:-.02em}
@media (min-width:900px){.steps .mv{display:none}}
.steps span{font-size:clamp(1.25rem,2.2vw,1.8rem);line-height:1.25;letter-spacing:-.015em;font-weight:600}
.proof{display:grid;gap:12px;margin-top:clamp(30px,5vw,60px)}
@media (min-width:900px){.proof{grid-template-columns:1.3fr 1fr 1fr}}
.q{margin:0;border-radius:24px;background:var(--green);color:#fff;padding:26px;display:grid;gap:14px;align-content:space-between}
.q p{margin:0;font:400 clamp(1.5rem,2.6vw,2.2rem)/1.08 var(--fi);font-style:italic}
.q cite{font-style:normal;font-weight:700;color:var(--gold)}
.win{position:relative;border-radius:24px;overflow:hidden;min-height:240px;color:#fff}
.win img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.win::after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(10,20,14,.9),rgba(10,20,14,0) 60%)}
.win div{position:absolute;left:0;right:0;bottom:0;padding:20px;z-index:2;display:grid;gap:2px}
.win b{font-weight:800;font-size:1.9rem;letter-spacing:-.03em}.win span{font-size:14px;opacity:.85}
.award{border-radius:24px;border:1.5px dashed var(--gold);padding:24px;display:grid;align-content:end;gap:6px;min-height:200px}
.award b{font-weight:800;font-size:1.7rem;letter-spacing:-.03em}.award span{color:var(--muted);font-size:14.5px}

/* ---------- cultural centre ---------- */
.kc{background:var(--deep);color:#fff}
.kpin{position:relative;height:220svh}
.kimg{position:sticky;top:0;height:100svh;overflow:hidden;clip-path:inset(var(--ci,18%) var(--cx,22%) round var(--cr,28px))}
.kimg img{width:100%;height:100%;object-fit:cover;transform:scale(var(--ks,1.3))}
.kimg::after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(10,22,16,.85),rgba(10,22,16,.1) 60%)}
.ktxt{position:absolute;left:var(--pad);right:var(--pad);bottom:clamp(30px,8vh,80px);display:grid;gap:12px;pointer-events:none}
.ktxt .eb{color:var(--gold)}
.ktxt h2{margin:0;font-weight:800;font-size:clamp(3rem,9vw,8rem);line-height:.88;letter-spacing:-.045em;max-width:12ch;opacity:var(--kt,0);transform:translateY(calc((1 - var(--kt,0)) * 40px))}
.ktxt h2 em{color:var(--gold)}
.ktxt .eb{opacity:var(--kt,0)}
.kbody{padding:clamp(50px,7vw,100px) var(--pad) clamp(70px,9vw,120px)}
.klead{margin:0 0 clamp(26px,4vw,46px);font-size:clamp(1.25rem,2.2vw,1.8rem);line-height:1.3;max-width:40ch;letter-spacing:-.01em}
.spaces{list-style:none;margin:0;padding:0;display:grid;gap:0 40px;border-top:1px solid rgba(255,255,255,.18)}
@media (min-width:800px){.spaces{grid-template-columns:1fr 1fr}}
.spaces li{display:grid;gap:4px;padding:16px 0;border-bottom:1px solid rgba(255,255,255,.18)}
.spaces b{font-weight:780;font-size:1.25rem;letter-spacing:-.02em}
.spaces span{color:rgba(255,255,255,.68);font-size:14.5px}
.kcta{margin-top:clamp(28px,4vw,46px);display:grid;gap:18px;max-width:640px}
.kcta p{margin:0;color:rgba(255,255,255,.85)}

/* ---------- board, partners, footer ---------- */
.board{padding:clamp(70px,9vw,120px) var(--pad) clamp(40px,5vw,70px)}
.bgrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
@media (min-width:900px){.bgrid{grid-template-columns:repeat(4,minmax(0,1fr))}}
.person{margin:0}
.pic{aspect-ratio:4/5;border-radius:22px;overflow:hidden;background:#E5DACA;margin-bottom:12px}
.pic img{width:100%;height:100%;object-fit:cover;filter:grayscale(1) contrast(1.05);transition:filter .5s,transform .8s var(--ease)}
.person:hover .pic img{filter:none;transform:scale(1.04)}
.pic.ini{display:grid;place-items:center;font-weight:800;font-size:4rem;color:var(--green);background:repeating-linear-gradient(135deg,#EADFCB 0 14px,#E3D6BF 14px 28px)}
.person b{display:block;font-size:1.15rem}.person span{color:var(--muted);font-size:14px}
.partners{padding:10px 0 clamp(60px,8vw,100px)}
.mq{overflow:hidden;mask-image:linear-gradient(90deg,transparent,#000 10%,#000 90%,transparent)}
.mq__t{display:flex;gap:44px;align-items:center;width:max-content;animation:mq 40s linear infinite}
.mq__t img{height:60px;width:auto;filter:grayscale(1);opacity:.75;mix-blend-mode:multiply;transition:filter .3s,opacity .3s}
.mq__t img:hover{filter:none;opacity:1}
@keyframes mq{to{transform:translateX(-50%)}}
footer{background:#000;color:#cfc8b8;padding:60px var(--pad) 90px}
.fgrid{display:grid;gap:26px}
@media (min-width:860px){.fgrid{grid-template-columns:1.2fr 1fr 1fr}}
.fbig{grid-column:1/-1;margin:0;font-weight:800;font-size:clamp(2.8rem,9vw,7.5rem);line-height:.9;letter-spacing:-.045em;color:#fff}
.fbig em{color:var(--gold)}
footer p{margin:6px 0}footer a{color:#fff}
footer .eb{color:var(--gold)}
.flogo{width:84px;height:auto;background:#fff;border-radius:50%;padding:5px;margin-bottom:12px}
.soc{display:flex;flex-wrap:wrap;gap:6px 14px}.soc span{color:#6f695d;cursor:help}
.ffine{grid-column:1/-1;font-size:12.5px;color:#8f897c;border-top:1px solid rgba(255,255,255,.12);padding-top:18px}
@media (prefers-reduced-motion:reduce){.kpin{height:auto}.kimg{position:relative;clip-path:none}.ktxt h2,.ktxt .eb{opacity:1;transform:none}.mq__t{animation:none}.steps li{opacity:1}}


/* =====================================================================
   v4 multi-page layer — Turquino Studios
   ===================================================================== */
html.lenis,html.lenis body{height:auto}.lenis.lenis-smooth{scroll-behavior:auto!important}.lenis.lenis-stopped{overflow:hidden}

/* ---------- nav: current page + burger + full-screen menu ---------- */
.nav .brand{display:flex;align-items:center;gap:12px;text-decoration:none;color:inherit}
.nl a{position:relative}
.nl a::after{content:"";position:absolute;left:0;right:0;bottom:-6px;height:2px;background:currentColor;transform:scaleX(0);transform-origin:right;transition:transform .5s var(--ease)}
.nl a:hover::after,.nl a[aria-current=page]::after{transform:scaleX(1);transform-origin:left}
.nl a[aria-current=page]{opacity:1}
.burger{display:inline-grid;place-items:center;width:44px;height:44px;border-radius:50%;border:0;background:rgba(255,255,255,.14);color:inherit;cursor:pointer;position:relative;z-index:62}
.nav.solid .burger{background:rgba(22,19,15,.07)}
.burger i,.burger i::before,.burger i::after{display:block;width:18px;height:2px;background:currentColor;border-radius:2px;transition:transform .5s var(--ease),opacity .3s}
.burger i{position:relative}.burger i::before,.burger i::after{content:"";position:absolute;left:0}.burger i::before{top:-6px}.burger i::after{top:6px}
.mm-open .burger i{background:transparent}.mm-open .burger i::before{transform:translateY(6px) rotate(45deg)}.mm-open .burger i::after{transform:translateY(-6px) rotate(-45deg)}
@media (min-width:1050px){.burger{display:none}}
@media (max-width:1049px){.nav .btn{display:none}}
@media (max-width:420px){.nav .lang{display:none}}
.mm{position:fixed;inset:0;z-index:49;background:var(--deep);color:#fff;display:flex;flex-direction:column;justify-content:flex-end;padding:96px var(--pad) 34px;clip-path:circle(0% at calc(100% - 46px) 36px);transition:clip-path .9s var(--ease);visibility:hidden}
.mm-open .mm{clip-path:circle(150% at calc(100% - 46px) 36px);visibility:visible}
.mm-open .nav{color:#fff;background:transparent;box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none}
.mm ul{list-style:none;margin:0;padding:0}
.mm li{overflow:hidden;border-bottom:1px solid rgba(255,255,255,.12)}
.mm li a{display:flex;align-items:baseline;gap:14px;padding:12px 0;font-weight:800;font-size:clamp(2.2rem,9vw,4rem);letter-spacing:-.04em;line-height:1;text-decoration:none;transform:translateY(105%);transition:transform .8s var(--ease) calc(var(--i)*60ms + .2s)}
.mm li a small{font:500 12px/1 ui-monospace,Menlo,monospace;color:var(--gold);letter-spacing:.06em}
.mm li a[aria-current=page]{color:var(--gold)}
.mm-open .mm li a{transform:none}
.mm .mmf{display:flex;flex-wrap:wrap;gap:12px;align-items:center;justify-content:space-between;margin-top:26px;opacity:0;transition:opacity .6s .55s}
.mm-open .mm .mmf{opacity:1}
.mm .mmf .lang{background:rgba(255,255,255,.12)}
.mm .mmf p{margin:0;font-size:14px;color:rgba(255,255,255,.7)}
.mm .mmf a{color:#fff}
.mm-open{overflow:hidden}
@media (min-width:1050px){.mm{display:none}}

/* ---------- page transition curtain ---------- */
.ptc{position:fixed;inset:0;z-index:200;background:var(--deep);display:grid;place-items:center;pointer-events:none;transform:translateY(0);transition:transform .9s var(--ease)}
.ptc span{font-weight:800;font-size:clamp(1.4rem,3vw,2.2rem);letter-spacing:-.03em;color:#fff;overflow:hidden;display:block}
.ptc span em{color:var(--gold)}
.ptc span b{display:inline-block;font-weight:800;transition:transform .7s var(--ease)}
.ptc.away{transform:translateY(-101%)}
.ptc.away span b{transform:translateY(-110%)}
.ptc.cover{transition:none;transform:translateY(101%)}
.ptc.cover.go{transition:transform .65s var(--ease);transform:translateY(0)}

/* ---------- generic kinetic split (words rise from a mask) ---------- */
[data-split] .w{display:inline-block;overflow:hidden;vertical-align:top;padding-bottom:.1em;margin-bottom:-.1em}
[data-split] .w>span{display:inline-block;transition:transform 1.15s var(--ease) calc(var(--k,0)*65ms + var(--sd,0s))}
.js [data-split].pre .w>span{transform:translateY(108%)}

/* reveals */
.js .rvc{clip-path:inset(18% 8% 18% 8% round 26px);transform:scale(.96);transition:clip-path 1.3s var(--ease) calc(var(--i,0)*90ms),transform 1.3s var(--ease) calc(var(--i,0)*90ms)}
.js .rvc.in{clip-path:inset(0 0 0 0 round 26px);transform:none}
.js .rvc img{transform:scale(1.25);transition:transform 1.8s var(--ease) calc(var(--i,0)*90ms)}
.js .rvc.in img{transform:scale(1)}

/* ---------- page header ---------- */
.phead{position:relative;background:var(--deep);color:#fff;padding:clamp(130px,16vw,190px) var(--pad) 0;overflow:hidden}
.phead .wrap{position:relative;z-index:2}
.crumb{display:flex;gap:8px;align-items:center;font:500 12px/1 ui-monospace,Menlo,monospace;letter-spacing:.08em;text-transform:uppercase;color:rgba(255,255,255,.55);margin:0 0 22px}
.crumb a{color:inherit;text-decoration:none}.crumb a:hover{color:#fff}
.crumb i{font-style:normal;color:var(--gold)}
.ptitle{margin:0;font-weight:800;font-size:clamp(3.2rem,10.5vw,9.6rem);line-height:.88;letter-spacing:-.05em;max-width:12ch}
.ptitle em{color:var(--gold);letter-spacing:-.02em}
.plead{margin:26px 0 0;max-width:46ch;font-size:clamp(1.05rem,1.6vw,1.3rem);color:rgba(255,255,255,.82);line-height:1.5}
.pmeta{display:flex;flex-wrap:wrap;gap:10px 28px;margin-top:30px;font-size:13px;color:rgba(255,255,255,.6)}
.pmeta b{display:block;color:#fff;font-size:15px;font-weight:700}
.js .phead .plead,.js .phead .pmeta,.js .phead .crumb{opacity:0;transform:translateY(16px);transition:opacity .9s .55s,transform 1.1s var(--ease) .55s}
.js .phead.in .plead,.js .phead.in .pmeta,.js .phead.in .crumb{opacity:1;transform:none}
/* scroll-scrubbed photo panel that opens as you scroll */
.pband{position:relative;margin-top:clamp(40px,6vw,80px);height:clamp(300px,62vw,780px)}
.pband .pb{position:absolute;inset:0;overflow:hidden;clip-path:inset(0 var(--bx,10%) 0 var(--bx,10%) round var(--br,28px) var(--br,28px) 0 0);will-change:clip-path}
.pband img{width:100%;height:100%;object-fit:cover;transform:scale(var(--bs,1.22)) translateY(var(--by,0px));will-change:transform}
.pband .cap{position:absolute;z-index:2;right:var(--pad);bottom:18px;font-size:12px;color:rgba(255,255,255,.75);background:rgba(0,0,0,.35);padding:5px 10px;border-radius:999px;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}

/* ---------- section scaffolding ---------- */
.sec{padding:clamp(70px,9vw,130px) var(--pad)}
.sec.dark{background:var(--deep);color:#fff}
.sec.dark .eb{color:var(--gold)}.sec.dark .shead p{color:rgba(255,255,255,.75)}
.sec.cream2{background:#EFE6D4}
.shead.light .eb{color:var(--gold)}.shead.light p{color:rgba(255,255,255,.75)}
.sec h2.big{margin:0;font-weight:800;font-size:clamp(2.6rem,6.5vw,5.6rem);line-height:.92;letter-spacing:-.04em;max-width:14ch}
.sec h2.big em{color:var(--green)}.sec.dark h2.big em{color:var(--gold)}
.more{display:inline-flex;align-items:center;gap:12px;margin-top:28px;font-weight:800;font-size:17px;text-decoration:none;color:inherit}
.more i{display:inline-grid;place-items:center;width:48px;height:48px;border-radius:50%;box-shadow:inset 0 0 0 1.5px currentColor;font-style:normal;transition:transform .6s var(--ease),background-color .3s,color .3s}
.more:hover i{transform:rotate(-45deg);background:var(--gold);color:var(--deep);box-shadow:none}
.cta-row{display:flex;flex-wrap:wrap;gap:12px;margin-top:28px}

/* ---------- numbered steps (how it works) ---------- */
.stps{list-style:none;margin:clamp(30px,4vw,50px) 0 0;padding:0;display:grid;gap:14px}
@media (min-width:900px){.stps{grid-template-columns:repeat(3,1fr)}}
.stps li{position:relative;border-radius:26px;background:var(--card);padding:26px;min-height:260px;display:flex;flex-direction:column;justify-content:space-between;box-shadow:inset 0 0 0 1px var(--line);overflow:hidden}
.stps li .n{font-weight:800;font-size:clamp(5rem,9vw,8rem);line-height:.8;letter-spacing:-.06em;color:transparent;-webkit-text-stroke:1.5px var(--green)}
.stps li b{display:block;font-weight:800;font-size:clamp(1.5rem,2.2vw,1.9rem);letter-spacing:-.03em;line-height:1;margin-bottom:8px}
.stps li p{margin:0;color:var(--muted);font-size:15px}
.stps li::after{content:"";position:absolute;left:26px;right:26px;top:0;height:3px;background:var(--gold);transform:scaleX(0);transform-origin:left;transition:transform 1.2s var(--ease) calc(var(--i,0)*150ms + .3s)}
.stps li.in::after{transform:scaleX(1)}
.sec.dark .stps li{background:rgba(255,255,255,.05);box-shadow:inset 0 0 0 1px rgba(255,255,255,.1)}.sec.dark .stps li p{color:rgba(255,255,255,.72)}.sec.dark .stps li .n{-webkit-text-stroke-color:var(--gold)}

/* ---------- kinetic CTA band: marquee whose speed follows scroll velocity ---------- */
.cband{position:relative;background:var(--gold);color:var(--deep);padding:clamp(56px,7vw,90px) 0;overflow:hidden}
.cband .mqk{display:flex;width:max-content;will-change:transform}
.cband .mqk span{flex:none;font-weight:800;font-size:clamp(3.4rem,9vw,8rem);letter-spacing:-.05em;line-height:1;padding-right:.35em;white-space:nowrap}
.cband .mqk span em{font-weight:400;letter-spacing:-.02em;color:var(--red)}
.cband .cin{display:flex;flex-wrap:wrap;gap:18px 30px;align-items:center;justify-content:space-between;padding:clamp(24px,3vw,36px) var(--pad) 0;max-width:1360px;margin:0 auto}
.cband .cin p{margin:0;max-width:46ch;font-size:16.5px}
.cband .btn--d{background:var(--deep);color:#fff}
.cband.red{background:var(--red);color:#fff}.cband.red .mqk span em{color:var(--gold)}.cband.red .btn--d{background:#fff;color:var(--red)}
.cband.dark{background:var(--deep);color:#fff}.cband.dark .mqk span em{color:var(--gold)}.cband.dark .btn--d{background:var(--gold);color:var(--deep)}

/* ---------- facts / definition grid ---------- */
.facts{display:grid;gap:0;margin:clamp(28px,4vw,46px) 0 0;border-top:1.5px solid currentColor}
@media (min-width:800px){.facts{grid-template-columns:repeat(4,1fr)}}
.facts div{padding:20px 18px 20px 0;border-bottom:1px solid var(--line)}
.sec.dark .facts div{border-color:rgba(255,255,255,.14)}
.facts dt{font:500 11.5px/1 ui-monospace,Menlo,monospace;letter-spacing:.08em;text-transform:uppercase;opacity:.6;margin-bottom:10px}
.facts dd{margin:0;font-weight:800;font-size:clamp(1.3rem,2vw,1.7rem);letter-spacing:-.03em;line-height:1.1}

/* ---------- partner wall (static grid) ---------- */
.pwall{display:grid;grid-template-columns:repeat(2,1fr);gap:0;border-top:1px solid var(--line);border-left:1px solid var(--line);margin-top:clamp(28px,4vw,46px)}
@media (min-width:700px){.pwall{grid-template-columns:repeat(4,1fr)}}
@media (min-width:1100px){.pwall{grid-template-columns:repeat(6,1fr)}}
.pwall div{background:transparent;border-right:1px solid var(--line);border-bottom:1px solid var(--line);display:grid;place-items:center;aspect-ratio:3/2;padding:18px;transition:background-color .4s}
.pwall img{max-height:54px;max-width:80%;width:auto;filter:grayscale(1);opacity:.7;mix-blend-mode:multiply;transition:filter .4s,opacity .4s,transform .6s var(--ease)}
.pwall div:hover{background:#fff}.pwall div:hover img{filter:none;opacity:1;transform:scale(1.06)}

/* ---------- ways to give: big split rows ---------- */
.give{display:grid;gap:14px;margin-top:clamp(30px,4vw,50px)}
@media (min-width:980px){.give{grid-template-columns:1.2fr 1fr}}
.gcard{position:relative;border-radius:26px;padding:clamp(22px,3vw,34px);overflow:hidden;isolation:isolate}
.gcard h3{margin:0 0 12px;font-weight:800;font-size:clamp(1.9rem,3.2vw,2.8rem);letter-spacing:-.04em;line-height:.95}
.gcard p{margin:0 0 12px;max-width:44ch}
.gcard ul{margin:0 0 16px;padding-left:18px}
.gcard li{margin:4px 0}
.gcard.red{background:var(--red);color:#fff}.gcard.deep{background:var(--deep);color:#fff}.gcard.gold{background:var(--gold);color:var(--deep)}.gcard.card{background:var(--card);box-shadow:inset 0 0 0 1px var(--line)}
.gcard .sw{background:rgba(0,0,0,.16);border-radius:16px;padding:14px 16px;display:grid;gap:2px;margin-top:10px}
.gcard .sw small{font-size:11px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;opacity:.75}
.gcard .sw b{font-size:clamp(1.6rem,3vw,2.4rem);letter-spacing:-.02em;font-variant-numeric:tabular-nums}
.gcard .sw b .fl{display:inline-block;transform-origin:50% 55%;transition:transform .32s cubic-bezier(.5,0,.5,1)}.gcard .sw b .fl.dn{transform:rotateX(90deg)}
.gcard .cp{justify-self:start;margin-top:8px;border:0;background:#fff;color:var(--red);border-radius:999px;padding:8px 14px;font-size:13px;font-weight:700;cursor:pointer;transition:background-color .3s,color .3s}
.gcard .cp.ok{background:var(--gold);color:var(--deep)}
.gcard .gbig{font-weight:800;font-size:clamp(5rem,12vw,9rem);letter-spacing:-.06em;line-height:.8;margin:10px 0 14px}
.gcard .gbig small{font-family:var(--fi);font-style:italic;font-weight:400;font-size:.24em;letter-spacing:0;margin-left:6px;color:var(--gold)}
.gcard.gold .gbig small{color:var(--red)}
.gstack{display:grid;gap:14px}

/* ---------- contact ---------- */
.cbig{display:block;font-weight:800;font-size:clamp(1.9rem,6.4vw,5.6rem);letter-spacing:-.045em;line-height:1;text-decoration:none;word-break:break-word;position:relative;width:max-content;max-width:100%}
.cbig::after{content:"";position:absolute;left:0;right:0;bottom:-.06em;height:.06em;background:var(--gold);transform:scaleX(0);transform-origin:right;transition:transform .7s var(--ease)}
.cbig:hover::after{transform:scaleX(1);transform-origin:left}
.ccols{display:grid;gap:14px;margin-top:clamp(36px,5vw,60px)}
@media (min-width:900px){.ccols{grid-template-columns:repeat(3,1fr)}}
.ccols .gcard h3{font-size:clamp(1.5rem,2.2vw,1.9rem)}
.ccols .gcard a{color:inherit}
.soc2{display:grid;gap:6px}.soc2 a{font-weight:800;font-size:1.25rem;letter-spacing:-.02em;text-decoration:none}.soc2 a:hover{text-decoration:underline}

/* ---------- prose (privacy) ---------- */
.prose{max-width:70ch}
.prose h2{font-weight:800;font-size:clamp(1.5rem,2.4vw,2rem);letter-spacing:-.03em;line-height:1.05;margin:46px 0 12px}
.prose p,.prose li{color:#3d3830}
.prose a{color:var(--green)}
.prose .upd{font:500 12px/1 ui-monospace,Menlo,monospace;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}

/* ---------- events: pinned horizontal scroll (desktop) ---------- */
.ev{padding:0;overflow:visible}
.evpin{position:relative}
.evstick{padding:clamp(70px,9vw,120px) 0;overflow:hidden}
.evbar{display:flex;align-items:center;gap:18px;padding:0 var(--pad);margin:0 auto 26px;max-width:1360px;box-sizing:content-box}
.evcount{display:flex;align-items:baseline;gap:6px;font-weight:800;font-variant-numeric:tabular-nums;letter-spacing:-.03em}
.evcount .od2{font-size:clamp(2.4rem,4vw,3.4rem);color:var(--gold)}
.evcount .od2 .dg i{transition:transform .8s var(--ease)}
.evcount small{font-size:15px;color:rgba(255,255,255,.55)}
.evprog{flex:1;height:2px;background:rgba(255,255,255,.14);position:relative;overflow:hidden;border-radius:2px}
.evprog i{position:absolute;inset:0;background:var(--gold);transform-origin:left;transform:scaleX(var(--ep,0))}
.evhint{font-size:12.5px;color:rgba(255,255,255,.55);white-space:nowrap}
.trk::before,.trk::after{background-position:var(--sp,0px) 0}
.fr{transition:transform .8s var(--ease),filter .8s,opacity .8s}
.fr h3 .w{display:inline-block;overflow:hidden;vertical-align:top;padding-bottom:.08em;margin-bottom:-.08em}
.fr h3 .w>span{display:inline-block;transition:transform 1s var(--ease) calc(var(--k,0)*60ms + .1s)}
.fr:not(.seen) h3 .w>span{transform:translateY(105%)}
.fr .tag,.fr p{transition:opacity .7s .3s,transform .9s var(--ease) .3s}
.fr:not(.seen) .tag,.fr:not(.seen) p{opacity:0;transform:translateY(12px)}
@media (min-width:900px) and (hover:hover){
  .ev.pinned .evstick{position:sticky;top:0;height:100vh;height:100svh;display:flex;flex-direction:column;justify-content:center;padding:96px 0 30px;box-sizing:border-box}
  .ev.pinned .strip{overflow:visible;cursor:auto}
  .ev.pinned .trk{will-change:transform}
  .ev.pinned .fr{width:min(32vw,440px);transform:scale(.9) skewX(var(--sk,0deg));filter:saturate(.55) brightness(.7)}
  .ev.pinned .fr.on{transform:scale(1) skewX(var(--sk,0deg));filter:none}
  .ev.pinned .shead{margin-bottom:20px}.ev.pinned .shead h2{font-size:clamp(2.4rem,5vw,4.6rem)}
  .ev.pinned .dragc{display:none}
}
@media (max-width:899px),(hover:none){.ev .strip{scroll-snap-type:x mandatory}.evhint{display:none}}
@media (prefers-reduced-motion:reduce){.fr:not(.seen) h3 .w>span,.fr:not(.seen) .tag,.fr:not(.seen) p{transform:none;opacity:1}.js .rvc,.js .rvc img{clip-path:none;transform:none}.js [data-split].pre .w>span{transform:none}.ptc{display:none}.mm,.mm li a{transition:none}}

/* event list (events page) */
.elist{display:grid;gap:14px;margin-top:clamp(30px,4vw,50px)}
@media (min-width:800px){.elist{grid-template-columns:repeat(2,1fr)}}
@media (min-width:1150px){.elist{grid-template-columns:repeat(3,1fr)}}
.ecard{position:relative;border-radius:26px;overflow:hidden;background:var(--card);box-shadow:inset 0 0 0 1px var(--line);display:flex;flex-direction:column}
.ecard .im{aspect-ratio:4/3;overflow:hidden}
.ecard .im img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s var(--ease)}
.ecard:hover .im img{transform:scale(1.05)}
.ecard .tx{padding:20px 22px 24px}
.ecard .tag{display:inline-block;background:var(--gold);color:var(--deep);border-radius:999px;padding:4px 11px;font-weight:780;font-size:12.5px;margin-bottom:12px}
.ecard h3{margin:0 0 8px;font-weight:800;font-size:clamp(1.5rem,2.2vw,1.9rem);letter-spacing:-.03em;line-height:1}
.ecard p{margin:0;color:var(--muted);font-size:15px}

/* footer sitemap */
.fnav{display:grid;gap:4px}.fnav a{text-decoration:none;color:#fff;opacity:.85}.fnav a:hover{opacity:1;text-decoration:underline}
footer .flegal{display:flex;flex-wrap:wrap;gap:6px 18px}
@media (min-width:900px){.fgrid{grid-template-columns:1.4fr 1fr 1fr 1fr 1fr!important}.fgrid .fbig{grid-column:1/-1}}

.pwall .pslot{grid-column:span 1;display:flex;flex-direction:column;justify-content:center;gap:4px;padding:18px 22px;text-decoration:none;background:var(--deep);color:#fff;border-right:1px solid var(--line);border-bottom:1px solid var(--line);transition:background-color .4s}
.pwall .pslot b{font-weight:800;font-size:clamp(1.2rem,1.8vw,1.6rem);letter-spacing:-.03em}.pwall .pslot span{color:var(--gold);font-weight:700;font-size:14px}
.pwall .pslot:hover{background:var(--green)}
@media (min-width:1100px){.pwall .pslot{grid-column:span 5}}
@media (min-width:700px) and (max-width:1099px){.pwall .pslot{grid-column:span 3}}
.evcount .od2{display:flex}
.ev .trk{padding-left:calc(max(0px,(100vw - 1360px)/2) + var(--pad));padding-right:calc(max(0px,(100vw - 1360px)/2) + var(--pad))}
.evbar{max-width:none;padding:0 calc(max(0px,(100vw - 1360px)/2) + var(--pad));box-sizing:border-box}

.rows b{overflow:visible}
.rows b .wo{display:inline-block;overflow:hidden;vertical-align:top;padding-bottom:.08em;margin-bottom:-.08em}
