.bg-gradient-1{
background: linear-gradient(333.42deg, #000B34 17.7%, #08154A 47.18%, #000417 84.35%);
}
.faqs-section{
background: linear-gradient(333.42deg, #000B34 17.7%, #08154A 47.18%, #000417 84.35%);
}
/* (removed: legacy multi-step form-step-2 styles — funnel now uses the custom apply form) */
.text-gradient {
 background: linear-gradient(114.69deg, #D2F0FA 0.99%, #6BD7FC 21.89%, #03BFFF 42.8%, #0380F7 100%, #05448B 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  color: transparent;
}
.marquee-1 {
    display: inline-flex;
    animation: marquee-scroll 100s linear infinite;
}
.about-marquee{
    display: inline-flex;
    animation: marquee-about 60s linear infinite;
}
@keyframes marquee-scroll {
    0% {
        transform: translateX(0);
    }
    100% {
        transform: translateX(-50%);
    }
}
@keyframes marquee-about {
    0% {
        transform: translateX(0);
    }
    100% {
        transform: translateX(-50%);
    }
}

/* ─── Custom multi-step apply form (futuristic) ─── */
.apply-form-shell{max-width:600px;margin-left:auto;margin-right:auto;}
.applyf{position:relative;isolation:isolate;border:1px solid rgba(0,212,255,.14);border-radius:22px;padding:38px;
  background:linear-gradient(160deg,rgba(10,22,55,.72),rgba(4,10,32,.72));
  -webkit-backdrop-filter:blur(16px) saturate(1.25);backdrop-filter:blur(16px) saturate(1.25);
  box-shadow:0 30px 80px rgba(0,0,0,.5),0 0 60px rgba(0,160,255,.08);}
.applyf[hidden]{display:none;}
.apply-form-ghl[hidden]{display:none !important;}
/* animated rotating gradient border */
@property --af-angle{syntax:'<angle>';initial-value:0deg;inherits:false;}
.applyf::before{content:'';position:absolute;inset:0;border-radius:22px;padding:1.5px;z-index:-1;
  background:conic-gradient(from var(--af-angle),rgba(0,212,255,0) 0deg,#00d4ff 70deg,#7b5cff 150deg,rgba(0,212,255,0) 230deg,rgba(0,212,255,0) 360deg);
  -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;
  animation:af-spin 5.5s linear infinite;}
@keyframes af-spin{to{--af-angle:360deg;}}
/* progress: node steps */
.applyf__progress{position:relative;margin-bottom:30px;}
.applyf__track{position:absolute;left:8%;right:8%;top:17px;height:2px;background:rgba(255,255,255,.1);border-radius:2px;}
.applyf__track-fill{position:absolute;left:0;top:0;height:100%;width:0;border-radius:2px;background:linear-gradient(90deg,#6bd7fc,#03bfff);box-shadow:0 0 10px rgba(0,212,255,.6);transition:width .55s cubic-bezier(.4,0,.2,1);}
.applyf__nodes{position:relative;display:flex;justify-content:space-between;}
.applyf__node{display:flex;flex-direction:column;align-items:center;gap:7px;}
.applyf__node b{width:36px;height:36px;border-radius:50%;display:grid;place-items:center;font:700 13px 'Funnel Display',sans-serif;color:rgba(255,255,255,.55);background:rgba(8,16,40,.95);border:1px solid rgba(255,255,255,.16);transition:color .35s ease,background .35s ease,border-color .35s ease,box-shadow .35s ease;}
.applyf__node em{font-style:normal;font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:rgba(255,255,255,.4);transition:color .35s ease;}
.applyf__node.is-active b,.applyf__node.is-done b{color:#001;background:linear-gradient(135deg,#6bd7fc,#0380f7);border-color:transparent;box-shadow:0 0 18px rgba(0,212,255,.6);}
.applyf__node.is-active em{color:#9fe9ff;}
/* steps + slide transitions */
.applyf__steps{position:relative;}
.applyf__step{border:0;padding:0;margin:0;}
.applyf__step[hidden]{display:none;}
/* stages glide in laterally — direction follows the navigation */
/* depth zoom: forward feels like moving deeper — the old question flies past
   you (grows + blurs out) while the next rises from ahead. Back reverses. */
.applyf__steps{position:relative;}
.applyf__step--in{animation:af-zoom-in .5s cubic-bezier(.2,.7,.2,1) both;z-index:2;}
.applyf__step--in.is-back{animation-name:af-zoom-back;}
@keyframes af-zoom-in{from{opacity:0;transform:scale(.93);filter:blur(6px);}to{opacity:1;transform:none;filter:none;}}
@keyframes af-zoom-back{from{opacity:0;transform:scale(1.06);filter:blur(6px);}to{opacity:1;transform:none;filter:none;}}
.applyf__step.is-leaving{position:absolute;left:0;right:0;top:0;pointer-events:none;z-index:1;animation:af-zoom-out .32s ease both;}
.applyf__step.is-leaving.is-back{animation-name:af-zoom-outback;}
@keyframes af-zoom-out{from{opacity:1;transform:none;filter:none;}to{opacity:0;transform:scale(1.07);filter:blur(7px);}}
@keyframes af-zoom-outback{from{opacity:1;transform:none;filter:none;}to{opacity:0;transform:scale(.92);filter:blur(7px);}}
.applyf__legend{font-family:'Funnel Display',sans-serif;font-size:23px;font-weight:700;color:#fff;margin:0 0 22px;padding:0;}
/* fields: floating labels + glow */
.applyf__field{position:relative;margin-bottom:20px;}
.applyf__field input,.applyf__field select,.applyf__field textarea{width:100%;padding:22px 16px 9px;background:rgba(0,8,28,.55);border:1px solid rgba(120,180,255,.16);border-radius:12px;color:#fff;font:16px/1.2 'Funnel Display',sans-serif;transition:border-color .25s ease,box-shadow .25s ease,background .25s ease;}
.applyf__field textarea{resize:vertical;min-height:96px;padding-top:26px;}
.applyf__field label{position:absolute;left:16px;top:16px;color:rgba(255,255,255,.45);font-size:15px;pointer-events:none;transform-origin:left top;transition:transform .2s ease,color .2s ease;}
.applyf__field input:focus~label,.applyf__field input:not(:placeholder-shown)~label,.applyf__field textarea:focus~label,.applyf__field textarea:not(:placeholder-shown)~label{transform:translateY(-11px) scale(.74);color:#5fdcff;letter-spacing:.04em;}
.applyf__field input:focus,.applyf__field textarea:focus{outline:none;border-color:rgba(0,212,255,.55);background:rgba(0,16,46,.7);box-shadow:0 0 0 3px rgba(0,212,255,.12);}
.applyf__uline{position:absolute;left:12%;right:12%;bottom:0;height:2px;background:linear-gradient(90deg,transparent,#00d4ff,transparent);transform:scaleX(0);transition:transform .4s cubic-bezier(.2,.7,.2,1);}
.applyf__field input:focus~.applyf__uline,.applyf__field textarea:focus~.applyf__uline{transform:scaleX(1);}
.applyf__invalid{border-color:#ff4d6d !important;box-shadow:0 0 0 3px rgba(255,77,109,.18) !important;}
/* revenue chips — selectable glowing pills instead of a native dropdown */
.applyf__chips-label{display:block;font-size:12px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:rgba(255,255,255,.5);margin:0 0 10px;}
.applyf__chips{display:flex;flex-wrap:wrap;gap:9px;border-radius:14px;}
.applyf__chip{cursor:pointer;padding:11px 16px;border-radius:999px;border:1px solid rgba(120,180,255,.22);background:rgba(0,8,28,.55);color:rgba(255,255,255,.78);font:600 14px 'Funnel Display',sans-serif;transition:border-color .25s ease,background .25s ease,color .25s ease,box-shadow .25s ease,transform .25s ease;}
.applyf__chip:hover{border-color:rgba(0,212,255,.55);color:#fff;transform:translateY(-1px);box-shadow:0 6px 18px rgba(0,140,255,.18);}
.applyf__chip:focus-visible{outline:2px solid rgba(0,212,255,.7);outline-offset:2px;}
.applyf__chip.is-selected{background:linear-gradient(135deg,#6bd7fc,#0380f7);border-color:transparent;color:#001226;box-shadow:0 0 20px rgba(0,212,255,.45);}
/* invalid shake — tactile "nope" on the field that failed */
@keyframes af-shake{0%,100%{transform:none}20%{transform:translateX(-5px)}40%{transform:translateX(5px)}60%{transform:translateX(-3px)}80%{transform:translateX(3px)}}
.applyf__field.is-shake,.applyj__chat.is-shake,.applyj__chat-input.is-shake{animation:af-shake .4s ease;}
/* staggered field entrance per step */
@keyframes af-field-in{from{opacity:0;transform:translateY(12px);}to{opacity:1;transform:none;}}
.applyf__step--in .applyf__legend{animation:af-field-in .4s cubic-bezier(.2,.7,.2,1) both;}
.applyf__step--in .applyf__field{opacity:0;animation:af-field-in .5s cubic-bezier(.2,.7,.2,1) forwards;}
.applyf__step--in .applyf__field:nth-of-type(1){animation-delay:.07s;}
.applyf__step--in .applyf__field:nth-of-type(2){animation-delay:.15s;}
.applyf__step--in .applyf__field:nth-of-type(3){animation-delay:.23s;}
/* cursor-following inner glow (set via --af-mx/--af-my in apply-form.js) */
.applyf::after{content:'';position:absolute;inset:0;border-radius:22px;z-index:-1;opacity:0;transition:opacity .4s ease;background:radial-gradient(220px circle at var(--af-mx,50%) var(--af-my,50%),rgba(0,212,255,.10),transparent 70%);}
.applyf.is-lit::after{opacity:1;}
/* honeypot — off-screen, never seen by humans */
.applyf__hp{position:absolute;left:-9999px;width:1px;height:1px;opacity:0;pointer-events:none;}
/* visually hidden, still read by screen readers (step announcements in legends) */
.applyf__sr{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0;}
/* nav buttons */
.applyf__nav{display:flex;gap:12px;align-items:center;margin-top:28px;}
.applyf__btn{position:relative;overflow:hidden;flex:1;border:none;cursor:pointer;border-radius:12px;padding:16px 22px;font:700 16px 'Funnel Display',sans-serif;color:#00122b;background:linear-gradient(102deg,#d2f0fa,#6bd7fc 22%,#03bfff 43%,#0380f7 67%,#05448b);box-shadow:0 12px 32px rgba(3,128,247,.32);transition:transform .25s ease,box-shadow .25s ease,opacity .25s ease;}
.applyf__btn>span{position:relative;z-index:1;}
.applyf__btn::after{content:'';position:absolute;top:0;left:-60%;width:45%;height:100%;background:linear-gradient(100deg,transparent,rgba(255,255,255,.5),transparent);transform:skewX(-20deg);}
.applyf__btn:hover::after{animation:af-shine .85s ease;}
@keyframes af-shine{to{left:130%;}}
.applyf__btn[hidden]{display:none;}
.applyf__btn:hover{transform:translateY(-2px);box-shadow:0 18px 40px rgba(3,128,247,.42);}
.applyf__btn--ghost{flex:0 0 auto;background:none;color:rgba(255,255,255,.8);border:1px solid rgba(255,255,255,.18);box-shadow:none;}
.applyf__btn--ghost::after{display:none;}
.applyf__btn--ghost:hover{transform:none;border-color:rgba(0,212,255,.5);color:#fff;}
.applyf__btn.is-loading{opacity:.6;pointer-events:none;}
/* a nav button pops back in when it returns after being hidden */
.applyf__btn.is-navin{animation:applyj-navin .42s cubic-bezier(.2,.7,.3,1.35) both;}
@keyframes applyj-navin{from{opacity:0;transform:translateY(12px) scale(.9);}to{opacity:1;transform:none;}}
.applyf__arrow{display:inline-block;font-style:normal;margin-left:8px;transition:transform .3s cubic-bezier(.2,.7,.2,1);}
.applyf__btn:hover .applyf__arrow{transform:translateX(5px);}
.applyf__error{display:flex;align-items:center;gap:8px;margin-top:14px;margin-bottom:0;color:#ff8aa3;font-size:14px;animation:af-err-in .3s ease;}
.applyf__error[hidden]{display:none;}
.applyf__error::before{content:'!';flex:0 0 auto;width:16px;height:16px;border-radius:50%;background:rgba(255,77,109,.18);border:1px solid rgba(255,77,109,.55);display:grid;place-items:center;font-size:11px;font-weight:700;}
@keyframes af-err-in{from{opacity:0;transform:translateY(-4px);}to{opacity:1;transform:none;}}
.applyf__reassure{margin-top:18px;margin-bottom:0;color:rgba(255,255,255,.42);font-size:12.5px;text-align:center;}
@media (max-width:600px){.applyf{padding:26px 22px;}.applyf__node em{font-size:10px;}}
@media (prefers-reduced-motion:reduce){
  .applyf::before,.applyf__step--in,.applyf__field.is-shake,.applyj__chat.is-shake,.applyj__chat-input.is-shake,.applyf__error{animation:none;}
  .applyf__step--in .applyf__legend,.applyf__step--in .applyf__field{animation:none;opacity:1;}
  .applyf::after{display:none;}
  .applyf__track-fill{transition:none;}
}

/* ═══ Experience layer — ONLY when SR_USE_CUSTOM_FORM is on ═════════════════
   apply-form.js adds .applyx-on to <body> on its enabled path. Everything
   below is scoped to that class (or lives inside the always-hidden custom
   form), so the flag-off page stays pixel-identical. */
.applyx-eyebrow,.applyx-proof,.applyx-bignum,.applyx-start{display:none;}
/* ── embed/modal mode: only the journey, no page chrome, transparent so the
   pop-up panel provides the dark surface ── */
html.sr-embed,html.sr-embed body{height:auto;min-height:100%;background:transparent !important;}
html.sr-embed .navbar,html.sr-embed #sr-page-transition,html.sr-embed .apply-hero,html.sr-embed .apply-logos,html.sr-embed .apply-form-head,html.sr-embed .faqs-section,html.sr-embed .footer,html.sr-embed .footer-main{display:none !important;}
html.sr-embed main{padding:0;}
html.sr-embed .apply-form-section{min-height:100vh;min-height:100dvh;padding-top:16px;padding-bottom:24px;background:transparent !important;}
/* start CTA under the VSL — bridges video into the application */
.applyx-start-wrap{text-align:center;}
body.applyx-on .applyx-start{display:inline-flex;align-items:center;gap:10px;margin:28px auto 0;padding:15px 30px;border-radius:999px;font:700 16px 'Funnel Display',sans-serif;color:#00122b;text-decoration:none;background:linear-gradient(102deg,#d2f0fa,#6bd7fc 22%,#03bfff 43%,#0380f7 67%,#05448b);box-shadow:0 12px 34px rgba(3,128,247,.35);transition:transform .25s ease,box-shadow .25s ease;}
body.applyx-on .applyx-start:hover{transform:translateY(-2px);box-shadow:0 18px 44px rgba(3,128,247,.45),0 0 30px rgba(0,212,255,.35);}
body.applyx-on .applyx-start i{font-style:normal;transition:transform .3s cubic-bezier(.2,.7,.2,1);}
body.applyx-on .applyx-start:hover i{transform:translateY(3px);}
/* the form section becomes a full-viewport stage */
body.applyx-on .apply-form-section{position:relative;overflow:hidden;display:flex;align-items:center;min-height:100vh;min-height:100svh;padding-top:90px;padding-bottom:90px;}
body.applyx-on .apply-form-section>.container{position:relative;z-index:2;width:100%;}
/* woven threads, barely there — the homepage hero's "fabric" motif */
/* ambient glow orbs */
body.applyx-on .apply-form-section::after{content:'';position:absolute;inset:0;z-index:0;pointer-events:none;background:radial-gradient(560px 380px at 12% 18%,rgba(0,212,255,.10),transparent 70%),radial-gradient(640px 420px at 88% 82%,rgba(3,128,247,.12),transparent 70%);}
/* section header */
body.applyx-on .applyx-eyebrow{display:block;text-align:center;color:#00d4ff;font-size:13px;font-weight:800;letter-spacing:.16em;text-transform:uppercase;margin-bottom:16px;text-shadow:0 0 18px rgba(0,212,255,.5);}
body.applyx-on .apply-form-head{margin-bottom:36px;}
/* giant step numeral watermark behind the card */
body.applyx-on .applyx-bignum{display:block;position:absolute;z-index:1;right:2%;top:50%;transform:translateY(-50%);font-family:'Funnel Display',sans-serif;font-size:clamp(200px,24vw,330px);font-weight:800;line-height:1;color:transparent;-webkit-text-stroke:1.5px rgba(107,215,252,.11);pointer-events:none;user-select:none;animation:applyx-num-in .6s ease both;}
@keyframes applyx-num-in{from{opacity:0;transform:translateY(-46%);}to{opacity:1;transform:translateY(-50%);}}
/* ── journey shell: kill the card — the stage IS the canvas ── */
body.applyx-on .apply-form-shell{max-width:820px;}
body.applyx-on .applyf.applyj{background:none;border:none;box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none;border-radius:0;padding:0;}
body.applyx-on .applyf.applyj::before,body.applyx-on .applyf.applyj::after{display:none;}
.applyj__top{display:flex;align-items:center;gap:14px;max-width:640px;margin:0 auto 42px;}
/* telemetry blocks: the lit region slides over into each new stage's block */
.applyj__tele{display:flex;gap:6px;flex:1;}
.applyj__tele-b{position:relative;flex:1;height:6px;border-radius:3px;background:rgba(255,255,255,.08);overflow:hidden;transition:box-shadow .35s ease;}
.applyj__tele-b::before{content:'';position:absolute;inset:0;border-radius:3px;background:linear-gradient(90deg,#03bfff,#6bd7fc);transform:scaleX(0);transform-origin:left;transition:transform .5s cubic-bezier(.2,.7,.2,1);}
.applyj__tele-b.is-on{box-shadow:0 0 12px rgba(0,212,255,.55);}
.applyj__tele-b.is-on::before{transform:scaleX(1);}
/* (scan-shimmer stripes removed — the lit blocks stay clean and solid) */
.applyj__tele-b.is-active{animation:applyj-telepulse 2.4s ease-in-out infinite;}
@keyframes applyj-telepulse{0%,100%{box-shadow:0 0 10px rgba(0,212,255,.45);}50%{box-shadow:0 0 20px rgba(0,212,255,.85);}}
.applyj__count{font:700 13px 'Funnel Display',sans-serif;color:rgba(159,233,255,.7);letter-spacing:.08em;white-space:nowrap;}
/* stage layout: one big centered question, framed like an instrument panel.
   z-index lifts the steps' stacking context above the nav so overlays inside
   a stage (country menu) paint over the Back/Continue buttons. */
/* stable stage height: short stages (gauge/name/email/phone) no longer collapse
   the card, so the nav row stays put between stages instead of teleporting.
   Content centers vertically inside the reserved space. */
.applyj .applyf__steps{position:relative;z-index:5;max-width:640px;margin:0 auto;min-height:430px;display:flex;flex-direction:column;justify-content:center;}
.applyj .applyf__step{position:relative;padding:18px 6px 6px;--bk:22px;}
/* HUD corner brackets removed (Norman: the opposite-corner frame bits) */
.applyj .applyf__step::before,.applyj .applyf__step::after{display:none;}
/* breathing focus glow: shows where the journey wants you, steadies once you type */
.applyj .applyf__field input:focus,.applyj .applyf__field textarea:focus{animation:applyj-breathe 2.6s ease-in-out infinite;}
.applyj .applyf__field input:focus:not(:placeholder-shown),.applyj .applyf__field textarea:focus:not(:placeholder-shown){animation:none;}
@keyframes applyj-breathe{0%,100%{box-shadow:0 0 0 3px rgba(0,212,255,.12);}50%{box-shadow:0 0 0 3px rgba(0,212,255,.14),0 0 28px rgba(0,212,255,.3);}}
/* (upward filament particles removed — cleaner, more modern stage) */
/* border light sweep: the frame acknowledges each stage advance */
.applyj__frame{position:absolute;inset:10px;border-radius:18px;pointer-events:none;z-index:1;opacity:0;}
.applyj__frame.is-sweep{animation:applyj-sweepfade .9s ease forwards;}
.applyj__frame.is-sweep::before{content:'';position:absolute;inset:0;border-radius:18px;padding:1.5px;
  background:conic-gradient(from var(--af-angle),transparent 0deg,transparent 300deg,#00d4ff 336deg,rgba(0,212,255,0) 360deg);
  -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;
  animation:af-spin .9s cubic-bezier(.4,0,.2,1) 1;}
@keyframes applyj-sweepfade{0%{opacity:1;}75%{opacity:1;}100%{opacity:0;}}

.applyj .applyf__legend{display:block;width:100%;text-align:center;font-size:clamp(26px,3.4vw,40px);letter-spacing:-.01em;line-height:1.15;}
.applyj .applyf__hint{text-align:center;margin:-12px 0 30px;font-size:15.5px;}
.applyj .applyf__field{max-width:520px;margin-left:auto;margin-right:auto;}
.applyj__micro{text-align:center;color:rgba(255,255,255,.55);font-size:13px;margin:8px 0 0;}
.applyj .applyf__nav{max-width:520px;margin-left:auto;margin-right:auto;}
.applyj .applyf__error{justify-content:center;}
/* an unbroken personalized token (long name/niche) must wrap inside the card,
   not stretch the fieldset past it (fieldsets default to min-inline-size:min-content) */
.applyf__step{min-width:0;min-inline-size:0;}
.applyf__legend{overflow-wrap:anywhere;}
.applyf__hint{margin:-12px 0 24px;color:rgba(255,255,255,.55);font-size:14.5px;}
.applyf__step--in .applyf__hint{opacity:0;animation:af-field-in .5s cubic-bezier(.2,.7,.2,1) .04s forwards;}
/* ── niche arena tiles ── */
.applyj__tiles{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;}
.applyj__tile{cursor:pointer;padding:16px 12px;border-radius:14px;border:1px solid rgba(120,180,255,.22);background:rgba(0,8,28,.55);color:rgba(255,255,255,.82);font:600 14.5px 'Funnel Display',sans-serif;text-align:center;transition:border-color .25s ease,background .25s ease,color .25s ease,box-shadow .25s ease,transform .25s ease;}
.applyj__tile:not(.applyj__onode):hover{border-color:rgba(0,212,255,.55);color:#fff;transform:translateY(-2px);box-shadow:0 8px 22px rgba(0,140,255,.2);}
.applyj__tile:focus-visible{outline:2px solid rgba(0,212,255,.7);outline-offset:2px;}
.applyj__tile{position:relative;perspective:600px;}
/* 3D flip: front = sector name, back = its real stat face (numbers roll via JS) */
.applyj__tile-front,.applyj__tile-back{display:block;-webkit-backface-visibility:hidden;backface-visibility:hidden;transition:transform .55s cubic-bezier(.3,.7,.3,1);}
.applyj__tile-front{transform:rotateY(0);}
.applyj__tile-back{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;transform:rotateY(180deg);}
.applyj__tile-back b{font-size:19px;font-weight:800;line-height:1.1;}
.applyj__tile-back em{font-style:normal;font-size:10px;letter-spacing:.08em;text-transform:uppercase;opacity:.8;}
.applyj__tile.is-flipped .applyj__tile-front{transform:rotateY(-180deg);}
.applyj__tile.is-flipped .applyj__tile-back{transform:rotateY(0);}
.applyj__tile:not(.applyj__onode).is-selected{background:linear-gradient(135deg,#6bd7fc,#0380f7);border-color:transparent;color:#001226;box-shadow:0 0 24px rgba(0,212,255,.45);transform:translateY(-2px) scale(1.03);animation:applyj-pop .45s cubic-bezier(.2,.7,.3,1.4);}
.applyj__tile:not(.applyj__onode).is-selected::after{content:'';position:absolute;inset:-5px;border-radius:18px;border:2px solid rgba(0,212,255,.8);pointer-events:none;animation:applyj-ring .6s cubic-bezier(.2,.7,.3,1) forwards;}
/* the chosen one owns the stage — everything else steps back */
.applyj__tiles:not(.applyj__orbit).has-selection .applyj__tile:not(.is-selected){opacity:.4;filter:saturate(.5);transform:none;box-shadow:none;}
.applyj__tiles.has-selection .applyj__tile:not(.is-selected):hover{opacity:.9;filter:none;}
@keyframes applyj-pop{0%{transform:scale(.94);}55%{transform:scale(1.07);}100%{transform:translateY(-2px) scale(1.03);}}
@keyframes applyj-ring{from{opacity:1;transform:scale(.92);}to{opacity:0;transform:scale(1.25);}}
/* the catch-all spans the full last row — no orphan tile with dead cells */
.applyj__tile--other{border-style:dashed;grid-column:1/-1;}
.applyj__other{margin-top:14px;}
.applyj__stat{min-height:44px;margin:16px 0 0;text-align:center;color:#9fe9ff;font-size:14px;text-shadow:0 0 14px rgba(0,212,255,.35);}
.applyj__stat.is-typing::after{content:'▌';color:#00d4ff;margin-left:1px;animation:applyj-caret .7s steps(1) infinite;}
@keyframes applyj-caret{50%{opacity:0;}}
/* ── phone: country dial-code selector ── */
.applyj__phone{position:relative;}
.applyj__phone input[type="tel"]{padding-left:96px;}
.applyj__phone label{left:96px;}
.applyj__cc{position:absolute;left:8px;top:8px;bottom:8px;z-index:2;display:flex;align-items:center;gap:6px;padding:0 10px;border-radius:9px;border:1px solid rgba(120,180,255,.25);background:rgba(0,16,46,.8);color:#fff;cursor:pointer;font:600 14px 'Funnel Display',sans-serif;transition:border-color .25s ease,box-shadow .25s ease;}
.applyj__cc:hover,.applyj__cc[aria-expanded="true"]{border-color:rgba(0,212,255,.6);box-shadow:0 0 12px rgba(0,212,255,.25);}
.applyj__cc:focus-visible{outline:2px solid rgba(0,212,255,.7);outline-offset:2px;}
.applyj__cc-flag{font-size:16px;line-height:1;}
.applyj__cc i{font-style:normal;font-size:9px;color:rgba(255,255,255,.55);}
.applyj__cc-menu{position:absolute;z-index:30;left:0;top:calc(100% + 8px);width:min(320px,100%);border-radius:14px;border:1px solid rgba(0,212,255,.3);background:rgba(2,12,36,.99);box-shadow:0 24px 60px rgba(0,0,0,.6),0 0 30px rgba(0,160,255,.15);overflow:hidden;}
.applyj__cc-menu[hidden]{display:none;}
.applyj__cc-search{width:100%;padding:12px 14px;background:rgba(255,255,255,.05);border:none;border-bottom:1px solid rgba(255,255,255,.1);color:#fff;font:16px 'Funnel Display',sans-serif;}
.applyj__cc-search:focus{outline:none;background:rgba(255,255,255,.08);}
.applyj__cc-list{max-height:230px;overflow-y:auto;}
.applyj__cc-item{display:flex;align-items:center;gap:10px;width:100%;padding:10px 14px;background:none;border:none;color:rgba(255,255,255,.85);font:14px 'Funnel Display',sans-serif;cursor:pointer;text-align:left;opacity:0;animation:af-field-in .3s ease forwards;}
.applyj__cc-item:nth-child(-n+12){animation-delay:calc(var(--i,0)*.025s);}
.applyj__cc-item:hover,.applyj__cc-item.is-hi{background:rgba(0,212,255,.12);color:#fff;}
.applyj__cc-item b{margin-left:auto;color:rgba(159,233,255,.8);font-weight:600;}
/* validity stitch: seals under the field when the number reaches a valid length */
.applyj__phone.is-valid .applyf__uline{transform:scaleX(1);background:linear-gradient(90deg,transparent,#28c840,transparent);}
/* ── brand scan theater (mock browser window) ── */
.applyj__scan{max-width:520px;margin:18px auto 0;border-radius:14px;border:1px solid rgba(0,212,255,.25);background:rgba(0,10,32,.85);overflow:hidden;box-shadow:0 18px 50px rgba(0,0,0,.5),0 0 40px rgba(0,160,255,.12);}
.applyj__scan[hidden]{display:none;}
.applyj__scan-chrome{display:flex;align-items:center;gap:6px;padding:10px 12px;background:rgba(255,255,255,.05);border-bottom:1px solid rgba(255,255,255,.08);}
.applyj__scan-chrome i{width:10px;height:10px;border-radius:50%;}
.applyj__scan-chrome i:nth-child(1){background:#ff5f57;}.applyj__scan-chrome i:nth-child(2){background:#febc2e;}.applyj__scan-chrome i:nth-child(3){background:#28c840;}
.applyj__scan-url{display:flex;align-items:center;gap:8px;flex:1;min-width:0;margin-left:8px;padding:5px 12px;border-radius:999px;background:rgba(0,0,0,.35);color:rgba(255,255,255,.78);font-size:12.5px;}
.applyj__scan-url b{font-weight:600;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;}
.applyj__scan-fav{width:16px;height:16px;border-radius:4px;flex:0 0 auto;}
.applyj__scan-body{position:relative;padding:16px 18px 18px;overflow:hidden;}
/* faint analysis grid over the viewport while the scan runs */
.applyj__scan-body::before{content:'';position:absolute;inset:0;z-index:2;pointer-events:none;opacity:0;transition:opacity .45s ease .25s;
  background:repeating-linear-gradient(0deg,rgba(0,212,255,.05) 0 1px,transparent 1px 22px),repeating-linear-gradient(90deg,rgba(0,212,255,.05) 0 1px,transparent 1px 22px);}
.applyj__scan.is-run .applyj__scan-body::before{opacity:1;}
/* resolve line: lands after the last row ticks */
.applyj__scan-done{margin:10px 0 0;font:700 12.5px 'Funnel Display',sans-serif;letter-spacing:.08em;text-transform:uppercase;color:#9fe9ff;text-shadow:0 0 12px rgba(0,212,255,.45);opacity:0;}
.applyj__scan.is-run .applyj__scan-done{animation:af-field-in .4s ease 2s both;}
.applyj__scan-body::after{content:'';position:absolute;left:0;right:0;top:0;height:2px;z-index:3;background:linear-gradient(90deg,transparent,#00d4ff,transparent);opacity:0;}
.applyj__scan.is-run .applyj__scan-body::after{opacity:1;animation:applyj-scanline 2.8s ease-in-out forwards;}
@keyframes applyj-scanline{to{transform:translateY(170px);opacity:0;}}
/* live screenshot of their site — materializes behind the sweeping scanline:
   wiped in top-to-bottom while the exposure settles from hot to natural */
.applyj__scan-shot{display:block;width:100%;max-height:190px;object-fit:cover;object-position:top;border-radius:8px;margin-bottom:12px;opacity:0;}
/* reveal, then a slow Ken Burns drift — the site feels "under the lens" */
.applyj__scan-shot.is-loaded{opacity:1;animation:applyj-shot-reveal .95s cubic-bezier(.25,.7,.2,1) both,applyj-kenburns 5.5s ease-out .9s both;}
@keyframes applyj-kenburns{from{transform:scale(1);}to{transform:scale(1.09) translateY(-3.5%);}}
@keyframes applyj-shot-reveal{0%{clip-path:inset(0 0 100% 0);filter:brightness(2.4) saturate(.4);}55%{filter:brightness(1.2) saturate(.95);}100%{clip-path:inset(0 0 0 0);filter:none;}}
.applyj__scan-shot[hidden]{display:none;}
/* typing caret in the address bar */
.applyj__scan-caret{width:7px;height:13px;background:#00d4ff;margin-left:2px;flex:0 0 auto;opacity:0;}
.applyj__scan.is-run .applyj__scan-caret{opacity:1;animation:applyj-caret .6s steps(1) infinite;}
/* validity stitch (shared): seals green under a field once it reads valid */
.applyj__vwatch.is-valid .applyf__uline{transform:scaleX(1);background:linear-gradient(90deg,transparent,#28c840,transparent);}
/* thread pulse on stage advance */
.applyj__thread-fill.is-pulse{animation:applyj-threadpulse .5s ease;}
@keyframes applyj-threadpulse{40%{box-shadow:0 0 26px rgba(0,212,255,1),0 0 50px rgba(0,212,255,.5);}}
.applyj__scan-row{position:relative;display:flex;align-items:center;gap:10px;padding:6px 0;margin:0;color:rgba(255,255,255,.78);font-size:14px;opacity:0;}
/* check circles: the tick is PURE CSS GEOMETRY (a rotated border L) — never a
   font glyph, never an image. Font '✓' fell back to tofu/mush on Windows, and
   the data-URI SVG still rendered as a box on some setups. Borders cannot. */
.applyj__scan-row::before{content:'';flex:0 0 auto;width:18px;height:18px;border-radius:50%;border:1.5px solid rgba(0,212,255,.3);transition:border-color .2s ease;}
.applyj__scan-row::after{content:'';position:absolute;left:6.5px;top:50%;width:5px;height:9px;
  border-right:2px solid #7fe3ff;border-bottom:2px solid #7fe3ff;
  transform:translateY(-62%) rotate(42deg) scale(0);opacity:0;pointer-events:none;
  filter:drop-shadow(0 0 4px rgba(0,212,255,.7));}
.applyj__scan.is-run .applyj__scan-row{animation:af-field-in .35s ease forwards;}
.applyj__scan.is-run .applyj__scan-row:nth-child(1){animation-delay:.1s;}
.applyj__scan.is-run .applyj__scan-row:nth-child(2){animation-delay:.55s;}
.applyj__scan.is-run .applyj__scan-row:nth-child(3){animation-delay:1s;}
.applyj__scan.is-run .applyj__scan-row:nth-child(4){animation-delay:1.45s;}
.applyj__scan.is-run .applyj__scan-row::before{animation:applyj-stick .01s linear forwards,applyj-stickpop .38s cubic-bezier(.3,.7,.3,1.35);}
.applyj__scan.is-run .applyj__scan-row::after{animation:applyj-checkin .38s cubic-bezier(.3,.7,.3,1.35) forwards;}
.applyj__scan.is-run .applyj__scan-row:nth-child(1)::before{animation-delay:.5s,.5s;}
.applyj__scan.is-run .applyj__scan-row:nth-child(2)::before{animation-delay:.95s,.95s;}
.applyj__scan.is-run .applyj__scan-row:nth-child(3)::before{animation-delay:1.4s,1.4s;}
.applyj__scan.is-run .applyj__scan-row:nth-child(4)::before{animation-delay:1.85s,1.85s;}
.applyj__scan.is-run .applyj__scan-row:nth-child(1)::after{animation-delay:.5s;}
.applyj__scan.is-run .applyj__scan-row:nth-child(2)::after{animation-delay:.95s;}
.applyj__scan.is-run .applyj__scan-row:nth-child(3)::after{animation-delay:1.4s;}
.applyj__scan.is-run .applyj__scan-row:nth-child(4)::after{animation-delay:1.85s;}
@keyframes applyj-stick{to{border-color:rgba(0,212,255,.9);box-shadow:0 0 10px rgba(0,212,255,.35);}}
@keyframes applyj-stickpop{0%{transform:scale(1);}45%{transform:scale(1.35);}100%{transform:scale(1);}}
@keyframes applyj-checkin{0%{opacity:0;transform:translateY(-62%) rotate(42deg) scale(0);}45%{opacity:1;transform:translateY(-62%) rotate(42deg) scale(1.3);}100%{opacity:1;transform:translateY(-62%) rotate(42deg) scale(1);}}
/* ── revenue money burst ── */
.applyj__chipwrap{position:relative;}
/* ── budget rows: five clean ranges, tap to lock (restraint over gimmick) ── */
.applyj__gauge{outline:none;border-radius:16px;padding:6px;}
.applyj__gauge:focus-visible{outline:2px solid rgba(0,212,255,.7);outline-offset:4px;}
.applyj__rows{display:flex;flex-direction:column;gap:9px;max-width:440px;margin:0 auto;}
.applyj__gauge-seg{position:relative;display:flex;align-items:baseline;gap:8px;width:100%;padding:15px 20px;border-radius:13px;border:1px solid rgba(120,180,255,.2);background:rgba(0,8,28,.5);cursor:pointer;text-align:left;overflow:hidden;transition:border-color .2s ease,background .2s ease,box-shadow .2s ease,transform .2s ease;}
/* fill sweep: the charge pours left→right through every row up to yours.
   scaleX (not width) — width animation left a 1px seam against the radius
   clip on the right edge; transforms stay subpixel-clean. */
.applyj__gauge-seg::before{content:'';position:absolute;left:-1px;right:-1px;top:0;bottom:0;background:linear-gradient(90deg,rgba(3,128,247,.30),rgba(107,215,252,.12));transform:scaleX(0);transform-origin:left;transition:transform .28s cubic-bezier(.2,.7,.2,1);}
.applyj__gauge-seg b{position:relative;font:700 16.5px 'Funnel Display',sans-serif;color:rgba(255,255,255,.88);letter-spacing:.01em;}
.applyj__gauge-seg em{position:relative;font:500 12.5px 'Funnel Display',sans-serif;font-style:normal;color:rgba(255,255,255,.4);}
/* quiet state dot on the right — fills when the row is in the charge */
.applyj__gauge-seg::after{content:'';position:absolute;right:18px;top:50%;width:7px;height:7px;border-radius:50%;transform:translateY(-50%);border:1.5px solid rgba(120,180,255,.4);transition:background .2s ease,border-color .2s ease,box-shadow .2s ease;}
.applyj__gauge-seg.is-charged{border-color:rgba(0,212,255,.55);box-shadow:0 0 14px rgba(0,140,255,.16);}
.applyj__gauge-seg.is-charged::before{transform:scaleX(1);}
.applyj__gauge-seg.is-charged b{color:#fff;}
.applyj__gauge-seg.is-charged::after{border-color:rgba(0,212,255,.85);box-shadow:0 0 8px rgba(0,212,255,.5);}
.applyj__gauge-seg.is-locked{border-color:transparent;background:linear-gradient(102deg,#6bd7fc,#0380f7);box-shadow:0 0 26px rgba(0,212,255,.45);animation:applyj-pop .45s cubic-bezier(.2,.7,.3,1.4);}
.applyj__gauge-seg.is-locked::before{transform:scaleX(0);}
.applyj__gauge-seg.is-locked b{color:#001226;text-shadow:none;}
.applyj__gauge-seg.is-locked em{color:rgba(0,18,38,.6);}
.applyj__gauge-seg.is-locked::after{background:#001226;border-color:#001226;box-shadow:none;}
.applyj__gauge-seg:hover{border-color:rgba(0,212,255,.5);transform:translateX(3px);}
.applyj__burst{position:absolute;inset:0;pointer-events:none;}
.applyj__coin{position:absolute;font:800 17px 'Funnel Display',sans-serif;color:#6bd7fc;text-shadow:0 0 12px rgba(0,212,255,.8);pointer-events:none;opacity:0;animation:applyj-coin 1.1s cubic-bezier(.3,.6,.4,1) forwards;will-change:transform,opacity;}
/* toss up, hang, fall — reads as an arc instead of a radial spray */
@keyframes applyj-coin{0%{opacity:0;transform:translate(0,0) scale(.4) rotate(0deg);}12%{opacity:1;}55%{opacity:1;transform:translate(calc(var(--bx)*.65),var(--by)) scale(1.15) rotate(calc(var(--br)*.6));}100%{opacity:0;transform:translate(var(--bx),calc(var(--by)*.1)) scale(.9) rotate(var(--br));}}
/* proof under the card */
body.applyx-on .applyx-proof{display:block;margin:26px auto 0;text-align:center;color:rgba(255,255,255,.55);font-size:13.5px;letter-spacing:.02em;}
body.applyx-on .applyx-proof b{color:rgba(159,233,255,.85);font-weight:700;}
/* ── greeting interstitial ("Good to meet you, Sarah.") ──
   Overlays the steps area (absolute) instead of swapping with it, so the card
   never changes height — no recenter jump into and out of the beat. */
.applyj__greet{position:absolute;inset:0;z-index:6;display:grid;place-items:center;text-align:center;padding:20px 10px;transition:opacity .3s ease,transform .3s ease;}
.applyj__greet.is-out{opacity:0;transform:translateY(-8px);}
.applyj__greet[hidden]{display:none;}
.applyj__greet-txt{position:relative;display:inline-block;font:700 clamp(26px,3.4vw,40px) 'Funnel Display',sans-serif;color:#fff;text-shadow:0 0 24px rgba(0,212,255,.45);min-height:1.2em;}
.applyj__greet-txt em{font-style:normal;}
.applyj__greet-txt b{position:relative;color:#9fe9ff;}
.applyj__greet-txt .g-nm{text-decoration:none;}
.applyj__greet-txt.is-typing::after{content:'▌';color:#00d4ff;margin-left:2px;animation:applyj-caret .7s steps(1) infinite;}
/* stitch draws itself under the name once typing lands */
.applyj__greet-stitch{position:absolute;left:0;right:0;bottom:-9px;height:3px;border-radius:2px;font-style:normal;background:linear-gradient(90deg,transparent,#00d4ff 30%,#6bd7fc 70%,transparent);box-shadow:0 0 14px rgba(0,212,255,.8);transform:scaleX(0);transform-origin:left;transition:transform .38s cubic-bezier(.2,.7,.2,1);}
.applyj__greet-stitch.is-drawn{transform:scaleX(1);}
/* visibility (not display) keeps every box in layout — zero shift during the beat */
.applyf.is-greeting .applyf__step{visibility:hidden;}
.applyf.is-greeting .applyf__nav,.applyf.is-greeting .applyf__error{visibility:hidden;}
/* ── mission-directive strategist chat ── */
.applyj__chat{max-width:560px;margin:6px auto 0;text-align:left;}
.applyj__chat-log{display:flex;flex-direction:column;gap:10px;min-height:150px;max-height:290px;overflow-y:auto;padding:4px 2px;}
.applyj__chat-msg{max-width:82%;padding:11px 15px;border-radius:16px;font-size:15px;line-height:1.45;opacity:0;transform:translateY(8px);animation:applyj-chatin .32s cubic-bezier(.2,.7,.2,1) forwards;overflow-wrap:anywhere;}
@keyframes applyj-chatin{to{opacity:1;transform:none;}}
.applyj__chat-msg--ai{position:relative;align-self:flex-start;margin-left:36px;background:rgba(0,10,32,.85);border:1px solid rgba(0,212,255,.28);color:rgba(255,255,255,.9);border-bottom-left-radius:5px;box-shadow:0 6px 22px rgba(0,0,0,.35);}
/* the assistant's avatar sits with every one of its bubbles (incl. typing) */
.applyj__chat-msg--ai::before{content:'';position:absolute;left:-36px;bottom:0;width:26px;height:26px;border-radius:50%;border:1px solid rgba(0,212,255,.45);box-shadow:0 0 10px rgba(0,212,255,.25);background:rgba(0,16,44,.92) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%236bd7fc'%3E%3Ccircle cx='12' cy='8' r='4'/%3E%3Cpath d='M4 20c0-4 3.6-6.5 8-6.5s8 2.5 8 6.5v1H4z'/%3E%3C/svg%3E") center/14px 14px no-repeat;}
.applyj__chat-msg--user{align-self:flex-end;background:linear-gradient(135deg,#6bd7fc,#0380f7);color:#001226;font-weight:600;border-bottom-right-radius:5px;box-shadow:0 8px 24px rgba(3,128,247,.35);}
.applyj__chat-typing{display:inline-flex;gap:5px;align-items:center;padding:4px 2px;}
.applyj__chat-typing i{width:6px;height:6px;border-radius:50%;background:#6bd7fc;box-shadow:0 0 8px rgba(0,212,255,.7);animation:applyj-dot 1s ease-in-out infinite;}
.applyj__chat-typing i:nth-child(2){animation-delay:.15s;}
.applyj__chat-typing i:nth-child(3){animation-delay:.3s;}
@keyframes applyj-dot{30%{transform:translateY(-4px);}60%{transform:none;}}
.applyj__chat-chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px;}
.applyj__chat-chips[hidden]{display:none;}
.applyj__chat-chip{padding:10px 16px;border-radius:999px;border:1px solid rgba(0,212,255,.35);background:rgba(0,12,36,.6);color:#cfeeff;font:600 14px 'Funnel Display',sans-serif;cursor:pointer;transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease;opacity:0;animation:applyj-chatin .3s ease forwards;}
.applyj__chat-chip:nth-child(2){animation-delay:.06s;}
.applyj__chat-chip:nth-child(3){animation-delay:.12s;}
.applyj__chat-chip:nth-child(4){animation-delay:.18s;}
.applyj__chat-chip:hover{transform:translateY(-1px);border-color:rgba(0,212,255,.7);box-shadow:0 0 18px rgba(0,212,255,.25);}
.applyj__chat-chip:focus-visible{outline:2px solid rgba(0,212,255,.7);outline-offset:2px;}
/* ── number-key keycaps (Typeform-style 1–N select) — keyboard devices only ── */
@media (hover: hover) and (pointer: fine){
  /* budget rows: an injected <i> keycap (::before + ::after are already taken by
     the fill sweep + state dot), centered against the baseline-aligned row */
  .applyj__gauge-key{flex:0 0 auto;align-self:center;display:inline-flex;align-items:center;justify-content:center;
    width:21px;height:21px;border-radius:6px;border:1px solid rgba(120,180,255,.3);background:rgba(0,12,36,.6);
    color:rgba(159,233,255,.78);font:700 11px 'Funnel Display',sans-serif;line-height:1;position:relative;
    transition:border-color .2s ease,background .2s ease,color .2s ease;}
  .applyj__gauge-seg.is-charged .applyj__gauge-key{border-color:rgba(0,212,255,.5);color:#cdeeff;}
  .applyj__gauge-seg.is-locked .applyj__gauge-key{border-color:rgba(0,18,38,.28);background:rgba(0,18,38,.14);color:rgba(0,18,38,.72);}
  /* strategist mission chips: a counter keycap before the label */
  .applyj__chat-chips.is-keyed{counter-reset:chipkey;}
  .applyj__chat-chips.is-keyed .applyj__chat-chip::before{counter-increment:chipkey;content:counter(chipkey);
    display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;margin:-2px 7px 0 -2px;
    border-radius:5px;border:1px solid rgba(0,212,255,.32);background:rgba(0,12,36,.5);
    color:rgba(159,233,255,.72);font:700 10px 'Funnel Display',sans-serif;vertical-align:middle;}
}
.applyj__chat-row{display:flex;gap:8px;margin-top:12px;}
.applyj__chat-row[hidden]{display:none;}
/* 16px minimum: anything smaller makes iOS Safari zoom the page on focus */
.applyj__chat-input{flex:1;min-width:0;padding:13px 16px;border-radius:14px;border:1px solid rgba(0,212,255,.3);background:rgba(0,10,32,.75);color:#fff;font:16px 'Funnel Display',sans-serif;transition:border-color .2s ease,box-shadow .2s ease;}
.applyj__chat-input::placeholder{color:rgba(255,255,255,.35);}
.applyj__chat-input:focus{outline:none;border-color:rgba(0,212,255,.7);box-shadow:0 0 20px rgba(0,212,255,.18);}
.applyj__chat-send{flex:0 0 auto;width:48px;border:none;border-radius:14px;cursor:pointer;font-size:18px;color:#001226;background:linear-gradient(135deg,#6bd7fc,#0380f7);box-shadow:0 8px 22px rgba(3,128,247,.35);transition:transform .18s ease,box-shadow .18s ease;}
.applyj__chat-send:hover{transform:translateY(-1px);box-shadow:0 10px 26px rgba(3,128,247,.5);}
.applyj__chat-send:focus-visible{outline:2px solid rgba(0,212,255,.7);outline-offset:2px;}
/* (ambition meter / brief strip removed — the conversation is the only UI) */
/* "launch sequence" submit theater (lives inside the custom form) */
.applyf__building{text-align:center;padding:26px 6px 10px;}
.applyf__building[hidden]{display:none;}
.applyf.is-building .applyf__progress,.applyf.is-building .applyj__top,.applyf.is-building .applyf__steps,.applyf.is-building .applyf__nav,.applyf.is-building .applyf__error,.applyf.is-building .applyf__reassure{display:none;}
.applyf__building-ring{width:54px;height:54px;margin:0 auto 22px;border-radius:50%;background:conic-gradient(from 0deg,rgba(0,212,255,0) 0deg,#00d4ff 300deg,rgba(0,212,255,0) 360deg);-webkit-mask:radial-gradient(farthest-side,transparent 62%,#000 64%);mask:radial-gradient(farthest-side,transparent 62%,#000 64%);animation:applyx-spin 1.1s linear infinite;}
@keyframes applyx-spin{to{transform:rotate(360deg);}}
.applyf__building-title{font:700 22px 'Funnel Display',sans-serif;color:#fff;margin:0 0 20px;}
.applyf__building-list{list-style:none;margin:0 auto;padding:0;max-width:300px;text-align:left;}
.applyf__building-list li{position:relative;display:flex;align-items:center;gap:11px;padding:8px 0;color:rgba(255,255,255,.55);font-size:15.5px;opacity:0;transform:translateY(8px);transition:color .3s ease;overflow-wrap:anywhere;}
.applyf__building.is-run li{animation:applyx-row .45s cubic-bezier(.2,.7,.2,1) forwards;}
.applyf__building.is-run li:nth-child(1){animation-delay:.1s;}
.applyf__building.is-run li:nth-child(2){animation-delay:.5s;}
.applyf__building.is-run li:nth-child(3){animation-delay:.9s;}
@keyframes applyx-row{to{opacity:1;transform:none;}}
.applyf__building-list li::before{content:'';flex:0 0 auto;width:20px;height:20px;border-radius:50%;border:1.5px solid rgba(0,212,255,.35);transition:border-color .3s ease,box-shadow .3s ease;}
.applyf__building-list li.is-done{color:rgba(255,255,255,.92);}
.applyf__building-list li.is-done::before{border-color:rgba(0,212,255,.9);box-shadow:0 0 12px rgba(0,212,255,.35);animation:applyj-stickpop .38s cubic-bezier(.3,.7,.3,1.35);}
/* the tick itself: pure border geometry, flat line-work — no fill to go glossy */
.applyf__building-list li::after{content:'';position:absolute;left:7px;top:50%;width:5.5px;height:10px;
  border-right:2px solid #7fe3ff;border-bottom:2px solid #7fe3ff;
  transform:translateY(-62%) rotate(42deg) scale(0);opacity:0;pointer-events:none;
  filter:drop-shadow(0 0 4px rgba(0,212,255,.7));}
.applyf__building-list li.is-done::after{animation:applyj-checkin .38s cubic-bezier(.3,.7,.3,1.35) forwards;}
/* responsive + reduced motion for the experience layer */
@media (max-width:991px){
  body.applyx-on .applyx-bignum{display:none;}
}
@media (max-width:600px){
  body.applyx-on .apply-form-section{padding-top:64px;padding-bottom:64px;}
  body.applyx-on .applyx-start{margin-top:22px;padding:14px 26px;font-size:15px;}
  .applyj__tiles{grid-template-columns:repeat(2,1fr);gap:8px;}
  .applyj__tile{padding:14px 8px;font-size:13.5px;}
  .applyj .applyf__legend{font-size:24px;}
  .applyj__top{margin-bottom:32px;}
  .applyj__stat{min-height:63px;font-size:13px;}
  .applyj__gauge-seg{padding:13px 16px;}
  .applyj__gauge-seg b{font-size:15px;}
  .applyj__cc-menu{width:100%;}
  .applyj__chat-log{max-height:220px;min-height:120px;}
  .applyj__chat-msg{max-width:90%;font-size:14px;}
  .applyj .applyf__step{--bk:16px;}
  .applyj .applyf__steps{min-height:400px;}
}
@media (prefers-reduced-motion:reduce){
  body.applyx-on .applyx-bignum{animation:none;transform:translateY(-50%);}
  .applyf__building-ring{animation:none;}
  .applyf__building.is-run li{animation:none;opacity:1;transform:none;}
  .applyf__step--in .applyf__hint{animation:none;opacity:1;}
  .applyj__thread-fill{transition:none;}
  .applyj__thread-fill::after{transition:none;}
  .applyj__stat.is-in{animation:none;}
  .applyj__scan.is-run .applyj__scan-row{animation-duration:.01s;animation-delay:0s;}
  .applyj__scan.is-run .applyj__scan-row::before{animation-delay:0s;}
  .applyj__scan.is-run .applyj__scan-body::after{animation:none;opacity:0;}
  .applyj__scan-shot.is-loaded{animation:none;}
  .applyf__step.is-leaving{animation:none;display:none;}
  .applyj__tile.is-selected{transform:none;animation:none;}
  .applyj__tile.is-selected::after{animation:none;opacity:0;}
  .applyj__stat.is-typing::after{animation:none;content:'';}
  .applyj__tile-front,.applyj__tile-back{transition:none;}
  .applyj__scan-caret{animation:none;opacity:0;}
  .applyj__greet-txt.is-typing::after{animation:none;content:'';}
  .applyj__greet-stitch{transition:none;}
  .applyj__tele-b.is-active{animation:none;}
  .applyj__tele-b::before{transition:none;}
  .applyj__frame{display:none;}
  .applyj .applyf__field input:focus,.applyj .applyf__field textarea:focus{animation:none;}
  .applyf__step--in::before,.applyf__step--in::after{animation:none;}
  .applyj__gauge-seg::before{transition:none;}
  .applyj__gauge-seg.is-locked{animation:none;}
  .applyj__chat-msg,.applyj__chat-chip{animation:none;opacity:1;transform:none;}
  .applyj__chat-typing i{animation:none;}
  .applyj__cc-item{animation:none;opacity:1;}
}

/* ═══ Polish pass (frame-by-frame refinement) ══════════════════════════════ */
/* Chrome autofill on dark inputs: kill the white/yellow flash, keep our look */
.applyf__field input:-webkit-autofill,
.applyf__field input:-webkit-autofill:hover,
.applyf__field input:-webkit-autofill:focus,
.applyj__chat-input:-webkit-autofill{
  -webkit-text-fill-color:#fff;caret-color:#00d4ff;
  box-shadow:0 0 0 1000px rgba(0,16,46,.92) inset;
  transition:background-color 99999s ease-out;
}
/* brand-cyan caret + selection inside the journey */
.applyf input,.applyf textarea{caret-color:#00d4ff;}
.applyf ::selection{background:rgba(0,212,255,.35);color:#fff;}
/* touch feel: no gray tap flash, no double-tap zoom lag, no accidental text drag */
.applyf,.applyf *,.applyx-start{-webkit-tap-highlight-color:transparent;}
.applyj__tile,.applyj__gauge-seg,.applyj__chat-chip,.applyj__cc-item,.applyf__btn,.applyj__cc,.applyj__chat-send{touch-action:manipulation;user-select:none;-webkit-user-select:none;}
/* tactile press states — every interactive element gives back on push */
.applyf__btn:active{transform:translateY(0) scale(.985);}
.applyj__tile:not(.applyj__onode):active{transform:scale(.965);}
.applyj__tile:not(.applyj__onode).is-selected:active{transform:translateY(-2px) scale(1.0);}
.applyj__gauge-seg:active{transform:translateY(0) scale(.97);}
.applyj__chat-chip:active{transform:translateY(1px);}
.applyj__chat-send:active{transform:translateY(1px);}
.applyj__cc:active{transform:scale(.97);}
/* stage entrance: tiles + gauge segments cascade in (backwards-fill keeps their
   natural resting opacity, so the has-selection dim state is untouched) */
.applyf__step--in .applyj__tile:not(.applyj__onode){animation:af-field-in .45s cubic-bezier(.2,.7,.2,1) backwards;}
.applyf__step--in .applyj__tile:nth-child(1){animation-delay:.04s;}
.applyf__step--in .applyj__tile:nth-child(2){animation-delay:.07s;}
.applyf__step--in .applyj__tile:nth-child(3){animation-delay:.10s;}
.applyf__step--in .applyj__tile:nth-child(4){animation-delay:.13s;}
.applyf__step--in .applyj__tile:nth-child(5){animation-delay:.16s;}
.applyf__step--in .applyj__tile:nth-child(6){animation-delay:.19s;}
.applyf__step--in .applyj__tile:nth-child(7){animation-delay:.22s;}
.applyf__step--in .applyj__tile:nth-child(8){animation-delay:.25s;}
.applyf__step--in .applyj__tile:nth-child(9){animation-delay:.28s;}
.applyf__step--in .applyj__tile:nth-child(10){animation-delay:.31s;}
.applyf__step--in .applyj__tile:nth-child(11){animation-delay:.34s;}
.applyf__step--in .applyj__tile:nth-child(12){animation-delay:.37s;}
.applyf__step--in .applyj__tile:nth-child(13){animation-delay:.40s;}
.applyf__step--in .applyj__gauge-seg{animation:af-field-in .45s cubic-bezier(.2,.7,.2,1) backwards;}
.applyf__step--in .applyj__gauge-seg:nth-child(1){animation-delay:.06s;}
.applyf__step--in .applyj__gauge-seg:nth-child(2){animation-delay:.11s;}
.applyf__step--in .applyj__gauge-seg:nth-child(3){animation-delay:.16s;}
.applyf__step--in .applyj__gauge-seg:nth-child(4){animation-delay:.21s;}
.applyf__step--in .applyj__gauge-seg:nth-child(5){animation-delay:.26s;}
/* phone valid → the submit button quietly signals "go" */
.applyf.is-tel-valid .applyf__submit{animation:applyj-subready 2.4s ease-in-out infinite;}
@keyframes applyj-subready{
  0%,100%{box-shadow:0 12px 32px rgba(3,128,247,.32);}
  50%{box-shadow:0 12px 32px rgba(3,128,247,.4),0 0 30px rgba(0,212,255,.5);}
}
/* Continue reads as "not yet" while the strategist chat is unfinished */
.applyf.is-chatting .applyf__next{opacity:.5;box-shadow:none;}
.applyf.is-chatting .applyf__next:hover{opacity:.7;transform:none;}
/* slim brand scrollbars in the chat log + country list (Windows default is a slab) */
.applyj__chat-log,.applyj__cc-list{scrollbar-width:thin;scrollbar-color:rgba(0,212,255,.4) rgba(255,255,255,.06);}
.applyj__chat-log::-webkit-scrollbar,.applyj__cc-list::-webkit-scrollbar{width:6px;}
.applyj__chat-log::-webkit-scrollbar-thumb,.applyj__cc-list::-webkit-scrollbar-thumb{background:rgba(0,212,255,.35);border-radius:3px;}
.applyj__chat-log::-webkit-scrollbar-track,.applyj__cc-list::-webkit-scrollbar-track{background:rgba(255,255,255,.05);}
/* headline balance — no widowed last word on wrapped legends/headers */
.applyf__legend,.applyf__hint,.apply-form-head .heading-60,.apply-form-head .text-20{text-wrap:balance;}
@media (prefers-reduced-motion:reduce){
  .applyf__step--in .applyj__tile,.applyf__step--in .applyj__gauge-seg{animation:none;}
  .applyf.is-tel-valid .applyf__submit{animation:none;}
  .applyj__coin{display:none;}
}
/* the embed page's own scrollbar — dark + slim so it disappears into the panel
   (the default white slab was a bright strip down the modal's right edge) */
html.sr-embed{scrollbar-width:thin;scrollbar-color:rgba(0,212,255,.3) rgba(4,10,32,.9);}
html.sr-embed::-webkit-scrollbar{width:8px;}
html.sr-embed::-webkit-scrollbar-thumb{background:rgba(0,212,255,.3);border-radius:4px;}
html.sr-embed::-webkit-scrollbar-track{background:rgba(4,10,32,.9);}

/* ═══ Round 2: sector search-first + tier notes + scan resolve ═════════════ */
/* type-what-you-do search above the tiles — matching beats browsing */
.applyj__nichesearch{max-width:520px;margin:0 auto 14px;}
/* while searching (grid mode only): matches + the catch-all stay visible.
   The orbit handles searching by dimming instead — see the orbit section. */
.applyj__tiles:not(.applyj__orbit).is-searching .applyj__tile:not(.is-match):not(.applyj__tile--other){display:none;}
.applyj__tiles-more{display:block;margin:12px auto 0;background:none;border:none;cursor:pointer;color:rgba(159,233,255,.75);font:600 13px 'Funnel Display',sans-serif;letter-spacing:.05em;transition:color .2s ease;}
.applyj__tiles-more:hover{color:#fff;}
.applyj__tiles-more[hidden]{display:none;}
/* best match while typing — Enter selects it */
.applyj__tile:not(.applyj__onode).is-top{border-color:rgba(0,212,255,.7);box-shadow:0 0 20px rgba(0,140,255,.3);transform:translateY(-1px);}
@media (prefers-reduced-motion:reduce){
  .applyj__scan-shot.is-loaded{animation:none;opacity:1;}
  .applyj__scan.is-run .applyj__scan-done{animation:none;opacity:1;}
  .applyj__scan.is-run .applyj__scan-row::before{animation-duration:.01s,.01s;animation-delay:0s,0s;}
  .applyf__building-list li.is-done::before{animation:none;}
  .applyj__scan-body::before{transition:none;}
}

/* ═══ Round 3: the browser IS the input + scan-guessed sector ═════════════ */
/* stage 1: the scan window is the control — the real field lives in the bar */
.applyj__scan.is-bar{margin-top:0;}
.applyj__scan-url input{flex:1;min-width:0;background:none;border:none;outline:none;color:#fff;font:600 14px 'Funnel Display',sans-serif;padding:2px 0;caret-color:#00d4ff;}
.applyj__scan-url input::placeholder{color:rgba(255,255,255,.35);font-weight:500;}
.applyj__scan.is-bar .applyj__scan-chrome{padding:12px 14px;}
/* the whole window focuses as one instrument */
.applyj__scan.is-bar:focus-within{border-color:rgba(0,212,255,.55);box-shadow:0 18px 50px rgba(0,0,0,.5),0 0 0 3px rgba(0,212,255,.12),0 0 40px rgba(0,160,255,.16);}
.applyj__scan.is-bar:focus-within .applyj__scan-url{background:rgba(0,0,0,.5);}
.applyj__scan.is-bar:has(input.applyf__invalid){border-color:rgba(255,77,109,.7);box-shadow:0 0 0 3px rgba(255,77,109,.18);}
.applyj__scan.is-shake{animation:af-shake .4s ease;}
/* stage 2: the scan's verdict — confirm or correct */
.applyj__guess{max-width:520px;margin:6px auto 4px;text-align:center;}
.applyj__guess[hidden]{display:none;}
.applyj__guess-txt{margin:0 0 16px;font:500 16.5px 'Funnel Display',sans-serif;color:rgba(255,255,255,.8);}
.applyj__guess-txt .applyj__guess-brand{font-weight:700;color:#fff;}
.applyj__guess-txt .applyj__guess-arena{font-weight:800;background:linear-gradient(114deg,#d2f0fa,#6bd7fc 30%,#03bfff 60%,#0380f7);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;}
.applyj__guess-actions{display:flex;gap:10px;justify-content:center;}
.applyj__guess-actions .applyf__btn{flex:0 1 auto;padding:14px 26px;font-size:15px;}
@media (max-width:600px){
  .applyj__guess-actions{flex-direction:column;align-items:stretch;}
}
/* Webflow's global img{display:inline-block} defeats the hidden attribute —
   without this the empty favicon box ghosts in the address bar */
.applyj__scan-fav[hidden]{display:none;}
/* author display rules beat the hidden attribute — enforce it for the grid */
.applyj__tiles[hidden]{display:none;}

/* ═══ Elite pass: entry beat + constellation + mini dial + fit ════════════ */

/* ── entry beat: the mark revs awake, one line lands, journey begins ── */
.applyj__intro{position:absolute;inset:0;z-index:9;display:grid;place-content:center;justify-items:center;gap:6px;text-align:center;transition:opacity .3s ease;}
.applyj__intro[hidden]{display:none;}
.applyj__intro.is-out{opacity:0;}
.applyj__intro-dial{position:relative;width:120px;height:120px;margin-bottom:10px;filter:drop-shadow(0 4px 18px rgba(0,150,255,.45));}
.applyj__intro-arc,.applyj__intro-needle{position:absolute;inset:0;width:100%;height:100%;}
.applyj__intro-arc{opacity:0;animation:applyj-introarc .5s ease .15s forwards;}
@keyframes applyj-introarc{to{opacity:1;}}
.applyj__intro-needle{transform-origin:48.5% 70%;transform:rotate(-145deg);opacity:0;animation:applyj-introneedle .6s cubic-bezier(.34,.6,.4,1) .3s forwards;}
@keyframes applyj-introneedle{0%{transform:rotate(-145deg);opacity:0;}20%{opacity:1;}70%{transform:rotate(10deg);}100%{transform:rotate(0);opacity:1;}}
/* the line revs in word by word — each word snaps out of a motion streak
   (runIntro splits the sentence into spans with --wi indexes) */
.applyj__intro-line{margin:0;font:700 clamp(24px,3vw,32px) 'Funnel Display',sans-serif;color:#fff;}
.applyj__intro-line span{display:inline-block;opacity:0;transform:translateX(-16px) skewX(-10deg);filter:blur(4px);
  animation:applyj-wordrev .34s cubic-bezier(.2,.85,.25,1) forwards;animation-delay:calc(.42s + var(--wi,0)*.09s);}
@keyframes applyj-wordrev{60%{opacity:1;transform:translateX(2px) skewX(2deg);filter:blur(0);}100%{opacity:1;transform:none;filter:none;}}
.applyj__intro-sub{margin:0;font:500 13.5px 'Funnel Display',sans-serif;letter-spacing:.06em;color:rgba(159,233,255,.7);opacity:0;animation:af-field-in .45s cubic-bezier(.2,.7,.2,1) 1s forwards;}
/* (speed streaks behind the beat were cut — the word cascade carries it) */
/* journey chrome holds its space invisibly while the intro plays — no shift */
.applyf.is-intro .applyj__top,.applyf.is-intro .applyf__steps,.applyf.is-intro .applyf__nav,.applyf.is-intro .applyf__error,.applyf.is-intro .applyf__reassure{visibility:hidden;}

/* ── constellation: arenas orbit THEIR brand ── */
@property --spin{syntax:'<angle>';inherits:true;initial-value:0deg;}
/* soft-edge mask: only the ghost rim dissolves — the real nodes stay fully
   opaque (was 78%, which faded ring-b's actual pills) */
.applyj__orbit{position:relative;height:min(440px,52dvh);max-width:640px;margin:0 auto;overflow:hidden;
  -webkit-mask-image:radial-gradient(closest-side,#000 94%,transparent 100%);
  mask-image:radial-gradient(closest-side,#000 94%,transparent 100%);}
.applyj__orbit::before{content:'';position:absolute;left:50%;top:50%;width:240px;height:240px;transform:translate(-50%,-50%);border-radius:50%;background:radial-gradient(circle,rgba(0,140,255,.14),transparent 70%);pointer-events:none;}
/* faint orbital paths */
.applyj__orbit::after{content:'';position:absolute;left:50%;top:50%;width:280px;height:280px;transform:translate(-50%,-50%);border-radius:50%;border:1px solid rgba(0,212,255,.07);box-shadow:0 0 0 65px rgba(0,212,255,.045) inset;pointer-events:none;}
.applyj__orbit-ring,.applyj__orbit-ghosts{position:absolute;left:50%;top:50%;width:0;height:0;}
.applyj__orbit-ring--a{--r:140px;animation:applyj-spinvar 90s linear infinite;}
.applyj__orbit-ring--b{--r:205px;animation:applyj-spinvar 130s linear infinite reverse;}
.applyj__orbit-ghosts{--r:258px;animation:applyj-spinvar 170s linear infinite;}
@keyframes applyj-spinvar{from{--spin:0deg;}to{--spin:360deg;}}
/* typing / choosing freezes the sky so nothing swims under the cursor */
.applyj__orbit.is-searching .applyj__orbit-ring,.applyj__orbit.is-searching .applyj__orbit-ghosts,
.applyj__orbit.has-selection .applyj__orbit-ring,.applyj__orbit.has-selection .applyj__orbit-ghosts{animation-play-state:paused;}
/* nodes: positioned on the ring, pill stays upright (counter-rotation) */
.applyj__onode{position:absolute;left:0;top:0;margin:0;
  transform:translate(-50%,-50%) rotate(calc(var(--a) + var(--spin))) translateX(var(--r)) rotate(calc(-1 * (var(--a) + var(--spin))));
  padding:9px 14px;border-radius:999px;border:1px solid rgba(120,180,255,.28);background:rgba(2,10,32,.8);
  color:rgba(255,255,255,.85);font:600 13px 'Funnel Display',sans-serif;white-space:nowrap;cursor:pointer;
  transition:border-color .25s ease,color .25s ease,box-shadow .25s ease,opacity .3s ease,background .25s ease;}
.applyj__onode .applyj__onode-t{display:block;pointer-events:none;}
.applyj__onode:hover{border-color:rgba(0,212,255,.65);color:#fff;box-shadow:0 0 18px rgba(0,140,255,.35);z-index:5;}
.applyj__onode:focus-visible{outline:2px solid rgba(0,212,255,.7);outline-offset:2px;z-index:5;}
.applyj__orbit .applyj__tile.is-top{border-color:rgba(0,212,255,.9);color:#fff;background:rgba(0,26,60,.92);box-shadow:0 0 26px rgba(0,140,255,.55);z-index:6;}
.applyj__orbit.is-searching .applyj__tile:not(.is-match){opacity:.12;}
.applyj__orbit.has-selection .applyj__tile:not(.is-selected){opacity:.12;}
.applyj__orbit .applyj__onode.is-selected{opacity:0;pointer-events:none;}
/* ghost niches — the open universe */
.applyj__orbit-ghosts span{position:absolute;left:0;top:0;
  transform:translate(-50%,-50%) rotate(calc(var(--a) + var(--spin))) translateX(var(--r)) rotate(calc(-1 * (var(--a) + var(--spin))));
  font:500 12px 'Funnel Display',sans-serif;color:rgba(159,233,255,.26);white-space:nowrap;pointer-events:none;}
.applyj__orbit-ghosts i{position:absolute;left:0;top:0;transform:translate(120px,168px);font:600 12px 'Funnel Display',sans-serif;font-style:normal;color:rgba(159,233,255,.4);white-space:nowrap;pointer-events:none;}
/* center: their brand */
.applyj__orbit-center{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);z-index:3;display:flex;align-items:center;gap:8px;max-width:220px;padding:10px 16px;border-radius:999px;border:1px solid rgba(0,212,255,.4);background:rgba(2,12,36,.94);box-shadow:0 0 30px rgba(0,140,255,.28);}
.applyj__orbit-fav{width:18px;height:18px;border-radius:5px;flex:0 0 auto;}
.applyj__orbit-fav[hidden]{display:none;}
.applyj__orbit-brand{font:700 14px 'Funnel Display',sans-serif;color:#fff;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
/* the docked pick (FLIP target) */
.applyj__orbit-pick{position:absolute;left:50%;top:50%;z-index:4;display:flex;flex-direction:column;align-items:center;gap:1px;padding:10px 18px;border-radius:14px;background:linear-gradient(135deg,#6bd7fc,#0380f7);color:#001226;box-shadow:0 0 26px rgba(0,212,255,.5);transform:translate(-50%,calc(-50% + 46px));transition:transform .5s cubic-bezier(.2,.7,.3,1.2),opacity .25s ease;}
.applyj__orbit-pick[hidden]{display:none;}
.applyj__orbit-pick b{font:800 15px 'Funnel Display',sans-serif;white-space:nowrap;}
.applyj__orbit-pick em{font:600 10.5px 'Funnel Display',sans-serif;font-style:normal;letter-spacing:.06em;text-transform:uppercase;opacity:.85;white-space:nowrap;}
/* scene entrance */
.applyf__step--in .applyj__orbit{animation:af-field-in .5s cubic-bezier(.2,.7,.2,1) backwards;animation-delay:.05s;}

/* ── device system: the roadmap email + the contact card ── */
/* mail compose: same window language as the stage-1 browser — the family look */
.applyj__mail{max-width:520px;margin:6px auto 0;border-radius:14px;border:1px solid rgba(0,212,255,.25);background:rgba(0,10,32,.85);overflow:hidden;box-shadow:0 18px 50px rgba(0,0,0,.5),0 0 40px rgba(0,160,255,.12);text-align:left;}
.applyj__mail-bar{display:flex;align-items:center;gap:6px;padding:11px 14px;background:rgba(255,255,255,.05);border-bottom:1px solid rgba(255,255,255,.08);}
.applyj__mail-bar i{width:10px;height:10px;border-radius:50%;}
.applyj__mail-bar i:nth-child(1){background:#ff5f57;}.applyj__mail-bar i:nth-child(2){background:#febc2e;}.applyj__mail-bar i:nth-child(3){background:#28c840;}
.applyj__mail-bar span{margin-left:8px;font:600 12.5px 'Funnel Display',sans-serif;color:rgba(255,255,255,.6);letter-spacing:.03em;}
.applyj__mail-row{display:flex;align-items:center;gap:10px;padding:11px 16px;border-bottom:1px solid rgba(255,255,255,.07);}
.applyj__mail-row em{flex:0 0 auto;font:600 13px 'Funnel Display',sans-serif;font-style:normal;color:rgba(255,255,255,.4);}
.applyj__mail-subject{font:600 14px 'Funnel Display',sans-serif;color:rgba(255,255,255,.85);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.applyj__mail-field{flex:1;min-width:0;margin:0;}
.applyj__mail-field input{background:none;border:none;border-radius:0;padding:6px 0;font:600 15.5px 'Funnel Display',sans-serif;box-shadow:none;}
.applyj__mail-field input:focus{background:none;border:none;box-shadow:none;animation:none;}
.applyj__mail-field .applyf__uline{left:0;right:0;}
.applyj__mail-to:focus-within{background:rgba(0,212,255,.04);}
/* faint unwritten body — the roadmap that gets written after the call */
.applyj__mail-body{display:flex;flex-direction:column;gap:9px;padding:16px;}
.applyj__mail-body i{height:7px;border-radius:4px;background:rgba(255,255,255,.06);}
.applyj__mail-body i:nth-child(2){width:84%;}
.applyj__mail-body i:nth-child(3){width:58%;}
/* contact card: their number, saved into the strategist's phone */
.applyj__phonecard{max-width:520px;margin:6px auto 0;border-radius:14px;border:1px solid rgba(0,212,255,.25);background:rgba(0,10,32,.85);box-shadow:0 18px 50px rgba(0,0,0,.5),0 0 40px rgba(0,160,255,.12);padding:16px 16px 12px;text-align:left;}
.applyj__phonecard-head{display:flex;align-items:center;gap:12px;margin-bottom:14px;}
.applyj__phonecard-ava{flex:0 0 auto;width:44px;height:44px;border-radius:50%;display:grid;place-items:center;font:800 19px 'Funnel Display',sans-serif;color:#001226;background:linear-gradient(135deg,#6bd7fc,#0380f7);box-shadow:0 0 18px rgba(0,212,255,.35);}
.applyj__phonecard-id{display:flex;flex-direction:column;gap:1px;min-width:0;}
.applyj__phonecard-id b{font:700 15.5px 'Funnel Display',sans-serif;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.applyj__phonecard-id em{font:500 12px 'Funnel Display',sans-serif;font-style:normal;color:rgba(255,255,255,.45);}
.applyj__phonecard .applyj__phone{margin-bottom:0;}
.applyj__phonecard-actions{display:flex;gap:8px;margin-top:12px;}
.applyj__phonecard-actions span{flex:1;text-align:center;padding:7px 0;border-radius:9px;border:1px solid rgba(120,180,255,.14);background:rgba(255,255,255,.03);font:600 11.5px 'Funnel Display',sans-serif;color:rgba(255,255,255,.35);letter-spacing:.04em;}

/* ── mobile dial pad: tap the number in, no OS keyboard (touch only) ── */
.applyj__dialpad{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:14px 0 2px;}
.applyj__dialkey{appearance:none;-webkit-appearance:none;border:1px solid rgba(120,180,255,.22);background:rgba(0,10,32,.55);
  color:#eaf6ff;font:600 22px 'Funnel Display',sans-serif;border-radius:13px;padding:11px 0;min-height:48px;cursor:pointer;
  display:flex;align-items:center;justify-content:center;-webkit-tap-highlight-color:transparent;user-select:none;
  transition:background .12s ease,border-color .12s ease,transform .07s ease;}
.applyj__dialkey:active{background:linear-gradient(135deg,rgba(107,215,252,.3),rgba(3,128,247,.22));border-color:rgba(0,212,255,.6);transform:scale(.95);}
.applyj__dialkey--back{color:rgba(159,233,255,.82);}
.applyj__dialkey--ghost{border:none;background:none;pointer-events:none;min-height:0;}
/* the decorative Call/Message/Video row yields its space to the pad on touch */
@media (pointer: coarse){.applyj__phonecard-actions{display:none;}}
/* belt-and-braces: never render the pad on a mouse-primary device */
@media (hover: hover) and (pointer: fine){.applyj__dialpad{display:none;}}
@media (max-height:560px){.applyj__dialkey{min-height:40px;padding:7px 0;font-size:19px;}.applyj__dialpad{gap:6px;margin-top:10px;}}

/* ── never-scrollable pop-up: hard fit ── */
html.sr-embed,html.sr-embed body{overflow:hidden;}
html.sr-embed .applyj .applyf__steps{min-height:380px;}
html.sr-embed .applyj__scan-shot{max-height:min(190px,24dvh);}
html.sr-embed .applyj__chat-log{max-height:min(290px,calc(100dvh - 430px));min-height:120px;}
html.sr-embed .applyj__orbit{height:min(400px,calc(100dvh - 330px));}
/* desktop pop-up: the orbit box is only ~300px tall (its dvh height is capped by
   the layout, and dvh is unreliable inside the iframe), so pull the ring radii IN
   to fit — the default 205/258 overran it and the pills clipped/faded at the
   frame. Scoped >600px so the narrower mobile radii below still win on phones. */
@media (min-width:601px){
  html.sr-embed .applyj__orbit-ring--a{--r:88px;}
  html.sr-embed .applyj__orbit-ring--b{--r:132px;}
  html.sr-embed .applyj__orbit-ghosts{--r:168px;}
}
@media (max-height:520px){html.sr-embed,html.sr-embed body{overflow:auto;}}

@media (max-width:600px){
  .applyj__orbit{height:min(360px,50dvh);}
  .applyj__orbit-ring--a{--r:104px;}
  .applyj__orbit-ring--b{--r:152px;}
  .applyj__orbit-ghosts{--r:192px;}
  .applyj__onode{padding:7px 11px;font-size:12px;}
  .applyj__orbit-center{max-width:150px;padding:8px 12px;}
  .applyj__orbit-ghosts i{transform:translate(84px,132px);}
}
@media (prefers-reduced-motion:reduce){
  .applyj__orbit-ring--a,.applyj__orbit-ring--b,.applyj__orbit-ghosts{animation:none;}
  .applyj__intro-arc,.applyj__intro-needle,.applyj__intro-line span,.applyj__intro-sub{animation:none;opacity:1;transform:none;filter:none;}
  .applyj__orbit-pick{transition:opacity .2s ease;}
  .applyf__step--in .applyj__orbit{animation:none;}
}
@media (max-width:600px){
  /* orbit: pull ring B + ghosts in so pills never clip at the frame edge */
  .applyj__orbit-ring--b{--r:138px;}
  .applyj__orbit-ghosts{--r:176px;}
  .applyj__nichesearch label{font-size:12.5px;}
}
/* embed-mobile fit: the pop-up must NEVER scroll — the chat stage (log +
   suggestion chips + brief strip) outgrew 812px, and the site's max-600
   section padding (64px, later in source) was beating the embed's slim
   padding on the specificity tie. These land later, so they win. */
@media (max-width:600px){
  html.sr-embed .apply-form-section{padding-top:12px;padding-bottom:16px;}
  html.sr-embed .applyj__top{margin-bottom:20px;}
  html.sr-embed .applyj .applyf__nav{margin-top:16px;}
  html.sr-embed .applyf__reassure{display:none;}
  html.sr-embed .applyj__chat-log{max-height:min(220px,calc(100dvh - 560px));}
  html.sr-embed .applyj__chat-chips{margin-top:8px;gap:6px;}
  html.sr-embed .applyj__chat-chip{padding:8px 12px;font-size:13px;}
  html.sr-embed .applyj .applyf__hint{margin-bottom:20px;}
  html.sr-embed .applyj .applyf__steps{min-height:340px;}
}
/* "No website yet" bypass under the scan bar — quiet, but findable */
.applyj__nosite{display:block;margin:14px auto 0;background:none;border:none;cursor:pointer;color:rgba(255,255,255,.42);font:500 13px 'Funnel Display',sans-serif;transition:color .2s ease;}
.applyj__nosite b{font-weight:600;color:rgba(159,233,255,.75);transition:color .2s ease;}
.applyj__nosite:hover,.applyj__nosite:hover b{color:#fff;}
.applyj__nosite:focus-visible{outline:2px solid rgba(0,212,255,.7);outline-offset:2px;border-radius:6px;}
/* iOS-iframe centering fix: viewport units inside an iframe resolve against
   the TOP page's viewport on iOS, so the section's 100vh/100dvh over-measured
   and flex-centering shoved the journey into the lower third. Percentages
   resolve against the frame's own box — reliable everywhere. (Late in source
   on purpose: it must beat the earlier vh rules on the specificity tie.) */
html.sr-embed,html.sr-embed body,html.sr-embed main{height:100%;}
html.sr-embed .apply-form-section{min-height:100%;height:100%;}
/* Webflow's ≤479px breakpoint sets .container{margin-top:auto}, which in the
   journey's flex-centered section absorbs all free space above and pins the
   whole application to the bottom (Norman's iOS "lower third"). Neutralize
   for the journey only — the flag-off page keeps stock Webflow behavior. */
body.applyx-on .apply-form-section > .container{margin-top:0;margin-bottom:0;}
/* ── keyboard up (html.sr-kbd, touch devices): strip chrome, compact the
   stage — the field + question sit above the keys, Enter/Go advances ── */
html.sr-kbd .applyj .applyf__nav{display:none;}
html.sr-kbd .applyf__reassure{display:none;}
html.sr-kbd .applyj__top{display:none;}
html.sr-kbd .applyj .applyf__hint{display:none;}
html.sr-kbd .applyj .applyf__legend{font-size:20px;margin-bottom:12px;}
html.sr-kbd .applyj .applyf__steps{min-height:0;}
html.sr-kbd .apply-form-section{padding-top:10px;padding-bottom:10px;}
html.sr-kbd .applyj__chat-log{max-height:170px;min-height:80px;}
html.sr-kbd .applyj__micro{display:none;}
html.sr-kbd .applyj__orbit{height:min(300px,42dvh);}
/* ── constant frame ──────────────────────────────────────────────────────
   1) Pop-up: the stage area is IDENTICAL on every question. The form is a
   flex column filling the panel; steps take the exact leftover; each stage
   centers inside it. No more frame-shift between questions. */
html.sr-embed .apply-form-section > .container{height:100%;}
html.sr-embed .apply-form-shell{height:100%;}
html.sr-embed .applyf.applyj{display:flex;flex-direction:column;height:100%;}
html.sr-embed .applyj .applyf__steps{flex:1 1 auto;min-height:0;}
/* 2) Chat: fixed-height column — the log flexes and scrolls INSIDE it, so
   arriving messages and appearing chips/input never resize the frame. */
.applyj__chat{display:flex;flex-direction:column;width:100%;height:400px;}
.applyj__chat-log{flex:1 1 auto;min-height:0;max-height:none;}
html.sr-embed .applyj__chat-log{max-height:none;}
@media (max-width:600px){
  .applyj__chat{height:340px;}
}
/* keyboard up: the chat column compacts but stays a fixed box */
html.sr-kbd .applyj__chat{height:250px;}
html.sr-kbd .applyj__chat-log{max-height:none;min-height:0;}
/* ── transition fix: the LEAVING stage must actually leave the flow.
   `.applyj .applyf__step{position:relative}` tied and beat the base
   `.is-leaving{position:absolute}` rule (source order), so the outgoing stage
   kept its layout slot — the incoming one rendered shoved off-center, then
   snapped when the leaver was removed. Winning specificity + full-box
   centering so the ghost fades out from exactly where it stood. ── */
.applyj .applyf__step.is-leaving{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:center;}
/* (chat auto-scroll pins instantly — smooth scroll-behavior turned each pin
   into a cancellable animation that reflows kept interrupting) */
/* scan theater owns the stage: while it runs, the (disabled) Continue button
   and the moot "No website?" skip are hidden — the tall scan window (live
   screenshot) was overflowing the constant-frame region and colliding with
   them. Nav returns on auto-advance; the skip is only for pre-scan anyway. */
.applyj:has(.applyj__scan.is-run) .applyf__nav{display:none;}
.applyf__step:has(.applyj__scan.is-run) .applyj__nosite{display:none;}
/* the constellation's box overflows over the nav on short frames — clicks in
   its empty (masked-transparent) region were landing on the orbit instead of
   the Back/Continue buttons beneath. Pass the box through; only the arena
   nodes stay interactive (the center chip, ghosts, rings are decorative). */
.applyj__orbit{pointer-events:none;}
.applyj__onode{pointer-events:auto;}
/* pop-up vertical budget: the orbit stage overflowed its region onto the nav
   (which ate the Back tap). Reclaim every non-essential px so the tallest
   stage fits: drop marketing chrome (proof/reassure), trim top padding +
   topbar margin, and cap the orbit + legend to the real space. */
html.sr-embed .applyx-proof{display:none;}
html.sr-embed .applyf__reassure{display:none;}
html.sr-embed .apply-form-section{padding-top:8px;padding-bottom:8px;}
html.sr-embed .applyj__top{margin-bottom:18px;}
html.sr-embed .applyj .applyf__legend{font-size:clamp(21px,3vw,27px);margin-bottom:14px;}
html.sr-embed .applyj .applyf__hint{margin-bottom:16px;}
html.sr-embed .applyj__orbit{height:min(340px,calc(100dvh - 360px));}
/* ── between-question TLC: the depth-zoom lost its punch under the layout
   reworks. Redefine the keyframes (last-wins) with more scale + a directional
   push + stronger blur, so forward feels like moving deeper and back reverses
   it — a real transition, not a soft crossfade. Transforms only = no layout
   impact, no overflow risk. */
.applyf__step--in{animation:af-zoom-in .56s cubic-bezier(.2,.75,.2,1) both;}
.applyf__step--in.is-back{animation-name:af-zoom-back;}
.applyf__step.is-leaving{animation:af-zoom-out .4s cubic-bezier(.4,0,.7,.2) both;}
.applyf__step.is-leaving.is-back{animation-name:af-zoom-outback;}
@keyframes af-zoom-in{0%{opacity:0;transform:scale(.9) translateY(16px);filter:blur(9px);}55%{opacity:1;}100%{opacity:1;transform:none;filter:none;}}
@keyframes af-zoom-back{0%{opacity:0;transform:scale(1.09) translateY(-14px);filter:blur(9px);}55%{opacity:1;}100%{opacity:1;transform:none;filter:none;}}
@keyframes af-zoom-out{0%{opacity:1;transform:none;filter:none;}100%{opacity:0;transform:scale(1.12) translateY(-10px);filter:blur(10px);}}
@keyframes af-zoom-outback{0%{opacity:1;transform:none;filter:none;}100%{opacity:0;transform:scale(.86) translateY(12px);filter:blur(10px);}}
@media (prefers-reduced-motion:reduce){
  .applyf__step--in,.applyf__step.is-leaving{animation:none;}
}
/* ── custom niche joins the constellation ── */
/* a typed-but-unlisted niche births as a node at the top of the orbit, glows,
   then docks. Fixed near top-center (overrides the ring-orbit transform) so
   the birth reads cleanly; long text ellipsizes so the pill never blows out. */
.applyj__onode--custom{left:50%;top:20%;max-width:78%;
  transform:translate(-50%,-50%);
  border-color:rgba(0,212,255,.95);color:#fff;background:rgba(0,26,60,.94);
  box-shadow:0 0 30px rgba(0,150,255,.6);z-index:8;pointer-events:none;}
.applyj__onode--custom .applyj__onode-t{overflow:hidden;text-overflow:ellipsis;max-width:100%;}
.applyj__onode--custom.is-born{animation:applyj-nodeborn .6s cubic-bezier(.2,.7,.3,1.5) both;}
@keyframes applyj-nodeborn{0%{opacity:0;transform:translate(-50%,-50%) scale(0);}
  55%{opacity:1;transform:translate(-50%,-50%) scale(1.18);}
  100%{opacity:1;transform:translate(-50%,-50%) scale(1);}}
/* the halo pulse that says "we've got you" */
.applyj__onode--custom.is-born::after{content:'';position:absolute;inset:-6px;border-radius:999px;
  border:2px solid rgba(0,212,255,.7);opacity:0;pointer-events:none;
  animation:applyj-nodering .6s cubic-bezier(.2,.7,.3,1) .1s;}
@keyframes applyj-nodering{0%{opacity:.9;transform:scale(.85);}100%{opacity:0;transform:scale(1.5);}}
.applyj__orbit .applyj__onode--custom.is-selected{opacity:0;transition:opacity .3s ease;}
@media (prefers-reduced-motion:reduce){
  .applyj__onode--custom.is-born{animation:none;}
  .applyj__onode--custom.is-born::after{animation:none;}
}
