/* GDM home: original scroll animations */
:root{--navy:#083A6F;--teal:#13767C;--teal2:#13878F;--ink:#0b2540}
.scroll-bar{position:fixed;top:0;left:0;height:4px;width:0;background:linear-gradient(90deg,#13878F,#fff);z-index:9999}
.h-hero{position:relative;min-height:100vh;padding:150px 0 90px;color:#fff;overflow:hidden;display:flex;align-items:center;
 background:radial-gradient(900px 500px at 85% 20%,rgba(19,135,143,.55),transparent 60%),linear-gradient(160deg,#062a52 0%,#083A6F 55%,#0d5a73 100%)}
.h-hero::before{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.05) 1px,transparent 1px);background-size:56px 56px;mask-image:radial-gradient(circle at 70% 40%,#000 0,transparent 70%);-webkit-mask-image:radial-gradient(circle at 70% 40%,#000 0,transparent 70%)}
.h-hero h1{font-size:clamp(38px,5.4vw,68px);line-height:1.08;color:#fff}
.h-hero .line{display:block;overflow:hidden}
.h-hero .line>span{display:block;transform:translateY(110%);animation:rise .9s cubic-bezier(.2,.8,.2,1) forwards}
.h-hero .line:nth-child(2)>span{animation-delay:.12s}.h-hero .line:nth-child(3)>span{animation-delay:.24s}
@keyframes rise{to{transform:none}}
.swap{display:inline-block;color:#7fe0e6;min-width:1ch;transition:opacity .35s,transform .35s}
.swap.out{opacity:0;transform:translateY(-14px)}
.h-hero .lead{font-size:20px;color:#dbe8f2;max-width:560px;opacity:0;animation:fade .8s .6s forwards}
.h-hero .hero-btns{opacity:0;animation:fade .8s .8s forwards}
@keyframes fade{to{opacity:1}}
.btn-ghost{background:transparent!important;border-color:rgba(255,255,255,.7)!important}
.btn-ghost:hover{background:#fff!important;color:var(--navy)!important}
.viz{position:relative;max-width:520px;margin:auto;aspect-ratio:1/1}
.viz svg{width:100%;height:100%;overflow:visible}
.viz .ring{fill:none;stroke:rgba(255,255,255,.18);stroke-width:1.5}
.viz .orbit{transform-origin:260px 260px;animation:spin 26s linear infinite}
.viz .orbit.rev{animation-duration:40s;animation-direction:reverse}
@keyframes spin{to{transform:rotate(360deg)}}
.viz .chart{fill:none;stroke:#7fe0e6;stroke-width:7;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:700;stroke-dashoffset:700;animation:draw 2.2s .9s ease-out forwards}
.viz .head{fill:#7fe0e6;opacity:0;animation:fade .4s 3s forwards}
.viz .glow{fill:#13878F;opacity:.35;animation:pulse 3.5s ease-in-out infinite;transform-origin:260px 260px}
@keyframes draw{to{stroke-dashoffset:0}}
@keyframes pulse{50%{transform:scale(1.12);opacity:.5}}
.chip{position:absolute;background:#fff;color:var(--navy);border-radius:14px;padding:10px 14px;font:600 14px/1.2 var(--title-font-family);box-shadow:0 12px 30px rgba(0,0,0,.25);display:flex;align-items:center;gap:8px;animation:bob 5s ease-in-out infinite;transition:transform .2s}
.chip i{color:var(--teal2);font-size:18px}
.chip:nth-of-type(2){top:6%;left:-2%}.chip:nth-of-type(3){top:38%;right:-6%;animation-delay:-1.5s}.chip:nth-of-type(4){bottom:8%;left:6%;animation-delay:-3s}
@keyframes bob{50%{translate:0 -10px}}
.scroll-cue{position:absolute;bottom:26px;left:50%;width:26px;height:42px;border:2px solid rgba(255,255,255,.6);border-radius:14px;translate:-50% 0}
.scroll-cue::after{content:"";position:absolute;top:8px;left:50%;width:4px;height:8px;margin-left:-2px;border-radius:2px;background:#fff;animation:wheel 1.6s infinite}
@keyframes wheel{to{transform:translateY(14px);opacity:0}}
.ticker{background:#fff;border-bottom:1px solid #e3eef0;overflow:hidden;padding:18px 0}
.ticker-track{display:flex;gap:48px;width:max-content;animation:tick 32s linear infinite}
.ticker:hover .ticker-track{animation-play-state:paused}
.ticker span{font:600 20px var(--title-font-family);color:var(--navy);white-space:nowrap;display:flex;align-items:center;gap:48px}
.ticker span::after{content:"";width:9px;height:9px;border-radius:50%;background:var(--teal2)}
@keyframes tick{to{transform:translateX(-50%)}}
.stats{background:var(--section-bg-color)}
.stats .stat{font-size:56px}
.about-h .frame{position:relative}
.about-h .frame::before{content:"";position:absolute;inset:22px -22px -22px 22px;border-radius:20px;background:linear-gradient(15deg,var(--navy),var(--teal2));opacity:.9;transition:inset .4s}
.about-h .frame:hover::before{inset:12px -12px -12px 12px}
.about-h .frame img{position:relative;border-radius:20px;width:100%}
.stack-wrap{background:#fff}
.stack-card{position:sticky;top:calc(96px + var(--i)*26px);min-height:360px;border-radius:26px;padding:48px;margin-bottom:34px;color:#fff;display:grid;grid-template-columns:1.2fr .8fr;gap:30px;align-items:center;box-shadow:0 20px 50px rgba(8,58,111,.25)}
.stack-card:nth-child(1){background:#083A6F}.stack-card:nth-child(2){background:#0b5070}.stack-card:nth-child(3){background:#0f6a78}.stack-card:nth-child(4){background:#13878F}
.stack-card h3{color:#fff;font-size:44px}.stack-card p{color:#e3f1f4;font-size:18px}
.stack-card .big{font:700 150px/1 var(--title-font-family);opacity:.16;text-align:right}
.offer{background:var(--section-bg-color)}
.tabs-h{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:28px}
.tab-b{border:2px solid var(--navy);background:transparent;color:var(--navy);border-radius:100px;padding:10px 20px;font:600 15px var(--title-font-family);transition:all .25s}
.tab-b:hover{background:rgba(8,58,111,.08)}
.tab-b.on{background:var(--navy);color:#fff}
.tab-p{display:none;background:#fff;border-radius:22px;padding:40px;box-shadow:0 .5rem 2rem rgba(8,58,111,.1)}
.tab-p.on{display:grid;grid-template-columns:1fr 1fr;gap:34px;align-items:center;animation:pin .5s ease}
@keyframes pin{from{opacity:0;transform:translateX(24px)}}
.tab-p ul{list-style:none;padding:0}.tab-p li{padding:8px 0 8px 30px;position:relative;color:var(--p-color);font-size:18px}
.tab-p li::before{font-family:bootstrap-icons;content:"\f26e";position:absolute;left:0;color:var(--teal2)}
.model{border-radius:24px;padding:42px;height:100%;color:#fff;position:relative;overflow:hidden;transition:transform .3s}
.model:hover{transform:translateY(-6px)}
.model.a{background:linear-gradient(15deg,#083A6F,#0f6a78)}.model.b{background:linear-gradient(15deg,#0f6a78,#13878F)}
.model h3,.model p{color:#fff}.model small{letter-spacing:.5px;opacity:.8}
.model::after{content:"";position:absolute;right:-60px;top:-60px;width:200px;height:200px;border-radius:50%;background:rgba(255,255,255,.1);transition:transform .5s}
.model:hover::after{transform:scale(1.6)}
.ind{display:block;background:#fff;border:1px solid #dce9ec;border-radius:18px;padding:26px;height:100%;overflow:hidden;position:relative;transition:color .3s,border-color .3s}
.ind::before{content:"";position:absolute;inset:0;background:linear-gradient(15deg,var(--navy),var(--teal2));transform:translateY(101%);transition:transform .4s;z-index:0}
.ind:hover::before{transform:none}.ind>*{position:relative;z-index:1;transition:color .3s}
.ind:hover h5,.ind:hover p,.ind:hover i{color:#fff}
.ind i{font-size:30px;color:var(--teal2)}.ind h5{color:var(--navy);margin-top:10px}.ind p{font-size:16px;margin:0}
.reveal{opacity:0;transform:translateY(28px);transition:opacity .8s,transform .8s}
.reveal.in{opacity:1;transform:none}
.final{background:linear-gradient(160deg,#062a52,#083A6F 60%,#13767C);color:#fff;text-align:center;position:relative;overflow:hidden}
.final h2,.final p{color:#fff}
.final::before,.final::after{content:"";position:absolute;border-radius:50%;background:rgba(127,224,230,.12);animation:bob 7s ease-in-out infinite}
.final::before{width:380px;height:380px;left:-120px;top:-120px}.final::after{width:300px;height:300px;right:-80px;bottom:-110px;animation-delay:-3s}
.final .container{position:relative;z-index:1}
@media(max-width:991px){.stack-card{grid-template-columns:1fr;padding:30px;min-height:300px}.stack-card .big{display:none}.stack-card h3{font-size:32px}.tab-p.on{grid-template-columns:1fr;padding:26px}.chip{display:none}.h-hero{padding-top:130px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}.h-hero .line>span,.h-hero .lead,.h-hero .hero-btns,.reveal{opacity:1;transform:none}.viz .chart{stroke-dashoffset:0}.viz .head{opacity:1}.stack-card{position:relative;top:0}}
