:root {
    --fl-blue: #1a73e8;
    --fl-blue-dark: #1552a3;
    --fl-blue-deep: #0d3f80;
    --fl-blue-light: #4797ff;
    --fl-ink: #111827;
    --fl-body: #4b5563;
    --fl-muted: #eff6ff;
    --fl-bg: #f8fbff;
    --fl-border: #dbeafe;
    --fl-white: #ffffff;
    --fl-green: #15803d;
    --fl-red: #dc2626;
    --fl-shadow: 0 14px 36px rgba(21, 82, 163, .1);
    --fl-code-comment: #7c9fd4;
    --fl-code-string: #86e6b8;
    --fl-code-keyword: #93c5fd;
    --fl-code-fn: #fbbf77;
}

html { scroll-behavior: smooth; }
body { margin: 0; background: var(--fl-bg); color: var(--fl-ink); }
.fl-home, .fl-home * { box-sizing: border-box; }
.fl-home { overflow: hidden; background: var(--fl-bg); color: var(--fl-ink); font-family: var(--font-sans); }
.fl-home a { color: inherit; text-decoration: none; }
.fl-home button { font: inherit; }
.fl-home h1, .fl-home h2, .fl-home h3, .fl-home p { margin-top: 0; }
.fl-home h1, .fl-home h2, .fl-home h3 { font-family: var(--font-sans); font-weight: 700; }
.fl-home .material-symbols-outlined { font-family: "Material Symbols Outlined" !important; font-size: 20px; line-height: 1; }
.fl-shell { width: min(1240px, calc(100% - 48px)); margin-inline: auto; }

.fl-nav { position: fixed; inset: 0 0 auto; z-index: 1000; height: 80px; background: rgba(255,255,255,.94); border-bottom: 1px solid var(--fl-border); backdrop-filter: blur(16px); }
.fl-nav__inner { height: 80px; display: flex; align-items: center; justify-content: space-between; gap: 24px; }
.fl-brand { display: inline-flex; align-items: center; flex-shrink: 0; }
.fl-brand img { width: 180px; height: auto; object-fit: contain; display: block; }
.fl-nav__links { display: flex; align-items: center; gap: 4px; }
.fl-nav__links a { padding: 9px 11px; border-radius: 8px; color: var(--fl-body); font-size: 13px; font-weight: 600; transition: .2s ease; }
.fl-nav__links a:hover { color: var(--fl-blue); background: var(--fl-muted); }
.fl-nav__actions { display: flex; align-items: center; gap: 10px; flex-shrink: 0; }
.fl-login { padding: 8px; color: var(--fl-body) !important; font-size: 14px; font-weight: 700; }
.fl-menu-toggle { display: none; width: 42px; height: 42px; border: 1px solid var(--fl-border); border-radius: 8px; color: var(--fl-blue); background: var(--fl-white); align-items: center; justify-content: center; cursor: pointer; }
.fl-mobile-menu { display: none; padding: 10px 24px 18px; background: var(--fl-white); border-bottom: 1px solid var(--fl-border); }
.fl-mobile-menu a { display: block; padding: 10px 4px; color: var(--fl-body); font-size: 14px; font-weight: 600; }

