/* Adapted from Synthetic Swarm's lead-radar / radar-map components.
   Neutral Synthetic Swarm surfaces; green is reserved for geographic selection and analysis. */
.home-radar { --country-scale:.095; --radar-ink:#242424; --radar-muted:#777777; --radar-line:#e8e5e0; max-width:1120px; margin:0 auto var(--home-section-gap-lg); padding:0 32px; color:var(--radar-ink); }
.radar-section-heading { text-align:center; margin:0 auto 32px; }
.home-radar .radar-section-heading h2 { font-size:clamp(28px,3.1vw,40px); line-height:1.15; letter-spacing:-.045em; font-weight:600; margin:0 0 14px; }
.home-radar .radar-section-heading p { font-size:15px; line-height:1.6; color:#777; margin:0; }
.radar-demo { overflow:hidden; border:1px solid #e1e1e1; border-radius:19px; background:#fff; box-shadow:0 14px 50px -24px #00000016; }
.radar-stage { position:relative; height:530px; isolation:isolate; background:#f1f2f3; overflow:hidden; }
.radar-map-window { position:absolute; inset:0; overflow:hidden; transition:right 1.8s cubic-bezier(.22,.8,.2,1),bottom 1.8s cubic-bezier(.22,.8,.2,1); }
.radar-world { position:absolute; width:100%; min-width:700px; height:100%; left:50%; top:0; transform:translate(-50%,0) scale(1.04); transform-origin:57.5% 60%; --pin-scale:.9615; transition:filter 1.3s,opacity 1.3s,transform var(--camera-duration,2.4s) cubic-bezier(.33,0,.2,1); }
.radar-country { position:absolute; inset:0; width:100%; height:100%; overflow:visible; opacity:0; pointer-events:none; }
.radar-basemap,.radar-territory { position:absolute; inset:0; width:100%; height:100%; object-fit:fill; max-width:none; }
.radar-territory { opacity:1; transition:opacity 1.4s; }
.radar-veil { position:absolute; inset:0; pointer-events:none; background:#ffffff70; opacity:0; transition:opacity 1s; }
.radar-composer { position:absolute; left:22px; top:22px; width:calc(100% - 44px); max-width:445px; z-index:4; transition:top 1s cubic-bezier(.22,.8,.2,1),left 1s cubic-bezier(.22,.8,.2,1),width 1s,transform 1s; }
.radar-composer-label { position:absolute; bottom:calc(100% + 18px); width:100%; text-align:center; font-size:18px; font-weight:500; letter-spacing:-.025em; color:#555555; opacity:0; visibility:hidden; transition:opacity .4s; }
.radar-composer-field { display:flex; align-items:center; gap:12px; border:1px solid #ffffffd9; border-radius:14px; background:#fffffff0; backdrop-filter:blur(18px); padding:11px 12px 11px 18px; box-shadow:0 8px 30px -12px #00000024,0 1px 3px #0000000c; }
.home-radar .radar-composer textarea { display:block; width:100%; min-width:0; height:20px; resize:none; overflow:hidden; padding:0; border:0; outline:0; background:transparent; color:#333333; font:500 13px/1.5 Inter,-apple-system,BlinkMacSystemFont,sans-serif; text-overflow:ellipsis; cursor:default; }
.radar-send { display:grid; place-items:center; flex-shrink:0; width:32px; height:32px; border:1px solid #222; border-radius:10px; background:#242424; color:#fff; transition:transform .25s; }
.radar-send svg { width:18px; height:18px; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.radar-zone { position:absolute; top:96px; left:24px; display:flex; align-items:center; gap:7px; padding:7px 10px; border:1px solid #fff; border-radius:9px; background:#ffffffeb; font-size:11px; color:#555555; backdrop-filter:blur(16px); transition:opacity .6s; }
.radar-zone > span { color:#399c70; font-size:17px; line-height:14px; }
.radar-pins { position:absolute; inset:0; }
.radar-pin { position:absolute; left:var(--pin-x); top:var(--pin-y); transform:translate(-50%,-100%) scale(var(--pin-scale)); transform-origin:50% 100%; padding:0 5px 12px; border:0; background:transparent; width:44px; height:48px; opacity:1; transition:opacity .6s var(--arrival),scale .6s var(--arrival),transform var(--camera-duration,2.4s) cubic-bezier(.33,0,.2,1); color:#f5f4f0; }
button.radar-pin { cursor:pointer; }
.radar-pin::before { content:''; position:absolute; left:21px; bottom:2px; width:1px; height:10px; background:linear-gradient(#555555aa,#77777780); }
.radar-pin::after { content:''; position:absolute; width:4px; height:4px; bottom:0; left:19.5px; border-radius:50%; background:#343434; box-shadow:0 0 0 2px #fcfbf8c9; }
.radar-pin-face,.radar-card-icon { display:grid; place-items:center; width:34px; height:34px; border-radius:11px; background:linear-gradient(145deg,#3a3a3a,#242424); border:1px solid #ffffff40; box-shadow:0 0 0 1px #22222218,0 2px 3px #0000000c,0 5px 12px #0000001c,inset 0 1px 0 #ffffff12; color:#f5f4f0; }
.radar-pin svg:not(.radar-pin-orbit),.radar-card-icon svg { width:16px; height:16px; stroke:currentColor; stroke-width:1.65; stroke-linecap:round; stroke-linejoin:round; }
.radar-pin-name { position:absolute; left:50%; bottom:58px; transform:translateX(-50%); display:block; background:#242424ed; color:#faf9f5; border:1px solid #ffffff28; font-size:10px; line-height:16px; padding:4px 8px; border-radius:7px; white-space:nowrap; opacity:0; transition:opacity .2s; pointer-events:none; }
.radar-pin:hover,.radar-pin[aria-pressed=true] { z-index:3; }
.radar-pin:hover .radar-pin-name,.radar-pin[aria-pressed=true] .radar-pin-name { opacity:1; }
.radar-pin[aria-pressed=true] .radar-pin-face { box-shadow:0 0 0 1px #171717,0 0 0 4px #fcfbf8d9,0 5px 16px #00000038; }
.radar-pin-orbit { position:absolute; width:38px; height:38px; left:3px; top:-2px; opacity:0; overflow:visible; pointer-events:none; }
.radar-status { position:absolute; z-index:2; bottom:35px; left:22px; display:flex; align-items:center; gap:8px; padding:10px 13px; border:1px solid #ffffffba; border-radius:10px; background:#fffffff0; backdrop-filter:blur(16px); font-size:11px; color:#626262; box-shadow:0 4px 18px #00000012; }
.radar-status-dot { width:5px; height:5px; border-radius:50%; background:#858585; }
.radar-map-credit { position:absolute; bottom:9px; left:23px; font-size:8px; color:#888888; }
.radar-results { position:absolute; z-index:5; right:0; top:0; bottom:0; width:330px; padding:24px 16px; border-left:1px solid #e1e1e1; background:#fafafa; opacity:1; transform:none; transition:transform .9s cubic-bezier(.22,.8,.2,1),opacity .7s; }
.radar-results-heading { display:flex; align-items:center; justify-content:space-between; gap:12px; margin:0 2px 22px; }
.radar-results-heading > div { order:-1; }
.radar-result-count { display:grid; place-items:center; min-width:25px; height:25px; padding-inline:7px; border:1px solid #e9e9e9; border-radius:8px; color:#777; background:#fff; font-size:11px; font-weight:500; font-variant-numeric:tabular-nums; }
.radar-results-heading h3 { font-size:15px; font-weight:600; margin:0 0 5px; letter-spacing:-.035em; }
.radar-results-heading p { margin:0; font-size:10px; color:#888; }
.radar-card { border:1px solid transparent; border-bottom-color:#eaeaea; background:transparent; border-radius:0; overflow:hidden; margin-bottom:0; transition:border-color .2s,background .2s,box-shadow .2s; }
.radar-card:has(.radar-card-select[aria-expanded=true]) { border-color:#e5e5e5; border-radius:14px; background:#fff; margin-bottom:8px; box-shadow:0 2px 3px #00000002,0 6px 18px -8px #0000000d; }
.radar-card + .radar-card:has(.radar-card-select[aria-expanded=true]) { margin-top:8px; }
.radar-card:last-child { border-bottom-color:transparent; }
.radar-card:last-child:has(.radar-card-select[aria-expanded=true]) { border-bottom-color:#e5e5e5; }
.radar-card-select { width:100%; display:flex; align-items:center; gap:11px; padding:17px 13px; text-align:left; background:transparent; border:0; color:var(--radar-ink); font:inherit; cursor:pointer; }
.radar-card-select:hover { background:#00000002; }
.radar-card-icon { flex:none; width:32px; height:32px; border-radius:10px; background:linear-gradient(145deg,#3a3a3a,#242424); border:1px solid #ffffff40; color:#f5f4f0; box-shadow:0 0 0 1px #22222218,0 2px 3px #0000000c,0 5px 12px #0000001c,inset 0 1px 0 #ffffff12; }
.radar-card-icon svg { width:15px; height:15px; stroke-width:1.5; }
.radar-card-select strong { display:block; font-size:13px; line-height:1.35; font-weight:600; letter-spacing:-.025em; }
.radar-card-caption { display:block; font-size:10px; line-height:1.5; color:#888; margin-top:4px; }
.radar-card-chevron { display:grid; place-items:center; flex:none; width:14px; height:14px; margin-left:auto; color:#999; transition:rotate .2s; }
.radar-card-chevron svg { width:11px; height:11px; stroke:currentColor; stroke-width:1.25; stroke-linecap:round; stroke-linejoin:round; }
.radar-card-select[aria-expanded=true] .radar-card-chevron { rotate:180deg; }
.radar-card-detail { padding:0 16px; }
.radar-card-detail[hidden] { display:none; }
.radar-signal { display:flex; align-items:center; gap:10px; max-width:100%; padding:3px 0; color:#3d7453; }
.radar-signal-icon { flex:none; width:24px; height:24px; stroke:currentColor; stroke-width:1.5; stroke-linecap:round; stroke-linejoin:round; }
.radar-signal-copy { display:flex; flex-direction:column; gap:3px; min-width:0; }
.radar-signal-label { font-size:11px; line-height:1.4; font-weight:400; color:#728278; }
.radar-signal-value { font-size:11px; line-height:1.45; font-weight:500; color:#365c45; }
.radar-reason-label { margin:17px 0 5px; color:#333; font-size:10px; font-weight:500; line-height:1.4; }
.radar-reason { font-size:11px; line-height:1.7; margin:0 0 19px; color:#777; text-wrap:pretty; }
.radar-contact { display:flex; align-items:center; gap:8px; margin:0 -16px; border-top:1px solid #f0f0f0; padding:13px 16px; background:#fcfcfc; }
.radar-avatar { display:grid; place-items:center; flex:none; width:29px; height:29px; border:1px solid #e8e8e8; border-radius:50%; background:#fff; color:#777; font-size:10px; font-weight:500; }
.radar-contact strong { font-size:10px; display:block; font-weight:500; color:#444; }
.radar-contact > span:nth-child(2) > span { display:block; font-size:9px; margin-top:4px; color:#999; }
.radar-phone { margin-left:auto; font-size:10px; font-weight:400; font-variant-numeric:tabular-nums; letter-spacing:.01em; color:#666; white-space:nowrap; }
.radar-steps { display:grid; grid-template-columns:repeat(4,1fr); padding:0 18px; background:#fff; border-top:1px solid var(--radar-line); }
.radar-steps button { display:flex; align-items:center; justify-content:center; gap:9px; padding:18px 4px; position:relative; border:0; background:transparent; color:#888888; font:500 11px/1.4 Inter,-apple-system,BlinkMacSystemFont,sans-serif; cursor:pointer; }
.radar-steps button > span { font-size:9px; color:#a0a0a0; }
.radar-steps button[aria-pressed=true] { color:#1a1a1a; }
.radar-steps button[aria-pressed=true]::after { content:''; height:2px; position:absolute; bottom:0; left:16%; right:16%; background:#0a66c2; }
.home-radar button:focus-visible { outline:2px solid #444444; outline-offset:3px; }
.home-radar[data-phase=complete] .radar-map-window { right:330px; }
.home-radar[data-phase=complete] .radar-composer { width:calc(100% - 374px); }
.home-radar[data-phase=complete] [data-radar-extra] { opacity:.17; }
.home-radar:not([data-phase=complete]) .radar-results { opacity:0; transform:translateX(100%); pointer-events:none; visibility:hidden; }
.home-radar[data-phase=query] .radar-world { filter:blur(5px) saturate(.7); opacity:.7; }
.home-radar[data-phase=query] .radar-veil { opacity:1; }
.home-radar[data-phase=query] .radar-composer { left:50%; top:47%; transform:translate(-50%,-50%); width:calc(100% - 56px); max-width:530px; }
.home-radar[data-phase=query] .radar-composer-label { opacity:1; visibility:visible; }
.home-radar[data-phase=query] .radar-composer-field { padding:18px; }
.home-radar[data-phase=query] .radar-zone,.home-radar[data-phase=query] .radar-territory { opacity:0; }
.home-radar[data-phase=query] .radar-pin,.home-radar[data-phase=scope] .radar-pin { opacity:0; scale:.65; pointer-events:none; }
.home-radar:not([data-phase=complete]) .radar-pin-name { opacity:0; }
.home-radar[data-phase=analyze] .radar-status-dot { background:#629572; animation:radar-status-pulse 1.5s ease-in-out infinite; }
.home-radar.is-paused * { animation-play-state:paused!important; }
@keyframes radar-status-pulse { 50% { opacity:.3; } }
@media(max-width:900px) and (min-width:701px) {
 .radar-results { width:300px; padding:20px 12px; }
 .home-radar[data-phase=complete] .radar-map-window { right:300px; }
 .home-radar[data-phase=complete] .radar-composer { width:calc(100% - 340px); }
}
@media(max-width:700px) {
 .home-radar { padding-inline:20px; --country-scale:.055; --country-label-size:215px; }
 .radar-section-heading { margin-bottom:24px; }
 .home-radar .radar-section-heading p { font-size:13px; max-width:320px; margin-inline:auto; }
 .radar-demo { border-radius:15px; }
 .radar-stage { height:690px; }
 .radar-map-window { bottom:280px; }
 .radar-world { min-width:620px; }
 .radar-composer,.home-radar[data-phase=complete] .radar-composer { left:14px; top:16px; width:calc(100% - 28px); }
 .radar-composer-field { padding:9px 10px; gap:7px; }
 .home-radar .radar-composer textarea { font-size:11px; }
 .radar-send { width:28px; height:28px; }
 .radar-zone { top:79px; left:15px; font-size:10px; }
 .radar-status { bottom:298px; left:15px; right:15px; width:fit-content; max-width:calc(100% - 30px); padding:8px 10px; font-size:10px; }
 .radar-map-credit { top:394px; bottom:auto; left:16px; font-size:7px; }
 .radar-results { top:410px; width:100%; height:280px; padding:13px 12px; overflow:auto; border-left:0; border-top:1px solid var(--radar-line); }
 .radar-results-heading { margin-bottom:12px; }
 .radar-card:has(.radar-card-select[aria-expanded=true]) { margin-bottom:6px; }
 .radar-results-heading p { font-size:9px; }
 .radar-card-select { padding-block:14px; }
 .radar-reason { margin:0 0 15px; }
 .radar-contact { padding-block:11px; }
 .radar-steps { padding-inline:4px; }
 .radar-steps button { flex-direction:column; gap:3px; padding:12px 1px; font-size:9px; }
 .home-radar[data-phase=complete] .radar-map-window { right:0; }
 .home-radar:not([data-phase=complete]) .radar-map-window { bottom:0; }
 .home-radar:not([data-phase=complete]) .radar-map-credit { top:auto; bottom:10px; }
 .home-radar:not([data-phase=complete]) .radar-status { bottom:32px; }
 .home-radar:not([data-phase=complete]) .radar-results { transform:translateY(30px); }
 .home-radar[data-phase=query] .radar-composer { top:42%; left:50%; width:calc(100% - 28px); }
 .home-radar[data-phase=query] .radar-composer-field { padding:12px; }
 .radar-composer-label { font-size:16px; }
}
@media(prefers-reduced-motion:reduce) {
 .home-radar *, .home-radar *::before, .home-radar *::after { animation:none!important; transition:none!important; }
}

/* A continuous approach: frame the territory, fly towards Lyon, then drift
   across the companies during analysis. Settle when the profiles are ready. */
.home-radar[data-phase=scope] { --camera-duration:4.2s; }
.home-radar[data-phase=query] .radar-world { transform:translate(-48%,0) scale(var(--country-scale)); }
.home-radar[data-phase=query] .radar-country { opacity:1; }
.home-radar[data-phase=query] .radar-basemap { opacity:0; }
.home-radar[data-phase=scope] .radar-world { transform:translate(-51.5%,2%) scale(1.2); --pin-scale:.8333; animation:radar-france-to-lyon 4.2s cubic-bezier(.65,0,.25,1) both; }
.home-radar[data-phase=scope] .radar-country { animation:radar-country-depart 4.2s linear both; }
.home-radar[data-phase=scope] .radar-country-labels { animation:radar-country-labels-depart 4.2s linear both; }
.home-radar[data-phase=scope] .radar-basemap { animation:radar-local-arrive 4.2s linear both; }
.home-radar[data-phase=scope] .radar-territory { animation:radar-territory-arrive 4.2s linear both; }
@keyframes radar-france-to-lyon {
  0%,18% { transform:translate(-48%,0) scale(var(--country-scale)); }
  100% { transform:translate(-51.5%,2%) scale(1.2); }
}
@keyframes radar-country-labels-depart { 0%,18% { opacity:1; } 40%,100% { opacity:0; } }
@keyframes radar-country-depart { 0%,60% { opacity:1; } 88%,100% { opacity:0; } }
@keyframes radar-local-arrive { 0%,55% { opacity:0; } 85%,100% { opacity:1; } }
@keyframes radar-territory-arrive { 0%,70% { opacity:0; } 100% { opacity:1; } }
.home-radar[data-phase=discover] { --camera-duration:2.1s; }
.home-radar[data-phase=discover] .radar-world { transform:translate(-52%,0) scale(1.65); --pin-scale:.6061; }
.home-radar[data-phase=analyze] { --camera-duration:4.5s; }
.home-radar[data-phase=analyze] .radar-world { transform:translate(-56%,-3%) scale(1.94); --pin-scale:.5155; }
.home-radar[data-phase=complete] { --camera-duration:2.2s; }
.home-radar[data-phase=complete] .radar-world { transform:translate(-53%,-1%) scale(1.72); --pin-scale:.5814; }


.home-radar[data-phase=query] .radar-composer textarea { height:48px; font-size:14px; line-height:1.65; }
.home-radar[data-phase=query] .radar-send { align-self:flex-end; }
@media(max-width:700px) { .home-radar[data-phase=query] .radar-composer textarea { height:84px; font-size:13px; line-height:1.6; } }

/* Pin scan and travelling light effect. */
.home-radar[data-phase=analyze] .radar-pin-face{position:relative;overflow:hidden;border-color:#ffffff38;background:linear-gradient(145deg,#363a37,#242725);color:#f5f6f2;box-shadow:0 0 0 1px #22222218,0 2px 3px #0000000c,0 5px 12px #0000001c,inset 0 1px 0 #ffffff12}
.home-radar[data-phase=analyze] .radar-pin-face:before{content:'';position:absolute;inset:0;border-radius:inherit;background:linear-gradient(180deg,transparent 0%,#81dfad08 56%,#81dfad24 88%,#b8f4cfb0 96%,transparent 100%);transform:translateY(-105%);animation:radar-pin-scan 1.1s cubic-bezier(.3,0,.2,1) .15s 1 both;pointer-events:none;z-index:2}
.radar-pin-orbit rect{fill:none;stroke-linecap:round;stroke-dasharray:.12 99.88}
.home-radar[data-phase=analyze] .radar-pin-orbit rect{animation:radar-edge-travel 3.2s linear 0s infinite}
.radar-pin-orbit .light-bloom{stroke:#4bff91;stroke-width:8;filter:blur(2.8px);opacity:.52}
.radar-pin-orbit .light-halo{stroke:#69ffad;stroke-width:4.6;filter:blur(1.1px);opacity:.95}
.radar-pin-orbit .light-trail{--trail-offset:5px;stroke:#83ffb4;stroke-width:1.5;stroke-dasharray:5 95;opacity:.7;filter:blur(.3px)}
.radar-pin-orbit .light-core{stroke:#effff2;stroke-width:2.6;filter:drop-shadow(0 0 .6px #adffcb)}
@keyframes radar-pin-scan{0%{transform:translateY(-105%);opacity:0}12%{opacity:1}88%{opacity:1}100%{transform:translateY(105%);opacity:0}}
@keyframes radar-edge-appear{to{opacity:1}}
@keyframes radar-edge-travel{from{stroke-dashoffset:calc(100px + var(--trail-offset,0px))}to{stroke-dashoffset:var(--trail-offset,0px)}}
.radar-pin-orbit rect { fill:none; }
.home-radar[data-phase=analyze] .radar-pin-orbit { opacity:0; animation:radar-edge-appear .45s ease 1s 1 forwards; }
.home-radar:not([data-phase=analyze]) .radar-pin-orbit { display:none; }

/* The production basemap owns the camera and projects every business pin. */
.radar-live-map { position:absolute; inset:0; }
.home-radar.is-map-loading .radar-world { visibility:hidden; }
.home-radar.has-live-map .radar-world { inset:0; width:100%; min-width:0; height:100%; transform:none; animation:none; filter:none; opacity:1; --pin-scale:1; pointer-events:none; transition:none; }
.home-radar.has-live-map .radar-country,
.home-radar.has-live-map .radar-basemap,
.home-radar.has-live-map .radar-territory,
.home-radar.has-live-map .radar-map-credit { display:none; }
.home-radar.has-live-map .radar-pin { transition:opacity .6s var(--arrival),scale .6s var(--arrival); }
.home-radar.has-live-map[data-phase=complete] button.radar-pin { pointer-events:auto; }
.radar-live-map .maplibregl-ctrl-attrib { font:8px/1.5 Inter,-apple-system,BlinkMacSystemFont,sans-serif; background:#ffffffcf; color:#777; padding:2px 5px; }
.radar-live-map .maplibregl-ctrl-attrib a { color:inherit; }
.radar-live-map .maplibregl-canvas:focus { outline:none; }

.radar-live-map { transition:filter .7s ease; }
.home-radar[data-phase=query] .radar-live-map { filter:blur(5px); }
.home-radar:is([data-phase=query],[data-phase=scope]) .radar-pin { transition:none; }

/* Reveal the cards by clipping a stable canvas, without reallocating WebGL
   buffers on every frame of the closing map window. Keep attribution visible. */
.radar-live-map { right:auto; bottom:auto; }
.radar-live-map .maplibregl-ctrl-bottom-right { right:var(--map-credit-right,0px); bottom:var(--map-credit-bottom,0px); transition:right 1.8s cubic-bezier(.22,.8,.2,1),bottom 1.8s cubic-bezier(.22,.8,.2,1); }
.home-radar[data-phase=complete] { --map-credit-right:330px; }
@media(max-width:900px) and (min-width:701px) { .home-radar[data-phase=complete] { --map-credit-right:300px; } }
@media(max-width:700px) { .home-radar[data-phase=complete] { --map-credit-right:0px; --map-credit-bottom:280px; } }
