/* One position layer, one pitch layer: scenery and bobbing cannot override flight attitude. */
.plane{width:250px;transform:translate(calc(-50% + var(--flight-surge,0px)),calc(-50% + var(--flight-drift,0px)));transition:left 1s ease;will-change:transform,top;filter:drop-shadow(0 13px 11px #08263045)}
.plane .airframe{position:relative;transform:rotate(var(--plane-pitch,-3deg));transform-origin:57% 58%;will-change:transform}
.plane .aircraft-model{width:100%;height:auto;animation:none;overflow:visible}
.flight[data-screen=menu] .airframe{animation:aircraft-idle 6s ease-in-out infinite}
.propeller-spin{animation:propeller-turn .14s linear infinite;transform-origin:0 0}
.propeller-disc{animation:propeller-glint .18s ease-in-out infinite alternate}
.slipstream{position:absolute;right:78%;top:55%;width:130px;height:30px;pointer-events:none;opacity:0;transition:opacity .35s}
.slipstream i{position:absolute;right:0;width:70px;height:1px;background:linear-gradient(90deg,transparent,#d9dfc897);animation:air-slip .7s linear infinite}
.slipstream i:nth-child(2){top:11px;width:110px;animation-delay:-.3s}.slipstream i:nth-child(3){top:23px;width:65px;animation-delay:-.5s}
[data-flight-motion=climbing] .slipstream{opacity:.8}
[data-flight-motion=descending] .slipstream{opacity:.22}
.climb-badge{position:absolute;left:43%;top:-9%;border:1px solid #e4c39750;border-radius:20px;background:#173b46dd;color:#f0c99b;padding:5px 10px;font:17px FlightType,monospace;white-space:nowrap;opacity:0;translate:0 7px;transition:opacity .25s,translate .4s;pointer-events:none}
.climb-badge.is-visible{opacity:1;translate:0 0}
.landscape{transform:translateY(var(--world-drop,0px));transition:opacity 1.4s}
.flight[data-screen=play] .plane{width:235px}
@media(min-width:1100px){.plane{width:315px}.flight[data-screen=play] .plane{width:285px}}
@media(max-width:700px){.plane{width:185px}.flight[data-screen=play] .plane{width:140px;left:60%;top:175px!important}.slipstream{width:80px}.slipstream i{width:50px}.slipstream i:nth-child(2){width:70px}.climb-badge{font-size:13px;padding:3px 7px;left:48%;top:-5%}}
@keyframes propeller-turn{to{transform:rotate(360deg)}}
@keyframes aircraft-idle{50%{translate:0 -4px}}
@keyframes propeller-glint{to{opacity:.16}}
@keyframes air-slip{from{transform:translateX(15px);opacity:0}30%{opacity:.8}to{transform:translateX(-60px);opacity:0}}
@media(prefers-reduced-motion:reduce){.plane,.plane *{animation:none!important;transition:none!important}.slipstream,.climb-badge{display:none}.plane{will-change:auto}.plane .airframe{will-change:auto}}

/* A moving altimeter tape, not a fixed 0–10,000 backdrop. */
.ruler{width:83px;padding-left:0;pointer-events:none;border-left-color:#e5e3cc35}
.ruler-window{position:absolute;inset:0;overflow:hidden;mask-image:linear-gradient(transparent,#000 6%,#000 94%,transparent)}
.ruler-track{position:absolute;inset:0;will-change:transform}
.ruler-tick{position:absolute;left:0;width:7px;height:0;border-top:1px solid #d9dfc34d}
.ruler-tick.major{width:11px;border-top-color:#dce2c47a}
.ruler .tick-label{position:absolute;left:16px;top:-7px;font:14px/1 FlightType,monospace;letter-spacing:.2px;white-space:nowrap;color:#d9dfc29e}
.ruler span:before{content:none}
.ruler .tick-label i{font:9px/1.5 FlightType,monospace;letter-spacing:1.1px;color:#ced8b977;margin-top:3px}
.ruler-tick.near-cursor .tick-label{opacity:0}
.ruler-cursor{position:absolute;left:-8px;display:flex;align-items:center;gap:4px;transform:translateY(-50%);padding:5px 6px 5px 3px;border:1px solid #d7ae765c;border-radius:3px;background:#173945f2;box-shadow:0 0 16px #e4a46a0a;color:#efd3a2;z-index:2}
.ruler-cursor svg{width:6px;height:10px;fill:#e2b582;flex:none}
.ruler .ruler-value{font:16px/1 FlightType,monospace;font-variant-numeric:tabular-nums;color:#efd3a2}
.ruler-cursor small{font:10px/1 FlightType,monospace;opacity:.55}
.altitude-guide{display:none;position:absolute;left:28px;height:1px;background:linear-gradient(90deg,#dbb38380,#dbb38318);pointer-events:none;opacity:.55}
.flight[data-screen=play] .altitude-guide{display:block}
@media(max-width:700px){.altitude-guide{display:none!important}}
@media(prefers-reduced-motion:reduce){.ruler-track{will-change:auto}}