.fl-home main { padding-top: 80px; }
.fl-button { min-height: 44px; display: inline-flex; align-items: center; justify-content: center; gap: 8px; padding: 10px 18px; border: 1px solid transparent; border-radius: 8px; font-size: 13px; font-weight: 700; line-height: 1.3; transition: transform .2s ease, box-shadow .2s ease, background .2s ease; }
.fl-button:hover { transform: translateY(-2px); }
.fl-button--primary { color: #fff !important; background: var(--fl-blue); box-shadow: 0 7px 18px rgba(26,115,232,.22); }
.fl-button--primary:hover { color: #fff !important; background: var(--fl-blue-dark); box-shadow: 0 10px 24px rgba(21,82,163,.28); }
.fl-button--secondary { color: var(--fl-blue) !important; background: #fff; border-color: var(--fl-blue); }
.fl-button--secondary:hover { color: #fff !important; background: var(--fl-blue); }
.fl-button--muted { width: 100%; color: var(--fl-blue-dark) !important; background: var(--fl-muted); border-color: var(--fl-border); }
.fl-button--small { min-height: 38px; padding: 8px 14px; }
.fl-button--small .material-symbols-outlined { font-size: 17px; }

.fl-hero { position: relative; overflow: hidden; background: linear-gradient(180deg, #f4f8ff 0%, #fff 55%, #f1f6ff 100%); border-bottom: 1px solid var(--fl-border); }
.fl-glow { position: absolute; width: 400px; height: 400px; border-radius: 50%; filter: blur(75px); opacity: .2; pointer-events: none; }
.fl-glow--one { top: -180px; left: 24%; background: var(--fl-blue-light); }
.fl-glow--two { right: -180px; top: 280px; background: var(--fl-blue); }
.fl-hero__inner { position: relative; padding-block: 22px 40px; }
.fl-signal-row { display: flex; justify-content: space-between; align-items: center; gap: 20px; margin-bottom: 14px; }
.fl-status-chip { display: inline-flex; align-items: center; gap: 8px; padding: 7px 12px; border: 1px solid var(--fl-border); border-radius: 999px; background: rgba(255,255,255,.86); box-shadow: 0 4px 12px rgba(21,82,163,.06); color: var(--fl-blue-dark); font-family: var(--font-mono); font-size: 10px; letter-spacing: .04em; }
.fl-status-chip i { width: 3px; height: 3px; border-radius: 50%; background: #bfdbfe; }
.fl-pulse { position: relative; width: 8px; height: 8px; flex: 0 0 8px; border-radius: 50%; background: #16a34a; box-shadow: 0 0 0 4px rgba(22,163,74,.12); animation: fl-pulse 1.7s infinite; }
.fl-pulse--blue { background: var(--fl-blue); box-shadow: 0 0 0 4px rgba(26,115,232,.12); }
@keyframes fl-pulse { 50% { box-shadow: 0 0 0 8px transparent; } }
.fl-signal-meta { display: flex; gap: 18px; color: var(--fl-body); font-family: var(--font-mono); font-size: 10px; font-weight: 600; }
.fl-signal-meta span { display: flex; align-items: center; gap: 5px; }
.fl-signal-meta .material-symbols-outlined { color: var(--fl-blue); font-size: 16px; }

.fl-hero__grid { display: grid; grid-template-columns: minmax(0, 1.08fr) minmax(0, 1fr); align-items: center; gap: 52px; }
.fl-hero__copy .fl-status-chip { margin-bottom: 18px; }
.fl-hero__copy { max-width: none; }
.fl-eyebrow { display: flex; align-items: center; gap: 10px; margin-bottom: 15px; color: var(--fl-body); font-size: 12px; font-weight: 600; }
.fl-eyebrow span, .fl-label { display: inline-flex; padding: 6px 10px; border: 1px solid #bfdbfe; border-radius: 6px; color: var(--fl-blue-dark); background: var(--fl-muted); font-family: var(--font-mono); font-size: 10px; font-weight: 700; letter-spacing: .07em; text-transform: uppercase; }
.fl-hero h1 { margin-bottom: 16px; font-size: clamp(42px, 4.2vw, 60px); line-height: 1.08; letter-spacing: -.02em; }
.fl-home h1 em, .fl-home h2 em { color: var(--fl-blue); font-style: normal; }
.fl-hero h1 em { text-decoration: underline; text-decoration-color: #93c5fd; text-decoration-thickness: 3px; text-underline-offset: 6px; }
.fl-hero__copy > p { max-width: 680px; margin-bottom: 22px; color: var(--fl-body); font-size: 18px; line-height: 1.7; }
.fl-actions { display: flex; flex-wrap: wrap; gap: 12px; }
.fl-trust { display: flex; flex-wrap: wrap; gap: 18px; margin-top: 20px; color: var(--fl-body); font-size: 11px; font-weight: 600; }
.fl-trust span { display: flex; align-items: center; gap: 5px; }
.fl-trust .material-symbols-outlined { color: var(--fl-blue); font-size: 17px; }

.fl-node-card { padding: 22px; border: 1px solid var(--fl-border); border-radius: 16px; background: rgba(255,255,255,.9); box-shadow: var(--fl-shadow); backdrop-filter: blur(12px); }
.fl-node-card__head, .fl-node-card__foot { display: flex; justify-content: space-between; align-items: center; gap: 12px; font-family: var(--font-mono); font-size: 9px; }
.fl-node-card__head { padding-bottom: 14px; border-bottom: 1px solid var(--fl-border); }
.fl-node-card__head > span { display: flex; align-items: center; gap: 7px; font-weight: 700; letter-spacing: .05em; }
.fl-node-card__head > span b { width: 8px; height: 8px; border-radius: 50%; background: var(--fl-blue); }
.fl-node-card__head strong { display: flex; align-items: center; gap: 5px; padding: 5px 7px; border: 1px solid #bbf7d0; border-radius: 5px; color: var(--fl-green); background: #f0fdf4; }
.fl-node-card__head strong i, .fl-table-foot strong i { width: 6px; height: 6px; border-radius: 50%; background: #16a34a; }
.fl-metrics { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; padding-block: 16px; }
.fl-metrics div { min-width: 0; display: flex; flex-direction: column; padding: 11px; border: 1px solid var(--fl-border); border-radius: 10px; background: var(--fl-muted); }
.fl-metrics small { overflow: hidden; color: var(--fl-body); font-family: var(--font-mono); font-size: 8px; text-overflow: ellipsis; text-transform: uppercase; white-space: nowrap; }
.fl-metrics b { margin: 3px 0; color: var(--fl-blue-dark); font-family: var(--font-sans); font-size: 20px; font-weight: 700; }
.fl-metrics span { color: var(--fl-green); font-family: var(--font-mono); font-size: 8px; }
.fl-node-card__foot { color: var(--fl-body); }
.fl-node-card__foot b { padding: 4px 6px; border-radius: 5px; color: var(--fl-green); background: #f0fdf4; }

.fl-radar-card { margin-top: 8px; padding: 14px; border: 1px solid var(--fl-border); border-radius: 18px; background: #fff; box-shadow: var(--fl-shadow); }
.fl-panel-bar { min-height: 48px; display: flex; align-items: center; justify-content: space-between; gap: 15px; padding: 10px 14px; margin-bottom: 12px; border: 1px solid var(--fl-border); border-radius: 10px; background: var(--fl-muted); }
.fl-panel-bar > div { display: flex; align-items: center; gap: 10px; color: var(--fl-body); font-family: var(--font-mono); font-size: 9px; }
.fl-panel-bar strong { color: var(--fl-ink); font-family: var(--font-sans); font-size: 13px; }
.fl-panel-bar b { color: var(--fl-blue-dark); }
.fl-random-btn { display: inline-flex; align-items: center; gap: 6px; padding: 6px 10px; border: 1px solid #bfdbfe; border-radius: 999px; color: var(--fl-blue-dark); background: #fff; font-family: var(--font-mono); font-size: 9px; font-weight: 700; cursor: pointer; transition: .2s ease; }
.fl-random-btn:hover:not(:disabled) { border-color: var(--fl-blue); background: var(--fl-muted); }
.fl-random-btn:disabled { opacity: .55; cursor: not-allowed; }
.fl-random-btn .material-symbols-outlined { font-size: 14px; }
.fl-random-btn small { color: var(--fl-body); font-weight: 600; }
.fl-random-note { margin: 0 0 12px; padding: 9px 12px; border-radius: 8px; font-family: var(--font-mono); font-size: 10px; }
.fl-random-note--info { color: var(--fl-blue-dark); background: var(--fl-muted); border: 1px solid var(--fl-border); }
.fl-random-note--limit { color: var(--fl-blue-dark); background: #fff; border: 1px solid var(--fl-blue); }
.fl-random-note a { color: var(--fl-blue); font-weight: 700; text-decoration: underline; }
.fl-radar-layout { display: grid; grid-template-columns: 7fr 5fr; gap: 12px; }
.fl-radar { position: relative; min-height: 430px; overflow: hidden; border: 1px solid #cbd5e1; border-radius: 12px; background: #eaf2fc; box-shadow: inset 0 2px 12px rgba(21,82,163,.08); }
.fl-radar > svg { position: absolute; inset: 0; width: 100%; height: 100%; }
.fl-radar__grid { fill: none; stroke: #a9c8ef; stroke-width: 1; stroke-dasharray: 4 4; }
.fl-radar__land { fill: none; stroke: #7da9df; stroke-width: 2; stroke-dasharray: 4 3; }
.fl-radar__paths { fill: none; stroke-width: 2; stroke-dasharray: 7 4; }
.fl-radar__paths path:nth-child(1) { stroke: var(--fl-blue); }
.fl-radar__paths path:nth-child(2) { stroke: var(--fl-blue-light); }
.fl-radar__paths path:nth-child(3) { stroke: var(--fl-green); }
.fl-sweep { position: absolute; width: 410px; height: 410px; left: 50%; top: 50%; border-radius: 50%; opacity: .35; background: conic-gradient(from 0deg, rgba(26,115,232,.45), rgba(71,151,255,.08) 40deg, transparent 75deg); transform: translate(-50%,-50%); animation: fl-spin 7s linear infinite; }
@keyframes fl-spin { to { transform: translate(-50%,-50%) rotate(360deg); } }
.fl-aircraft { position: absolute; z-index: 2; display: grid; grid-template-columns: 25px auto; grid-template-rows: auto auto; align-items: center; padding: 0; border: 0; background: none; color: var(--fl-blue-dark); cursor: pointer; transform: translate(-50%,-50%); }
.fl-aircraft--1 { top: 32%; left: 34%; --heading: 70deg; }
.fl-aircraft--2 { top: 51%; left: 22%; --heading: 40deg; }
.fl-aircraft--3 { top: 63%; left: 70%; --heading: 110deg; }
.fl-aircraft--4 { top: 78%; left: 43%; --heading: 285deg; }
.fl-aircraft > .material-symbols-outlined { grid-row: 1 / 3; width: 25px; height: 25px; display: flex; align-items: center; justify-content: center; border: 1px solid #fff; border-radius: 50%; color: #fff; background: var(--fl-blue); box-shadow: 0 3px 8px rgba(21,82,163,.28); font-size: 15px; transform: rotate(var(--heading)); transition: .2s ease; }
.fl-aircraft:hover > .material-symbols-outlined { scale: 1.25; }
.fl-aircraft b, .fl-aircraft small { min-width: max-content; padding-inline: 7px; margin-left: 4px; border-inline: 1px solid var(--fl-border); background: rgba(255,255,255,.94); font-family: var(--font-mono); font-size: 9px; }
.fl-aircraft b { align-self: end; padding-top: 3px; border-top: 1px solid var(--fl-border); border-radius: 5px 5px 0 0; color: var(--fl-blue-dark); }
.fl-aircraft small { align-self: start; padding-bottom: 3px; border-bottom: 1px solid var(--fl-border); border-radius: 0 0 5px 5px; color: var(--fl-body); }
.fl-radar-legend { position: absolute; left: 12px; bottom: 12px; padding: 8px; border: 1px solid var(--fl-border); border-radius: 7px; color: var(--fl-blue-dark); background: rgba(255,255,255,.88); font-family: var(--font-mono); font-size: 8px; line-height: 1.6; }
.fl-json-panel { min-width: 0; overflow: hidden; border: 1px solid var(--fl-border); border-radius: 12px; background: #fbfdff; }
.fl-code-head, .fl-target-bar { display: flex; align-items: center; justify-content: space-between; gap: 10px; border-bottom: 1px solid var(--fl-border); font-family: var(--font-mono); font-size: 9px; }
.fl-code-head { min-height: 45px; padding: 9px 12px; background: var(--fl-muted); }
.fl-code-head > span { display: flex; align-items: center; gap: 6px; }
.fl-code-head i { width: 8px; height: 8px; border-radius: 50%; background: #93c5fd; }
.fl-code-head i:nth-child(2) { background: #60a5fa; }
.fl-code-head i:nth-child(3) { background: #22c55e; }
.fl-code-head strong { padding: 4px 6px; border-radius: 4px; color: var(--fl-green); background: #dcfce7; }
.fl-code-head button { display: flex; align-items: center; gap: 3px; padding: 4px 6px; border: 1px solid var(--fl-border); border-radius: 4px; color: var(--fl-blue-dark); background: #fff; cursor: pointer; font-size: 9px; }
.fl-code-head button .material-symbols-outlined { font-size: 13px; }
.fl-target-bar { min-height: 32px; padding: 7px 12px; color: var(--fl-body); background: #fff; }
.fl-target-bar b { color: var(--fl-blue); }
.fl-target-bar strong { color: var(--fl-green); }
.fl-json-panel pre { height: 350px; overflow: auto; padding: 22px 28px !important; margin: 0; color: var(--fl-ink); background: #fbfdff; font-family: var(--font-mono); font-size: 10px; line-height: 1.65; }
.fl-json-panel code span { color: var(--fl-blue-dark); font-weight: 600; }
.fl-json-panel code b { color: var(--fl-green); }
.fl-json-panel code em { color: var(--fl-blue); font-style: normal; }

.fl-section { padding-block: 78px; scroll-margin-top: 96px; }
#hero, #radar-sandbox { scroll-margin-top: 96px; }
.fl-section--white { width: 100%; background: #fff; border-block: 1px solid var(--fl-border); }
.fl-section-heading { margin-bottom: 34px; }
.fl-section-heading h2, .fl-docs-copy h2, .fl-cta h2 { margin-bottom: 10px; font-size: clamp(30px, 3.2vw, 46px); line-height: 1.18; letter-spacing: -.015em; }
.fl-section-heading p, .fl-docs-copy > p, .fl-cta p { margin-bottom: 0; color: var(--fl-body); font-size: 15px; line-height: 1.65; }
.fl-section-heading--split { display: flex; align-items: end; justify-content: space-between; gap: 35px; }
.fl-section-heading--split > div:first-child { max-width: 750px; }
.fl-section-heading--center { max-width: 760px; margin-inline: auto; margin-bottom: 42px; text-align: center; }
.fl-section-heading--center .fl-label { margin-bottom: 14px; }
.fl-kicker { display: block; margin-bottom: 8px; color: var(--fl-blue); font-family: var(--font-mono); font-size: 10px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.fl-tabs { display: flex; padding: 4px; border: 1px solid var(--fl-border); border-radius: 9px; background: #fff; box-shadow: 0 4px 14px rgba(21,82,163,.06); white-space: nowrap; }
.fl-tabs button, .fl-code-tabs button { padding: 7px 10px; border: 0; border-radius: 6px; color: var(--fl-body); background: transparent; font-size: 10px; font-weight: 700; cursor: pointer; }
.fl-tabs button.active { color: #fff; background: var(--fl-blue); }

.fl-table-card { overflow: hidden; border: 1px solid var(--fl-border); border-radius: 16px; background: #fff; box-shadow: 0 8px 24px rgba(21,82,163,.06); }
.fl-table-scroll { overflow-x: auto; position: relative; }
.fl-table-card table { width: 100%; min-width: 1050px; border-collapse: collapse; font-size: 11px; }
.fl-table-card thead { background: var(--fl-muted); color: var(--fl-body); font-family: var(--font-mono); font-size: 9px; letter-spacing: .05em; text-transform: uppercase; }
.fl-table-card th, .fl-table-card td { padding: 13px 15px; border-bottom: 1px solid #edf4fd; text-align: left; white-space: nowrap; }
.fl-table-card tbody tr:hover { background: #f8fbff; }
.fl-table-card td small { color: var(--fl-body); }
.fl-flight-code { padding: 5px 7px; border: 1px solid #bfdbfe; border-radius: 5px; color: var(--fl-blue); background: var(--fl-muted); font-family: var(--font-mono); font-weight: 700; }
.fl-airline-cell { height: auto; min-width: 72px; vertical-align: middle; }
.fl-airline-logo { display: block; width: auto; height: 28px; max-width: 96px; object-fit: contain; }
.fl-flight-status { display: inline-flex; padding: 4px 7px; border: 1px solid; border-radius: 999px; font-family: var(--font-mono); font-size: 8px; font-weight: 700; }
.fl-flight-status--live { color: var(--fl-green); border-color: #bbf7d0; background: #f0fdf4; }
.fl-flight-status--scheduled { color: var(--fl-body); border-color: #d1d5db; background: #f9fafb; }
.fl-flight-status--delayed { color: var(--fl-red); border-color: #fecaca; background: #fef2f2; }
.fl-flight-status--grounded { color: var(--fl-body); border-color: #d1d5db; background: #f9fafb; }
.fl-table-foot { display: flex; justify-content: space-between; gap: 20px; padding: 12px 15px; color: var(--fl-body); background: var(--fl-muted); font-family: var(--font-mono); font-size: 9px; }
.fl-table-foot strong { display: flex; align-items: center; gap: 5px; color: var(--fl-green); }

.fl-capability-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(270px, 1fr)); gap: 16px; }
.fl-capability { min-height: 230px; display: flex; flex-direction: column; padding: 20px; border: 1px solid var(--fl-border); border-radius: 16px; background: #fbfdff; box-shadow: 0 4px 16px rgba(21,82,163,.04); transition: .25s ease; color: inherit; text-decoration: none; }
.fl-capability:hover { border-color: #93c5fd; transform: translateY(-4px); box-shadow: var(--fl-shadow); }
.fl-capability__icon { width: 46px; height: 46px; display: flex !important; align-items: center; justify-content: center; margin-bottom: 18px; border: 1px solid #bfdbfe; border-radius: 11px; color: var(--fl-blue); background: var(--fl-muted); font-size: 25px !important; }
.fl-capability h3 { margin-bottom: 8px; font-size: 17px; }
.fl-capability p { flex: 1; margin-bottom: 16px; color: var(--fl-body); font-size: 12px; line-height: 1.65; }
.fl-capability footer { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding-top: 14px; border-top: 1px solid var(--fl-border); font-family: var(--font-mono); font-size: 11px; font-weight: 600; line-height: 1.3; }
.fl-capability footer span { color: var(--fl-blue); font-size: 11px; line-height: 1.3; }
.fl-capability footer code { margin: 0; padding: 0; border-radius: 0; background: transparent; color: var(--fl-body); font-family: var(--font-mono); font-size: 11px; line-height: 1.3; text-align: right; overflow-wrap: anywhere; }

.fl-docs-grid { display: grid; grid-template-columns: 5fr 7fr; align-items: center; gap: 58px; }
.fl-docs-copy ul { display: grid; gap: 9px; padding: 0; margin: 22px 0; list-style: none; }
.fl-docs-copy li { display: flex; align-items: center; gap: 10px; padding: 11px; border: 1px solid var(--fl-border); border-radius: 9px; background: #fff; color: var(--fl-ink); font-size: 11px; font-weight: 600; }
.fl-docs-copy li .material-symbols-outlined { color: var(--fl-green); }
.fl-docs-copy > a { display: inline-flex; align-items: center; gap: 5px; color: var(--fl-blue) !important; font-size: 12px; font-weight: 700; }
.fl-code-card { overflow: hidden; border: 1px solid #30363d; border-radius: 12px; background: #0d1117; box-shadow: 0 8px 32px rgba(0, 0, 0, .18); }
.fl-code-tabs { min-height: 50px; display: flex; align-items: center; justify-content: space-between; padding: 8px 14px; border-bottom: 1px solid rgba(240, 246, 252, .1); background: #161b22; }
.fl-code-tabs button { color: #8b949e; background: transparent; }
.fl-code-tabs button.active { color: #79c0ff; background: rgba(121, 192, 255, .12); box-shadow: inset 0 0 0 1px rgba(121, 192, 255, .28); }
.fl-code-tabs > span { padding: 4px 8px; border: 1px solid rgba(139, 148, 158, .22); border-radius: 6px; color: #8b949e; background: rgba(139, 148, 158, .12); font-family: var(--font-mono); font-size: 11px; font-weight: 500; }
.fl-code-card pre { min-height: 175px; overflow: auto; padding: 16px 20px !important; margin: 0; color: #e6edf3; background: #0d1117; font-family: var(--font-mono); font-size: 13px; line-height: 1.6; }
.fl-code-card pre .tok-c { color: #8b949e; font-style: italic; }
.fl-code-card pre .tok-s { color: #a5d6ff; }
.fl-code-card pre .tok-k { color: #79c0ff; font-weight: 600; }
.fl-code-card pre .tok-f { color: #ffa657; }
.fl-docs-grid .mcp-code-window { overflow: hidden; border-radius: 1rem; background: #111827; box-shadow: 0 18px 50px rgba(15, 23, 42, .18); border: 1px solid rgba(148, 163, 184, .25); }
.fl-docs-grid .mcp-code-window__chrome { display: flex; align-items: center; gap: .45rem; background: #171717; padding: .75rem 1rem; }
.fl-docs-grid .mcp-code-window__chrome span { width: .7rem; height: .7rem; border-radius: 999px; }
.fl-docs-grid .mcp-demo-panel { font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace; font-size: .8125rem; line-height: 1.6; color: #e5e7eb; padding: 1.25rem; }
.fl-docs-grid .mcp-demo-label { margin-bottom: .5rem; padding-bottom: .5rem; border-bottom: 1px solid #374151; font-size: .75rem; color: #9ca3af; }
.fl-docs-grid .mcp-demo-quote { margin-bottom: 1rem; font-size: .9375rem; font-style: italic; color: #e5e7eb; }
.fl-docs-grid .mcp-demo-key { color: #93c5fd; }
.fl-docs-grid .mcp-demo-value { color: #86efac; }
.fl-docs-grid .mcp-demo-brace { color: #fbbf24; }
.fl-docs-grid .mcp-demo-indent-1 { padding-left: 2ch; }
.fl-docs-grid .mcp-demo-indent-2 { padding-left: 4ch; }
.fl-docs-grid .mcp-demo-footer { margin: 1rem 0 0; padding-top: .75rem; border-top: 1px solid #374151; font-size: .75rem; line-height: 1.5; color: #9ca3af; }
.fl-code-tabs b { color: #e6edf3; font-size: 13px; }

.fl-pricing-toggle { display: inline-flex; align-items: center; gap: 10px; margin-top: 22px; color: var(--fl-ink); font-size: 12px; font-weight: 700; cursor: pointer; }
.fl-pricing-toggle input { position: absolute; opacity: 0; pointer-events: none; }
.fl-pricing-toggle > i { position: relative; width: 48px; height: 26px; border: 1px solid #bfdbfe; border-radius: 999px; background: var(--fl-muted); transition: .2s; }
.fl-pricing-toggle > i::after { content: ""; position: absolute; top: 3px; left: 3px; width: 18px; height: 18px; border-radius: 50%; background: var(--fl-blue); transition: .2s; }
.fl-pricing-toggle input:checked + i { background: #dbeafe; }
.fl-pricing-toggle input:checked + i::after { transform: translateX(21px); }
.fl-pricing-toggle span:last-child { display: flex; align-items: center; gap: 6px; }
.fl-pricing-toggle b { padding: 3px 5px; border-radius: 4px; color: var(--fl-blue-dark); background: var(--fl-muted); font-family: var(--font-mono); font-size: 8px; }
.fl-pricing-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; align-items: stretch; }
.fl-price-card { position: relative; min-height: 455px; display: flex; flex-direction: column; justify-content: space-between; padding: 24px; border: 1px solid var(--fl-border); border-radius: 16px; background: #fbfdff; box-shadow: 0 5px 18px rgba(21,82,163,.05); }
.fl-price-card .fl-button { width: 100%; }
.fl-price-card--popular { border: 2px solid var(--fl-blue); background: #fff; box-shadow: var(--fl-shadow); }
.fl-popular { position: absolute; top: -12px; right: 20px; padding: 5px 9px; border-radius: 999px; color: #fff; background: var(--fl-blue); font-family: var(--font-mono); font-size: 8px; font-weight: 700; letter-spacing: .06em; }
.fl-plan-name { color: var(--fl-blue-dark); font-family: var(--font-sans); font-size: 17px; font-weight: 700; letter-spacing: -.01em; }
.fl-price { display: flex; align-items: baseline; gap: 5px; margin: 7px 0 2px; }
.fl-price b { font-family: var(--font-sans); font-size: 29px; letter-spacing: -.015em; font-weight: 800; }
.fl-price span { color: var(--fl-body); font-family: var(--font-sans); font-size: 13px; }
.fl-price-card > div > strong { display: block; margin-top: 3px; color: var(--fl-blue); font-family: var(--font-sans); font-size: 13px; font-weight: 700; }
.fl-price-card > div > small { color: var(--fl-body); font-family: var(--font-sans); font-size: 12px; }
.fl-price-card ul { display: grid; gap: 8px; padding: 18px 0 0; margin: 16px 0 24px; border-top: 1px solid var(--fl-border); list-style: none; }
.fl-price-card li { display: flex; align-items: center; gap: 7px; color: var(--fl-body); font-family: var(--font-sans); font-size: 12px; }
.fl-price-card li .material-symbols-outlined { color: var(--fl-blue); font-size: 16px; }
.fl-enterprise-eyebrow { margin: 0 0 8px; color: var(--fl-blue); font-family: var(--font-sans); font-size: 13px; font-weight: 600; line-height: 1.4; }
.fl-enterprise-price { margin: 7px 0 2px; color: var(--fl-ink); font-family: var(--font-sans); font-size: 15px; font-weight: 600; line-height: 1.3; }
.fl-enterprise-price strong { font-family: var(--font-sans); font-size: 29px; font-weight: 800; letter-spacing: -.015em; }
.fl-clients { padding-top: 18px; border-top: 1px solid var(--fl-border); }
.fl-clients__label { margin: 0 0 16px; color: var(--fl-body); font-size: 12px; font-weight: 600; text-align: center; }
.fl-brands { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px 32px; align-items: center; }
.fl-brand-logo { display: flex; align-items: center; justify-content: center; min-height: 72px; padding: 8px 4px; }
.fl-brand-logo img { width: auto; max-width: 100%; height: 48px; object-fit: contain; }

.fl-faqs { max-width: 950px; }
.fl-faq-list { display: grid; gap: 10px; }
.fl-faq { overflow: hidden; border: 1px solid var(--fl-border); border-radius: 11px; background: #fff; box-shadow: 0 3px 10px rgba(21,82,163,.04); }
.fl-faq button { width: 100%; display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 17px 19px; border: 0; color: var(--fl-ink); background: transparent; text-align: left; font-size: 13px; font-weight: 700; cursor: pointer; }
.fl-faq button .material-symbols-outlined { color: var(--fl-blue); transition: .2s; }
.fl-faq__answer { display: none; padding: 0 19px 18px; color: var(--fl-body); font-size: 12px; line-height: 1.75; }
.fl-faq__answer p:last-child { margin-bottom: 0; }
.fl-faq__answer ul { margin-bottom: 0; }
.fl-faq.is-open .fl-faq__answer { display: block; }
.fl-faq.is-open button .material-symbols-outlined { transform: rotate(180deg); }

.fl-cta { position: relative; min-height: 220px; display: flex; align-items: center; justify-content: space-between; gap: 40px; overflow: hidden; padding: 45px; margin-bottom: 70px; border: 1px solid #bfdbfe; border-radius: 24px; background: linear-gradient(125deg, #eaf3ff, #f8fbff 55%, #dbeafe); box-shadow: var(--fl-shadow); }
.fl-cta::after { content: ""; position: absolute; right: -90px; bottom: -120px; width: 300px; height: 300px; border-radius: 50%; background: rgba(71,151,255,.18); filter: blur(25px); }
.fl-cta > * { position: relative; z-index: 1; }
.fl-cta > div:first-child { max-width: 680px; }
.fl-cta h2 { font-size: clamp(28px, 3vw, 38px); }

/* Long-form legal/marketing pages (terms, blog) that keep their existing
   heading/paragraph markup — this restyles generically via descendant
   selectors instead of touching each line of copy. */
.fl-legal { background: var(--fl-bg); }
.fl-legal__inner { max-width: 820px; padding-bottom: 64px; font-family: var(--font-sans); color: var(--fl-ink); }
.fl-legal__inner h1, .fl-legal__inner h2 { margin-bottom: 8px; font-family: var(--font-sans); font-size: clamp(26px, 3.2vw, 38px); font-weight: 700; letter-spacing: -.015em; color: var(--fl-ink); }
.fl-legal__inner em { color: var(--fl-body); font-style: normal; }
.fl-legal__inner h4 { margin-top: 36px !important; font-family: var(--font-sans); font-size: 18px !important; font-weight: 700 !important; color: var(--fl-ink); }
.fl-legal__inner p { color: var(--fl-body); font-size: 16px; line-height: 1.75; }
.fl-legal__inner a { color: var(--fl-blue); text-decoration: underline; }
.fl-legal__inner ul, .fl-legal__inner ol { color: var(--fl-body); font-size: 16px; line-height: 1.75; }
.fl-legal__inner [id] { scroll-margin-top: 100px; }

.fl-footer { color: #dbeafe; background: var(--fl-blue-deep); }
.fl-footer__grid { display: grid; grid-template-columns: 2fr repeat(3, 1fr); gap: 40px; padding-block: 52px; }
.fl-footer__about { display: flex; flex-direction: column; gap: 12px; }
.fl-footer__about img { width: 160px; height: auto; }
.fl-footer__about p { max-width: 400px; margin: 4px 0 0; color: #bfdbfe; font-size: 13px; line-height: 1.7; }
.fl-footer__about span { display: flex; align-items: center; gap: 7px; color: #bfdbfe; font-size: 12px; }
.fl-footer__about span a { color: #dbeafe; font-weight: 600; }
.fl-footer__about .material-symbols-outlined { color: #93c5fd; font-size: 16px; }
.fl-footer__grid > div:not(.fl-footer__about) { display: flex; flex-direction: column; gap: 10px; }
.fl-footer h3 { margin-bottom: 4px; color: #fff; font-family: var(--font-mono); font-size: 10px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.fl-footer a { color: #bfdbfe; font-size: 13px; }
.fl-footer a:hover { color: #fff; text-decoration: underline; }
.fl-footer__bottom { display: flex; justify-content: space-between; gap: 16px; padding-block: 18px; border-top: 1px solid rgba(255,255,255,.12); color: #93c5fd; font-size: 12px; }
.fl-footer__bottom a { color: #dbeafe; font-weight: 600; }

@media (max-width: 900px) {
    .fl-footer__grid { grid-template-columns: repeat(2, 1fr); }
    .fl-footer__about { grid-column: 1 / -1; }
}
@media (max-width: 560px) {
    .fl-footer__grid { grid-template-columns: 1fr; }
    .fl-footer__bottom { flex-direction: column; gap: 6px; }
}

/* Only offscreen blocks are enhanced; layout and hover transforms stay intact. */
@media (prefers-reduced-motion: no-preference) {
    .fl-home .fl-rise, .fl-home .fl-rise-in { opacity: 1; }
    .fl-home .fl-rise-in { animation: fl-rise 650ms cubic-bezier(.22, 1, .36, 1) var(--fl-reveal-delay, 0ms) both; }
}

@keyframes fl-rise {
    from { translate: 0 8px; }
    to { translate: 0 0; }
}

@media print {
    .fl-home .fl-rise, .fl-home .fl-rise-in { translate: none; animation: none; }
}

@media (max-width: 1100px) {
    .fl-nav__links { display: none; }
    .fl-menu-toggle { display: inline-flex; }
    .fl-mobile-menu.is-open { display: block; }
    .fl-hero__grid { grid-template-columns: 1fr; gap: 32px; }
    .fl-node-card { max-width: 600px; }
    .fl-radar-layout { grid-template-columns: 1fr; }
    .fl-json-panel pre { height: 320px; }
    .fl-capability-grid, .fl-pricing-grid { grid-template-columns: repeat(2, 1fr); }
    .fl-docs-grid { grid-template-columns: 1fr; gap: 35px; }
}

@media (max-width: 767px) {
    .fl-shell { width: min(100% - 30px, 1240px); }
    .fl-nav, .fl-nav__inner { height: 68px; }
    .fl-brand img { width: 148px; }
    .fl-login { display: none; }
    .fl-nav__actions .fl-button { display: none; }
    .fl-home main { padding-top: 68px; }
    .fl-hero__inner { padding-block: 25px 45px; }
    .fl-signal-row { margin-bottom: 28px; }
    .fl-status-chip { max-width: 100%; }
    .fl-hero h1 { font-size: 39px; }
    .fl-hero__copy > p { font-size: 14px; }
    .fl-eyebrow { align-items: flex-start; flex-direction: column; }
    .fl-actions { flex-direction: column; align-items: stretch; }
    .fl-actions .fl-button { width: 100%; }
    .fl-trust { display: grid; gap: 8px; }
    .fl-node-card { padding: 16px; }
    .fl-node-card__head { align-items: flex-start; flex-direction: column; }
    .fl-metrics { gap: 6px; }
    .fl-metrics div { padding: 8px; }
    .fl-metrics b { font-size: 16px; }
    .fl-panel-bar { align-items: flex-start; flex-direction: column; }
    .fl-panel-bar > div { flex-wrap: wrap; }
    .fl-radar-card { padding: 8px; }
    .fl-radar { min-height: 360px; }
    .fl-sweep { width: 330px; height: 330px; }
    .fl-aircraft b, .fl-aircraft small { font-size: 7px; }
    .fl-target-bar span { display: none; }
    .fl-section { padding-block: 56px; }
    .fl-section-heading--split { align-items: flex-start; flex-direction: column; }
    .fl-tabs { max-width: 100%; overflow-x: auto; }
    .fl-capability-grid, .fl-pricing-grid { grid-template-columns: 1fr; }
    .fl-capability { min-height: auto; }
    .fl-docs-grid { gap: 28px; }
    .fl-code-tabs { align-items: flex-start; flex-direction: column; gap: 8px; }
    .fl-code-card pre { font-size: 9px; }
    .fl-cta { align-items: stretch; flex-direction: column; padding: 28px 22px; margin-bottom: 50px; }
    .fl-cta__side, .fl-cta .fl-actions { width: 100%; }
    .fl-cta .fl-actions { flex-direction: column; align-items: stretch; }
    .fl-cta .fl-actions .fl-button { width: 100%; }
}

@media (prefers-reduced-motion: reduce) {
    html { scroll-behavior: auto; }
    .fl-home *, .fl-home *::before, .fl-home *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; }
}

/* Shared public reading pages. */
.fl-public-content { padding-block: 128px 64px; font-family: var(--font-sans); color: var(--fl-body); }
.fl-public-content h1 { color: var(--fl-ink); font-size: clamp(30px, 4vw, 44px); font-weight: 700; letter-spacing: -.02em; }
.fl-public-content h2, .fl-public-content h3 { color: var(--fl-ink); font-weight: 700; }
.fl-public-content p, .fl-public-content li { line-height: 1.75; }
.fl-public-content a:not(.fl-button) { color: var(--fl-blue-dark); }
.fl-agent-guide { max-width: 960px; }
.fl-agent-guide code, .fl-agent-guide a { overflow-wrap: anywhere; }
.fl-agent-guide pre { color: var(--fl-ink); background: var(--fl-muted) !important; border-color: var(--fl-border) !important; }
.fl-agent-guide .table { background: var(--fl-white); }
.fl-agent-guide .table th, .fl-agent-guide .table td { border-color: var(--fl-border); padding: 16px; }
.fl-agent-guide .table th { background: var(--fl-muted); }
.fl-home a:focus-visible, .fl-home button:focus-visible, .fl-public-content a:focus-visible, .fl-auth-page a:focus-visible, .fl-auth-page button:focus-visible { outline: 3px solid var(--fl-blue); outline-offset: 3px; }
@media (max-width: 560px) { .fl-public-content { padding-block: 104px 40px; } }

.fl-mobile-menu { max-height: calc(100dvh - 80px); overflow-y: auto; }
.fl-mobile-menu a { min-height: 44px; }
.fl-menu-toggle { min-width: 44px; min-height: 44px; }
@media (max-width: 767px) { .fl-mobile-menu { max-height: calc(100dvh - 68px); } }

/* Content stays visible. Motion is a short shift, never a fade to nothing. */
.fl-home .fl-rise, .fl-home .fl-rise-in, .fl-home .fl-capability, .fl-home .fl-price-card, .fl-home .fl-faq, .fl-home .fl-section, .fl-home .fl-table-card, .fl-home .fl-radar-card { opacity: 1; }
.fl-button--google { color: var(--fl-ink) !important; background: #fff; border-color: var(--fl-border); }
.fl-button--google:hover { border-color: var(--fl-blue); background: var(--fl-muted); }
.fl-worldwide { display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(300px, .72fr); gap: 72px; align-items: center; }
.fl-worldwide h2 { margin: 20px 0 16px; font-size: clamp(32px,4vw,48px); letter-spacing: -.02em; }
.fl-worldwide p { color: var(--fl-body); font-size: 16px; line-height: 1.8; margin-bottom: 24px; }
.fl-worldwide__links { border-top: 1px solid var(--fl-border); }
.fl-worldwide__links a { display: flex; flex-direction: column; gap: 8px; padding: 24px 0; border-bottom: 1px solid var(--fl-border); }
.fl-worldwide__links strong { font-size: 20px; }
.fl-worldwide__links span { color: var(--fl-blue-dark); font-size: 14px; }
.fl-table-hint { display: none; align-items: center; gap: 8px; margin: 0; padding: 10px 16px; color: var(--fl-blue-dark); background: #e5efff; font-size: 13px; font-weight: 700; }
.fl-table-card.is-scrollable .fl-table-hint { display: flex; }
.fl-table-hint::before { content: "↔"; font-size: 16px; }
.fl-flight-map { display: flex; flex-direction: column; min-width: 0; overflow: hidden; border: 1px solid var(--fl-border); border-radius: 12px; background: var(--fl-bg); }
.fl-map-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 10px; color: var(--fl-body); font-size: 11px; }
.fl-map-toolbar > div { display: flex; gap: 4px; }
.fl-map-toolbar button { min-width: 38px; min-height: 38px; padding: 6px 10px; border: 1px solid var(--fl-border); border-radius: 8px; background: #fff; color: var(--fl-blue-dark); font-weight: 700; cursor: pointer; }
.fl-map-viewport { position: relative; overflow: hidden; aspect-ratio: 2 / 1; background: #eaf3ff; }
.fl-map-scene { position: absolute; inset: 0; transform-origin: center; }
.fl-map-scene > img { width: 100%; height: 100%; display: block; pointer-events: none; }
.fl-map-scene #fl-radar-markers { position: absolute; inset: 0; }
.fl-map-scene .fl-aircraft { position: absolute; width: 22px; height: 22px; min-height: 0; padding: 0; border-radius: 50%; transform: translate(-50%,-50%); background: #fff; border: 1px solid var(--fl-blue); box-shadow: 0 1px 4px #1552a333; z-index: 1; }
.fl-map-scene .fl-aircraft > .material-symbols-outlined { width: 20px; height: 20px; font-size: 16px; color: var(--fl-blue); transform: rotate(var(--heading, 0deg)); }
.fl-map-scene .fl-aircraft b { display: none; position: absolute; top: 22px; left: 50%; transform: translateX(-50%); padding: 2px 4px; border-radius: 3px; color: var(--fl-blue-deep); background: #fff; font-size: 9px; white-space: nowrap; box-shadow: 0 1px 4px #1552a333; }
.fl-map-scene .fl-aircraft small { display: none; }
.fl-map-scene .fl-aircraft:hover, .fl-map-scene .fl-aircraft:focus, .fl-map-scene .fl-aircraft.is-selected { z-index: 5; background: #dbeafe; outline: 2px solid var(--fl-blue); }
.fl-map-scene .fl-aircraft:hover b, .fl-map-scene .fl-aircraft:focus b, .fl-map-scene .fl-aircraft.is-selected b { display: block; }
.fl-map-scene .fl-aircraft--lookup { z-index: 6; }
.fl-map-caption { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 8px; padding: 12px; color: var(--fl-blue-dark); font-size: 11px; }
.fl-map-caption small { color: var(--fl-body); font-size: 10px; }
.fl-map-note { padding: 0 12px 12px; margin: 0; color: var(--fl-body); font-size: 11px; line-height: 1.65; }
@media (max-width: 1100px) {
 .fl-table-card.is-scrollable .fl-table-hint { display: none; }
 .fl-table-card::after, .fl-table-scroll::after { display: none; }
 .fl-table-scroll { overflow: visible; }
 .fl-table-scroll table { display: block; width: 100%; min-width: 0; }
 .fl-table-scroll thead { position: absolute; width: 1px; height: 1px; clip-path: inset(50%); overflow: hidden; }
 .fl-table-scroll tbody { display: grid; gap: 12px; padding: 12px; }
 .fl-table-scroll tr { display: grid; grid-template-columns: 1fr 1fr; border: 1px solid var(--fl-border); border-radius: 10px; padding: 8px; background: #fff; }
 .fl-table-scroll td { display: flex; flex-direction: column; gap: 4px; min-width: 0; padding: 8px; border: 0; white-space: normal; }
 .fl-table-scroll td::before { content: attr(data-label); color: var(--fl-body); font-size: 9px; font-family: var(--font-mono); text-transform: uppercase; }
 .fl-table-scroll td:nth-child(2) { order: -2; }
 .fl-table-scroll td:nth-child(8) { order: -1; }
 .fl-table-scroll .fl-airline-cell { align-items: flex-start; }
}
@media (max-width: 767px) {
 .fl-worldwide { grid-template-columns: 1fr; gap: 24px; }
 .fl-map-toolbar { flex-wrap: wrap; }
 .fl-map-toolbar button { min-width: 44px; min-height: 44px; }
}

/* Brand pass: saturated hero, aircraft silhouettes, living CTA. */
.fl-hero {
    background: linear-gradient(155deg, #1a73e8 0%, #1565c0 46%, #0d3f80 100%);
    border-bottom: 0;
    color: #fff;
}
.fl-glow { animation: fl-glow-drift 12s ease-in-out infinite alternate; }
.fl-glow--one { background: #fff; }
.fl-glow--two { background: #7dd3fc; animation-duration: 16s; animation-direction: alternate-reverse; }
@keyframes fl-glow-drift {
    from { transform: translate3d(0, 0, 0) scale(1); opacity: .2; }
    to { transform: translate3d(16%, 10%, 0) scale(1.35); opacity: .48; }
}
.fl-contrail {
    position: absolute;
    top: 8%;
    left: -42%;
    width: 42%;
    height: 22px;
    border-radius: 999px;
    background: linear-gradient(90deg, transparent, rgba(255,255,255,.2) 18%, rgba(255,255,255,.9) 76%, transparent);
    filter: blur(6px);
    pointer-events: none;
    animation: fl-contrail 16s ease-in-out infinite;
}
.fl-contrail--late { top: 34%; width: 28%; height: 14px; animation-delay: -8s; animation-duration: 21s; }
@keyframes fl-contrail {
    0% { transform: translate3d(0, 0, 0) rotate(-14deg); opacity: 0; }
    12% { opacity: .85; }
    100% { transform: translate3d(320%, 36px, 0) rotate(-14deg); opacity: 0; }
}
.fl-hero .fl-status-chip {
    color: #fff;
    background: rgba(255,255,255,.14);
    border-color: rgba(255,255,255,.28);
    box-shadow: none;
}
.fl-hero .fl-status-chip .fl-pulse {
    background: #4ade80;
    animation: fl-status-blink 1.25s ease-in-out infinite;
}
@keyframes fl-status-blink {
    0%, 100% { opacity: 1; box-shadow: 0 0 6px 1px rgba(74, 222, 128, .9); }
    50% { opacity: .2; box-shadow: 0 0 0 0 rgba(74, 222, 128, 0); }
}
.fl-hero .fl-eyebrow { color: rgba(255,255,255,.88); }
.fl-hero .fl-eyebrow span {
    color: #dbeafe;
    background: rgba(255,255,255,.12);
    border-color: rgba(255,255,255,.28);
}
.fl-hero h1, .fl-hero__copy > p, .fl-hero .fl-trust { color: #fff; }
.fl-hero h1 em { color: #fff; text-decoration-color: rgba(255,255,255,.55); }
.fl-hero .fl-trust .material-symbols-outlined { color: #dbeafe; }
.fl-typed {
    display: block;
    min-height: 1.25em;
    margin-bottom: 8px;
    color: #dbeafe;
    font-size: clamp(22px, 2.5vw, 32px);
    font-weight: 600;
    letter-spacing: 0;
    line-height: 1.25;
}
.fl-typed__cursor { display: inline-block; margin-left: 1px; font-weight: 300; animation: fl-cursor 1s step-end infinite; }
@keyframes fl-cursor { 50% { opacity: 0; } }
.fl-hero .fl-button--primary { color: #1552a3 !important; background: #fff; box-shadow: 0 10px 24px rgba(8, 30, 70, .22); }
.fl-hero .fl-button--primary:hover { color: #0d3f80 !important; background: #e8f1ff; }
.fl-hero .fl-button--secondary { color: #fff !important; background: transparent; border-color: rgba(255,255,255,.72); }
.fl-hero .fl-button--secondary:hover { color: #1552a3 !important; background: #fff; }
.fl-hero .fl-button--google { color: #1552a3 !important; background: rgba(255,255,255,.92); border-color: transparent; }
.fl-endpoint-demo { display: flex; flex-direction: column; height: 470px; max-height: 470px; overflow: hidden; border: 1px solid #30363d; border-radius: 12px; background: #0d1117; box-shadow: 0 16px 40px rgba(0, 0, 0, .28); }
.fl-endpoint-demo__chrome { display: flex; align-items: center; gap: .45rem; flex-shrink: 0; padding: .7rem 1rem; background: #171717; }
.fl-endpoint-demo__header { flex-shrink: 0; padding: 12px 14px; border-bottom: 1px solid rgba(240, 246, 252, .1); background: #161b22; }
.fl-endpoint-demo__pills { display: flex; flex-wrap: wrap; gap: 6px; }
.fl-endpoint-demo__pills button { padding: 3px 8px; border: 1px solid rgba(240, 246, 252, .14); border-radius: 999px; color: #8b949e; background: rgba(240, 246, 252, .04); font-family: var(--font-mono); font-size: 9px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; cursor: pointer; }
.fl-endpoint-demo__pills button.is-active { color: #e6edf3; background: rgba(240, 246, 252, .12); border-color: rgba(240, 246, 252, .32); }
.fl-endpoint-demo__chrome span { width: .7rem; height: .7rem; border-radius: 999px; }
.fl-endpoint-demo__response-bar { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 8px; }
.fl-endpoint-demo__response-bar .fl-endpoint-demo__label { margin-bottom: 0; }
.fl-endpoint-demo__status { display: inline-flex; align-items: center; justify-content: flex-end; gap: 6px; min-width: 7.2em; color: #8b949e; font-family: var(--font-mono); font-size: 10px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; white-space: nowrap; }
.fl-endpoint-demo__status-dot { width: 7px; height: 7px; border-radius: 50%; background: #3fb950; }
.fl-endpoint-demo.is-loading .fl-endpoint-demo__status-dot { background: #d29922; }
.fl-endpoint-demo__block { padding: 12px 14px; flex-shrink: 0; }
.fl-endpoint-demo__block + .fl-endpoint-demo__block { display: flex; flex-direction: column; flex: 1; min-height: 0; border-top: 1px solid rgba(240, 246, 252, .1); }
.fl-endpoint-demo__label { margin-bottom: 8px; color: #8b949e; font-family: var(--font-mono); font-size: 10px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.fl-endpoint-demo__request { display: flex; align-items: flex-start; gap: 8px; height: 4.6em; overflow: hidden; }
.fl-endpoint-demo__method { flex-shrink: 0; padding: 2px 7px; border-radius: 6px; color: #3fb950; background: rgba(63, 185, 80, .14); font-family: var(--font-mono); font-size: 11px; font-weight: 800; }
.fl-endpoint-demo__url { color: #e6edf3; font-family: var(--font-mono); font-size: 12px; line-height: 1.5; overflow-wrap: break-word; }
.fl-endpoint-demo__cursor { display: inline-block; width: 7px; height: .9em; margin-left: 1px; vertical-align: text-bottom; background: #e6edf3; animation: fl-cursor 1s step-end infinite; }
.fl-endpoint-demo.is-success .fl-endpoint-demo__cursor { display: none; }
.fl-endpoint-demo__response { flex: 1 1 auto; min-height: 0; max-height: 210px; overflow-x: hidden; overflow-y: auto; margin: 0; color: #e6edf3; background: #0d1117; font-family: var(--font-mono); font-size: 12px; line-height: 1.55; white-space: pre-wrap; word-break: break-word; opacity: 0; transition: opacity .45s ease; }
.fl-endpoint-demo__response::-webkit-scrollbar { width: 8px; }
.fl-endpoint-demo__response::-webkit-scrollbar-thumb { background: rgba(240, 246, 252, .28); border-radius: 8px; }
.fl-endpoint-demo__response.is-visible { opacity: 1; }
.fl-endpoint-demo__note { color: #7c9fd4; }
.fl-endpoint-demo__key { color: #79c0ff; }
.fl-endpoint-demo__str { color: #a5d6ff; }
.fl-endpoint-demo__num { color: #ffa657; }
.fl-endpoint-demo__bool { color: #ff7b72; }

.fl-map-viewport { background: #0d3f80; }
.fl-flight-map { background: #071e3d; border-color: #1e4f8a; }
.fl-map-toolbar { color: #dbeafe; }
.fl-map-toolbar button { background: rgba(255,255,255,.08); color: #fff; border-color: rgba(255,255,255,.22); }
.fl-map-caption, .fl-map-note { color: #dbeafe; }
.fl-map-caption small, .fl-map-note { color: #9ec5ef; }
.fl-map-scene .fl-aircraft {
    width: 28px;
    height: 28px;
    display: grid;
    place-items: center;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
    outline: none;
    overflow: visible;
}
.fl-map-scene .fl-aircraft .fl-plane {
    display: block;
    width: 20px;
    height: 20px;
    transform: rotate(var(--heading, 0deg));
    transform-origin: center;
    animation: fl-plane-drift 7.5s ease-in-out infinite alternate;
    animation-delay: calc(var(--fl-plane-i, 0) * -0.37s);
}
.fl-map-scene .fl-aircraft .fl-plane svg {
    display: block;
    width: 20px;
    height: 20px;
    overflow: visible;
    fill: #fff;
    stroke: #0b2f66;
    stroke-width: .7;
    filter: drop-shadow(0 1px 1px rgba(0, 0, 0, .45));
}
.fl-map-scene .fl-aircraft:nth-child(3n) .fl-plane { animation-duration: 9s; }
.fl-map-scene .fl-aircraft:nth-child(3n+1) .fl-plane { animation-duration: 6.4s; }
@keyframes fl-plane-drift {
    from { transform: rotate(var(--heading, 0deg)) translateY(0); }
    to { transform: rotate(var(--heading, 0deg)) translateY(-11px); }
}
.fl-map-scene .fl-aircraft:hover,
.fl-map-scene .fl-aircraft:focus,
.fl-map-scene .fl-aircraft.is-selected {
    background: transparent;
    outline: none;
    z-index: 5;
}
.fl-map-scene .fl-aircraft:hover .fl-plane svg,
.fl-map-scene .fl-aircraft:focus .fl-plane svg,
.fl-map-scene .fl-aircraft.is-selected .fl-plane svg { fill: #bae6fd; }
.fl-map-scene .fl-aircraft b {
    top: 24px;
    color: #0d3f80;
}

.fl-cta {
    background: linear-gradient(125deg, #1a73e8 0%, #0d3f80 100%);
    border-color: transparent;
    color: #fff;
}
.fl-cta .fl-kicker, .fl-cta h2, .fl-cta p { color: #fff; }
.fl-cta .fl-button--primary { color: #1552a3 !important; background: #fff; }
.fl-cta .fl-button--primary:hover { color: #0d3f80 !important; background: #e8f1ff; }
.fl-cta .fl-button--secondary { color: #fff !important; background: transparent; border-color: rgba(255,255,255,.7); }
.fl-cta .fl-button--secondary:hover { color: #1552a3 !important; background: #fff; }
.fl-cta__side { display: flex; flex-direction: column; align-items: stretch; gap: 14px; flex: 0 0 auto; }
.fl-cta .fl-actions { flex-wrap: nowrap; justify-content: flex-end; }
.fl-cta__flight { display: flex; align-items: center; gap: 12px; color: #fff; font-family: var(--font-mono); font-size: 12px; font-weight: 700; letter-spacing: .08em; }
.fl-cta__track { position: relative; flex: 1; height: 28px; }
.fl-cta__track::before { content: ""; position: absolute; left: 0; right: 0; top: 50%; border-top: 2px dashed rgba(255,255,255,.7); }
.fl-cta__plane { position: absolute; top: 50%; left: 0; width: 26px; height: 26px; margin-top: -13px; animation: fl-cta-fly 6.5s linear infinite; }
.fl-cta__plane svg { display: block; width: 26px; height: 26px; fill: #fff; transform: rotate(90deg); filter: drop-shadow(0 1px 2px rgba(8, 30, 70, .35)); }
@keyframes fl-cta-fly {
    0% { left: 0; opacity: 0; }
    10% { opacity: 1; }
    90% { left: calc(100% - 26px); opacity: 1; }
    100% { left: calc(100% - 26px); opacity: 0; }
}

@media (prefers-reduced-motion: reduce) {
    .fl-glow, .fl-contrail, .fl-map-scene .fl-aircraft .fl-plane, .fl-typed__cursor, .fl-endpoint-demo__cursor, .fl-cta__plane, .fl-hero .fl-status-chip .fl-pulse { animation: none; }
    .fl-hero .fl-status-chip .fl-pulse { opacity: 1; }
    .fl-cta__plane { left: calc(50% - 13px); }
    .fl-endpoint-demo__response { opacity: 1; transform: none; transition: none; }
    .fl-map-scene .fl-aircraft .fl-plane { transform: rotate(var(--heading, 0deg)); }
}

.fl-table-card thead {
    background: #0d3f80;
    color: #dbeafe;
}
.fl-table-card th {
    border-bottom: 1px solid rgba(255, 255, 255, .12);
    color: #dbeafe;
    font-weight: 700;
}
.fl-table-foot {
    background: #0d3f80;
    color: #dbeafe;
}
.fl-table-foot strong { color: #86e6b8; }
.fl-table-foot strong i {
    background: #4ade80;
    box-shadow: 0 0 0 3px rgba(74, 222, 128, .28);
}

.fl-motion [data-reveal],
.fl-motion [data-reveal-load],
.fl-motion [data-reveal-child] {
    transform: translate3d(0, 72px, 0);
    transition: transform .9s cubic-bezier(.16, 1, .3, 1);
    transition-delay: calc(var(--reveal-index, 0) * 140ms);
}
.fl-motion [data-reveal].is-revealed,
.fl-motion [data-reveal-load].is-revealed,
.fl-motion [data-reveal-child].is-revealed {
    transform: translate3d(0, 0, 0);
}
.fl-motion .fl-capability.is-revealed:hover { transform: translateY(-4px); }
@media (prefers-reduced-motion: reduce) {
    .fl-motion [data-reveal],
    .fl-motion [data-reveal-load],
    .fl-motion [data-reveal-child] {
        transform: none;
        transition: none;
    }
}
