:root{color-scheme:dark}*{margin:0;padding:0;box-sizing:border-box}html,body{height:100%;background:#0a0a0f;font-family:-apple-system,BlinkMacSystemFont,SF Pro Text,SF Pro Display,Helvetica Neue,system-ui,sans-serif;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overflow:hidden}#map{position:fixed;inset:0}#map:after{content:"";position:fixed;inset:0;pointer-events:none;background:radial-gradient(120% 80% at 50% 8%,transparent 40%,rgba(6,7,11,.55) 100%)}.maplibregl-ctrl-attrib{background:#0a0a0f80!important;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.maplibregl-ctrl-attrib a{color:#fff6!important;font-size:10px}.chip{position:fixed;top:calc(env(safe-area-inset-top,0px) + 16px);left:50%;transform:translate(-50%);display:flex;align-items:center;gap:7px;padding:7px 14px;border-radius:100px;z-index:10;background:#1c1c2299;backdrop-filter:blur(20px) saturate(1.7);-webkit-backdrop-filter:blur(20px) saturate(1.7);border:.5px solid rgba(255,255,255,.1);font-size:13px;font-weight:590;letter-spacing:-.1px;color:#ffffffeb;opacity:0;transition:opacity .5s ease}.chip.ready{opacity:1}.chip .dot{width:7px;height:7px;border-radius:50%;background:#30d158;box-shadow:0 0 8px #30d158cc}.chip.flying .dot{animation:pulse 1.4s ease-in-out infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.3}}.card{position:fixed;left:50%;bottom:calc(env(safe-area-inset-bottom,0px) + 14px);transform:translate(-50%) translateY(16px);width:min(520px,calc(100vw - 20px));z-index:10;border-radius:28px;padding:20px 20px 16px;background:#18181db8;backdrop-filter:blur(30px) saturate(1.8);-webkit-backdrop-filter:blur(30px) saturate(1.8);border:.5px solid rgba(255,255,255,.12);box-shadow:0 -1px #ffffff0a inset,0 12px 40px #00000073;opacity:0;transition:opacity .6s ease,transform .6s cubic-bezier(.22,1,.36,1)}.card.ready{opacity:1;transform:translate(-50%) translateY(0)}.card .top{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}.route{display:flex;align-items:center;gap:8px;color:#fff;font-size:20px;font-weight:640;letter-spacing:-.4px}.route svg{width:17px;height:17px;opacity:.6;flex:none}.date{color:#ffffff80;font-size:13px;font-weight:510;white-space:nowrap}.track{height:4px;border-radius:100px;background:#ffffff1f;overflow:hidden;margin-bottom:18px}.track .fill{height:100%;width:0%;border-radius:100px;background:linear-gradient(90deg,#34c759,#30d158)}.stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;background:#ffffff14;border-radius:16px;overflow:hidden;margin-bottom:16px}.stat{background:#1e1e24e6;padding:13px 14px;display:flex;flex-direction:column;gap:3px;min-width:0}.stat .label{color:#ffffff80;font-size:11px;font-weight:560;letter-spacing:.2px}.stat .value{color:#fff;font-size:22px;font-weight:620;letter-spacing:-.6px;font-variant-numeric:tabular-nums;line-height:1}.stat .value .unit{color:#ffffff80;font-size:13px;font-weight:540;letter-spacing:-.2px}@media (min-width: 500px){.stats{grid-template-columns:repeat(4,minmax(0,1fr))}}.cta{display:flex;align-items:center;justify-content:center;gap:7px;width:100%;text-decoration:none;background:#0a84ff;color:#fff;font-size:17px;font-weight:620;letter-spacing:-.2px;height:52px;border-radius:15px;transition:transform .15s ease,background .15s ease}.cta svg{width:18px;height:18px}.cta:active{transform:scale(.98);background:#0a76e0}.foot{display:flex;align-items:center;justify-content:space-between;margin-top:13px;padding:0 2px}.foot .brand{display:flex;align-items:center;gap:5px;color:#ffffff6b;font-size:11.5px;font-weight:520}.foot .brand b{color:#ffffffad;font-weight:600}.foot .replay{display:flex;align-items:center;gap:5px;color:#ffffff9e;font-size:12.5px;font-weight:560;cursor:pointer;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;-moz-user-select:none;user-select:none}.foot .replay:active{opacity:.55}.foot .replay svg{width:13px;height:13px}.plane-marker{width:46px;height:46px;display:flex;align-items:center;justify-content:center;filter:drop-shadow(0 2px 10px rgba(0,0,0,.7));opacity:0;transition:opacity .3s ease}.plane-marker.show{opacity:1}.plane-marker svg{width:30px;height:30px}.airport-label{color:#ffffffb8;font-size:10.5px;font-weight:620;letter-spacing:.5px;text-shadow:0 1px 5px rgba(0,0,0,.9);transform:translateY(15px)}
