@font-face{font-family:Nunito;font-style:normal;font-weight:700 900;font-display:swap;src:url(/fonts/nunito-latin.woff2)format("woff2")}@font-face{font-family:Nunito fallback;src:local(Arial Bold),local(Arial-BoldMT),local(Arial);font-weight:700 900;size-adjust:98%;ascent-override:103%;descent-override:36%;line-gap-override:0%}:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--surface:#f5fbfe;--surface-raised:#fff;--surface-sunk:#ecf8fd;--line:#cde9f4;--ink:#0b3550;--ink-soft:#42647a;--brand:#0a699b;--brand-strong:#0b4c6b;--brand-soft:#ddf2fb;--sky:#10bfe6;--sky-light:#5fd7f3;--sky-pale:#87dff2;--sun:#f6d314;--sun-light:#f4e257;--warn:#a63a0a;--warn-line:#c2410c;--warn-soft:#fdebdd;--live:#0b6e50;--live-soft:#ddf5ec;--shadow-tint:11 53 80;--font-display:"Nunito", "Nunito fallback", system-ui, sans-serif;--font-body:system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--text-xs:.75rem;--text-sm:.875rem;--text-md:1rem;--text-lg:1.25rem;--text-xl:1.625rem;--text-2xl:2.125rem;--text-3xl:2.75rem;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.5rem;--space-6:2rem;--space-7:3rem;--radius:.875rem;--panel-width:27.5rem;--gutter:clamp(1rem, 4vw, 1.75rem)}*,:before,:after{box-sizing:border-box}html,body{margin:0}body{background:var(--surface);color:var(--ink);font-family:var(--font-body);font-size:var(--text-md);-webkit-font-smoothing:antialiased;line-height:1.5}a{color:var(--brand);text-underline-offset:.15em}a:hover{color:var(--brand-strong);text-decoration-thickness:2px}:focus-visible{outline:3px solid var(--ink);outline-offset:2px;box-shadow:0 0 0 7px var(--surface-raised);border-radius:4px}button{font:inherit;color:inherit}h1,h2,h3,p,dl,dd,ul,figure{margin:0}.visually-hidden{clip-path:inset(50%);white-space:nowrap;block-size:1px;inline-size:1px;position:absolute;overflow:hidden}.muted{color:var(--ink-soft);font-size:var(--text-sm)}.app{grid-template-rows:minmax(18rem,56svh) auto;min-block-size:100dvh;display:grid}.map-pane{background:var(--surface-sunk);min-inline-size:0;position:relative}.map-pane>.flight-map{position:absolute;inset:0}.flight-map--loading{background:linear-gradient(160deg, var(--surface-sunk), var(--brand-soft))}.panel{--panel-pad-top:var(--space-5);min-inline-size:0;padding:var(--panel-pad-top) var(--gutter) var(--space-6);gap:var(--space-6);flex-direction:column;display:flex}@media (width>=56rem){.app{grid-template-columns:minmax(0, 1fr) var(--panel-width);grid-template-rows:100dvh;block-size:100dvh;overflow:hidden}.panel{--panel-pad-top:var(--space-6);border-inline-start:1px solid var(--line);box-shadow:-12px 0 32px rgb(var(--shadow-tint) / .08);overflow-y:auto}}.map-pane__back{padding:var(--space-2) var(--space-4);border:2px solid var(--brand);background:var(--surface-raised);color:var(--brand-strong);box-shadow:0 2px 10px rgb(var(--shadow-tint) / .18);cursor:pointer;border-radius:999px;font-weight:700;position:absolute;inset-block-start:var(--space-3);inset-inline-start:var(--space-3)}.map-pane__back:hover{background:var(--brand-soft)}.masthead{gap:var(--space-1);margin-block-start:calc(-1 * var(--panel-pad-top));margin-inline:calc(-1 * var(--gutter));padding:var(--space-6) var(--gutter) calc(var(--space-7) + var(--space-3));background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 440 52' preserveAspectRatio='none'%3E%3Cpath d='M0 18C70 4 150 30 240 16S380 2 440 12' fill='none' stroke='%23f6d314' stroke-width='4' vector-effect='non-scaling-stroke'/%3E%3Cpath d='M0 25C80 11 160 36 250 23S385 10 440 19V52H0Z' fill='%230d99dd'/%3E%3Cpath d='M0 33C90 23 190 42 290 31S400 26 440 30V52H0Z' fill='%230a699b'/%3E%3Cpath d='M0 47C110 37 230 52 330 43S420 39 440 41V52H0Z' fill='%23f5fbfe'/%3E%3C/svg%3E") bottom / 100% 3.25rem no-repeat, url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 0C13 8 16 11 24 12C16 13 13 16 12 24C11 16 8 13 0 12C8 11 11 8 12 0Z' fill='%23f6d314'/%3E%3C/svg%3E") right calc(var(--gutter) + 5.5rem) top 1.25rem / 1.125rem no-repeat, url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 0C13 8 16 11 24 12C16 13 13 16 12 24C11 16 8 13 0 12C8 11 11 8 12 0Z' fill='%23ffffff'/%3E%3C/svg%3E") right calc(var(--gutter) + .75rem) top .875rem / .75rem no-repeat, url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 120 60'%3E%3Cg fill='%23ffffff' fill-opacity='0.9'%3E%3Ccircle cx='38' cy='38' r='16'/%3E%3Ccircle cx='64' cy='28' r='22'/%3E%3Ccircle cx='90' cy='39' r='15'/%3E%3Crect x='22' y='38' width='84' height='16' rx='8'/%3E%3C/g%3E%3C/svg%3E") right calc(-1 * var(--space-4)) top 2.25rem / 7rem no-repeat, linear-gradient(165deg, var(--sky-pale) 0%, var(--sky-light) 40%, var(--sky) 100%);color:var(--ink);display:grid;position:relative}@media (width<=30rem){.masthead{background-position:bottom,right 5.25rem top .625rem,right 1.25rem top 4.25rem,right -1.75rem top .25rem,0 0;background-size:100% 3.25rem,.875rem,.625rem,5rem,auto}}.masthead__eyebrow{font-size:var(--text-xs);letter-spacing:.14em;text-transform:uppercase;color:var(--ink);font-weight:700}.masthead__title{font-family:var(--font-display);font-size:var(--text-3xl);letter-spacing:-.015em;color:var(--ink);font-weight:900;line-height:1.05}.masthead__demo{padding:var(--space-1) var(--space-3);border:1px dashed var(--ink);font-size:var(--text-xs);color:var(--ink);background:#fff9;border-radius:999px;justify-self:start;margin-block-start:var(--space-2)}.notice{padding:var(--space-3) var(--space-4);border-radius:var(--radius);background:var(--surface-sunk);border-inline-start:4px solid var(--sky);font-size:var(--text-sm)}.notice--stale,.notice--error{background:var(--warn-soft);color:var(--ink);border-inline-start-color:var(--warn-line)}.flight-panel{gap:var(--space-4);display:grid}.status-tag{justify-self:start;align-items:center;gap:var(--space-2);padding:var(--space-1) var(--space-3);font-size:var(--text-xs);letter-spacing:.1em;text-transform:uppercase;border-radius:999px;font-weight:800;display:inline-flex}.status-tag:before{content:"";background:currentColor;border-radius:50%;block-size:.5rem;inline-size:.5rem}.status-tag--live{background:var(--live-soft);color:var(--live)}@media (prefers-reduced-motion:no-preference){.status-tag--live:before{animation:2s ease-in-out infinite pulse}.flight-row{transition:border-color .12s,background-color .12s}}.status-tag--estimate{background:var(--warn-soft);color:var(--warn);outline:1px dashed var(--warn-line);outline-offset:-1px}.status-tag--calm{background:var(--brand-soft);color:var(--brand-strong)}.status-tag--calm:before{background:0 0;border:2px solid}@keyframes pulse{50%{opacity:.3}}.flight-panel__headline{font-family:var(--font-display);font-size:var(--text-xl);text-wrap:balance;font-weight:800;line-height:1.2}.flight-panel__lede{color:var(--ink-soft)}.flight-panel__flight{gap:var(--space-3);padding:var(--space-4);border-radius:var(--radius);background:var(--surface-raised);border:1px solid var(--line);border-block-start:4px solid var(--sky);box-shadow:0 4px 14px rgb(var(--shadow-tint) / .06);display:grid}.flight-panel__number{align-items:baseline;gap:var(--space-1) var(--space-3);font-weight:700;font-size:var(--text-lg);letter-spacing:.02em;flex-wrap:wrap;display:flex}.flight-panel__callsign{font-size:var(--text-sm);color:var(--ink-soft);letter-spacing:0;font-weight:500}.route__ends{align-items:start;gap:var(--space-3);grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);display:grid}.route__end:last-child{text-align:end}.route__end{min-inline-size:0;display:grid}.route__code{font-family:var(--font-display);font-size:var(--text-2xl);color:var(--brand);font-variant-numeric:tabular-nums;font-weight:900;line-height:1}.route__code--unknown{color:var(--ink-soft)}.route__place{font-size:var(--text-sm);color:var(--ink-soft);overflow-wrap:anywhere}.route__arrow{font-size:var(--text-lg);color:var(--brand);padding-block-start:var(--space-2)}.route__note{font-size:var(--text-xs);color:var(--ink-soft);margin-block-start:var(--space-2)}.route--unknown{font-size:var(--text-lg);color:var(--ink-soft)}.progress{gap:var(--space-2);display:grid}.progress__track{block-size:.5rem;margin-block:var(--space-1);background:var(--brand-soft);box-shadow:inset 0 0 0 1px var(--line);border-radius:999px}.progress__fill{border-radius:inherit;background:linear-gradient(90deg, var(--sky), var(--brand));block-size:100%;position:relative}.progress__fill:after{content:"";border:2px solid var(--ink);background:var(--sun);border-radius:50%;block-size:1rem;inline-size:1rem;position:absolute;inset-block-start:50%;inset-inline-end:0;translate:50% -50%}.progress__text{justify-content:space-between;gap:var(--space-1) var(--space-4);font-size:var(--text-sm);font-variant-numeric:tabular-nums;flex-wrap:wrap;font-weight:600;display:flex}.progress__note{font-size:var(--text-xs);color:var(--ink-soft)}.estimate-note{padding:var(--space-3) var(--space-4);border-radius:var(--radius);border:1px dashed var(--warn-line);border-inline-start:4px solid var(--warn-line);background:var(--warn-soft);font-size:var(--text-sm)}.panel-subhead{font-size:var(--text-xs);letter-spacing:.12em;text-transform:uppercase;color:var(--brand);font-weight:800}.stats{gap:var(--space-4) var(--space-5);grid-template-columns:repeat(auto-fill,minmax(8.5rem,1fr));display:grid}.stat__label{font-size:var(--text-xs);color:var(--ink-soft)}.stat__value{font-size:var(--text-lg);font-variant-numeric:tabular-nums;font-weight:600;line-height:1.25;display:grid}.stat__secondary{font-size:var(--text-sm);color:var(--ink-soft);font-weight:400}.last-seen{border-block-start:1px solid var(--line);font-size:var(--text-sm);color:var(--ink-soft);font-variant-numeric:tabular-nums;padding-block-start:var(--space-3)}.last-seen strong{color:var(--ink)}.back-button{padding:var(--space-2) 0;color:var(--brand);cursor:pointer;text-underline-offset:.2em;background:0 0;border:0;justify-self:start;font-weight:700;text-decoration:underline}.section-heading{font-family:var(--font-display);font-size:var(--text-xl);font-weight:800;line-height:1.2}.past-flights{gap:var(--space-3);display:grid}.past-flights__hint{font-size:var(--text-xs);color:var(--ink-soft)}.flight-days{gap:var(--space-5);display:grid}.flight-day{gap:var(--space-2);display:grid}.flight-day__label{padding-block:var(--space-1);background:var(--surface);font-size:var(--text-xs);letter-spacing:.12em;text-transform:uppercase;color:var(--ink-soft);font-weight:800;position:sticky;inset-block-start:0}.flight-day__list{gap:var(--space-2);padding:0;list-style:none;display:grid}.flight-row{align-items:center;gap:var(--space-1) var(--space-3);inline-size:100%;padding:var(--space-3) var(--space-4);border:1px solid var(--line);border-radius:var(--radius);background:var(--surface-raised);text-align:start;cursor:pointer;grid-template-columns:4.5rem minmax(0,1fr) auto;grid-template-areas:"number route duration""number times duration";display:grid}.flight-row:hover{border-color:var(--brand);background-color:var(--surface-sunk)}.flight-row[aria-pressed=true]{border-color:var(--brand);background:linear-gradient(90deg, var(--sun) 0 .3125rem, var(--brand-soft) .3125rem)}.flight-row__number{font-weight:700;font-size:var(--text-sm);grid-area:number}.flight-row__route{grid-area:route;min-inline-size:0;display:grid}.flight-row__codes{color:var(--brand);font-weight:700}.flight-row__cities{font-size:var(--text-xs);color:var(--ink-soft);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.flight-row__times{font-size:var(--text-sm);font-variant-numeric:tabular-nums;grid-area:times}.flight-row__duration{font-size:var(--text-sm);color:var(--ink-soft);text-align:end;font-variant-numeric:tabular-nums;grid-area:duration}.flight-row__times,.flight-row__duration{white-space:nowrap}@media (width<=30rem){.flight-row{grid-template-columns:4.25rem minmax(0,1fr);grid-template-areas:"number route""number times""number duration"}.flight-row__duration{text-align:start}}.aircraft-card{gap:var(--space-4);display:grid}.aircraft-card__photo{gap:var(--space-2);display:grid}.aircraft-card__photo img{border-radius:var(--radius);background:var(--surface-sunk);block-size:auto;inline-size:100%;box-shadow:0 0 0 4px var(--surface-raised), 0 6px 18px rgb(var(--shadow-tint) / .12);display:block}.aircraft-card__photo figcaption{font-size:var(--text-xs);color:var(--ink-soft);margin-block-start:var(--space-1)}.aircraft-card__facts{gap:var(--space-3) var(--space-5);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.aircraft-card__facts dt{font-size:var(--text-xs);color:var(--ink-soft)}.aircraft-card__facts dd{font-weight:600}.aircraft-card__note{padding:var(--space-3) var(--space-4);border-radius:var(--radius);background:var(--brand-soft);font-size:var(--text-md);color:var(--ink);line-height:1.6}.site-footer{gap:var(--space-3);border-block-start:1px solid var(--line);font-size:var(--text-xs);color:var(--ink-soft);padding-block-start:var(--space-5);display:grid}.site-footer__credits{gap:var(--space-1) var(--space-4);flex-wrap:wrap;padding:0;list-style:none;display:flex}.site-footer__disclaimer{font-weight:600}.aircraft{--aircraft-body:var(--sky);--aircraft-accent:var(--sun);--aircraft-outline:var(--brand-strong);--aircraft-fill-opacity:1;place-items:center;block-size:2.5rem;inline-size:2.5rem;display:grid;position:relative}.aircraft__icon{block-size:100%;inline-size:100%;stroke:var(--aircraft-outline);stroke-width:2.25px;stroke-linejoin:round;paint-order:stroke;filter:drop-shadow(0 0 1px var(--surface-raised)) drop-shadow(0 2px 3px rgb(var(--shadow-tint) / .35));position:relative}.aircraft__body{fill:var(--aircraft-body);fill-opacity:var(--aircraft-fill-opacity)}.aircraft__accent{fill:var(--aircraft-accent);fill-opacity:var(--aircraft-fill-opacity)}.aircraft__ring{border-radius:50%;position:absolute;inset:-.5rem}.aircraft[data-kind=live] .aircraft__ring{background:#fff9;border:1.5px solid #0a699b80}.aircraft[data-kind=estimated]{--aircraft-body:var(--warn-line);--aircraft-accent:var(--warn-line);--aircraft-outline:var(--warn-line);--aircraft-fill-opacity:.35}.aircraft[data-kind=estimated] .aircraft__icon,.aircraft[data-kind=last_known] .aircraft__icon{filter:none}.aircraft[data-kind=estimated] .aircraft__ring{border:2px dashed var(--warn-line);background:#c2410c14}.aircraft[data-kind=last_known]{--aircraft-body:var(--ink-soft);--aircraft-accent:var(--ink-soft);--aircraft-outline:var(--ink-soft);--aircraft-fill-opacity:.4}.aircraft[data-kind=last_known] .aircraft__ring{border:2px dotted var(--ink-soft)}.aircraft[data-kind=resting]{block-size:2rem;inline-size:2rem}
