/* ===== Lifto "Apply for launch" ===== */
/* header / footer buttons */
.lf-apply-btn{position:relative;overflow:hidden;display:inline-flex;align-items:center;gap:8px;height:40px;padding:0 18px;border:0;border-radius:999px;cursor:pointer;
  font:500 15px PPNeueMontreal,system-ui,sans-serif;color:#fff;text-decoration:none;white-space:nowrap;
  background:linear-gradient(120deg,#0b57c9,#2f8cff 55%,#6cb8ff);box-shadow:0 6px 18px #2f7fe040,inset 0 1px 0 #ffffff55;transition:transform .2s,box-shadow .2s}
.lf-apply-btn:hover{transform:translateY(-1px);box-shadow:0 10px 26px #2f7fe066,inset 0 1px 0 #ffffff66}
.lf-apply-btn:focus-visible{outline:3px solid #a9cdfb;outline-offset:2px}
.lf-apply-btn::after{content:"";position:absolute;top:0;left:-60%;width:40%;height:100%;background:linear-gradient(100deg,transparent,#ffffff8c,transparent);transform:skewX(-20deg);animation:lap-shine 3.2s 1s ease-in-out infinite}
.lf-apply-btn .lf-apply-star{display:inline-block;animation:lap-twinkle 2.4s ease-in-out infinite}
.lf-apply-short{display:none}
@media(max-width:480px){.lf-apply-btn{height:36px;padding:0 13px;font-size:14px}.lf-apply-long{display:none}.lf-apply-short{display:inline}}
.lf-apply-btn--foot{height:48px;padding:0 24px;font-size:17px}
.lf-foot-ctas{display:flex;flex-wrap:wrap;gap:12px;justify-content:center;align-items:center}
@keyframes lap-shine{0%,60%{left:-60%}100%{left:130%}}
@keyframes lap-twinkle{50%{transform:rotate(25deg) scale(1.25);opacity:.8}}
@media (prefers-reduced-motion:reduce){.lf-apply-btn::after,.lf-apply-btn .lf-apply-star{animation:none}}

/* modal */
html.lap-lock{overflow:hidden}
.lap{position:fixed;inset:0;z-index:10000;display:grid;place-items:center;padding:16px;font-family:PPNeueMontreal,system-ui,sans-serif;color:#12161c}
.lap-veil{position:absolute;inset:0;background:radial-gradient(circle at var(--ox) var(--oy),#1f5fbf55,#06142ecc 70%);backdrop-filter:blur(4px);opacity:0;transition:opacity .5s}
.lap-on .lap-veil{opacity:1}
.lap-portal{position:absolute;left:var(--ox);top:var(--oy);width:30px;height:30px;margin:-15px;border-radius:50%;pointer-events:none;opacity:0;
  background:radial-gradient(circle,#fff 0 20%,#bfe0ff 40%,#5aa8ff55 62%,transparent 72%);box-shadow:0 0 40px 10px #8fc8ff88}
.lap-on .lap-portal{animation:lap-portal .8s cubic-bezier(.4,0,.2,1) forwards}
@keyframes lap-portal{0%{opacity:1;transform:scale(.4)}60%{opacity:.9}100%{opacity:0;transform:scale(60)}}
.lap-card{position:relative;display:flex;flex-direction:column;width:min(620px,100%);max-height:calc(100vh - 32px);border-radius:28px;overflow:hidden;
  background:linear-gradient(180deg,#e6f2ff 0%,#fff 38%);box-shadow:0 40px 90px #06142e66,0 0 0 1px #ffffff80;opacity:0;transform:translateY(26px) scale(.92);filter:blur(8px)}
.lap-card::before{content:"";position:absolute;inset:0;border-radius:inherit;padding:2px;pointer-events:none;z-index:5;
  background:conic-gradient(from var(--lap-a,0deg),#2f7fe0,#9fd4ff,#ffffff,#5aa8ff,#9b8cff,#2f7fe0);-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;animation:lap-ring 5s linear infinite}
@property --lap-a{syntax:"<angle>";inherits:false;initial-value:0deg}
@keyframes lap-ring{to{--lap-a:360deg}}
.lap-on .lap-card{animation:lap-pop .75s .35s cubic-bezier(.2,1.2,.3,1) forwards}
@keyframes lap-pop{to{opacity:1;transform:none;filter:none}}
.lap-stars{position:absolute;inset:0 0 auto;height:160px;pointer-events:none;opacity:.7;
  background-image:radial-gradient(1.5px 1.5px at 12% 30%,#5aa8ff,transparent),radial-gradient(1.5px 1.5px at 30% 70%,#9fd4ff,transparent),radial-gradient(2px 2px at 55% 22%,#2f7fe0,transparent),radial-gradient(1.5px 1.5px at 78% 58%,#5aa8ff,transparent),radial-gradient(2px 2px at 90% 18%,#9b8cff,transparent);
  animation:lap-drift 9s ease-in-out infinite alternate}
@keyframes lap-drift{to{transform:translateY(10px);opacity:.35}}
.lap-fx{position:absolute;left:50%;top:40%;width:0;height:0;pointer-events:none;z-index:6}
.lap-spark{position:absolute;width:6px;height:6px;margin:-3px;border-radius:50%;background:#fff;box-shadow:0 0 8px 3px #9fd4ff,0 0 18px 6px #5aa8ff99;opacity:0;animation:lap-spark 1.4s var(--d) ease-out forwards}
@keyframes lap-spark{0%{opacity:0;transform:translate(0,0) scale(0)}20%{opacity:1}100%{opacity:0;transform:translate(var(--x),var(--y)) scale(var(--s))}}
.lap-main{display:flex;flex-direction:column;min-height:0;flex:1}
.lap-x{position:absolute;top:12px;right:12px;z-index:7;width:38px;height:38px;border-radius:50%;border:0;background:#ffffffd9;color:#1c222b;font-size:25px;line-height:1;cursor:pointer;box-shadow:0 2px 8px #0b57c922}
.lap-x:hover{background:#fff}.lap-x:focus-visible{outline:3px solid #a9cdfb}
.lap-head{position:relative;padding:26px 30px 12px;text-align:center}
.lap-logo{width:50px;height:50px;filter:drop-shadow(0 6px 14px #2f7fe055);animation:lap-float 4s ease-in-out infinite}
@keyframes lap-float{50%{transform:translateY(-5px)}}
.lap-kicker{margin:6px 0 0;font:13px CrosswordDeparture,LiftoMono,ui-monospace,monospace;letter-spacing:.14em;text-transform:uppercase;color:#1b5dbd}
.lap h2{margin:4px 0 6px;font-weight:500;font-size:28px;line-height:1.15;letter-spacing:-.6px;color:#0e1116}
.lap-lead{margin:0 auto 14px;max-width:460px;color:#39414c;font-size:15.5px;line-height:1.5}
.lap-prog{position:relative;display:flex;justify-content:space-between;max-width:380px;margin:0 auto}
.lap-bar{position:absolute;left:18px;right:18px;top:15px;height:3px;border-radius:3px;background:#d6e4f5}
.lap-bar i{display:block;height:100%;width:0;border-radius:inherit;background:linear-gradient(90deg,#0b57c9,#5aa8ff);box-shadow:0 0 10px #5aa8ff;transition:width .6s cubic-bezier(.4,0,.2,1)}
.lap-dot{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;gap:4px;width:72px}
.lap-dot b{display:grid;place-items:center;width:32px;height:32px;border-radius:50%;background:#fff;border:2px solid #c6d6ea;color:#5b6573;font-weight:500;font-size:14px;transition:all .4s}
.lap-dot em{font-style:normal;font-size:12.5px;color:#5b6573;text-transform:capitalize}
.lap-dot-on b{border-color:#0b57c9;background:#0b57c9;color:#fff}
.lap-dot-now b{box-shadow:0 0 0 6px #cfe3ff,0 0 18px #5aa8ff;animation:lap-pulse 2s ease-in-out infinite}
.lap-dot-now em{color:#0b3f8f;font-weight:500}
@keyframes lap-pulse{50%{box-shadow:0 0 0 9px #cfe3ff99,0 0 24px #5aa8ff}}
.lap-body{flex:1;min-height:0;overflow:auto;padding:6px 30px 8px;scroll-behavior:smooth}
.lap-step h3{margin:2px 0 2px;font-size:21px;font-weight:500;color:#0e1116}
.lap-eye{margin:8px 0 0;font-size:12.5px;letter-spacing:.08em;text-transform:uppercase;color:#1b5dbd}
.lap-sub{margin:0 0 14px;color:#4a525e;font-size:15px}
.lap-in-r{animation:lap-in-r .45s cubic-bezier(.2,.9,.3,1)}.lap-in-l{animation:lap-in-l .45s cubic-bezier(.2,.9,.3,1)}
@keyframes lap-in-r{from{opacity:0;transform:translateX(40px);filter:blur(4px)}}
@keyframes lap-in-l{from{opacity:0;transform:translateX(-40px);filter:blur(4px)}}
.lap-in-r .lap-f,.lap-in-l .lap-f{animation:lap-rise .5s both}
.lap-step .lap-f:nth-child(5){animation-delay:.05s}.lap-step .lap-f:nth-child(6){animation-delay:.1s}.lap-step .lap-f:nth-child(7){animation-delay:.15s}.lap-step .lap-f:nth-child(8){animation-delay:.2s}.lap-step .lap-f:nth-child(9){animation-delay:.25s}.lap-step .lap-f:nth-child(10){animation-delay:.3s}
@keyframes lap-rise{from{opacity:0;transform:translateY(10px)}}
.lap-f{display:block;margin:0 0 14px;border:0;padding:0;min-width:0}
.lap-l{display:block;font-size:15px;font-weight:500;margin:0 0 6px;color:#1c222b;padding:0}
.lap-l em{font-style:normal;color:#5b6573;font-weight:400}
.lap-f input,.lap-f textarea{width:100%;box-sizing:border-box;font:16px/1.45 PPNeueMontreal,system-ui,sans-serif;padding:12px 14px;border:1.5px solid #c6d2e1;border-radius:13px;background:#fff;color:#12161c;transition:border-color .2s,box-shadow .25s}
.lap-f textarea{resize:vertical;min-height:84px}
.lap-f input::placeholder,.lap-f textarea::placeholder{color:#7a8492}
.lap-f input:focus,.lap-f textarea:focus{outline:0;border-color:#0b57c9;box-shadow:0 0 0 4px #cfe3ff,0 0 22px #5aa8ff55}
.lap-hint,.lap-count{display:block;margin-top:5px;font-size:13px;color:#4a525e}
.lap-count{text-align:right}.lap-count.lap-ok{color:#0d7a3f}
.lap-ferr{margin:4px 0 0;min-height:0;color:#b42318;font-size:13.5px}
.lap-bad input,.lap-bad textarea{border-color:#d92d20;box-shadow:0 0 0 3px #fde3e1}
.lap-chips{display:flex;flex-wrap:wrap;gap:8px}
.lap-chip{position:relative;cursor:pointer}
.lap-chip input{position:absolute;opacity:0;width:1px;height:1px}
.lap-chip span{display:inline-block;padding:9px 15px;border-radius:999px;border:1.5px solid #c6d2e1;background:#fff;font-size:15px;color:#1c222b;transition:all .2s}
.lap-chip:hover span{border-color:#5aa8ff;background:#f2f8ff}
.lap-chip input:focus-visible+span{outline:3px solid #a9cdfb;outline-offset:2px}
.lap-chip input:checked+span{background:linear-gradient(120deg,#0b57c9,#2f8cff);border-color:#0b57c9;color:#fff;box-shadow:0 4px 14px #2f7fe055}
.lap-pop span{animation:lap-chip .4s cubic-bezier(.2,1.6,.4,1)}
@keyframes lap-chip{40%{transform:scale(1.1)}}
.lap-bad .lap-chip span{border-color:#e9a29b}
.lap-hp{position:absolute;left:-9999px;width:1px;height:1px;opacity:0}
.lap-consent{display:flex;gap:10px;align-items:flex-start;font-size:14px;line-height:1.45;color:#232a33;margin:4px 0 4px;cursor:pointer}
.lap-consent[hidden]{display:none}
.lap-consent input{width:19px;height:19px;margin-top:1px;flex:none;accent-color:#0b57c9}
.lap-consent a{color:#0b57c9}
.lap-err{min-height:20px;margin:4px 0 0;color:#b42318;font-size:14px}
.lap-foot{display:flex;gap:10px;align-items:center;padding:12px 30px 22px;border-top:1px solid #e3ebf5;background:#fff}
.lap-back{background:none;border:0;padding:12px 6px;color:#26303c;font:500 15.5px PPNeueMontreal,sans-serif;cursor:pointer;text-decoration:underline;text-underline-offset:4px}
.lap-back[hidden]{display:none}
.lap-next{position:relative;overflow:hidden;flex:1;border:0;border-radius:14px;padding:15px;font:500 17px PPNeueMontreal,sans-serif;color:#fff;cursor:pointer;text-align:center;
  background:linear-gradient(120deg,#0b57c9,#2f8cff 60%,#6cb8ff);box-shadow:0 10px 24px #2f7fe055}
.lap-next::after{content:"";position:absolute;top:0;left:-60%;width:40%;height:100%;background:linear-gradient(100deg,transparent,#ffffff8c,transparent);transform:skewX(-20deg);animation:lap-shine 2.8s 1.4s ease-in-out infinite}
.lap-next:disabled{opacity:.7}.lap-busy span::after{content:"…"}
.lap-next:focus-visible{outline:3px solid #a9cdfb;outline-offset:2px}
.lap-shake{animation:lap-shake .4s}
@keyframes lap-shake{20%,60%{transform:translateX(-6px)}40%,80%{transform:translateX(6px)}}
/* success */
.lap-done{position:relative;z-index:2;padding:40px 30px 30px;text-align:center}
.lap-done[hidden]{display:none}
.lap-rocket{position:relative;width:92px;height:92px;margin:0 auto 14px;animation:lap-liftoff 1.2s cubic-bezier(.3,1.4,.4,1) both}
.lap-rocket img{position:relative;z-index:1;width:92px;height:92px;filter:drop-shadow(0 10px 22px #2f7fe077)}
.lap-rocket i{position:absolute;left:50%;top:70%;width:26px;height:80px;margin-left:-13px;border-radius:50%;background:radial-gradient(ellipse at top,#fff 0,#9fd4ff 30%,#5aa8ff55 60%,transparent 75%);filter:blur(4px);animation:lap-flame .25s ease-in-out infinite alternate}
@keyframes lap-liftoff{0%{opacity:0;transform:translateY(80px) scale(.6)}100%{opacity:1;transform:none}}
@keyframes lap-flame{to{transform:scaleY(.75);opacity:.8}}
.lap-done-p{font-size:17px;color:#1c222b;margin:0 0 8px}
.lap-done-s{color:#4a525e;margin:0 auto 22px;max-width:420px;line-height:1.5}
.lap-done .lap-next{display:block;width:100%;max-width:320px;margin:0 auto}
.lap-win::before{animation-duration:2s}
/* closing */
.lap-out .lap-card{animation:lap-bye .38s ease forwards}.lap-out .lap-veil{opacity:0}
@keyframes lap-bye{to{opacity:0;transform:translateY(18px) scale(.94);filter:blur(6px)}}
/* calm mode (reduced motion) */
.lap-calm .lap-card,.lap-calm.lap-on .lap-card{animation:none;opacity:1;transform:none;filter:none}
.lap-calm .lap-portal,.lap-calm .lap-stars{display:none}
.lap-calm .lap-card::before,.lap-calm .lap-logo,.lap-calm .lap-dot-now b,.lap-calm .lap-next::after,.lap-calm .lap-rocket,.lap-calm .lap-rocket i{animation:none}
/* phones */
@media(max-width:560px){
  .lap{padding:0;align-items:end}
  .lap-card{width:100%;max-height:94vh;border-radius:24px 24px 0 0}
  .lap-head{padding:20px 18px 8px}.lap h2{font-size:23px}.lap-lead{font-size:14.5px;margin-bottom:10px}.lap-logo{width:40px;height:40px}
  .lap-body{padding:4px 18px 6px}.lap-foot{padding:10px 18px 16px}
  .lap-dot{width:60px}.lap-chip span{padding:8px 13px;font-size:14.5px}
}
.lf-apply-btn .lf-apply-star{color:#fff;font-family:system-ui,"Segoe UI Symbol",sans-serif;font-variant-emoji:text}
.lap-main[hidden]{display:none}
.lap-logo,.lap-rocket img{display:block;margin:0 auto}
/* keep white text on blue everywhere (research pages style links dark) */
.lf-apply-btn,.lf-apply-btn:visited,.lf-apply-btn:hover,.lf-apply-btn span{color:#fff!important;text-decoration:none!important}
.lap-chip input:checked+span,.lap-chip input:checked+span *{color:#fff!important}

/* "Start Raising" uses the same look as "Apply for launch" (.lf-apply-btn) */
.lf-raise-btn.mt-6{margin-top:1.5rem}
