/* Only the animated race popup; the page layouts keep their existing styles. */
.overlay > .dialog.flight-dialog {
 --compact-dialog-width:1420px; --race-row-step:64px;
 padding:58px 20px 14px; margin-top:34px;
 background:linear-gradient(#fff9ed,#f8efd9);
 border:6px solid #b5c6d2;border-radius:30px;
 box-shadow:0 0 0 2px #425d70,inset 0 0 0 2px #fff,inset 0 0 0 6px #e3d7bf,0 14px 35px #00162980;
 max-width:min(1420px,calc((100vw - 48px) / var(--game-ui-scale,1)));
 overflow:visible;max-height:none;
}
.dialog.flight-dialog > .hangar-frame {
 position:absolute;left:50%;top:-47px;transform:translateX(-50%);
 margin:0;z-index:8;
}
.dialog.flight-dialog > .close {
 top:9px;right:10px;width:48px;height:48px;font-size:40px;
 color:#3c3936;border:2px solid #aa9276;background:linear-gradient(#fffdf4,#f5e5c7);
 box-shadow:inset 0 0 0 3px #fff,0 3px 0 #9e947e;z-index:10;
}
.dialog.flight-dialog .race-scene {
 aspect-ratio:2.62;border:3px solid #72869a;border-radius:22px;
 background:#0ec0de;box-shadow:0 0 0 3px #fffdf6;
}
.dialog.flight-dialog .scenery {
 inset:-12%;background-position:center;background-size:cover;
 animation:race-parallax 20s linear forwards;will-change:transform;
}
.flight-dialog .flight-aircraft {
 position:absolute;left:33%;top:4%;width:34%;aspect-ratio:1;
 z-index:3;isolation:isolate;transform-origin:50% 55%;visibility:hidden;
 animation:aircraft-bank 4.8s ease-in-out infinite;
}
.flight-dialog .flight-aircraft.aircraft-ready{visibility:visible;}
.flight-dialog .flight-sprite {
 position:absolute;inset:0;width:100%;height:100%;object-fit:contain;
 z-index:2;mix-blend-mode:normal;filter:none;clip-path:inset(1% 0);
}
.flight-dialog .flight-prop {
 position:absolute;z-index:1;transform:scaleY(.48);border-radius:50%;
 background:none;
}
.flight-dialog .flight-prop > i {
 position:absolute;inset:0;border-radius:50%;
 background:conic-gradient(from 15deg,transparent 0deg,#e6fbff88 45deg,#28587855 70deg,transparent 120deg,#e6fbff88 165deg,#28587855 190deg,transparent 240deg,#e6fbff88 285deg,#28587855 310deg,transparent 360deg);
 mask-image:radial-gradient(circle,#000 18%,#000b 40%,transparent 72%);
 animation:aircraft-prop .16s linear infinite;animation-delay:var(--phase,0s);
}
.flight-dialog .flight-exhaust {
 position:absolute;z-index:1;height:20%;transform-origin:50% 0;
 border-radius:40% 40% 65% 65%;
 background:radial-gradient(ellipse at 50% 12%,#f4fdff 0%,#99f7ff 18%,#1bc9ff 38%,#287affaa 60%,transparent 78%);
 animation:aircraft-exhaust .24s ease-in-out infinite alternate;animation-delay:var(--phase,0s);
}
.flight-dialog .flight-exhaust::after{content:'';position:absolute;left:31%;top:4%;width:38%;height:78%;border-radius:50%;background:linear-gradient(#fffef5dd,#bafaffbb 40%,transparent);}
.flight-dialog .flight-wind{position:absolute;inset:0;z-index:4;pointer-events:none;overflow:hidden;}
.flight-dialog .flight-wind > i{position:absolute;top:-25%;width:1.6px;height:var(--wind-length);background:linear-gradient(transparent,#f4feffee,transparent);animation:race-wind var(--wind-speed) linear infinite;animation-delay:var(--wind-delay);opacity:0;}
.dialog.results-dialog.results-loading{visibility:hidden;}
.dialog.flight-dialog .race-hud{left:22px;right:22px;top:20px;gap:12px;z-index:5;}
.dialog.flight-dialog .hud-chip{
 display:flex;align-items:center;gap:12px;background:linear-gradient(#102e57,#061a3f);
 color:#fff;font-family:Cartoon,sans-serif;font-size:28px;line-height:1;
 padding:12px 18px;border:2px solid #133a5e;border-radius:17px;box-shadow:0 3px 6px #00486b35;
}
.dialog.flight-dialog .hud-chip strong{font-family:Cartoon,sans-serif;font-weight:400;font-size:32px;color:#89f4ff;margin-left:0;}
.dialog.flight-dialog .race-timer{font-size:28px;}
.dialog.flight-dialog .race-timer > span{font-family:Cartoon,sans-serif;font-size:inherit;font-weight:400;line-height:1;}
.dialog.flight-dialog .hud-chip:last-child strong{color:#fff;font-size:28px;}
.dialog.flight-dialog .race-progress{
 height:23px;margin:12px 12px 15px;border:2px solid #3d627b;border-radius:20px;
 background:linear-gradient(#18344b,#476680);overflow:hidden;box-shadow:0 2px 0 #fff;
}
.dialog.flight-dialog #race-progress-fill{
 display:block;width:100%;height:100%;border-radius:20px;
 transform:scaleX(0);transform-origin:0 50%;transition:none;
 background:linear-gradient(#9bffff,#00d7f1 45%,#00bce1);box-shadow:inset 0 0 0 2px #6ffaff;
}
.dialog.flight-dialog .live-board{
 padding:0 6px 7px;border:3px solid #b3b9b8;border-radius:22px;
 background:linear-gradient(#e9f3fa 0,#cfdeea 43px,#fff8e9 44px);
 box-shadow:inset 0 0 0 2px #fff;
}
.dialog.flight-dialog .live-board > h2{
 font:32px/1.1 Cartoon,sans-serif;text-align:center;color:#030c3c;
 margin:0;padding:9px 0 8px;text-shadow:0 2px #fff;
}
.dialog.flight-dialog .race-standings{height:calc(5 * var(--race-row-step));margin:0;position:relative;}
.dialog.flight-dialog .rank-row{
 display:grid;grid-template-columns:84px 155px minmax(110px,.8fr) minmax(0,1.6fr);
 align-items:center;gap:16px;height:calc(var(--race-row-step) - 4px);
 padding:2px 15px 2px 7px;border:2px solid #dfd2bc;border-radius:17px;
 background:linear-gradient(100deg,#fff4de,#fffaf1);box-shadow:inset 0 0 0 2px #fff;
 transition:transform .65s cubic-bezier(.2,.8,.2,1);
}
.dialog.flight-dialog .rank-row.you{border:3px solid #00b6ce;background:linear-gradient(90deg,#e0fcff,#c9f7fb);box-shadow:inset 0 0 0 2px #fff;}
.flight-dialog .rank-cup{width:76px;display:grid;place-items:center;}
.flight-dialog .rank-cup .result-trophy{width:76px;margin:0;height:auto;}
.flight-dialog .rank-cup .result-trophy > strong{font-size:19px;top:12%;}
.flight-dialog .rank-cup .result-trophy > strong small{font-size:10px;}
.dialog.flight-dialog .live-plane{width:150px;height:60px;object-fit:contain;mix-blend-mode:normal;}
.dialog.flight-dialog .rank-name{font:27px/1 Cartoon,sans-serif;color:#040b3e;min-width:0;}
.dialog.flight-dialog .rank-plane{font:21px/1.1 Cartoon,sans-serif;color:#737f8c;overflow-wrap:anywhere;min-width:0;}
.dialog.flight-dialog .race-footer{margin:10px 0 0;min-height:26px;text-align:center;}
.dialog.flight-dialog .race-footer .live-badge{font-size:12px;padding:4px 12px;}
.dialog.flight-dialog .race-footer .btn{min-height:48px;font-size:23px;padding:8px 25px;}
.dialog.flight-dialog .race-finish{background:#061e3340;z-index:6;}
.dialog.flight-dialog .finish-sign{padding:20px 28px;background:#fff7e5;}
.dialog.flight-dialog .finish-sign strong{font:36px/1 Cartoon,sans-serif;}
.dialog.flight-dialog .finish-sign small{font-size:16px;line-height:1.3;}
.flight-dialog.race-complete .flight-aircraft,.flight-dialog.race-complete .flight-prop > i,.flight-dialog.race-complete .flight-exhaust,.flight-dialog.race-complete .scenery,.flight-dialog.race-complete .flight-wind > i{animation-play-state:paused;}
@keyframes aircraft-bank{0%,100%{transform:translate(-4%,0) rotate(-3.5deg)}50%{transform:translate(4%,-2%) rotate(3.5deg)}}
@keyframes race-parallax{from{transform:translateY(-9.6%)}to{transform:translateY(9.6%)}}
@keyframes race-wind{0%{transform:translateY(0);opacity:0}15%{opacity:.52}80%{opacity:.4}100%{transform:translateY(1700%);opacity:0}}
@keyframes aircraft-prop{to{transform:rotate(360deg)}}
@keyframes aircraft-exhaust{from{transform:scaleX(.9) scaleY(.88);opacity:.88}to{transform:scaleX(1.06) scaleY(1.08);opacity:1}}
@media(max-width:1023px){
 .overlay > .dialog.flight-dialog{--race-row-step:58px;padding:44px 12px 12px;max-width:100%;}
 .dialog.flight-dialog .rank-row{grid-template-columns:60px 100px minmax(95px,.8fr) minmax(0,1.4fr);gap:8px;padding:2px 8px;}
 .dialog.flight-dialog .live-plane{width:100px;height:52px;}
 .flight-dialog .rank-cup,.flight-dialog .rank-cup .result-trophy{width:58px;}
 .flight-dialog .rank-cup .result-trophy > strong{font-size:16px;}
 .flight-dialog .rank-cup .result-trophy > strong small{font-size:8px;}
 .dialog.flight-dialog .rank-name{font-size:23px;}
 .dialog.flight-dialog .rank-plane{font-size:17px;}
 .dialog.flight-dialog .hud-chip{font-size:21px;padding:9px 12px;gap:7px;}
 .dialog.flight-dialog .hud-chip strong{font-size:25px;}
 .dialog.flight-dialog .hud-chip:last-child strong{font-size:21px;}
 .dialog.flight-dialog .race-timer{font-size:21px;}
}
@media(max-width:760px){
 .overlay > .dialog.flight-dialog{--race-row-step:57px;margin-top:30px;border-width:4px;padding:35px 8px 10px;border-radius:23px;}
 .dialog.flight-dialog > .hangar-frame{top:-44px;}
 .dialog.flight-dialog > .close{width:34px;height:34px;font-size:28px;right:4px;top:5px;}
 .dialog.flight-dialog .race-scene{aspect-ratio:1.65;border-radius:16px;}
 .flight-dialog .flight-aircraft{width:50%;left:25%;top:22%;}
 .dialog.flight-dialog .race-hud{left:7px;right:7px;top:8px;gap:5px;}
 .dialog.flight-dialog .hud-chip{font-size:15px;padding:8px 7px;gap:5px;border-radius:10px;}
 .dialog.flight-dialog .hud-chip strong{font-size:21px;}
 .dialog.flight-dialog .hud-chip:last-child strong{font-size:17px;}
 .dialog.flight-dialog .race-timer{font-size:17px;}
 .dialog.flight-dialog .race-progress{height:17px;margin:8px 4px 10px;}
 .dialog.flight-dialog .live-board{padding:0 3px 4px;border-radius:15px;}
 .dialog.flight-dialog .live-board > h2{font-size:24px;padding:8px 0;}
 .dialog.flight-dialog .rank-row{grid-template-columns:43px 60px minmax(0,.8fr) minmax(0,1.1fr);gap:5px;padding:2px 4px;border-radius:12px;}
 .dialog.flight-dialog .live-plane{width:60px;height:44px;}
 .flight-dialog .rank-cup,.flight-dialog .rank-cup .result-trophy{width:43px;}
 .flight-dialog .rank-cup .result-trophy > strong{font-size:12px;}
 .flight-dialog .rank-cup .result-trophy > strong small{font-size:6px;}
 .dialog.flight-dialog .rank-name{font-size:17px;overflow-wrap:anywhere;}
 .dialog.flight-dialog .rank-plane{font-size:12px;}
 .dialog.flight-dialog .finish-sign{padding:15px;max-width:90%;}
 .dialog.flight-dialog .finish-sign strong{font-size:26px;}
 .dialog.flight-dialog .finish-sign small{font-size:12px;}
}
@media(prefers-reduced-motion:reduce){
 .flight-dialog .flight-aircraft,.flight-dialog .flight-prop > i,.flight-dialog .flight-exhaust,.flight-dialog .scenery,.flight-dialog .flight-wind > i{animation:none;}
 .flight-dialog .flight-wind{display:none;}
 .dialog.flight-dialog .rank-row{transition:none;}
}
@media(max-height:700px){
 .overlay:has(.flight-dialog){align-items:flex-start;padding-top:55px;}
 .overlay > .dialog.flight-dialog{margin-top:20px;}
}

/* The displayed aircraft must be ready before flight time begins. */
.flight-dialog.flight-preparing .scenery,
.flight-dialog.flight-preparing .flight-aircraft,
.flight-dialog.flight-preparing .flight-prop > i,
.flight-dialog.flight-preparing .flight-exhaust,
.flight-dialog.flight-preparing .flight-heat,
.flight-dialog.flight-preparing .flight-wind > i{animation-play-state:paused;}
.flight-dialog.flight-preparing .race-hud{visibility:hidden;}
.flight-dialog.flight-preparing .race-scene::after{content:'PREPARING YOUR AIRCRAFT…';position:absolute;inset:0;display:grid;place-items:center;z-index:6;background:#062e5570;color:white;text-shadow:0 2px 3px #052740;font:26px Cartoon,sans-serif;}
.flight-dialog .flight-body{position:absolute;inset:0;transform-origin:50% 75%;}
.flight-dialog [data-flight-model="21"] .flight-body,
.flight-dialog [data-flight-model="22"] .flight-body{transform:perspective(550px) rotateX(18deg);}
.flight-dialog .flight-heat{position:absolute;z-index:1;height:12%;border-radius:50%;background:linear-gradient(#bfebef20,transparent);filter:blur(3px);animation:aircraft-exhaust .8s ease-in-out infinite alternate;}
.flight-dialog.race-complete .flight-heat{animation-play-state:paused;}
@media(prefers-reduced-motion:reduce){.flight-dialog .flight-heat{animation:none;}}

/* Lower the race status / result control by 10 visible pixels. */
.dialog.flight-dialog .race-footer{margin-top:calc(10px + 10px / var(--game-ui-scale,1));}
