@font-face{font-family:Flight Numerals;src:url(/assets/flight-numerals-CoAddtZD.woff2)format("woff2");font-weight:300;font-display:swap}@font-face{font-family:Ropa Sans;src:url(/assets/ropa-sans-latin-400-normal-Cdh6KTU9.woff2)format("woff2");font-weight:400;font-display:swap}:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;color:#edf3fa;--muted:#9cabbc;--accent:#c4defb;--line:#d4e8ff26;--gutter:clamp(20px,3vw,48px);--header-pad:24px;--header-height:100px;--footer-height:200px;background:#03070c;font-family:Hiragino Kaku Gothic ProN,Yu Gothic,sans-serif}*{box-sizing:border-box}body{height:100dvh;margin:0;overflow:hidden}button,input,select,a{-webkit-tap-highlight-color:transparent}button,a{touch-action:manipulation}button{color:inherit;font:inherit;cursor:pointer;background:0 0;border:0;min-height:44px;padding:0 16px;transition:color .2s,background .2s}button:hover{color:#fff;background:#ffffff0b}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:1px solid var(--accent);outline-offset:3px}button:disabled{opacity:.4}[hidden]{display:none!important}header{z-index:5;padding:var(--header-pad) var(--gutter);background:#03070c;align-items:flex-start;gap:24px;display:flex;position:absolute;inset:0 0 auto}.flight-title h1{letter-spacing:.12em;color:var(--muted);margin:0 0 9px;font-size:12px;font-weight:400}.flight-title p{letter-spacing:.025em;margin:0;font-size:20px;line-height:1.3}.flight-title b{font-weight:400}.flight-title p>span{color:#829ab5;margin:0 16px}.clocks{gap:30px;margin-left:auto;display:flex}.clocks>div{align-items:baseline;gap:10px;display:flex}.clocks>div>span{color:var(--muted);font-size:13px}.clocks time{white-space:nowrap;font:300 28px Flight Numerals,sans-serif}.menu-control{isolation:isolate;border:1px solid var(--line);-webkit-user-select:none;user-select:none;background:#b2ccec09;border-radius:5px;flex:0 0 44px;place-items:center;width:44px;height:44px;min-height:44px;padding:0;transition:border-color .2s,background .2s,box-shadow .3s,scale .45s cubic-bezier(.16,1,.3,1);display:grid;position:relative}.menu-control svg{width:20px;height:20px;transition:rotate .5s cubic-bezier(.16,1,.3,1),scale .5s cubic-bezier(.16,1,.3,1);display:block;position:relative}#menu-toggle svg{fill:currentColor}#menu-toggle circle{transition:translate .45s cubic-bezier(.16,1,.3,1)}#options{--spring:linear(0,.011,.04,.138,.268,.409,.547,.673,.781,.87,.939,.989,1.024,1.045,1.056,1.059,1.056,1.051,1.043,1.035,1.027,1.019,1.013,1.008,1.004,1.001,.998,.997,.997,.998,.999,1);width:min(380px,100vw - 32px);max-width:none;height:100dvh;max-height:none;color:inherit;border:0;border-left:1px solid var(--line);-webkit-backdrop-filter:blur(24px);backdrop-filter:blur(24px);transition:translate .65s var(--spring),display .65s allow-discrete,overlay .65s allow-discrete;background:#0b1422fa;margin:0;padding:0;position:fixed;inset:0 0 0 auto;overflow:visible;translate:100%;box-shadow:-20px 0 80px #0006}#options:after{content:"";background:inherit;pointer-events:none;width:64px;position:absolute;inset:0 -64px 0 auto}.drawer-body{overscroll-behavior:contain;height:100%;padding:var(--header-pad) 24px max(24px,env(safe-area-inset-bottom));overflow-y:auto}#options[open]{translate:0}#options::backdrop{opacity:0;transition:opacity .35s,display .65s allow-discrete,overlay .65s allow-discrete;background:#0008}#options[open]::backdrop{opacity:1}@starting-style{#options[open]{translate:100%}#options[open]::backdrop{opacity:0}}.drawer-heading{min-height:44px;padding-right:calc(var(--gutter) + 44px);align-items:center;gap:16px;margin-bottom:24px;display:flex}.drawer-heading h2{margin:0;font-size:17px;font-weight:400}.drawer-close{top:var(--header-pad);right:var(--gutter);position:absolute}.drawer-close svg,#restart>svg{fill:none;stroke:currentColor;stroke-width:1.7px;stroke-linecap:round;stroke-linejoin:round;flex:none;width:20px;height:20px;display:block}.view-modes{gap:3px;margin:0 -8px 28px;display:grid}.view-modes button{text-align:left;border-radius:5px;align-items:center;gap:16px;width:100%;min-height:50px;padding:10px 16px;font-size:15px;line-height:1.5;transition:background .2s,padding-left .35s cubic-bezier(.16,1,.3,1),color .2s;display:flex}.view-modes button:after{content:"";opacity:0;background:currentColor;border-radius:50%;flex:none;width:7px;height:7px;margin-left:auto;transition:opacity .2s,scale .35s cubic-bezier(.16,1,.3,1)}.view-modes button[aria-pressed=true]{color:#eaf4ff;background:#c4defb15}.view-modes button[aria-pressed=true]:after{opacity:1}.drawer-settings{border-top:1px solid var(--line);padding-top:24px}#options label{color:var(--muted);margin:0 0 10px;font-size:13px;display:block}#language{width:100%;font:inherit;color:#edf3fa;border:1px solid var(--line);background:#152132;min-height:44px;margin:0 0 14px;padding:10px 12px;font-size:14px}#options #restart{background:#c1ddff10;border:1px solid #b0cae64a;border-radius:5px;justify-content:center;align-items:center;gap:10px;width:100%;margin:10px 0 24px;padding:0 12px;font-size:14px;display:flex}#restart>span{line-height:1.4}#options #restart:hover{background:#c1ddff20}#options a{color:var(--muted);font-size:12px;line-height:1.6;display:block}#stage{inset:var(--header-height) 0 var(--footer-height);background:#03070c;position:absolute;overflow:hidden}#scene{isolation:isolate;touch-action:none;outline:none;position:absolute;inset:0}#scene:focus-visible{outline-offset:-3px;outline:1px solid #8296ad}canvas{pointer-events:none;width:100%;height:100%;display:block;position:absolute;inset:0}#earth{opacity:0}.map-ready #earth{opacity:1}.position-caption{left:var(--gutter);pointer-events:none;z-index:2;text-shadow:0 2px 24px #000b;max-width:calc(100% - 2*var(--gutter));position:absolute;top:20px}#region{letter-spacing:.025em;text-wrap:balance;font-size:clamp(28px,3.4vw,52px);font-weight:400;line-height:1.12;display:block}.split-char{will-change:transform}#view-overlay{pointer-events:none;position:absolute;inset:0}#view-overlay button{pointer-events:auto}footer{z-index:4;padding:8px var(--gutter) max(10px,env(safe-area-inset-bottom));border-top:1px solid var(--line);-webkit-backdrop-filter:blur(24px);backdrop-filter:blur(24px);background:linear-gradient(#0a121eed,#060d17);position:absolute;inset:auto 0 0}.footer-inner{min-width:0;max-width:1600px;margin:auto}.instruments{border-bottom:1px solid var(--line);grid-template-columns:minmax(0,1.35fr) repeat(3,minmax(0,1fr));align-items:start;gap:24px;padding:4px 0 18px;display:grid}.instruments>div{min-width:0}.metric-label{letter-spacing:.025em;color:var(--muted);min-height:17px;margin-bottom:10px;font-size:12px;line-height:1.4;display:block}#remaining{white-space:nowrap;font-variant-numeric:tabular-nums;align-items:baseline;font:300 40px/1.15 Flight Numerals,sans-serif;display:flex}#remaining .time-unit{color:#afc0d2;margin:0 8px 0 5px;font:12px Hiragino Kaku Gothic ProN,Yu Gothic,sans-serif}.arrival-time{color:var(--muted);margin-top:8px;font-size:12px;line-height:1.4;display:block}.arrival-time time{color:#d5e2ef;margin-left:5px;font:15px Ropa Sans,sans-serif}.metric>div{white-space:nowrap;align-items:baseline;gap:7px;display:flex}.metric>div>span:first-child{font-variant-numeric:tabular-nums;font:300 36px/1.15 Flight Numerals,sans-serif}.unit{color:var(--muted);font:12px Ropa Sans,sans-serif}.instrument-trend{opacity:.7;background:repeating-linear-gradient(90deg,#9caeb94d 0 1px,#0000 1px 10px);border-top:1px solid #9caeb933;width:86px;height:5px;margin-top:10px;display:block;position:relative}.instrument-trend i{width:2px;height:7px;transform:translateX(calc(var(--value,.8)*84px));background:#e2efff;transition:transform 1s linear;position:absolute;top:-2px;left:0}.playback{align-items:center;gap:18px;min-height:48px;padding-top:5px;font-size:14px;display:flex}.playback button{white-space:nowrap}#play{background:#c6ddf710;border:1px solid #d4e8ff40;border-radius:5px;flex:0 0 44px;place-items:center;width:44px;height:44px;min-height:44px;padding:0;display:grid}#play svg{fill:currentColor;width:20px;height:20px;display:block}.airport{color:#d3deea;letter-spacing:.08em;font:14px Ropa Sans,sans-serif}.elapsed{color:var(--muted);white-space:nowrap;font-size:12px}#speed{color:#e2edfa;cursor:pointer;background:#172331;border:1px solid #d4e8ff40;border-radius:5px;min-width:76px;height:44px;padding:0 8px;font:16px Ropa Sans,sans-serif}.playback input{flex:1;min-width:24px}input[type=range]{appearance:none;touch-action:none;cursor:pointer;background:0 0;height:36px;margin:0}input[type=range]::-webkit-slider-runnable-track{background:linear-gradient(to right,var(--accent) var(--progress,37%),#445364 var(--progress,37%));height:2px}input[type=range]::-webkit-slider-thumb{appearance:none;background:#e2edfa;border:0;border-radius:50%;width:10px;height:10px;margin-top:-4px;box-shadow:0 0 0 5px #bddeff0a}input[type=range]::-moz-range-track{background:#445364;height:2px}input[type=range]::-moz-range-progress{background:var(--accent);height:2px}input[type=range]::-moz-range-thumb{background:#e2edfa;border:0;border-radius:50%;width:10px;height:10px}.clock-run{font-variant-numeric:tabular-nums;line-height:inherit;align-items:baseline;display:inline-flex}.digit-cell{width:.64em;line-height:inherit;vertical-align:baseline;display:inline-grid;overflow:hidden}.digit-cell>span{line-height:inherit;grid-area:1/1;display:block}.clock-separator{white-space:pre;line-height:inherit;display:inline-grid}#city-labels{pointer-events:none;z-index:1;position:absolute;inset:0;overflow:hidden}.city-label{color:#d5dfeb;white-space:nowrap;text-shadow:0 1px 3px #000,0 0 6px #000a;pointer-events:none;font:400 14px/21px Ropa Sans,Hiragino Kaku Gothic ProN,Yu Gothic,sans-serif;position:absolute;top:0;left:0}.city-label,.zone-place{opacity:0;visibility:hidden;transition:opacity .3s,visibility 0s .3s}.city-label.is-visible,.zone-place.is-visible{opacity:1;visibility:visible;transition-delay:0s}.city-label:not(.moon-label):before{content:"";background:currentColor;border-radius:50%;width:3px;height:3px;position:absolute;top:10px;left:-7px;translate:-50% -50%}.airport-label:before{width:4px!important;height:4px!important}.airport-label{color:#fff}.is-loading header,.is-loading footer,.is-loading .position-caption{opacity:0;pointer-events:none}#loading{z-index:20;background:#03070c;place-items:center;display:grid;position:fixed;inset:0}.load-content{width:min(680px,100vw - 48px);position:relative}.load-route{letter-spacing:.025em;white-space:nowrap;font:400 clamp(46px,14vw,142px)/1 Ropa Sans,sans-serif;animation:1.1s cubic-bezier(.16,1,.3,1) both loader-enter}.load-route>span{color:#70859a;vertical-align:12%;margin:0 .1em;font-size:.7em}.load-cities{color:#bfccd9;letter-spacing:.1em;justify-content:space-between;margin:22px 0 30px;font-size:14px;display:flex}.load-caption{justify-content:space-between;align-items:center;gap:16px;margin-top:16px;display:flex}#load-message{color:#9caec0;margin:0;font-size:12px;line-height:1.8}#load-percent{color:#e7f2ff;font:24px Ropa Sans,sans-serif}.load-track{background:#52678175;height:1px;overflow:hidden}#load-bar{transform-origin:0;background:#d4e8ff;width:100%;height:100%;animation:12s cubic-bezier(.16,1,.3,1) forwards load-progress;display:block;transform:scaleX(.15)}#retry{border-bottom:1px solid #a6c8ed;margin-top:10px;padding:0;font-size:14px}@keyframes loader-enter{0%{opacity:0;clip-path:inset(100% 0 0);transform:translateY(28px)}to{opacity:1;clip-path:inset(0);transform:none}}@keyframes load-progress{to{transform:scaleX(.85)}}@keyframes menu-enter{0%{opacity:0;transform:translateY(5px)}to{opacity:1;transform:none}}@media (max-width:950px){.instruments{gap:18px}.metric>div>span:first-child{font-size:31px}#remaining{font-size:35px}.clocks{gap:18px}.elapsed{display:none}}@media (max-width:640px){:root{--header-pad:16px}header{padding:var(--header-pad) var(--gutter) 12px;grid-template-columns:minmax(0,1fr) 44px;gap:12px 8px;display:grid}.flight-title h1{margin-bottom:7px;font-size:12px}.flight-title p{font-size:16px}.flight-title p>span{margin:0 8px}.clocks{grid-area:2/1/auto/-1;gap:24px;margin:0}.clocks>div{gap:8px}.clocks>div>span{font-size:12px}.clocks time{font-size:22px}#menu-toggle{grid-area:1/2;align-self:start}.position-caption{top:18px}#region{font-size:clamp(24px,6.7vw,34px)}footer{padding-top:4px;padding-bottom:max(6px,env(safe-area-inset-bottom))}.instruments{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px 10px;padding:0 0 12px}.arrival{grid-column:1/-1;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:2px 10px;display:grid}.arrival .metric-label{grid-area:1/1;min-height:0;margin:0}.arrival #remaining{grid-area:2/1;font-size:30px;line-height:1.25}.arrival .arrival-time{text-align:right;flex-direction:column;grid-area:1/2/3;gap:3px;margin:0 0 5px;font-size:12px;display:flex}.arrival-time time{margin:0;font-size:16px}#remaining .time-unit{margin:0 6px 0 3px;font-size:12px}.metric-label{align-items:end;min-height:32px;margin-bottom:6px;font-size:12px;line-height:1.35;display:flex}.metric>div{flex-wrap:wrap;gap:2px 4px}.metric>div>span:first-child{font-size:clamp(22px,6.1vw,28px)}.unit{font-size:12px}.instrument-trend{display:none}.playback{gap:10px;min-height:44px;padding-top:2px}.airport{font-size:12px}#speed{min-width:66px;padding:0 6px;font-size:15px}.load-cities{margin:18px 0 28px;font-size:12px}}@media (max-width:360px){:root{--gutter:16px}.arrival #remaining{font-size:26px}.arrival .arrival-time{max-width:110px;font-size:12px}.metric>div{gap:3px}.clocks{gap:18px}.playback{gap:8px}.metric-label{font-size:12px}}@media (max-height:600px) and (min-width:641px){:root{--header-pad:12px}header{padding:var(--header-pad) var(--gutter)}.flight-title h1{display:none}.clocks time{font-size:23px}.position-caption{top:12px}#region{font-size:26px}footer{padding-top:2px;padding-bottom:3px}.instruments{gap:18px;padding:0 0 8px}.metric-label{margin-bottom:5px}#remaining,.metric>div>span:first-child{font-size:26px}.arrival-time,.instrument-trend{display:none}.playback{min-height:40px}}@media (max-height:500px) and (orientation:landscape){:root{--header-pad:7px}header{padding:var(--header-pad) var(--gutter);gap:16px;display:flex}.flight-title h1{display:none}.flight-title p{font-size:15px}.clocks{gap:14px;margin-left:auto}.clocks time{font-size:20px}.clocks>div>span{font-size:12px}.position-caption{top:10px}#region{font-size:24px}.instruments{grid-template-columns:1.2fr 1fr 1fr 1fr;gap:14px;padding:0 0 4px}.arrival{grid-column:auto;display:block}.metric-label{min-height:16px;margin:0 0 4px;font-size:12px}.arrival .arrival-time,.instrument-trend,.elapsed{display:none}#remaining,.arrival #remaining,.metric>div>span:first-child{font-size:23px}.metric>div{flex-wrap:nowrap;gap:4px}.playback{min-height:38px;padding:0}#play{flex-basis:38px;width:38px;height:38px;min-height:38px}#speed{height:38px}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}.split-char{will-change:auto}}#city-labels,.zone-place,.position-caption,.flight-title,.clocks{-webkit-user-select:none;user-select:none}#render-error{z-index:6;border:1px solid var(--line);background:#101c2aeb;border-radius:6px;align-items:center;gap:16px;max-width:calc(100% - 32px);padding:10px 12px 10px 18px;font-size:14px;display:flex;position:absolute;bottom:18px;left:50%;translate:-50%}#render-error button{background:#c6ddf710;border:1px solid #d4e8ff40;border-radius:4px;flex:none}.menu-control:before{content:"";border-radius:inherit;opacity:0;pointer-events:none;background:radial-gradient(at 50% 0,#c5e4ff45,#0000 80%);transition:opacity .2s,scale .45s cubic-bezier(.16,1,.3,1);position:absolute;inset:0;scale:.65}#play,#options #restart{transition:background .2s,border-color .2s,box-shadow .3s,scale .4s cubic-bezier(.16,1,.3,1)}#play svg,#restart>svg{transition:rotate .45s cubic-bezier(.16,1,.3,1),scale .4s cubic-bezier(.16,1,.3,1)}@media (any-hover:hover){.menu-control:hover{background:#23405b;border-color:#c7e4ff99;box-shadow:0 0 20px #8bc9ff24}.menu-control:hover:before{opacity:1;scale:1}.drawer-close:hover svg{rotate:90deg;scale:1.1}#menu-toggle:hover circle:first-child{translate:-2px}#menu-toggle:hover circle:last-child{translate:2px}.view-modes button:hover{background:#bcdcff20;padding-left:22px}.view-modes button:hover:after{opacity:.65;scale:1.25}#play:hover,#options #restart:hover{background:#24405a;border-color:#c7e4ff99;box-shadow:0 0 16px #8bc9ff1c}#play:hover svg{scale:1.15}#restart:hover>svg{rotate:-35deg}}.menu-control:active,#play:active,#options #restart:active{transition-duration:.1s;scale:.93}
