/* Ascend's motion system: ink, light, orbit and connection. */
.header-motion{display:grid;place-items:center;min-width:44px;min-height:44px;border:1px solid #eeeae02b;border-radius:50%;font-size:15px;transition:background .3s,border-color .3s}
.header-motion:hover{border-color:var(--gold);background:#d5aa8212}
.hero-atmosphere{position:absolute;inset:0;pointer-events:none;z-index:0;overflow:hidden}
.hero-light{position:absolute;inset:-30%;background:conic-gradient(from 220deg at 70% 45%,transparent 0deg,#bba77b17 24deg,transparent 45deg,#6f855e15 65deg,transparent 95deg);animation:hero-light-drift 26s ease-in-out infinite alternate;animation-play-state:paused;transform-origin:70% 45%}
.hero.fx-visible .hero-light{animation-play-state:running}
@keyframes hero-light-drift{from{transform:rotate(-16deg) scale(1)}to{transform:rotate(12deg) scale(1.13)}}
.hero-stars{position:absolute;inset:0}
.hero-stars i{position:absolute;left:var(--x);top:var(--y);width:2px;height:2px;border-radius:50%;background:#ffe4bd;opacity:.3;animation:star-breathe var(--duration) ease-in-out var(--delay) infinite alternate;animation-play-state:paused}
.hero-stars i:nth-child(4n){width:3px;height:3px;box-shadow:0 0 12px #e4bb7e66}
.hero.fx-visible .hero-stars i{animation-play-state:running}
@keyframes star-breathe{from{opacity:.12;transform:translate3d(0,0,0)}to{opacity:.65;transform:translate3d(3px,-13px,0)}}
.hero-orbits{position:absolute;width:95%;height:120%;top:-10%;left:27%;opacity:.32;overflow:visible;stroke:#c6ab7c;stroke-width:.5}
.orbit-slow{transform-origin:500px 500px;animation:orbit-turn 90s linear infinite;animation-play-state:paused}
.hero.fx-visible .orbit-slow{animation-play-state:running}
.orbit-slow circle{fill:#f1c69c;stroke:none}
.orbit-dashed{stroke-dasharray:2 15;opacity:.4}
@keyframes orbit-turn{to{transform:rotate(360deg)}}
.hero h1,.reveal,.giving-intro h1{perspective:900px}
.motion-word{overflow:clip;vertical-align:top;padding-bottom:.21em;margin-bottom:-.21em}
.motion-char{will-change:auto}
.circle-link{position:relative;isolation:isolate}
.circle-link:before{content:'';position:absolute;inset:-9px;border:1px solid #d5aa8238;border-radius:50%;animation:circle-breathe 3.8s ease-in-out infinite;animation-play-state:paused;pointer-events:none}
.hero.fx-visible .circle-link:before{animation-play-state:running}
@keyframes circle-breathe{0%,100%{transform:scale(.93);opacity:.2}50%{transform:scale(1.08);opacity:.7}}
.section-marker:before{content:'';display:inline-block;width:23px;height:1px;margin-right:12px;vertical-align:middle;background:currentColor;opacity:.6}
.connection-scene{position:relative;padding:100px 7% 90px;overflow:hidden;background:radial-gradient(ellipse at 55% 55%,#283024 0%,#111610 65%)}
.connection-top{display:flex;justify-content:space-between;align-items:flex-end;gap:40px;position:relative;z-index:1}
.connection-top h2{font-size:clamp(55px,6.4vw,100px);line-height:.98;letter-spacing:-.02em}
.connection-top h2 em{color:var(--gold)}
.connection-top>p{font-size:12px;line-height:1.8;color:#b6bcae;max-width:230px}
.connection-top .section-marker{font-size:8px;margin-bottom:35px}
.connection-art{margin:25px -3% 0;position:relative}
.connection-art svg{display:block;width:100%;overflow:visible}
.connection-orbits{stroke:#d5aa82;stroke-width:.6;opacity:.18;transform-origin:500px 260px;animation:connection-sway 24s ease-in-out infinite alternate;animation-play-state:paused}
.connection-scene.fx-visible .connection-orbits{animation-play-state:running}
@keyframes connection-sway{to{transform:rotate(7deg) scale(.97)}}
.route-base{stroke:#d5aa82;stroke-width:1;opacity:.35}
.route-signal{stroke:#ffdfb7;stroke-width:2.3;stroke-dasharray:3 48;stroke-linecap:round;opacity:.85;animation:signal-flow 9s linear var(--delay,0s) infinite;animation-play-state:paused}
.connection-scene.fx-visible .route-signal{animation-play-state:running}
@keyframes signal-flow{to{stroke-dashoffset:-510}}
.hub-wave{stroke:#d5aa82;stroke-width:.7;transform-origin:210px 255px;animation:hub-ripple 6s ease-out infinite;animation-play-state:paused}
.hub-wave-two{animation-delay:-3s}
.connection-scene.fx-visible .hub-wave{animation-play-state:running}
@keyframes hub-ripple{from{transform:scale(1);opacity:.6}to{transform:scale(1.9);opacity:0}}
.hub-orbit{stroke:#d5aa82;stroke-width:1;stroke-dasharray:6 32;opacity:.5;transform-origin:210px 255px;animation:orbit-turn 35s linear infinite;animation-play-state:paused}
.connection-scene.fx-visible .hub-orbit{animation-play-state:running}
.hub-letter{font-family:'Instrument Serif',Georgia,serif;font-size:65px;font-style:italic;text-anchor:middle;fill:#e4bb94}
.node-caption{font-family:'DM Sans',sans-serif;font-size:11px;letter-spacing:2.2px;text-anchor:middle;fill:#d8d8c8}
.node-ring{stroke:#d5aa82;stroke-width:.8;opacity:.35;animation:node-breathe 4s ease-in-out var(--delay,0s) infinite alternate;animation-play-state:paused;transform-box:fill-box;transform-origin:center}
.connection-scene.fx-visible .node-ring{animation-play-state:running}
@keyframes node-breathe{to{transform:scale(1.4);opacity:.1}}
.connection-countries{display:grid;grid-template-columns:repeat(4,1fr);gap:30px;margin-top:12px}
.connection-country{padding:22px 0;border-top:1px solid #eeeae030;display:flex;flex-direction:column;gap:18px;min-width:0}
.connection-country>.eyebrow{font-size:8px;color:#b0b6a5}
.connection-country>span:last-child{font-family:'Instrument Serif';font-size:32px;display:flex;justify-content:space-between;align-items:center;gap:8px}
.connection-country b{font-family:'DM Sans';font-size:22px;font-weight:400;color:var(--gold)}
.connection-country:hover{color:var(--gold)}
.connection-country:hover>span:last-child{transform:none}
.ticker{padding:36px 0;background:#d5aa82;overflow:hidden}
.ticker>.ticker-track{animation:none;transform:none;width:120%;margin-left:-10%;font:clamp(40px,6vw,90px)/1.08 'Instrument Serif',Georgia,serif;letter-spacing:-.02em}
.ticker .ticker-loop{width:max-content;animation:marquee 65s linear infinite;animation-play-state:paused}
.ticker.fx-visible .ticker-loop{animation-play-state:running}
.ticker-loop span{display:inline-block;font-family:'DM Sans';font-size:.55em;margin:0 25px;vertical-align:middle;font-weight:300}
.ticker>.ticker-second{margin-top:12px;color:transparent;-webkit-text-stroke:1px #11161080}
.ticker-second .ticker-loop{animation-direction:reverse;animation-duration:75s}
.ticker-second .ticker-loop span{color:#111610;-webkit-text-stroke:0}
.map-wrap:after{content:'';position:absolute;inset:2%;border-radius:50%;border:1px dashed #d5aa822a;transform:rotate(-10deg) scaleY(.78);pointer-events:none}
#africa-map .is-active{animation:map-beacon 4s ease-in-out infinite alternate;animation-play-state:paused}
.map-wrap.fx-visible #africa-map .is-active{animation-play-state:running}
@keyframes map-beacon{to{filter:drop-shadow(0 0 12px #d5aa82a0);fill:#f0c89d}}
.image-corner{position:absolute;z-index:4;width:35px;height:35px;pointer-events:none;border-color:#eeeae090;border-style:solid}
.image-corner-tl{top:17px;left:17px;border-width:1px 0 0 1px}
.image-corner-br{bottom:17px;right:17px;border-width:0 1px 1px 0}
.architecture:before{content:'';position:absolute;inset:0;z-index:2;background:linear-gradient(115deg,transparent 30%,#eeeae017 45%,transparent 60%);transform:translateX(-110%);pointer-events:none;animation:light-pass 12s ease-in-out infinite;animation-play-state:paused}
.business.fx-visible .architecture:before{animation-play-state:running}
@keyframes light-pass{0%,25%{transform:translateX(-110%)}75%,100%{transform:translateX(110%)}}
.portrait-frame{position:relative}
.portrait-frame:after{content:'';position:absolute;inset:-13px;border:1px solid #d5aa8238;z-index:-1;transform:rotate(5deg);pointer-events:none}
.connect{position:relative;isolation:isolate;overflow:hidden}
.connect-orbit{position:absolute;z-index:-1;width:60%;height:auto;right:-12%;top:-8%;stroke:#748166;stroke-width:.4;opacity:.3;animation:orbit-turn 65s linear infinite;animation-play-state:paused;pointer-events:none}
.connect.fx-visible .connect-orbit{animation-play-state:running}
.connect-orbit circle:last-child{fill:#748166;stroke:none}
.contact-options button{transition:padding .35s,background .35s}
.contact-options button:hover{padding-left:12px;background:#11161005}
.giving-hero{position:relative;isolation:isolate;background:radial-gradient(ellipse at 80% 40%,#2c3327 0%,#111610 65%)}
.giving-hero:before,.giving-hero:after{content:'';position:absolute;width:650px;height:650px;border:1px solid #d5aa8226;border-radius:50%;right:-5%;top:20%;z-index:-1;transform:rotate(-25deg) scaleY(.6);pointer-events:none}
.giving-hero:after{transform:rotate(35deg) scaleY(.6);border-style:dashed;animation:arch-orbit 45s linear infinite;animation-play-state:paused}
.giving-hero.fx-visible:after{animation-play-state:running}
@keyframes arch-orbit{to{transform:rotate(395deg) scaleY(.6)}}
.giving-landscape>img{transform:scale(1.05);animation:arch-drift 24s ease-in-out infinite alternate;animation-play-state:paused}
.giving-hero.fx-visible .giving-landscape>img{animation-play-state:running}
@keyframes arch-drift{to{transform:scale(1.15) translate3d(-2%,1%,0)}}
.giving-light{position:absolute;inset:-30%;background:conic-gradient(from 130deg at 75% 20%,transparent 0deg,#ffe7b72b 14deg,transparent 35deg);z-index:1;mix-blend-mode:screen;pointer-events:none;animation:sunlight-breath 16s ease-in-out infinite;animation-play-state:paused}
.giving-hero.fx-visible .giving-light{animation-play-state:running}
.giving-card{position:relative;isolation:isolate;overflow:hidden}
.giving-card-glint{position:absolute;inset:0;z-index:-1;background:linear-gradient(115deg,transparent 25%,#fff9 45%,transparent 65%);transform:translateX(-110%);pointer-events:none;animation:light-pass 13s ease-in-out infinite;animation-play-state:paused}
.giving-card.fx-visible .giving-card-glint{animation-play-state:running}
.paypal-give{position:relative;overflow:hidden;isolation:isolate}
.paypal-give:before{content:'';position:absolute;inset:0;background:#57624a;transform:translateX(-101%);transition:transform .45s cubic-bezier(.2,.7,.3,1);z-index:-1}
.paypal-give:hover:before{transform:translateX(0)}
.motion-off *,.motion-off *:before,.motion-off *:after,.page-hidden *,.page-hidden *:before,.page-hidden *:after{animation-play-state:paused!important}
@media(max-width:1050px){.connection-scene{padding:90px 6%}.connection-top h2{font-size:70px}.connection-country>span:last-child{font-size:27px}.connection-countries{gap:20px}.hero-orbits{left:25%;width:110%;opacity:.25}}
@media(min-width:761px) and (max-width:1050px){.globe-hint,.globe-coordinate{right:30%}}
@media(max-width:760px){
 .header-motion{min-width:44px;min-height:44px;font-size:13px}
 .nav-actions{gap:18px}
 .hero-orbits{width:175%;height:70%;top:15%;left:-25%;opacity:.3}
 .hero-light{inset:-50%;opacity:.75}
 .hero-stars i{opacity:.25}
 .connection-scene{padding:75px 6% 60px}
 .connection-top{display:block}
 .connection-top h2{font-size:15vw}
 .connection-top>p{margin-top:25px;font-size:11px;max-width:260px}
 .connection-top .section-marker{font-size:7px;margin-bottom:28px;letter-spacing:.1em}
 .connection-art{margin:10px -16% 0 -22%}
 .connection-countries{grid-template-columns:1fr 1fr;gap:15px 25px;margin-top:20px}
 .connection-country{padding:18px 0;gap:14px}
 .connection-country>span:last-child{font-size:27px}
 .connection-country>.eyebrow{font-size:7px}
 .ticker{padding:24px 0}
 .ticker>.ticker-track{font-size:45px}
 .ticker-loop span{margin:0 18px}
 .ticker>.ticker-second{margin-top:8px}
 .connect-orbit{width:95%;right:-30%;top:0}
 .giving-hero:before,.giving-hero:after{width:500px;height:500px;top:40%;right:-45%}
 .motion-word{padding-bottom:.19em;margin-bottom:-.19em}
}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-play-state:paused!important}.hero-light{display:none}.hero-stars i{opacity:.25}.route-signal{opacity:.3}.motion-word{overflow:visible}}
