/* Maršrutų žemėlapis: interactive route map that replaced the video reel */
.rmap{padding:120px var(--pad) 20px}
.rmap-head{display:grid;grid-template-columns:1.2fr 1fr;gap:40px;align-items:end;margin-bottom:34px}
.rmap-head h2{font-weight:900;font-size:clamp(40px,6vw,100px);line-height:.92;letter-spacing:-.045em}
.rmap-head p{font-size:20px;line-height:1.55}
.rboard{background:var(--board);border-radius:10px;color:var(--flapt);display:grid;grid-template-columns:1.65fr 1fr;overflow:hidden;box-shadow:0 50px 90px -40px rgba(0,0,0,.6)}
.rmapbox{position:relative;border-right:1px solid #2a2a2a;min-width:0}
.rmapbox svg{display:block;width:100%;height:auto;touch-action:manipulation}
.rbar{display:flex;justify-content:space-between;gap:12px;padding:16px 22px;font-weight:600;font-size:13px;color:#8f8f88;border-bottom:1px solid #2a2a2a;letter-spacing:.03em}
.rbar b{color:var(--flapt)}

/* svg layers */
.r-grid line{stroke:#1e1e1e;stroke-width:1}
.r-ring{fill:none;stroke:#262626;stroke-width:1;stroke-dasharray:3 7}
.r-sweep{fill:url(#rsw);animation:rsweep 7s linear infinite;transform-origin:0 0}
@keyframes rsweep{to{transform:rotate(360deg)}}
.r-dot{fill:#2c2c2c}
.r-route{fill:none;stroke:#3a3a36;stroke-width:1.6;stroke-dasharray:var(--len);stroke-dashoffset:var(--len);transition:stroke-dashoffset 1.6s cubic-bezier(.7,0,.2,1),stroke .35s,stroke-width .35s,opacity .35s}
.rmap.in .r-route{stroke-dashoffset:0}
.r-route.on{stroke:var(--yellow);stroke-width:2.6}
.rmapbox.focus .r-route:not(.on){opacity:.35}
.r-trail{fill:none;stroke:#fff;stroke-width:2.2;stroke-linecap:round;opacity:.55;pointer-events:none}
.r-plane{fill:var(--flapt);pointer-events:none}
.r-plane.hot{fill:var(--yellow)}
.r-hub circle.c{fill:var(--yellow);stroke:var(--board);stroke-width:3}
.r-hub circle.h{fill:none;stroke:var(--yellow);stroke-width:1.5;animation:rhub 2.6s ease-out infinite;transform-origin:0 0}
@keyframes rhub{from{transform:scale(.6);opacity:.9}to{transform:scale(3.4);opacity:0}}
.r-hub text{fill:var(--yellow);font:900 30px 'Big Shoulders Display';letter-spacing:.02em}
.r-hub text.s{fill:#8f8f88;font:700 14px 'Schibsted Grotesk';letter-spacing:.06em}
.r-apt{cursor:pointer;outline:none}
.r-apt circle.c{fill:var(--board);stroke:var(--flapt);stroke-width:2.5;transition:fill .3s,stroke .3s,r .3s}
.r-apt circle.hit{fill:transparent}
.r-apt text{paint-order:stroke;stroke:#121212;stroke-width:7px;stroke-linejoin:round;fill:var(--flapt);font:800 26px 'Big Shoulders Display';letter-spacing:.06em;transition:fill .3s}
.r-apt text.n{font:700 13px 'Schibsted Grotesk';letter-spacing:.04em;fill:#8f8f88}
.r-apt:hover circle.c,.r-apt.on circle.c,.r-apt:focus-visible circle.c{fill:var(--yellow);stroke:var(--yellow)}
.r-apt.on text:not(.n),.r-apt:hover text:not(.n){fill:var(--yellow)}
.r-apt.on text.n{fill:var(--flapt)}
.r-ping{fill:none;stroke:var(--yellow);stroke-width:2;pointer-events:none;animation:rping 1.2s ease-out forwards;transform-box:fill-box;transform-origin:center}
@keyframes rping{from{transform:scale(.3);opacity:1}to{transform:scale(3.2);opacity:0}}

/* control tower log */
.rlog{border-top:1px solid #2a2a2a;padding:14px 22px 16px;font:600 13px/1.65 'Schibsted Grotesk';color:#8f8f88;height:118px;overflow:hidden;display:flex;flex-direction:column;justify-content:flex-end}
.rlog div{display:flex;gap:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;animation:rlog .5s cubic-bezier(.2,1,.3,1)}
.rlog div b{color:var(--yellow);font-weight:700;flex:none}
.rlog div:last-child{color:var(--flapt)}
@keyframes rlog{from{transform:translateY(100%);opacity:0}}

/* flight panel */
.rpanel{padding:22px;display:flex;flex-direction:column;gap:18px;min-width:0}
.rpanel small{font-weight:700;font-size:12px;letter-spacing:.08em;color:#8f8f88;display:flex;justify-content:space-between}
.rpanel small b{color:var(--green)}
.rflaps{display:flex;flex-direction:column;gap:6px}
.rpanel .lbl{font-weight:700;font-size:11px;letter-spacing:.08em;color:#6f6f68;margin-top:6px}
.rpanel ul{list-style:none;display:flex;flex-direction:column;gap:0;border-top:1px solid #2a2a2a}
.rpanel li{display:flex;gap:12px;padding:10px 0;border-bottom:1px solid #2a2a2a;font-size:16px;line-height:1.35;opacity:0;transform:translateX(14px);transition:opacity .45s,transform .45s cubic-bezier(.2,1,.3,1)}
.rpanel li.in{opacity:1;transform:none}
.rpanel li i{font-style:normal;color:var(--yellow);font-family:'Big Shoulders Display';font-weight:800;font-size:17px;flex:none;width:22px}
.rpanel .cta{margin-top:auto;justify-content:space-between;font-size:16px;padding:15px 20px}
.rtabs{display:none}

/* auto-cycle progress on the active airport */
.rprog{height:3px;background:#2a2a2a;position:relative;overflow:hidden}
.rprog i{position:absolute;inset:0;background:var(--yellow);transform-origin:0 50%;transform:scaleX(var(--p,0))}

@media (max-width:900px){
 .rmap{padding:80px 14px 10px}
 .rmap-head{grid-template-columns:1fr;gap:16px}.rmap-head p{font-size:17px}
 .rboard{grid-template-columns:1fr}
 .rmapbox{border-right:0;border-bottom:1px solid #2a2a2a}
 .rbar{padding:12px 14px;font-size:11px}.rbar span:nth-child(2){display:none}
 .r-apt text.n{display:none}
 .r-apt text{font-size:40px}.r-hub text{font-size:40px}.r-hub text.s{font-size:20px}.r-apt circle.c{r:13px}
 .rlog{height:84px;padding:10px 14px;font-size:12px}
 .rtabs{display:flex;gap:6px;overflow-x:auto;padding:12px 14px 2px;scrollbar-width:none}
 .rtabs::-webkit-scrollbar{display:none}
 .rtabs button{flex:none;font:800 17px 'Big Shoulders Display';letter-spacing:.06em;color:var(--flapt);background:#202020;padding:8px 12px;border-radius:4px}
 .rtabs button.on{background:var(--yellow);color:var(--ink)}
 .rpanel{padding:16px 14px 18px}
 .rpanel li{font-size:15px}
}
@media (prefers-reduced-motion:reduce){.r-sweep,.r-hub circle.h{animation:none}.r-route{transition:none;stroke-dashoffset:0}}
