.solari{--flap-w:.78em;--flap-h:1.3em;--flap-half:.17s;--flap-delay:0s;--flap-fg:#e9eefc;--flap-face:#172033;--flap-face-bottom:#121a2b;vertical-align:middle;white-space:nowrap;gap:2px;font-family:ui-monospace,SF Mono,Menlo,Consolas,Liberation Mono,monospace;font-size:14px;font-weight:700;line-height:1;display:inline-flex}.solari--sm{gap:1.5px;font-size:11px}.solari--base{gap:2px;font-size:13px}.solari--lg{gap:3px;font-size:22px}.solari--cyan{--flap-fg:#4fd1c5}.solari--blue{--flap-fg:#60a5fa}.solari--orange{--flap-fg:#fb923c}.solari--amber{--flap-fg:#fbbf24}.solari--violet{--flap-fg:#a78bfa}.solari--green{--flap-fg:#34d399}.solari--red{--flap-fg:#f87171}.solari--muted{--flap-fg:#94a0b8}.flap{width:var(--flap-w);height:var(--flap-h);color:var(--flap-fg);perspective:150px;background:#06090f;border-radius:3px;position:relative;box-shadow:0 1px 2px #0009,0 2px 6px #00000059,0 0 0 1px #0000008c}.flap:after{content:"";z-index:5;pointer-events:none;background:#0009;height:1px;margin-top:-.5px;position:absolute;top:50%;left:0;right:0}.flap__half,.flap__leaf{backface-visibility:hidden;height:50%;position:absolute;left:0;right:0;overflow:hidden}.flap__half--top,.flap__leaf--top{background:linear-gradient(to bottom, #1b2538, var(--flap-face));border-radius:3px 3px 0 0;top:0;box-shadow:inset 0 1px #ffffff14}.flap__half--bottom,.flap__leaf--bottom{background:linear-gradient(to bottom, var(--flap-face-bottom), #0d1422);border-radius:0 0 3px 3px;bottom:0;box-shadow:inset 0 -1px #0009}.flap__char{height:var(--flap-h);line-height:var(--flap-h);text-align:center;position:absolute;top:0;left:0;right:0;transform:scaleX(.92)}.flap__half--bottom .flap__char,.flap__leaf--bottom .flap__char{top:calc(var(--flap-h) * -.5)}.flap__leaf:after,.flap__half--bottom:before{content:"";pointer-events:none;opacity:0;position:absolute;inset:0}.flap__leaf--top:after{background:linear-gradient(#00000026,#000000bf)}.flap__leaf--bottom:after{background:linear-gradient(#000000b3,#0003)}.flap__half--bottom:before{z-index:2;background:#0000008c}.flap__leaf{z-index:3;display:none}.flap__leaf--top{transform-origin:bottom;border-bottom:1px solid #ffffff1f}.flap__leaf--bottom{transform-origin:top;border-top:1px solid #ffffff14;transform:rotateX(90deg)}.flap.is-flipping .flap__leaf{display:block}.flap.is-flipping .flap__leaf--top{animation:flap-down var(--flap-half) cubic-bezier(.55, 0, 1, .45) var(--flap-delay) forwards}.flap.is-flipping .flap__leaf--top:after{animation:shade-in var(--flap-half) ease-in var(--flap-delay) forwards}.flap.is-flipping .flap__half--bottom:before{animation:cast-shadow var(--flap-half) ease-in var(--flap-delay) forwards}.flap.is-flipping .flap__leaf--bottom{animation:flap-up var(--flap-half) cubic-bezier(0, .6, .35, 1) calc(var(--flap-delay) + var(--flap-half)) forwards}.flap.is-flipping .flap__leaf--bottom:after{animation:shade-out var(--flap-half) ease-out calc(var(--flap-delay) + var(--flap-half)) forwards}.flap.is-flipping.is-final .flap__leaf--bottom{animation-name:flap-up-final;animation-timing-function:linear;animation-duration:calc(var(--flap-half) * 1.35)}.flap.is-flipping.is-final .flap__leaf--bottom:after{animation-duration:calc(var(--flap-half) * 1.35)}@keyframes flap-down{0%{transform:rotateX(0)}to{transform:rotateX(-90deg)}}@keyframes flap-up{0%{transform:rotateX(90deg)}to{transform:rotateX(0)}}@keyframes flap-up-final{0%{transform:rotateX(90deg)}62%{transform:rotateX(-9deg)}80%{transform:rotateX(4deg)}92%{transform:rotateX(-1.5deg)}to{transform:rotateX(0)}}@keyframes shade-in{0%{opacity:0}to{opacity:1}}@keyframes shade-out{0%{opacity:1}to{opacity:0}}@keyframes cast-shadow{0%{opacity:0}60%{opacity:.9}to{opacity:1}}@media (prefers-reduced-motion:reduce){.flap.is-flipping .flap__leaf,.flap.is-flipping .flap__leaf:after,.flap.is-flipping .flap__half--bottom:before{animation-duration:1ms;animation-delay:0s}}:root{--bg:#0d1728;--card:#121a2a;--card-2:#16203a;--text:#f3f5f9;--text-muted:#8c98b1;--text-soft:#c5cddc;--accent:#4fd1c5;--live:#34d399;--sim:#fbbf24;--danger:#f87171;--arrive:#60a5fa;--depart:#fb923c;--taxi:#fbbf24;--park:#a78bfa;--border:#ffffff14;--border-strong:#ffffff24;--radius:18px;--gap:12px;--gutter:16px;--font:"Inter", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:radial-gradient(1200px 600px at 20% -10%, #15223a 0%, var(--bg) 60%);color:var(--text);font-family:var(--font);-webkit-font-smoothing:antialiased}button,select{font:inherit}.muted{color:var(--text-muted)}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.app{min-height:100dvh;padding:env(safe-area-inset-top,0px) max(var(--gutter), env(safe-area-inset-right,0px)) max(var(--gutter), env(safe-area-inset-bottom,0px)) max(var(--gutter), env(safe-area-inset-left,0px));flex-direction:column;display:flex}@media (width>=961px){.app{height:100dvh;overflow:hidden}}.header{justify-content:space-between;align-items:center;gap:16px;padding:14px 4px 12px;display:flex}.header__brand{align-items:baseline;gap:14px;min-width:0;display:flex}.wordmark{letter-spacing:.14em;text-transform:uppercase;background:linear-gradient(90deg, #fff, var(--accent));color:#0000;-webkit-background-clip:text;background-clip:text;font-size:22px;font-weight:800}.header__tagline{color:var(--text-muted);white-space:nowrap;font-size:14px}.header__controls{align-items:center;gap:8px;display:flex}.airport-select select{appearance:none;background:var(--card) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%238f9bb3' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E") no-repeat right 12px center;color:var(--text);border:1px solid var(--border);letter-spacing:.06em;cursor:pointer;border-radius:10px;padding:8px 32px 8px 14px;font-weight:700}.airport-select select:disabled{cursor:default;opacity:1}.icon-button{border:1px solid var(--border);background:var(--card);width:38px;height:38px;color:var(--text-soft);cursor:pointer;border-radius:10px;justify-content:center;align-items:center;transition:background .15s,color .15s,transform .15s;display:inline-flex}.icon-button:hover{background:var(--card-2);color:var(--text);transform:translateY(-1px)}.about{position:relative}.about__popover{background:var(--card-2);border:1px solid var(--border-strong);width:min(320px,80vw);color:var(--text-soft);z-index:20;border-radius:12px;padding:12px 14px;font-size:13px;line-height:1.45;position:absolute;top:calc(100% + 8px);right:0;box-shadow:0 12px 32px #00000073}.about__popover p{margin:0 0 8px}.about__popover p:last-child{margin-bottom:0}.about__source{color:var(--text-muted)}.bento{gap:var(--gap);flex:1;grid-template-rows:minmax(0,1fr);grid-template-columns:minmax(0,1fr) 340px;min-height:0;display:grid}.bento.bento--solo{grid-template-columns:minmax(0,1fr)}.bento__side{gap:var(--gap);flex-direction:column;min-height:0;display:flex}.card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);min-width:0;padding:16px 18px;animation:.35s ease-out both card-in;position:relative;box-shadow:0 10px 30px #00000040}.card__title{letter-spacing:.12em;text-transform:uppercase;color:var(--text-muted);justify-content:space-between;align-items:baseline;margin-bottom:12px;font-size:12px;font-weight:700;display:flex}.card__count{letter-spacing:.02em;text-transform:none;color:var(--text-soft);font-weight:600}.card__hint{color:var(--text-muted);margin:0;font-size:13px;line-height:1.5}.card__close{width:26px;height:26px;color:var(--text-muted);cursor:pointer;background:0 0;border:0;border-radius:8px;font-size:18px;line-height:1;position:absolute;top:10px;right:10px}.card__close:hover{color:var(--text);background:#ffffff14}.card--map{flex-direction:column;grid-column:1;min-height:0;padding:14px 16px 16px;display:flex}.card--movements{flex-direction:column;flex:1;min-height:120px;display:flex}@keyframes card-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.airport-info{align-items:center;gap:14px;padding:0 2px 12px;display:flex}.airport-info__code{letter-spacing:.04em;font-size:30px;font-weight:800;line-height:1}.airport-info__meta{flex-wrap:wrap;flex:1;align-items:center;gap:12px;min-width:0;display:flex}.airport-info__name{color:var(--text-soft);margin:0;font-size:15px;font-weight:500}.airport-info__clock{flex-direction:column;align-items:flex-end;line-height:1.15;display:flex}.airport-info__clock-label{letter-spacing:.1em;text-transform:uppercase;color:var(--text-muted);font-size:11px}.airport-info__clock-time{margin-top:3px}.live-pill{letter-spacing:.12em;color:var(--live);background:#34d39914;border:1px solid #34d3994d;border-radius:999px;align-items:center;gap:7px;padding:5px 10px;font-size:11px;font-weight:700;display:inline-flex}.live-pill--sim{color:var(--sim);background:#fbbf2414;border-color:#fbbf244d}.live-pill--error{color:var(--danger);background:#f8717114;border-color:#f871714d}.live-pill__dot{background:currentColor;border-radius:50%;width:7px;height:7px;animation:2s ease-out infinite pulse}@keyframes pulse{0%{box-shadow:0 0 #34d39980}to{box-shadow:0 0 0 8px #34d39900}}.scene-frame{border:1px solid var(--border-strong);background:#a9d08c;border-radius:14px;flex:1;min-height:0;position:relative;overflow:hidden}.airport-scene{touch-action:none;overscroll-behavior:contain;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;position:absolute;inset:0}.airport-scene canvas{display:block}.airline-logo{background:#fff;border-radius:12px;flex:none;justify-content:center;align-items:center;display:inline-flex;overflow:hidden}.airline-logo img{object-fit:contain;width:100%;height:100%;padding:4px;display:block}.airline-logo--mono{color:#fff;letter-spacing:.04em;font-size:.42em;font-weight:800}.aircraft__head{align-items:center;gap:12px;padding-right:24px;display:flex}.aircraft__ident{min-width:0}.aircraft__callsign{letter-spacing:.04em;font-size:20px;font-weight:800;line-height:1.1}.aircraft__airline{color:var(--text-soft);white-space:nowrap;text-overflow:ellipsis;font-size:13px;overflow:hidden}.aircraft__type{color:var(--text-muted);margin-top:10px;font-size:13px}.aircraft__route{letter-spacing:.02em;margin-top:6px;font-size:17px;font-weight:700}.aircraft__phase{margin-top:10px;display:inline-block}.aircraft__stats{grid-template-columns:repeat(3,1fr);gap:8px;margin:14px 0 0;display:grid}.aircraft__stats dt{letter-spacing:.1em;text-transform:uppercase;color:var(--text-muted);font-size:10px}.aircraft__stats dd{font-variant-numeric:tabular-nums;margin:2px 0 0;font-size:14px;font-weight:600}.stats{grid-template-columns:repeat(auto-fit,minmax(58px,1fr));gap:6px;display:grid}.stat{border:1px solid var(--border);text-align:center;background:#ffffff0a;border-radius:12px;min-width:0;padding:10px 4px}.stat__value{justify-content:center;line-height:1;display:flex}.stat__label{letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted);white-space:nowrap;margin-top:6px;font-size:9.5px}.stat--arrive .stat__value{color:var(--arrive)}.stat--depart .stat__value{color:var(--depart)}.stat--taxi .stat__value{color:var(--taxi)}.stat--park .stat__value{color:var(--park)}.movements{flex-direction:column;flex:1;gap:6px;min-height:0;margin:0;padding:0;list-style:none;display:flex;overflow-y:auto}.movement{animation:.35s ease-out both movement-in}@keyframes movement-in{0%{opacity:0;transform:translate(-8px)}to{opacity:1;transform:none}}.movement__button{width:100%;color:inherit;text-align:left;cursor:pointer;background:#ffffff08;border:1px solid #0000;border-radius:12px;align-items:center;gap:10px;padding:8px 10px;transition:background .15s,border-color .15s;display:flex}.movement__button:hover{border-color:var(--border-strong);background:#ffffff12}.movement__body{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.movement__line{flex-wrap:wrap;align-items:center;gap:4px 8px;font-size:13px;display:flex}.movement__kind{letter-spacing:.06em;text-transform:uppercase;font-size:11px;font-weight:700}.movement__kind--landed{color:var(--arrive)}.movement__kind--departed{color:var(--depart)}.movement__sub{color:var(--text-muted);justify-content:space-between;align-items:center;gap:8px;min-width:0;font-size:12px;display:flex}.movement__where{white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;overflow:hidden}.movement__time{flex:none}@media (width<=1180px){.bento{grid-template-columns:minmax(0,1fr) 300px}}@media (width<=960px){:root{--gutter:12px;--radius:14px}.bento{grid-template-rows:auto;grid-template-columns:1fr}.card--map{aspect-ratio:16/11;min-height:360px}.bento__side{grid-template-columns:1fr 1fr;display:grid}.card--movements{grid-column:1/-1}.movements{max-height:320px}}@media (width<=640px){.header{flex-wrap:wrap;gap:8px 12px;padding:10px 2px 8px}.header__tagline{display:none}.wordmark{font-size:18px}.header__brand{flex:1}.header__controls{flex:100%}.airport-select{flex:1;min-width:0}.airport-select select{width:100%}.map-controls{right:max(8px, env(safe-area-inset-right));bottom:max(8px, env(safe-area-inset-bottom));gap:3px}.map-controls button{width:30px;height:30px}.map-watermark{font-size:12px;top:10px;left:12px}.bento__side{grid-template-columns:1fr}.card--map{aspect-ratio:4/5;min-height:0}.airport-info__name,.airport-info__clock-label{display:none}.airport-info__code{font-size:24px}.stats{grid-template-columns:repeat(4,1fr)}}.menu{position:relative}.popover{background:var(--card-2);border:1px solid var(--border-strong);width:min(300px,86vw);color:var(--text-soft);z-index:20;border-radius:12px;padding:10px 12px;font-size:13px;line-height:1.45;position:absolute;top:calc(100% + 8px);right:0;box-shadow:0 12px 32px #00000073}.popover--wide{grid-template-columns:1fr 1fr;gap:12px;width:min(360px,90vw);display:grid}.popover p{margin:0 0 8px}.popover p:last-child{margin-bottom:0}.popover__heading{letter-spacing:.1em;text-transform:uppercase;color:var(--text-muted);margin:4px 0 6px;font-size:11px;font-weight:700}.toggle{cursor:pointer;align-items:center;gap:8px;padding:4px 0;display:flex}.toggle input{accent-color:var(--accent);width:15px;height:15px;margin:0}.popover__action{width:100%;color:var(--text);text-align:left;cursor:pointer;background:0 0;border:0;border-radius:10px;grid-template-columns:18px 1fr;align-items:center;gap:4px 10px;padding:8px;font-weight:600;display:grid}.popover__action small{color:var(--text-muted);grid-column:2;font-weight:400}.popover__action:hover{background:#ffffff12}.map-controls{--controls-inset:12px;z-index:5;flex-direction:column;gap:4px;display:flex;position:absolute;bottom:12px;right:12px}.map-controls button{-webkit-backdrop-filter:blur(10px);width:34px;height:34px;color:var(--text);cursor:pointer;background:#0a0f1a6b;border:1px solid #ffffff29;border-radius:10px;justify-content:center;align-items:center;font-size:18px;line-height:1;display:inline-flex}.map-controls button:hover{background:#16203abf}.airport-scene{cursor:grab}.app--map-only{height:100dvh;padding:0;overflow:hidden}.app--map-only .bento{gap:0}.app--map-only .card--map{box-shadow:none;aspect-ratio:auto;background:0 0;border:0;border-radius:0;height:100dvh;min-height:0;padding:0}.app--map-only .bento{grid-template-rows:1fr;grid-template-columns:1fr;height:100dvh}.app--map-only .scene-frame{border:0;border-radius:0}.map-only-bar{z-index:6;-webkit-backdrop-filter:blur(12px);background:#0a0f1a73;border:1px solid #ffffff24;border-radius:14px;align-items:center;gap:14px;padding:8px 10px 8px 14px;display:flex;position:absolute;top:12px;left:12px}.map-only-bar .wordmark{font-size:16px}.airport-info--compact{gap:10px;padding:0}.airport-info--compact .airport-info__code{font-size:20px}.airport-info--compact .airport-info__name,.airport-info--compact .airport-info__clock-label{display:none}.airport-info--compact .airport-info__clock-time{font-size:15px}.map-only-card{z-index:6;width:300px;max-width:calc(100% - 24px);position:absolute;bottom:12px;left:12px}.map-only-card .card{-webkit-backdrop-filter:blur(14px);background:#0e142280;border-color:#ffffff24;box-shadow:0 8px 24px #00000040}.waits{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.wait{align-items:baseline;gap:10px;font-size:13px;display:flex}.wait__terminal{flex:1;font-weight:600}.wait__checkpoint{color:var(--text-muted);font-weight:400}.wait__minutes{font-variant-numeric:tabular-nums;font-weight:700}.wait__minutes--ok{color:var(--live)}.wait__minutes--warn{color:var(--sim)}.wait__minutes--bad{color:var(--danger)}.wait__pre{color:var(--text-muted);font-size:12px}.incidents{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.incident{align-items:flex-start;gap:8px;font-size:12px;line-height:1.35;display:flex}.incident__dot{background:var(--sim);border-radius:50%;flex:none;width:8px;height:8px;margin-top:4px}.incident--collision .incident__dot{background:var(--danger)}.incident__body{flex-direction:column;flex:1;min-width:0;display:flex}.incident__type{font-weight:600}.incident__where{color:var(--text-muted);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.incident__meta{flex-direction:column;flex:none;align-items:flex-end;gap:3px;display:flex}.card__foot{letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted);margin:10px 0 0;font-size:10px}.wait__status{margin-bottom:8px}.card__count .solari{margin-right:4px}.incident__type .solari,.movement__line .solari{max-width:100%}@media (width<=640px){.solari--lg{font-size:18px}}.xfade{min-width:0;display:grid}.xfade>*{grid-area:1/1;min-width:0}.xfade__in{animation:.18s ease-out both xfade-in}.xfade__out{pointer-events:none;animation:.18s ease-in both xfade-out}@keyframes xfade-in{0%{opacity:0}to{opacity:1}}@keyframes xfade-out{0%{opacity:1}to{opacity:0}}.app--loading{justify-content:center;align-items:center}.loading{color:var(--text-muted);letter-spacing:.08em;text-transform:uppercase;font-size:14px;animation:.3s .45s both loading-in}@keyframes loading-in{0%{opacity:0}to{opacity:1}}.congestion{border-bottom:1px solid var(--border);flex-direction:column;gap:5px;margin:0 0 10px;padding:0 0 8px;list-style:none;display:flex}.congestion__row{justify-content:space-between;align-items:center;gap:8px;font-size:12px;display:flex}.congestion__road{white-space:nowrap;text-overflow:ellipsis;font-weight:600;overflow:hidden}.wait--taxi{justify-content:space-between;margin-bottom:10px}.airport-scene--pixel canvas{image-rendering:pixelated;image-rendering:crisp-edges}.airport-scene--pixel{cursor:grab}.popover__section--full{grid-column:1/-1}.segmented{border:1px solid var(--border);background:#ffffff0f;border-radius:10px;margin-bottom:4px;padding:3px;display:inline-flex}.segmented__option{color:var(--text-muted);cursor:pointer;background:0 0;border:0;border-radius:8px;padding:5px 12px;font-size:12px;font-weight:600}.segmented__option.is-active{background:var(--accent);color:#06201d}.airport-scene--3d{background:#0b1220;overflow:hidden}.airport-scene--3d canvas{width:100%;height:100%;display:block}.airport-scene--3d:after{content:"Building the 3D scene…";color:var(--muted);letter-spacing:.04em;pointer-events:none;background:radial-gradient(circle at 50% 40%,#16223b,#0b1220 70%);place-items:center;font-size:13px;transition:opacity .4s;display:grid;position:absolute;inset:0}.airport-scene--3d.is-ready:after{opacity:0}.labels3d{pointer-events:none;position:absolute;inset:0;overflow:hidden}.label3d{letter-spacing:.02em;color:#f4f7ff;opacity:calc(1 - .42 * var(--night,0));white-space:nowrap;text-shadow:0 0 3px #050a14f2,0 1px 2px #050a14e6,0 0 8px #050a14b3;pointer-events:none;font-family:Inter,-apple-system,system-ui,sans-serif;font-size:12px;font-weight:600}.label3d--terminal{font-size:13px;font-weight:700}.label3d--station{color:#c9f6ef;font-size:11px;font-weight:500}.label3d--tower{color:#ffe1b0;font-size:11px}.map-controls__text{letter-spacing:.04em;font-weight:700;font-size:11px!important}.map-controls .compass svg{transition:transform .25s ease-out;overflow:visible}.map-controls .compass:disabled{cursor:default;opacity:.85}.brand{align-items:center;gap:10px;text-decoration:none;display:inline-flex}.brand__mark{filter:drop-shadow(0 2px 6px #4fd1c540);flex:none;width:30px;height:30px}.map-watermark{z-index:5;letter-spacing:.18em;text-transform:uppercase;color:#fff;opacity:.32;mix-blend-mode:overlay;text-shadow:0 1px 2px #00000059;pointer-events:none;-webkit-user-select:none;user-select:none;font-size:15px;font-weight:800;position:absolute;top:12px;left:14px}.viewers{color:var(--text-muted);white-space:nowrap;align-items:center;gap:6px;font-size:12px;display:inline-flex}.viewers svg{opacity:.8}.viewers__label{letter-spacing:.02em}.airport-info--compact .viewers__label{display:none}.aircraft__overflight{letter-spacing:.04em;text-transform:uppercase;color:var(--text-muted);border:1px solid var(--border-strong);vertical-align:middle;border-radius:999px;margin-left:8px;padding:1px 7px;font-size:11px}.map-fullscreen{z-index:6;-webkit-backdrop-filter:blur(10px);width:34px;height:34px;color:var(--text);cursor:pointer;background:#0a0f1a6b;border:1px solid #ffffff29;border-radius:10px;justify-content:center;align-items:center;display:inline-flex;position:absolute;top:10px;right:10px}.map-fullscreen:hover{background:#16203abf}.app--map-only .map-fullscreen{top:max(10px, env(safe-area-inset-top));right:max(10px, env(safe-area-inset-right))}.app--map-only .map-controls{right:max(12px, env(safe-area-inset-right));bottom:max(12px, env(safe-area-inset-bottom))}.app--map-only .map-only-card{left:max(12px, env(safe-area-inset-left));bottom:max(12px, env(safe-area-inset-bottom))}@media (width<=640px),(height<=520px){.map-only-bar{top:max(8px, env(safe-area-inset-top));left:max(8px, env(safe-area-inset-left));gap:10px;max-width:calc(100% - 70px);padding:6px 10px}.map-only-bar .wordmark,.map-only-bar .airport-info__clock,.map-only-bar .viewers__label{display:none}.map-only-bar .brand__mark{width:24px;height:24px}.map-only-card{left:max(8px, env(safe-area-inset-left));bottom:max(8px, env(safe-area-inset-bottom));width:min(360px, calc(100% - 58px - env(safe-area-inset-left,0px) - env(safe-area-inset-right,0px)));max-width:none}.map-only-card .card--aircraft{border-radius:12px;padding:8px 10px}.map-only-card .card__close{width:24px;height:24px;top:4px;right:4px}.map-only-card .aircraft__head{gap:8px;padding-right:22px}.map-only-card .aircraft__head .airline-logo{width:28px!important;height:28px!important}.map-only-card .aircraft__ident{flex:1;align-items:baseline;gap:8px;min-width:0;display:flex}.map-only-card .aircraft__callsign .solari--lg{gap:2px;font-size:14px}.map-only-card .aircraft__airline{flex:1;font-size:11px}.map-only-card .aircraft__type{display:none}.map-only-card .aircraft__route,.map-only-card .aircraft__phase{vertical-align:middle;margin:6px 10px 0 0;display:inline-block}.map-only-card .aircraft__route .solari{gap:1.5px;font-size:11px}.map-only-card .aircraft__overflight{margin-left:4px;padding:0 5px;font-size:9px}.map-only-card .aircraft__stats{flex-wrap:wrap;gap:4px 12px;margin-top:6px;display:flex}.map-only-card .aircraft__stats>div{align-items:baseline;gap:5px;display:flex}.map-only-card .aircraft__stats dt{font-size:9px}.map-only-card .aircraft__stats dd{margin:0}.map-only-card .aircraft__stats .solari--base{gap:1.5px;font-size:11px}}@media (display-mode:standalone){.app{padding-top:max(12px, env(safe-area-inset-top))}.app--map-only{padding:0}}@media (height<=520px) and (width>=641px){.map-only-card{width:min(720px, calc(100% - 58px - env(safe-area-inset-left,0px) - env(safe-area-inset-right,0px)))}.map-only-bar .airport-info__clock{display:block}}.aircraft--strip{white-space:nowrap;align-items:center;gap:10px;display:flex;border-radius:12px!important;padding:6px 34px 6px 8px!important}.aircraft--strip .aircraft__callsign,.aircraft--strip .aircraft__route,.aircraft--strip .aircraft__phase{flex:none;margin:0}.aircraft--strip .aircraft__airline{flex:0 120px;min-width:0;font-size:11px}.aircraft--strip .card__close{top:50%;right:4px;transform:translateY(-50%)}.aircraft__stat-rotor{align-items:baseline;gap:6px;margin-left:auto;display:inline-flex}.aircraft__stat-label{letter-spacing:.1em;text-transform:uppercase;color:var(--text-muted);text-align:right;min-width:52px;font-size:9px;animation:.3s ease-out both stat-label-in}@keyframes stat-label-in{0%{opacity:0;transform:translateY(3px)}to{opacity:1;transform:none}}.home{--hero-font:"Space Grotesk", var(--font);--hero-serif:"Instrument Serif", "Times New Roman", serif;--hero-ink:#fff;--hero-ink-soft:#ffffffa1;--hero-glass:#d9d9d933;--hero-glass-edge:#d4d4d485;--pill-active:#00b298;height:auto;min-height:100dvh;color:var(--hero-ink);background:#0c598c;padding:0;transition:opacity .32s;overflow:visible}.home--leaving{opacity:0}.hero{min-height:100dvh;padding:calc(env(safe-area-inset-top,0px) + 46px) max(60px, env(safe-area-inset-right,0px)) 0 max(60px, env(safe-area-inset-left,0px));isolation:isolate;background:radial-gradient(157% 89% at 50% 0,#000 50%,#01080c 52.2%,#020f18 54.4%,#041f30 58.8%,#062e48 63.1%,#083e61 67.5%,#0d5c91 76.3%,#117bc1 85%,#0c598c 100%);flex-direction:column;display:flex;position:relative;overflow:hidden}.hero--list{min-height:0;padding-bottom:24px}.globe{z-index:0;position:absolute;inset:0}.globe__stage{transform-origin:50% 46%;will-change:transform, filter;position:absolute;inset:0}.globe__canvas{cursor:grab;opacity:0;transition:opacity .8s;position:absolute;inset:0}.globe--ready .globe__canvas{opacity:1}.globe--flying .globe__canvas{cursor:default}.globe__labels{pointer-events:none;position:absolute;inset:0}.globe__label{-webkit-backdrop-filter:blur(8px);color:var(--hero-ink);font:700 12px/1 var(--hero-font);letter-spacing:.12em;cursor:pointer;pointer-events:auto;white-space:nowrap;background:#0e1420a8;border:1px solid #ffffff47;border-radius:999px;align-items:center;gap:6px;padding:5px 10px;transition:background .15s,border-color .15s,transform .15s;display:inline-flex;position:absolute;transform:translate(11px,-50%);box-shadow:0 6px 18px #00000059}.globe__label.is-hover,.globe__label:hover{background:#00b2985c;border-color:#4fd1c5b3;transform:translate(11px,-50%)scale(1.05)}.globe__label.is-last{border-color:#4fd1c580}.globe__label .wx-icon{color:#ffffffd9}.globe__vignette{pointer-events:none;opacity:0;background:radial-gradient(55% 55% at 50% 46%,#06081000 35%,#060810d9 100%);position:absolute;inset:-10%}.globe__veil{pointer-events:none;opacity:0;background:#0d1728;position:absolute;inset:0}.globe__dest{opacity:0;pointer-events:none;text-align:center;text-shadow:0 2px 24px #000000b3;will-change:transform, opacity;flex-direction:column;align-items:center;gap:4px;display:flex;position:absolute;top:46%;left:50%;transform:translate(-50%,-50%)}.globe__dest-eyebrow{font:500 12px var(--hero-font);letter-spacing:.28em;text-transform:uppercase;color:var(--hero-ink-soft)}.globe__dest-code{font:400 clamp(72px, 12vw, 132px) / .95 var(--hero-serif);letter-spacing:.02em}.globe__dest-city{font:400 clamp(16px, 2vw, 22px) var(--hero-font);letter-spacing:.04em}.hero__bar{z-index:2;grid-template-columns:1fr auto 1fr;align-items:start;gap:16px;transition:opacity .5s,transform .5s;display:grid;position:relative}.hero__brand{color:inherit;justify-self:center;text-decoration:none}.hero__menu{display:contents}.hero__menu-toggle{display:none}.hero__brand .wordmark{letter-spacing:.22em;font-size:26px}.hero__brand .brand__mark{width:34px;height:34px}.hero__switches{flex-direction:column;justify-self:start;align-items:flex-start;gap:10px;padding-top:7px;display:flex}.tswitch{font:400 12px/15px var(--hero-font);text-transform:uppercase;color:var(--hero-ink);white-space:nowrap;align-items:baseline;gap:10px;display:inline-flex}.tswitch__sep{font:400 15px/15px var(--hero-font);color:#fff}.tswitch__option{color:#ffffff5e;font:400 12px/15px var(--hero-font);text-transform:uppercase;white-space:nowrap;cursor:pointer;background:0 0;border:0;padding:0;transition:color .2s}.tswitch__option:hover{color:#ffffffb3}.tswitch__option.is-active{color:#fff}.tswitch__option:disabled{cursor:default}.hero__spacer{flex:1;min-height:200px}.hero__credits{font:400 12px/21px var(--hero-font);text-align:right;color:#ffffffa3;flex-direction:column;justify-self:end;align-items:flex-end;padding-top:8px;transition:opacity .5s;display:flex}.hero__fade{z-index:1;pointer-events:none;background:linear-gradient(#0c598c00 31.9%,#0c598c 90.2%);height:305px;transition:opacity .5s;position:absolute;bottom:0;left:0;right:0}.hero__fade:before,.hero__fade:after{content:"";position:absolute;inset:0}.hero__fade:before{-webkit-backdrop-filter:blur(6px);-webkit-mask-image:linear-gradient(#0000 0%,#000 55%);mask-image:linear-gradient(#0000 0%,#000 55%)}.hero__fade:after{-webkit-backdrop-filter:blur(17px);-webkit-mask-image:linear-gradient(#0000 28%,#000 78%);mask-image:linear-gradient(#0000 28%,#000 78%)}.hero__cards{z-index:2;margin:0 calc(-1 * max(60px, env(safe-area-inset-right,0px))) 0 calc(-1 * max(60px, env(safe-area-inset-left,0px)));padding:18px max(60px, env(safe-area-inset-right,0px)) calc(env(safe-area-inset-bottom,0px) + 90px) max(62px, env(safe-area-inset-left,0px) + 2px);overscroll-behavior-x:contain;scroll-snap-type:x proximity;scrollbar-width:none;gap:20px;margin-top:-18px;scroll-padding-left:62px;list-style:none;transition:opacity .5s,transform .5s;display:flex;position:relative;overflow-x:auto}.hero__cards::-webkit-scrollbar{display:none}.acard-item{scroll-snap-align:start;flex:none}.hero--globe .acard{width:248px;height:148px}.acard{border:.5px solid var(--hero-glass-edge);background:var(--hero-glass);-webkit-backdrop-filter:blur(37px);color:var(--hero-ink);font-family:var(--hero-font);border-radius:12px;flex-direction:column;justify-content:space-between;padding:12px 16px 14px;text-decoration:none;transition:transform .2s,background .2s,border-color .2s,box-shadow .2s,opacity .25s;display:flex;position:relative;box-shadow:0 14px 44px #00000036}.hero__cards:has(.acard:hover,.acard.is-hover) .acard:not(:hover):not(.is-hover){opacity:.55}.acard.is-active{background:#d9d9d947;border-color:#ffffffd9}.acard:hover,.acard.is-hover{background:#d9d9d947;border-color:#ffffffd9;transform:translateY(-4px);box-shadow:0 18px 40px #00000061}.acard--last:not(.is-active):not(:hover):not(.is-hover){border-color:#4fd1c580}.acard__top,.acard__bottom{justify-content:space-between;align-items:center;gap:8px;display:flex}.acard__live{color:var(--hero-ink-soft);letter-spacing:.04em;align-items:center;gap:8px;font-size:12px;display:inline-flex}.acard__dot{background:#4fd1c5;border-radius:50%;width:6px;height:6px;box-shadow:0 0 0 3px #4fd1c538,0 0 10px #4fd1c5e6}.acard__count{color:var(--hero-ink-soft);letter-spacing:.04em;align-items:center;gap:6px;font-size:12px;display:inline-flex}.acard__code{font:400 57px/.9 var(--hero-serif);letter-spacing:.01em;margin-top:2px}.acard__city{white-space:nowrap;text-overflow:ellipsis;font-size:17px;overflow:hidden}.acard .solari{--flap-face:#182234;--flap-face-bottom:#111a2a}.acard__name,.acard__blurb{display:none}.hero--list .hero__cards{width:min(100% + 2 * max(40px, env(safe-area-inset-left,0px)), 1320px + 2 * 40px);scroll-snap-type:none;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:24px;margin:0 auto;padding-top:32px;padding-bottom:16px;display:grid;overflow:visible}.hero--list .acard-item{min-width:0}.acard--detailed{gap:10px;width:auto;height:100%;min-height:0;padding:16px 20px 18px}.acard--detailed .acard__code{font-size:52px}.acard--detailed .acard__name{color:var(--hero-ink);opacity:.92;font-size:13px;display:block}.acard--detailed .acard__blurb{color:var(--hero-ink-soft);font-size:12px;line-height:1.45;display:block}.hero--flying .hero__bar{opacity:0;transform:translateY(-14px)}.hero--flying .hero__cards{opacity:0;pointer-events:none;transform:translateY(24px)}.hero--flying .hero__credits,.hero--flying .hero__fade{opacity:0}.home--busy{pointer-events:none}.home__below{padding:0 max(var(--gutter), env(safe-area-inset-right,0px)) 0 max(var(--gutter), env(safe-area-inset-left,0px));width:100%;max-width:1180px;margin:0 auto}.ad-slot{flex-direction:column;align-items:center;gap:4px;width:100%;display:flex}.ad-slot__label{letter-spacing:.14em;text-transform:uppercase;color:var(--text-muted);font-size:10px}.ad-slot .adsbygoogle{width:100%}.home__ad{padding:18px 0 0}@media (width<=900px){.hero{padding-left:max(20px, env(safe-area-inset-left,0px));padding-right:max(20px, env(safe-area-inset-right,0px))}.hero--list .hero__cards{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;width:auto}.acard--detailed{padding:14px 16px 16px}.hero__cards{margin-left:calc(-1 * max(20px, env(safe-area-inset-left,0px)));margin-right:calc(-1 * max(20px, env(safe-area-inset-right,0px)));padding-left:max(20px, env(safe-area-inset-left,0px));padding-right:max(20px, env(safe-area-inset-right,0px));scroll-padding-left:20px}.hero__credits{padding-top:8px;font-size:11px;line-height:18px}}@media (width<=640px){.hero{padding:calc(env(safe-area-inset-top,0px) + 17px) max(30px, env(safe-area-inset-right,0px)) 0 max(30px, env(safe-area-inset-left,0px));background:radial-gradient(266% 399px at 50% 190px,#000 50%,#01080c 52.2%,#020f18 54.4%,#041f30 58.8%,#062e48 63.1%,#083e61 67.5%,#0d5c91 76.3%,#117bc1 85%,#0c598c 100%)}.hero--globe{min-height:0}.hero__brand{padding-top:9px}.hero__brand .wordmark{display:none}.hero__brand .brand__mark{width:64px;height:64px}.hero__menu{display:block;position:relative}.hero__menu--settings{justify-self:start}.hero__menu--source{justify-self:end}.hero__menu-toggle{font:400 12px/15px var(--hero-font);text-transform:lowercase;color:#fffc;cursor:pointer;background:0 0;border:0;padding:18px 0 0;display:block}.hero__menu-toggle:before{content:"";background:#4fd1c5e6;width:42px;height:1.5px;margin-bottom:5px;display:block}.hero__menu--source .hero__menu-toggle{text-align:right}.hero__menu--source .hero__menu-toggle:before{margin-left:auto}.hero__switches,.hero__credits{padding-top:0;display:none;position:absolute;top:calc(100% + 14px)}.hero__switches{left:0}.hero__credits{white-space:nowrap;right:0}.hero__menu.is-open .hero__switches,.hero__menu.is-open .hero__credits{display:flex}.hero__spacer{flex:none;height:504px;min-height:0}.hero__fade{background:linear-gradient(#0c598c00 0%,#0c598c 85.6%);height:67px;bottom:107px}.hero__fade:before{display:none}.hero__fade:after{-webkit-backdrop-filter:blur(12px)}.hero--globe .hero__cards{margin-left:calc(-1 * max(30px, env(safe-area-inset-left,0px)));margin-right:calc(-1 * max(30px, env(safe-area-inset-right,0px)));padding-left:max(16px, env(safe-area-inset-left,0px));padding-right:max(16px, env(safe-area-inset-right,0px));scroll-snap-type:x mandatory;scroll-padding-left:max(16px, env(safe-area-inset-left,0px));gap:17px;padding-bottom:16px}.hero--globe .acard{width:234px;height:148px}.acard__city{font-size:16px}.globe__stage{transform-origin:50% 60%}.globe__vignette{background:radial-gradient(55% 55% at 50% 60%,#06081000 35%,#060810d9 100%)}.globe__dest{top:60%}.globe__label{padding:4px 9px;font-size:11px}.hero--list .hero__cards{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;padding-top:16px}.acard--detailed .acard__code{font-size:40px}.acard--detailed .acard__bottom{flex-wrap:wrap;row-gap:4px}.acard--detailed .acard__city{white-space:normal}}@media (height<=520px) and (width>=641px){.hero__spacer{min-height:90px}.hero__cards{padding-bottom:16px}.hero__fade{height:190px}.hero--globe .acard{width:200px;height:118px}.hero--globe .acard__code{font-size:40px}}.app--arrive{animation:.9s cubic-bezier(.2,.7,.2,1) both arrive}@keyframes arrive{0%{opacity:0;filter:blur(14px);transform:scale(1.06)}60%{filter:blur()}to{opacity:1;filter:blur();transform:none}}@media (prefers-reduced-motion:reduce){.app--arrive{animation:none}}.editorial{max-width:760px;color:var(--text-soft);margin:0 auto;padding:40px 0 8px;font-size:15px;line-height:1.65}.editorial__section{padding:8px 0 20px}.editorial h2,.info-page__main section h2{letter-spacing:-.01em;text-transform:none;color:var(--text);margin:20px 0 10px;font-size:22px;font-weight:800}.editorial p{margin:0 0 14px}.content-lead{color:var(--text);font-size:18px;line-height:1.5}.content-meta{color:var(--text-muted);margin-top:-6px;font-size:13px}.content-link{color:var(--accent);font-weight:600;text-decoration:none}.content-cta{color:var(--text);background:#4fd1c529;border:1px solid #4fd1c580;border-radius:10px;padding:10px 16px;font-weight:700;text-decoration:none;display:inline-block}.content-cta:hover{background:#4fd1c547}.guide-list{grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:10px;margin:0 0 14px;padding:0;list-style:none;display:grid}.guide-list__item{border:1px solid var(--border);background:var(--card);color:inherit;border-radius:12px;align-items:flex-start;gap:14px;padding:12px 14px;text-decoration:none;transition:background .15s,border-color .15s;display:flex}.guide-list__item:hover{background:var(--card-2);border-color:var(--border-strong)}.guide-list__code{color:var(--text);flex:none;padding-top:2px;font:400 26px/1 Instrument Serif,Times New Roman,serif}.guide-list__body{color:var(--text-muted);flex-direction:column;gap:3px;font-size:13px;line-height:1.45;display:flex}.guide-list__body strong{color:var(--text);font-size:14px}.guide-list--compact{grid-template-columns:repeat(auto-fill,minmax(220px,1fr))}.guide-list--compact a{border:1px solid var(--border);color:var(--text-soft);border-radius:8px;padding:8px 10px;font-size:13px;text-decoration:none;display:block}.guide-list--compact a strong{color:var(--text);margin-right:6px}.home .editorial{max-width:826px;font-family:var(--hero-font);color:#fffc;padding:18px 0 0;font-size:16px;line-height:23px}.home .editorial__section{padding:0}.home .editorial__section~.editorial__section{border-top:1.5px solid #ffffffeb;margin-top:87px;padding-top:17px}.home .editorial h2{font:400 46px/60px var(--hero-serif);letter-spacing:0;color:#ffffffeb;margin:0 0 18px}.home .editorial p{margin:0 0 23px}.home .editorial p:last-child{margin-bottom:0}.home .guide-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:32px 30px;margin:24px -29px 0}.home .guide-list__item{color:#fff;background:0 0;border:1px solid #ecececb0;border-radius:21px;grid-template-columns:auto minmax(0,1fr);align-items:center;column-gap:24px;padding:27px 31px 30px;display:grid}.home .guide-list__item:hover{background:#ffffff0f;border-color:#ecececf2}.home .guide-list__code{font:400 38px/49px var(--hero-serif);color:#fff;padding:0}.home .guide-list__body{display:contents}.home .guide-list__body strong{min-height:49px;font:500 16px/20px var(--hero-font);color:#fff;border-left:1px solid #ffffffbf;align-items:center;padding-left:24px;display:flex}.home .guide-list__body span{max-width:346px;font:400 16px/23px var(--hero-font);color:#fffc;border-top:1px solid #ffffffbf;grid-column:1/-1;margin-top:6px;padding-top:17px}.faq{margin:23px 0 0}.faq__item{border-bottom:1px solid #fff9}.faq__item summary{cursor:pointer;justify-content:space-between;align-items:center;gap:24px;padding:26px 0 14px;list-style:none;display:flex}.faq__item summary::-webkit-details-marker{display:none}.faq__item:first-child summary{padding-top:0}.faq__q{font:400 26px/34px var(--hero-serif);color:#fff}.faq__toggle{border:1px solid #ffffffbf;border-radius:50%;flex:none;width:36px;height:36px;transition:transform .25s,background .2s;position:relative}.faq__item summary:hover .faq__toggle{background:#ffffff14}.faq__toggle:before,.faq__toggle:after{content:"";background:#fff;width:12px;height:1.5px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.faq__toggle:after{transform:translate(-50%,-50%)rotate(90deg)}.faq__item[open] .faq__toggle{transform:rotate(45deg)}.faq__a{max-width:609px;margin:9px 0}.watching__total{color:var(--text-soft);align-items:center;gap:14px;margin:10px 0 18px;display:flex}.watching{flex-direction:column;gap:8px;margin:0 0 16px;padding:0;list-style:none;display:flex}.watching__row{border:1px solid var(--border);background:var(--card);opacity:.7;border-radius:12px;grid-template-columns:64px 1fr auto;align-items:center;gap:14px;padding:10px 14px;display:grid}.watching__row.is-live{opacity:1;border-color:#34d39959}.watching__code{color:var(--text);font:400 26px/1 Instrument Serif,Times New Roman,serif;text-decoration:none}.watching__name{color:var(--text);flex-direction:column;gap:2px;font-size:14px;display:flex}.watching__city{color:var(--text-muted);font-size:12px}.info-page__main{width:100%;max-width:760px;color:var(--text-soft);margin:0 auto;padding:18px 0 32px;font-size:15px;line-height:1.65}.info-page__title{letter-spacing:-.01em;color:var(--text);margin:8px 0 18px;font-size:34px;font-weight:800}.info-page__main h2{letter-spacing:.12em;text-transform:uppercase;color:var(--text-muted);margin:28px 0 8px;font-size:13px;font-weight:700}.info-page__main p{margin:0 0 14px}.info-page__main ul{margin:0 0 14px;padding-left:20px}.info-page__main li{margin:0 0 8px}.info-page__main a{color:var(--accent)}.info-page__updated{color:var(--text-muted);font-size:12px}.site-footer{color:var(--text-muted);flex-wrap:wrap;align-items:center;gap:8px 18px;padding:18px 4px 8px;font-size:12px;display:flex}.site-footer a{color:var(--text-soft);font-weight:600;text-decoration:none}.site-footer a:hover{color:var(--text)}.site-footer__note{flex:100%;font-size:11px}.site-footer__links{display:contents}.home .site-footer{flex-direction:column;align-items:stretch;gap:0;padding:79px 0 15px}.home .site-footer__links{justify-content:center;gap:60px;padding:0 20px;display:flex}.home .site-footer a{font:400 18px/23px var(--hero-serif);color:#fff}.home .site-footer a:hover{text-decoration:underline}.home .site-footer__note{text-align:center;font:300 10px/23px var(--hero-font);letter-spacing:.5px;text-transform:uppercase;color:#ffffff73;border-top:1px solid #fff9;margin-top:23px;padding:17px 20px 0}@media (width<=900px){.home .guide-list{grid-template-columns:minmax(0,1fr);margin-left:0;margin-right:0}}@media (width<=640px){.home .editorial h2{font-size:34px;line-height:42px}.home .editorial__section~.editorial__section{margin-top:56px}.home .guide-list__item{padding:20px 22px 22px}.faq__q{font-size:22px;line-height:28px}.home .site-footer__links{flex-wrap:wrap;gap:12px 28px}}
