:root{--navy:#11235f;--blue:#2a55c5;--orange:#f08a3c;--yellow:#f5b82e;--green:#10b27a;--ink:#14224f;--mute:#5a6690;--paper:#f6f8ff;--line:#e3e9fb;
--ease:cubic-bezier(.22,1,.36,1);box-sizing:border-box;color-scheme:light}
*,*::before,*::after{box-sizing:inherit}
html{height:100%;scroll-behavior:smooth}
body{
  margin:0;
  min-height:100vh;
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  font-family:'Outfit',system-ui,-apple-system,'Segoe UI',Roboto,sans-serif;
  color:var(--ink);
  background:#EEF3FA;
  line-height:1.6;
  overflow-x:hidden;
  padding:env(safe-area-inset-top,0) 0 env(safe-area-inset-bottom,0);
}
img{max-width:100%;display:block}
button{font:inherit;cursor:pointer}
:focus-visible{outline:3px solid var(--yellow);outline-offset:3px}
h1,h2,h3{margin:0;line-height:1.1;letter-spacing:-.025em}

/* navbar: centred logo */
.nav{position:sticky;top:env(safe-area-inset-top,0);z-index:20;display:flex;justify-content:center;align-items:center;height:76px;background:rgba(255,255,255,.92);backdrop-filter:blur(10px);box-shadow:0 1px 0 var(--line)}
.brand img{height:56px;width:auto;transition:transform .5s var(--ease)}
.brand:hover img{transform:scale(1.04)}
.nav{animation:drop .8s var(--ease) both}
@keyframes drop{from{opacity:0;transform:translateY(-100%)}to{opacity:1;transform:none}}

/* entrance reveal (fade + rise, staggered by --d) */
.reveal{opacity:0;transform:translateY(22px);animation:rise .9s var(--ease) forwards;animation-delay:var(--d,0s)}
@keyframes rise{to{opacity:1;transform:none}}

