body.hs-rank{--wrap: 1180px;--map: #EEF1F3;--park: #CDE7C9;--water: #BFDCF2;--plate: rgba(255, 255, 255, .96);--z-stage: 0;--z-copy: 1;--z-panel: 2;--z-center: 2;--z-legend: 5;background:var(--map)}.intro{position:relative;z-index:var(--z-panel);background:#fffffff0;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border-bottom:2px solid var(--ink);padding:calc(var(--nav-h) + 56px) 0 44px}.intro .grid{display:grid;grid-template-columns:1.15fr .85fr;gap:24px 56px;align-items:end}.intro h1{font-size:clamp(2.4rem,6vw,5rem)}.intro p.lede{font-size:clamp(17px,1.3vw,20px);color:var(--text);max-width:58ch;margin-top:18px}.intro .hint{font-size:14px;color:#5d5a8a;margin-top:14px;display:flex;align-items:center;gap:8px}.intro .hint svg{width:16px;height:16px}@media(max-width:900px){.intro{padding:calc(var(--nav-h) + 32px) 0 28px}.intro .grid{grid-template-columns:1fr;min-width:0}.intro h1{font-size:clamp(1.75rem,8vw,2.4rem);overflow-wrap:anywhere}.intro p.lede{max-width:100%;overflow-wrap:anywhere}}.stage{position:fixed;top:0;right:0;bottom:0;left:0;z-index:var(--z-stage);overflow:hidden;background:var(--map)}.stage:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:var(--ink);opacity:0;transition:opacity .5s var(--ease);pointer-events:none}.stage.dim:after{opacity:.55}.map{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;display:block}.polaroid text,.proof text,#L4 text,.pack-label{font-family:var(--font)}.city-label{font-size:34px;font-weight:800;fill:var(--ink);letter-spacing:-.02em}.city-label-sub{font-size:16px;font-weight:500;fill:#5b6470;letter-spacing:.5px}.glow{opacity:0;transform-box:fill-box;transform-origin:center;animation:hs-glow 2.4s ease-out infinite}@keyframes hs-glow{0%{transform:scale(.6);stroke-opacity:.9}to{transform:scale(1.6);stroke-opacity:0}}html.reduce .glow{animation:none;stroke-opacity:.6;opacity:1}.polaroid,.proof,.plate,.you-card,.ring-label{transform-box:border-box;--r: 0 }.polaroid>rect,.proof>rect{transform:rotate(0)}.copy{position:fixed;top:0;right:0;bottom:0;left:0;z-index:var(--z-copy);pointer-events:none}.leg{position:absolute;pointer-events:auto;max-width:min(520px,calc(100vw - 32px));opacity:1}.plate{background:var(--plate);border:2px solid var(--ink);border-radius:22px;padding:26px 28px;box-shadow:6px 6px 0 var(--ink)}.leg h2{font-size:clamp(28px,3.2vw,44px)}.leg p{color:var(--text);max-width:62ch;margin-top:12px}.leg ul.roi,.leg ul.pts{margin:14px 0 0;padding:0;list-style:none;display:grid;gap:8px}.leg ul.roi li,.leg ul.pts li{display:flex;gap:10px;align-items:center;font-weight:600;color:var(--ink);font-size:15.5px}.leg ul.roi li:before,.leg ul.pts li:before{content:"✓";display:inline-grid;place-items:center;width:22px;height:22px;border-radius:50%;background:var(--green);color:#fff;flex:none;font-size:13px;font-weight:800}.leg .actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:18px}.leg .mark{white-space:normal}.qchip{margin-top:14px;display:inline-flex;align-items:center;gap:10px;background:#fff;border:2px solid var(--ink);border-radius:999px;padding:8px 14px 8px 10px;font-size:14.5px;font-weight:600;color:var(--ink);max-width:100%}.qchip .eng{width:22px;height:22px;display:grid;place-items:center}.qchip .eng svg{width:20px;height:20px}.qchip small{font-weight:500;color:#5d5a8a}.leg-1{top:calc(var(--nav-h) + 20px);left:max(96px,7vw)}.leg-2{right:max(20px,4vw);bottom:max(20px,5vh)}.leg-3{top:calc(var(--nav-h) + 20px);right:max(20px,4vw)}.leg-4{left:max(96px,7vw);bottom:max(20px,5vh)}.leg-5{top:calc(var(--nav-h) + 20px);left:max(96px,7vw)}.search{margin-top:18px;background:#fff;border:2px solid var(--ink);border-radius:16px;display:flex;align-items:center;gap:14px;padding:11px 14px;box-shadow:6px 6px 0 var(--ink);max-width:520px;position:relative}.search:after{content:"";position:absolute;top:-2px;right:-2px;bottom:-2px;left:-2px;border-radius:16px;pointer-events:none;box-shadow:0 0 0 4px #5b4cf529;opacity:0;transition:opacity .3s}.search.pulse:after{opacity:1}.engine{width:32px;height:32px;flex:0 0 32px;position:relative;display:grid;place-items:center}.engine svg{width:24px;height:24px;position:absolute;opacity:0;transform:scale(.7);transition:opacity .3s var(--ease),transform .35s var(--ease)}.engine svg.on{opacity:1;transform:none}.qwrap{flex:1;min-width:0}.qlabel{font-size:12px;color:#5d5a8a}.qlabel b{color:var(--ink);font-weight:600}.query{font-size:clamp(15px,1.6vw,20px);font-weight:600;color:var(--ink);white-space:nowrap;overflow:hidden;min-height:1.3em;line-height:1.3}.caret{display:inline-block;width:2px;height:1em;background:var(--violet);vertical-align:-.15em;margin-left:1px;animation:hs-blink 1s steps(1) infinite}@keyframes hs-blink{50%{opacity:0}}.go{width:38px;height:38px;flex:none;border-radius:10px;background:var(--ink);color:#fff;display:grid;place-items:center}.go svg{width:17px;height:17px}.you-card{position:absolute;left:calc(50% + 34px);top:calc(50% + 10px);pointer-events:auto;background:#fff;border:2px solid var(--ink);border-radius:14px;padding:12px 14px;box-shadow:6px 6px 0 var(--ink);width:min(280px,calc(100vw - 40px));font-variant-numeric:tabular-nums;font-size:14px;line-height:1.4}.you-card .name{font-weight:700;color:var(--ink);display:flex;align-items:center;gap:6px;font-size:15px}.you-card .name svg{width:12px;height:16px;color:var(--green)}.you-card .rate{font-size:14px;color:#5d5a8a;margin-top:3px}.you-card .rate .stars{color:var(--star);letter-spacing:1px}.you-card .rate .num{color:var(--ink);font-weight:600}.you-card .sub{font-size:13px;color:#5d5a8a}.you-card .sub .open{color:var(--green-ink);font-weight:600}.you-card .acts{display:flex;gap:6px;margin-top:8px;flex-wrap:wrap}.you-card .acts span{font-size:12px;font-weight:600;border:1px solid var(--line);border-radius:999px;padding:4px 10px;color:var(--ink)}.you-card .acts span:first-child{background:var(--ink);color:#fff;border-color:var(--ink)}.you-card .comp{margin-top:8px;padding-top:8px;border-top:1px solid var(--line);font-size:12.5px;color:#5d5a8a;line-height:1.4}.you-card .comp .stars{color:#c8c4e8}.legend{position:fixed;left:16px;top:50%;transform:translateY(-50%);z-index:var(--z-legend);background:#fff;border:2px solid var(--ink);border-radius:16px;padding:10px;box-shadow:6px 6px 0 var(--ink);width:68px;display:flex;flex-direction:column;gap:2px;transition:width .3s var(--ease),opacity .3s var(--ease);opacity:0;pointer-events:none}.legend.show{opacity:1;pointer-events:auto}.legend:hover,.legend:focus-within{width:190px}.legend .t{font-size:11px;font-weight:600;color:#5d5a8a;padding:2px 8px 6px;white-space:nowrap;overflow:hidden;opacity:0;transition:opacity .2s}.legend:hover .t,.legend:focus-within .t{opacity:1}.legend button{display:flex;align-items:center;gap:10px;width:100%;border:0;background:none;font:inherit;font-size:14px;font-weight:600;color:var(--text);padding:12px 8px;min-height:44px;border-radius:10px;cursor:pointer;white-space:nowrap;overflow:hidden;text-align:left;transition:background .15s,color .15s,transform .12s var(--ease-out)}.legend button:hover{background:var(--soft);color:var(--ink)}.legend button:active{transform:scale(.97)}.legend button.on{background:var(--ink);color:#fff}.legend button .sw{width:20px;height:20px;border-radius:6px;flex:none;border:2px solid rgba(255,255,255,.6)}.legend button span{opacity:0;transition:opacity .2s}.legend:hover button span,.legend:focus-within button span{opacity:1}.track{position:relative;height:640vh}.close-track{position:relative;height:170vh}.panel{position:relative;z-index:var(--z-panel);background:#fff;margin:0 auto;width:min(var(--wrap),calc(100% - 32px));border:2px solid var(--ink);border-radius:28px;padding:clamp(40px,6vw,88px) clamp(20px,5vw,72px);box-shadow:8px 8px 0 var(--ink)}.panel section+section{margin-top:clamp(56px,8vw,112px);padding-top:clamp(40px,5vw,72px);border-top:2px solid var(--ink)}.panel .wrap{width:100%}.panel .salary,.panel .faq{padding:0}.salary .head{display:grid;grid-template-columns:1.1fr .9fr;gap:24px 56px;align-items:end;margin-bottom:36px}.salary .head p{font-size:18px}.cmp{width:100%;border-collapse:separate;border-spacing:0;font-variant-numeric:tabular-nums;border:2px solid var(--ink);border-radius:22px;overflow:hidden}.cmp th,.cmp td{padding:18px 22px;text-align:left;vertical-align:middle;border-top:1px solid var(--line)}.cmp thead th{border-top:0;font-size:15px;color:var(--ink)}.cmp thead th.h{background:var(--violet);color:#fff;font-size:18px}.cmp tbody th{font-weight:600;color:var(--ink);width:34%}.cmp td.h{background:var(--violet-tint);font-weight:800;color:var(--ink);font-size:clamp(17px,1.5vw,22px)}.cmp td.o{color:var(--text)}.cmp tbody tr:nth-child(2n) th,.cmp tbody tr:nth-child(2n) td.o{background:var(--soft)}.cmp .check{margin-right:8px;vertical-align:-3px}.cmp tr.trow td{padding:20px 22px 22px;background:#fff;border-top:1px solid var(--line)}.salary .after{display:flex;align-items:center;gap:18px 28px;flex-wrap:wrap;margin-top:28px}.salary .after p{color:var(--text)}@media(max-width:820px){.salary .head{grid-template-columns:1fr}.cmp th,.cmp td{padding:14px 12px;font-size:14px}.cmp tbody th{width:38%}.cmp td.h{font-size:16px}.cmp thead th.h{font-size:15px}.cmp tr.trow td{padding:16px 12px 18px}}.panel .faq{margin-top:clamp(32px,4.5vw,63px);padding-top:clamp(30px,3.75vw,54px)}.faq .grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:32px 72px}.faq .grid>p{font-size:18px;margin-top:16px}.faq details{border-top:2px solid var(--ink)}.faq details:last-of-type{border-bottom:2px solid var(--ink)}.faq summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:20px;padding:22px 4px;font-weight:700;color:var(--ink);font-size:clamp(18px,1.6vw,22px)}.faq summary::-webkit-details-marker{display:none}.faq summary .pm{width:34px;height:34px;border-radius:50%;background:var(--violet);color:#fff;display:grid;place-items:center;flex:none;transition:transform .25s var(--ease-out)}.faq summary .pm svg{width:16px;height:16px}.faq details[open] summary .pm{transform:rotate(45deg)}.faq details{contain:layout}.faq .ans{display:grid;gap:12px;overflow:hidden;padding:0 4px;max-height:0;transition:max-height .28s var(--ease-out)}.faq details[open] .ans{max-height:600px}.faq .ans>*:last-child{margin-bottom:24px}.faq .ans p{max-width:70ch}.faq .more{margin-top:24px}@media(max-width:820px){.faq .grid{grid-template-columns:1fr}}body.hs-rank .closer,body.hs-rank .home-close{position:relative;z-index:var(--z-panel)}#biz text{font-family:var(--font)}.biz .bpin{fill:#9aa3b2}.biz .blabel{opacity:.75}.biz .badge,.biz .echip{opacity:0}.biz .echip{transition:none}@media(max-width:900px){.legend{top:auto;bottom:0;left:0;right:0;transform:none;width:auto;border-radius:16px 16px 0 0;border-bottom:0;box-shadow:none;flex-direction:row;padding:8px 8px calc(8px + env(safe-area-inset-bottom));overflow-x:auto;gap:4px}.legend:hover,.legend:focus-within{width:auto}.legend .t{display:none}.legend button{width:auto;padding:12px 10px;flex:none}.legend button span{opacity:1}.leg{max-width:calc(100vw - 24px);left:12px!important;right:12px!important;top:auto!important;bottom:84px!important;transform:none!important}.leg-1,.leg-3,.leg-5{top:calc(var(--nav-h) + 12px)!important;bottom:auto!important}.leg .plate{padding:18px;border-radius:16px;max-height:min(50vh,calc(100vh - var(--nav-h) - 110px));overflow:auto;box-shadow:4px 4px 0 var(--ink)}.leg p{font-size:15px}.you-card{display:none}.search{padding:9px 10px}.go{display:none}.track{height:560vh}.close-track{height:140vh}.biz .blabel:not(.mob){display:none}}html:not(.js) .stage,html.reduce .stage{position:relative;height:min(70vh,600px);border-bottom:2px solid var(--ink)}html:not(.js) .copy,html.reduce .copy{position:static;pointer-events:auto;display:grid;gap:24px;padding:24px 16px;max-width:var(--wrap);margin:0 auto}html:not(.js) .leg,html.reduce .leg{position:static;transform:none!important;max-width:none;opacity:1!important;visibility:visible!important}html:not(.js) .track,html.reduce .track,html:not(.js) .close-track,html.reduce .close-track{display:none}html:not(.js) .you-card,html.reduce .you-card{position:static;margin-top:14px;display:block}html:not(.js) .legend,html.reduce .legend{position:sticky;top:calc(var(--nav-h) + 12px);left:auto;transform:none;flex-direction:row;width:auto;margin:12px 16px;opacity:1;pointer-events:auto}html:not(.js) .legend button span,html.reduce .legend button span{opacity:1}html.reduce .caret,html.reduce .search:after{display:none}html.reduce .biz.near .bpin,html:not(.js) .biz.near .bpin{fill:#5b4cf5}html.reduce .biz.near .blabel,html:not(.js) .biz.near .blabel{opacity:1}html.reduce .biz.near .btag,html:not(.js) .biz.near .btag{opacity:0}html.reduce .biz.near .badge,html:not(.js) .biz.near .badge{opacity:1}@media(prefers-reduced-motion:reduce){body.hs-rank *,body.hs-rank *:before,body.hs-rank *:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}}
/* ===== CTA beat between the FAQ and the close ===== */
.rank-cta { position: relative; overflow: hidden; padding: 96px 0 104px; background: var(--violet-tint, #EEEDFE); text-align: center }
.rank-cta__in { position: relative; z-index: 2 }
.rank-cta__h { margin: 0 0 22px; font-size: clamp(30px, 4.6vw, 52px); line-height: 1.08; color: var(--ink) }
.rank-cta__btn { padding: 16px 30px; font-size: 17px }
.rank-cta__note { margin: 18px auto 0; max-width: 46ch; font-size: 14.5px; color: #5D5A8A }
/* Three rings breathing outward behind the button — the "come here" beat. */
.rank-cta__rings { position: absolute; left: 50%; top: 50%; width: 0; height: 0; z-index: 1; pointer-events: none }
.rank-cta__rings span {
	position: absolute; left: 50%; top: 50%; width: 320px; height: 320px; margin: -160px 0 0 -160px;
	border: 2px dashed var(--violet); border-radius: 50%; opacity: 0; transform: scale(.45);
}
.rank-cta.is-in .rank-cta__rings span { animation: rankring 4.2s ease-out infinite }
.rank-cta.is-in .rank-cta__rings span:nth-child(2) { animation-delay: 1.4s }
.rank-cta.is-in .rank-cta__rings span:nth-child(3) { animation-delay: 2.8s }
@keyframes rankring {
	0%   { opacity: 0;   transform: scale(.45) }
	18%  { opacity: .55 }
	100% { opacity: 0;   transform: scale(1.9) }
}
.rank-cta__h, .rank-cta__btn, .rank-cta__note { opacity: 0; transform: translateY(18px); transition: opacity .6s var(--ease, ease), transform .6s var(--ease, ease) }
.rank-cta.is-in .rank-cta__h,
.rank-cta.is-in .rank-cta__btn,
.rank-cta.is-in .rank-cta__note { opacity: 1; transform: none }
.rank-cta.is-in .rank-cta__btn { transition-delay: .1s }
.rank-cta.is-in .rank-cta__note { transition-delay: .2s }

/* ===== dot nav (right) — the .legend nav is fixed left, these never meet ===== */
.rank-dots { position: fixed; right: 18px; top: 50%; transform: translateY(-50%); z-index: var(--z-legend, 60); display: flex; flex-direction: column; gap: 14px; align-items: flex-end }
.rank-dots__d { appearance: none; border: 0; background: transparent; padding: 4px; cursor: pointer; display: flex; align-items: center; gap: 8px }
.rank-dots__d i { display: block; width: 10px; height: 10px; border-radius: 50%; border: 2px solid var(--ink); background: #fff; transition: background .2s, transform .2s }
.rank-dots__d span { font-size: 12px; font-weight: 700; color: var(--ink); background: #fff; border: 2px solid var(--ink); border-radius: 999px; padding: 3px 9px; opacity: 0; transform: translateX(6px); transition: opacity .2s, transform .2s; white-space: nowrap; order: -1 }
.rank-dots__d:hover span, .rank-dots__d:focus-visible span { opacity: 1; transform: none }
.rank-dots__d.is-on i { background: var(--violet); transform: scale(1.35) }
.rank-dots__d:focus-visible { outline: 3px solid var(--violet); outline-offset: 2px; border-radius: 999px }

/* ===== scroll cue under the intro ===== */
.rank-cue { position: fixed; left: 50%; bottom: 22px; transform: translateX(-50%); z-index: var(--z-legend, 60); appearance: none; cursor: pointer; display: flex; flex-direction: column; align-items: center; gap: 4px; padding: 8px 14px; background: #fff; border: 2px solid var(--ink); border-radius: 999px; box-shadow: 4px 4px 0 var(--violet); font: inherit; font-size: 12px; font-weight: 700; color: var(--ink); transition: opacity .35s, transform .35s }
.rank-cue svg { width: 16px; height: 16px; animation: rankcue 1.8s ease-in-out infinite }
.rank-cue.is-gone { opacity: 0; transform: translate(-50%, 14px); pointer-events: none }
@keyframes rankcue { 0%,100% { transform: translateY(0) } 50% { transform: translateY(4px) } }

@media (max-width: 900px) {
	.rank-dots { right: 10px; gap: 11px }
	.rank-dots__d span { display: none }
	.rank-cta { padding: 72px 0 80px }
	.rank-cta__rings span { width: 220px; height: 220px; margin: -110px 0 0 -110px }
}
@media (prefers-reduced-motion: reduce) {
	.rank-cta.is-in .rank-cta__rings span { animation: none; opacity: .3; transform: scale(1) }
	.rank-cue svg { animation: none }
	.rank-cta__h, .rank-cta__btn, .rank-cta__note { opacity: 1; transform: none; transition: none }
}
/* Past the map, the left legend has nothing left to point at. */
html.rank-past-map .legend { opacity: 0 !important; pointer-events: none }
/* The pricing + FAQ panel read as a card hovering over the world map. Flattened to a
   full-width, opaque band so it is simply the next part of the page, with the map
   ending above it. The inner .wrap re-imposes the reading width. */
.panel {
	width: 100%;
	max-width: none;
	margin: 0;
	border: 0;
	border-radius: 0;
	box-shadow: none;
	background: #fff;
	padding: clamp(56px, 7vw, 104px) 0;
}
.panel .wrap {
	width: min(var(--wrap), calc(100% - 40px));
	margin-inline: auto;
}
.panel section + section {
	margin-top: clamp(48px, 6vw, 88px);
	padding-top: clamp(36px, 4.5vw, 64px);
}
