.flowmap{background:#101310;color:#fff;padding:10rem 3.2vw 4rem}.flowmap__head{display:grid;grid-template-columns:.78fr 1.22fr;gap:3.5vw;align-items:end;margin-bottom:4rem}.flowmap__head h2{margin:1.4rem 0 1rem;font-size:clamp(3.2rem,6vw,6.8rem);font-weight:620;letter-spacing:-.078em;line-height:.88}.flowmap__head p:last-child{margin:0;max-width:460px;color:#ffffff8c;line-height:1.6}.flowmap__live{grid-column:1 / -1;display:flex;align-items:center;gap:1rem;margin-top:2rem;padding:.9rem 1.1rem;border-radius:999px;border:1px solid rgba(255,255,255,.08);background:#ffffff0a;font-family:var(--flow-mono, "IBM Plex Mono", monospace);font-size:.62rem;flex-wrap:wrap}.flowmap__live strong{font-weight:500;color:#fff}.flowmap__live span:last-child{margin-left:auto;color:#ffffff8c}.flowmap__live--good .live__dot{background:#7bf5a5;box-shadow:0 0 12px #7bf5a5}.flowmap__live--mid .live__dot{background:#f5dc8a;box-shadow:0 0 12px #f5dc8a}.flowmap__live--heavy .live__dot{background:#ff8b83;box-shadow:0 0 12px #ff8b83}.flowmap__from,.flowmap__eta,.flowmap__useful,.flowmap__actions{padding:1.1rem;border-radius:22px;background:#ffffff06;border:1px solid rgba(255,255,255,.06)}.flowmap__from span,.flowmap__useful strong{display:block;font-family:var(--flow-mono, "IBM Plex Mono", monospace);font-size:.6rem;letter-spacing:.08em;text-transform:uppercase;color:#fff9;margin-bottom:.8rem}.flowmap__from-chips{display:flex;flex-wrap:wrap;gap:.5rem}.flowmap__from-chips button{padding:.6rem .85rem;border-radius:999px;background:#ffffff0a;border:1px solid rgba(255,255,255,.08);color:#ffffffb8;font-family:var(--flow-mono, "IBM Plex Mono", monospace);font-size:.62rem;cursor:pointer}.flowmap__from-chips button.is-active{background:#dff8ff;color:#0c1010;border-color:transparent}.flowmap__geo-btn{display:inline-flex;align-items:center;gap:.5rem;margin-top:.7rem;padding:.62rem .9rem;border-radius:999px;background:rgba(var(--vp-acc-rgb, 116, 212, 250),.1);border:1px solid rgba(var(--vp-acc-rgb, 116, 212, 250),.28);color:#dff7ff;font-family:var(--flow-mono, "IBM Plex Mono", monospace);font-size:.62rem;letter-spacing:.04em;cursor:pointer;transition:background .2s ease,border-color .2s ease}.flowmap__geo-btn:hover{background:rgba(var(--vp-acc-rgb, 116, 212, 250),.16);border-color:rgba(var(--vp-acc-rgb, 116, 212, 250),.45)}.flowmap__geo-btn.is-active{background:linear-gradient(180deg,var(--vp-acc-hi, #9ee6ff),var(--vp-acc, #53bfe9));color:#091110;border-color:transparent}.flowmap__geo-btn[disabled]{opacity:.6;cursor:progress}.flowmap__geo-icon{width:9px;height:9px;border-radius:50%;background:currentColor;box-shadow:0 0 0 3px rgba(var(--vp-acc-rgb, 116, 212, 250),.2)}.flowmap__geo-note{margin:.6rem 0 0;font-size:.66rem;line-height:1.45;color:#ffcf9e}.flowmap__eta{display:flex;gap:1.2rem;align-items:center}.flowmap__eta sup{display:block;font-family:var(--flow-mono, "IBM Plex Mono", monospace);font-size:.58rem;text-transform:uppercase;color:#ffffff8c}.flowmap__eta strong{display:block;font-size:2rem;font-weight:600;letter-spacing:-.05em;color:#fff}.flowmap__eta span:last-child{font-size:.66rem;color:#ffffff8c}.flowmap__eta-bubble{margin-left:auto;max-width:170px;padding:.6rem .8rem;border-radius:14px;background:rgba(var(--vp-acc-rgb, 116, 212, 250),.12);border:1px solid rgba(var(--vp-acc-rgb, 116, 212, 250),.18);font-size:.62rem;line-height:1.5;color:#dff7ff}.flowmap__useful{display:grid;gap:1rem}.flowmap__useful strong{margin-bottom:.3rem;color:#dff7ff}.flowmap__useful p{margin:0;font-size:.78rem;line-height:1.55;color:#ffffff9e}.flowmap__actions{display:grid;gap:.6rem}.flowmap__actions a{padding:.9rem 1rem;border-radius:999px;background:#ffffff0f;border:1px solid rgba(255,255,255,.08);font-size:.7rem;text-align:center}.flowmap__actions a:first-child{background:linear-gradient(180deg,var(--vp-acc-hi, #9ee6ff),var(--vp-acc, #53bfe9));color:#091110;border-color:transparent;font-weight:600}.flowmap__map-canvas{position:absolute;inset:0;width:100%;height:100%;border:0;filter:saturate(.45) contrast(1.05) brightness(.82);opacity:0;transform:scale(1.04);transition:opacity .65s cubic-bezier(.22,1,.36,1),transform .65s cubic-bezier(.22,1,.36,1)}.flowmap__map.is-map-ready .flowmap__map-canvas{opacity:1;transform:scale(1)}.flowmap__map.is-flying .flowmap__map-canvas{opacity:.35;transform:scale(1.02)}.flowmap__map-canvas :global(.maplibregl-ctrl),.flowmap__map-canvas :global(.maplibregl-ctrl-attrib){display:none}.flowmap__map-fade{position:absolute;inset:0;background:radial-gradient(circle at 18% 18%,rgba(76,174,224,.08),transparent 44%),linear-gradient(180deg,#0c101038,#0c10107a);pointer-events:none}.flowmap__corner{position:absolute;z-index:3;width:34px;height:34px;border:0 solid rgba(var(--vp-acc-rgb, 116, 212, 250),.65);pointer-events:none;filter:drop-shadow(0 0 6px rgba(var(--vp-acc-rgb, 116, 212, 250),.4))}.flowmap__corner--tl{top:14px;left:14px;border-top-width:2px;border-left-width:2px;border-top-left-radius:8px}.flowmap__corner--tr{top:14px;right:14px;border-top-width:2px;border-right-width:2px;border-top-right-radius:8px}.flowmap__corner--bl{bottom:14px;left:14px;border-bottom-width:2px;border-left-width:2px;border-bottom-left-radius:8px}.flowmap__corner--br{bottom:14px;right:14px;border-bottom-width:2px;border-right-width:2px;border-bottom-right-radius:8px}.flowmap__radar{position:absolute;z-index:3;right:18px;bottom:18px;width:86px;height:86px;overflow:hidden;border-radius:50%;border:1px solid rgba(var(--vp-acc-rgb, 116, 212, 250),.35);background:#0c14178c;backdrop-filter:blur(8px);pointer-events:none}.flowmap__radar:before{position:absolute;inset:0;content:"";border-radius:50%;background:conic-gradient(from 0deg,rgba(var(--vp-acc-rgb, 116, 212, 250),.55),transparent 70deg);animation:radar-spin 3.2s linear infinite}.flowmap__radar:after{position:absolute;inset:12px;content:"";border:1px dashed rgba(var(--vp-acc-rgb, 116, 212, 250),.25);border-radius:50%}@keyframes radar-spin{to{transform:rotate(360deg)}}.flowmap__radar-blip{position:absolute;right:24%;top:36%;z-index:2;width:6px;height:6px;border-radius:50%;background:#f3c068;box-shadow:0 0 10px #f3c068;animation:blink-dot 1.6s infinite}.flowmap__eta-chip{position:absolute;z-index:3;top:16px;left:16px;padding:.55rem .9rem;color:#ffe3ae;background:#1410089e;border:1px solid rgba(243,192,104,.35);border-radius:999px;font-family:var(--flow-mono, "IBM Plex Mono", monospace);font-size:.6rem;letter-spacing:.06em;backdrop-filter:blur(8px);box-shadow:0 12px 30px -12px #00000080}.flowmap__grid{display:grid;grid-template-columns:.68fr 1.32fr;gap:2rem;align-items:stretch;min-height:78vh}.flowmap__panel,.flowmap__map{position:relative;overflow:hidden;border:1px solid rgba(255,255,255,.09);border-radius:28px;background:linear-gradient(180deg,#0b1111eb,#070a09f5);box-shadow:0 26px 80px -28px #00000070}.flowmap__panel{padding:1.4rem;display:flex;flex-direction:column;gap:1.2rem;justify-content:space-between}.flowmap__autosuggest{display:flex;flex-wrap:wrap;gap:.65rem;margin-top:.2rem}.flowmap__autosuggest button{padding:.7rem .9rem;color:#ffffffb8;background:#ffffff0a;border:1px solid rgba(255,255,255,.08);border-radius:999px;font-family:var(--flow-mono, "IBM Plex Mono", monospace);font-size:.62rem;letter-spacing:.04em;text-transform:uppercase;cursor:pointer}.flowmap__autosuggest button.is-active{color:#091110;background:linear-gradient(180deg,var(--vp-acc-hi, #9ee6ff),var(--vp-acc, #53bfe9));border-color:transparent;box-shadow:0 0 0 6px rgba(var(--vp-acc-rgb, 116, 212, 250),.08)}.flowmap__traffic{padding:1.1rem;border-radius:22px;background:#ffffff06;border:1px solid rgba(255,255,255,.06)}.flowmap__traffic-head,.flowmap__traffic-foot{display:flex;align-items:center;justify-content:space-between;gap:1rem}.flowmap__traffic-head span,.flowmap__traffic-foot p{color:#ffffff94;font-size:.7rem;line-height:1.5}.flowmap__traffic-head strong{font-family:var(--flow-mono, "IBM Plex Mono", monospace);font-size:1rem;color:#fff}.flowmap__traffic-bar{height:12px;margin:1rem 0;overflow:hidden;background:#ffffff0d;border-radius:999px}.flowmap__traffic-fill{height:100%;border-radius:inherit;background:linear-gradient(90deg,#1a7a49,#60d59d);transition:width .45s ease-out}.flowmap__traffic-fill--mid{background:linear-gradient(90deg,#b78f2b,#f2d36b)}.flowmap__traffic-fill--heavy{background:linear-gradient(90deg,#bd3f38,#ff8f8f)}.flowmap__badge{display:inline-flex;align-items:center;gap:.4rem;padding:.38rem .72rem;font-family:var(--flow-mono, "IBM Plex Mono", monospace);font-size:.58rem;letter-spacing:.08em;text-transform:uppercase;border-radius:999px;border:1px solid rgba(255,255,255,.08)}.flowmap__badge--good{color:#9ef3c8;background:#5ac9951f}.flowmap__badge--mid{color:#f5dc8a;background:#e5bf4d1f}.flowmap__badge--heavy{color:#ffb2ad;background:#e4685c1f}.flowmap__map{min-height:78vh;padding:1.2rem;border-radius:28px;background:radial-gradient(circle at 18% 18%,rgba(76,174,224,.16),transparent 32%),radial-gradient(circle at 84% 74%,rgba(243,192,104,.08),transparent 28%),linear-gradient(180deg,#0c1010,#101310)}.flowmap__gridlines{position:absolute;inset:0;z-index:2;opacity:.14;pointer-events:none;background-image:linear-gradient(rgba(var(--vp-acc-rgb, 116, 212, 250),.14) 1px,transparent 1px),linear-gradient(90deg,rgba(var(--vp-acc-rgb, 116, 212, 250),.14) 1px,transparent 1px);background-size:64px 64px;mask-image:radial-gradient(circle at 50% 55%,black 10%,transparent 88%)}.flowmap__glow{position:absolute;z-index:2;width:340px;height:340px;border-radius:50%;filter:blur(35px);pointer-events:none}.flowmap__glow--a{top:14%;left:12%;background:#4caee029}.flowmap__glow--b{right:10%;bottom:14%;background:#f3c0681f}.flowmap__chip,.flowmap__hint{position:absolute;z-index:3;left:1.2rem;padding:.6rem .85rem;border-radius:999px;font-family:var(--flow-mono, "IBM Plex Mono", monospace);font-size:.54rem;letter-spacing:.08em;text-transform:uppercase}.flowmap__chip{bottom:1.2rem;color:#dff7ff;background:#ffffff0f;border:1px solid rgba(255,255,255,.08)}.flowmap__hint{bottom:4.4rem;max-width:460px;color:#ffffffb8;background:#11130f8c;border:1px solid rgba(255,255,255,.08);text-transform:none;letter-spacing:0;line-height:1.55;white-space:normal;backdrop-filter:blur(8px)}.flowmap__hint strong{color:#dff7ff}@media(max-width:980px){.flowmap__head{grid-template-columns:1fr}.flowmap__grid{grid-template-columns:1fr;min-height:0}.flowmap__map{min-height:54vh}.flowmap__panel{min-height:48vh}}@media(max-width:640px){.flowmap{padding-top:7rem;padding-bottom:7rem}.flowmap__head h2{font-size:3.4rem}.flowmap__map{min-height:62vh;padding:16px}.flowmap__chip{left:16px;bottom:16px}.flowmap__hint{left:16px;bottom:5.2rem;max-width:calc(100% - 32px)}.flowmap__autosuggest{gap:.5rem}.flowmap__autosuggest button{padding:.65rem .8rem}.flowmap__eta{flex-direction:column;align-items:flex-start}.flowmap__eta-bubble{margin-left:0;max-width:100%}.flowmap__live{border-radius:18px}.flowmap__radar{width:64px;height:64px;right:14px;bottom:14px}}@media(prefers-reduced-motion:reduce){.flowmap__map-canvas,.flowmap__traffic-fill{transition-duration:.01ms}.flowmap__radar:before,.flowmap__radar-blip,.live__dot{animation:none}}