/* banner */
.banner{position:relative;width:min(1180px,calc(100% - 32px));margin:20px auto 0;min-height:clamp(250px,30vw,340px);border-radius:28px;overflow:hidden;display:grid;align-items:end;color:#fff;background:linear-gradient(135deg,var(--navy),#1c3a94 55%,var(--blue));isolation:isolate}
.banner-media{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2}
.banner-media:not([hidden])~.banner-fallback{display:none}
.banner::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(0deg,rgba(11,23,69,.78),rgba(11,23,69,.05) 65%)}
.banner-fallback{position:absolute;inset:0;z-index:-2}
.orb{position:absolute;border-radius:50%;filter:blur(40px);opacity:.55;animation:float 9s ease-in-out infinite}
.o1{width:46%;aspect-ratio:1;background:var(--orange);right:-8%;top:-30%}
.o2{width:36%;aspect-ratio:1;background:var(--green);left:-6%;bottom:-35%;animation-delay:-3s}
.o3{width:24%;aspect-ratio:1;background:var(--yellow);left:42%;top:8%;animation-delay:-6s;opacity:.35}
@keyframes float{50%{transform:translate(4%,6%) scale(1.08)}}
.banner-copy{padding:clamp(22px,4.5vw,56px);max-width:760px}
.chip{display:inline-block;margin:0 0 14px;padding:6px 14px;border-radius:99px;font-size:.88rem;font-weight:600;background:rgba(255,255,255,.16);border:1px solid rgba(255,255,255,.3)}
.banner h1{font-size:clamp(1.8rem,4.4vw,3.1rem);font-weight:800}
.lead{margin:14px 0 0;font-size:clamp(1rem,1.8vw,1.2rem);color:#e6ecff;max-width:56ch}

/* apps */
.apps{
  flex:1;
  text-align:center;
  width:min(720px,calc(100% - 32px));
  margin:0 auto;
  padding:clamp(48px,8vw,96px) 0 clamp(56px,8vw,96px);
  display:flex;
  flex-direction:column;
  justify-content:center;
  align-items:center;
  min-height:60vh;
  background:transparent;
}
.app-icon{width:104px;height:104px;margin:-82px auto 22px;border-radius:50%;background:#fff;display:grid;place-items:center;border:5px solid var(--paper);box-shadow:0 14px 34px rgba(17,35,95,.22);position:relative;z-index:2}
.app-icon img{width:78px;height:78px;border-radius:50%;object-fit:contain}
.app-icon::before{content:"";position:absolute;inset:-5px;border-radius:50%;border:2px solid var(--orange);opacity:0;animation:pulse 2.8s ease-out 1.2s infinite}
@keyframes pulse{0%{transform:scale(1);opacity:.7}100%{transform:scale(1.5);opacity:0}}
.apps h2{font-size:clamp(1.7rem,4vw,2.5rem);font-weight:800;color:var(--navy)}
.sub{margin:12px auto 0;max-width:46ch;color:var(--mute);font-size:1.05rem}
.stores{
  display:flex;
  flex-wrap:wrap;
  justify-content:center;
  gap:24px;
  margin-top:48px;
  width:100%;
}

.store{position:relative;overflow:hidden;display:flex;align-items:center;gap:18px;min-width:280px;padding:22px 34px;border:0;border-radius:18px;color:#fff;text-align:left;background:var(--navy);box-shadow:0 12px 28px rgba(17,35,95,.28);transition:transform .35s var(--ease),box-shadow .35s var(--ease),background .3s}
.store:nth-child(2){background:#1c1c24}
.store svg{width:42px;height:42px;flex:none}
.store span{display:flex;flex-direction:column;line-height:1.15}
.store small{font-size:.92rem;opacity:.8}
.store b{font-size:1.6rem;font-weight:700}
.store:hover{transform:translateY(-4px);box-shadow:0 18px 34px rgba(17,35,95,.32)}
.store:active{transform:translateY(-1px) scale(.98)}
/* shine sweep */
.store em{position:absolute;top:0;left:-70%;width:45%;height:100%;background:linear-gradient(100deg,transparent,rgba(255,255,255,.35),transparent);transform:skewX(-20deg);pointer-events:none}
.store:hover em{animation:shine .9s var(--ease)}
@keyframes shine{to{left:130%}}

/* ripple */
.ripple{position:relative;overflow:hidden}
.rip{position:absolute;border-radius:50%;background:rgba(255,255,255,.45);transform:scale(0);animation:ripple .65s ease-out forwards;pointer-events:none}
@keyframes ripple{to{transform:scale(1);opacity:0}}

.trust{
  list-style:none;
  margin:48px auto 0;
  padding:0;
  display:flex;
  flex-wrap:wrap;
  justify-content:center;
  align-items:center;
  gap:14px;
  max-width:100%;
}
.trust li{padding:10px 20px;border-radius:99px;background:#fff;border:1px solid var(--line);font-size:1.05rem;font-weight:600;color:var(--navy)}
.trust li::before{content:"";display:inline-block;width:10px;height:10px;margin-right:10px;border-radius:50%;background:var(--green)}

.foot{
  display:flex;
  flex-wrap:wrap;
  gap:6px 24px;
  justify-content:center;
  align-items:center;
  padding:28px 16px;
  background:var(--navy);
  color:#c9d3f5;
  font-size:.92rem;
  text-align:center;
  width:100%;
}
.foot p{margin:0}.foot a{color:#fff;font-weight:600}.foot a:hover{color:var(--yellow)}

/* modal */
.overlay{position:fixed;inset:0;z-index:100;display:grid;place-items:center;padding:20px;background:rgba(11,23,69,.55);backdrop-filter:blur(6px);opacity:0;transition:opacity .3s ease}
.overlay.show{opacity:1}
.modal{position:relative;width:min(420px,100%);padding:38px 30px 30px;border-radius:24px;background:#fff;text-align:center;box-shadow:0 30px 70px rgba(0,0,0,.35);opacity:0;transform:translateY(24px) scale(.92);transition:transform .45s var(--ease),opacity .3s ease}
.overlay.show .modal{opacity:1;transform:none}
.modal:focus{outline:0}
.m-icon{width:84px;height:84px;margin:0 auto 16px;border-radius:50%;display:grid;place-items:center;background:var(--paper);border:2px solid var(--line)}
.m-icon img{width:60px;height:60px;object-fit:contain}
.modal h3{font-size:1.9rem;font-weight:800;color:var(--navy)}
.modal p{margin:10px 0 22px;color:var(--mute)}
.close{position:absolute;top:14px;right:14px;width:40px;height:40px;display:grid;place-items:center;border:0;border-radius:50%;background:var(--paper);color:var(--navy);transition:background .25s,transform .35s var(--ease)}
.close svg{width:20px;height:20px}
.close:hover{background:#ffe9d8;color:var(--orange);transform:rotate(90deg)}
.ok{border:0;padding:12px 34px;border-radius:99px;font-weight:700;color:#fff;background:var(--green);box-shadow:0 8px 18px rgba(16,178,122,.35)}
body.locked{overflow:hidden}

@media (max-width:560px){
  .nav{height:68px}
  .brand img{height:48px}
  .store{width:100%;max-width:360px;padding:18px 28px}
  .store svg{width:38px;height:38px}
  .store small{font-size:.88rem}
  .store b{font-size:1.45rem}
  .stores{gap:16px;margin-top:36px}
  .app-icon{width:92px;height:92px;margin-top:-70px}
  .app-icon img{width:68px;height:68px}
  .apps{padding:clamp(32px,6vw,48px) 0 clamp(40px,6vw,56px)}
  .trust{gap:10px;margin-top:36px}
  .trust li{font-size:.95rem;padding:8px 16px}
  .foot{padding:24px 16px;font-size:.88rem}
}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.reveal{opacity:1;transform:none}}
[hidden]{display:none!important}
