.bus-jakarta{color:#f0f7ee;-webkit-user-select:none;user-select:none;touch-action:none;background:#132e35;font-family:Arial,sans-serif;position:fixed;inset:0;overflow:hidden}.bus-jakarta__world{position:absolute;inset:0}.bus-jakarta__world canvas{display:block}.bus-jakarta button,.bus-jakarta a{touch-action:manipulation}.bus-jakarta button{cursor:pointer;color:inherit;background:#153b42dd;border:1px solid #ffffff25;border-radius:14px;padding:12px 18px;font-weight:700}:is(.bus-jakarta button:focus-visible,.bus-jakarta a:focus-visible){outline-offset:3px;outline:3px solid #ffce76}.bus-jakarta__top{align-items:center;gap:14px;display:flex;position:absolute;inset:20px 24px auto}.bus-jakarta__top>a{color:#fff;background:#153b42dd;border-radius:50%;place-items:center;width:44px;height:44px;font-size:24px;text-decoration:none;display:grid}.bus-jakarta__top>div{text-shadow:0 2px 12px #173a3a;flex:1}.bus-jakarta small{letter-spacing:.14em;font-size:10px;font-weight:700}.bus-jakarta h1{margin:3px 0;font-size:24px}.bus-jakarta__mission{background:#113139ed;border-radius:18px;width:260px;padding:18px;position:absolute;top:105px;left:24px;box-shadow:0 12px 35px #16323b22}.bus-jakarta__mission>small{color:#7ce1ba}.bus-jakarta__mission>strong{margin-top:7px;font-size:25px;display:block}.bus-jakarta__mission p{color:#c5d8d4;font-size:13px;line-height:1.5}.bus-jakarta__mission>span{color:#ffce76;font-size:12px}.bus-jakarta__mission progress{accent-color:#79e9b9;width:100%}.bus-jakarta__map{background:#102c31ed;border-radius:18px;width:184px;position:absolute;top:105px;right:24px;overflow:hidden;box-shadow:0 12px 35px #16323b22}.bus-jakarta__map canvas{width:100%;display:block}.bus-jakarta__map>small{text-align:center;letter-spacing:0;color:#bad0c9;padding:6px;font-size:8px;display:block}.bus-jakarta__speed{text-align:center;background:#113139e8;border-radius:20px;min-width:130px;padding:12px 30px;position:absolute;bottom:110px;left:50%;transform:translate(-50%)}.bus-jakarta__speed strong{font-variant-numeric:tabular-nums;font-size:42px}.bus-jakarta__speed small{letter-spacing:0;margin-left:6px;font-size:12px}.bus-jakarta__speed>span{color:#bfd2cb;font-size:11px;display:block}.bus-jakarta__controls{justify-content:space-between;align-items:end;gap:12px;display:flex;position:absolute;inset:auto 24px 24px}.bus-jakarta__controls>div{gap:10px;display:flex}.bus-jakarta__controls>div button{background:#113139eb;width:76px;height:64px;font-size:22px}.bus-jakarta__controls .bus-gas{color:#173d36;background:#d2edb9}.bus-jakarta__controls .bus-brake{font-size:14px}.bus-jakarta__controls .is-open{color:#8cf0c2}.bus-jakarta__overlay{-webkit-backdrop-filter:blur(7px);backdrop-filter:blur(7px);touch-action:pan-y;background:#0b252e9e;place-items:center;padding:24px;display:grid;position:absolute;inset:0;overflow:auto}.bus-jakarta__overlay section{box-sizing:border-box;background:#12353ded;border:1px solid #ffffff24;border-radius:26px;width:min(520px,100%);padding:36px;box-shadow:0 25px 90px #0005}.bus-jakarta__overlay section>span{color:#8ee2bf;letter-spacing:.18em;font-size:11px;font-weight:700}.bus-jakarta__overlay h2{margin:16px 0;font-size:38px;line-height:1.06}.bus-jakarta__overlay p{color:#c7dad5;font-size:14px;line-height:1.65}.bus-jakarta__legend{color:#f2d8a7;grid-template-columns:1fr 1fr;gap:10px;margin:24px 0;font-size:12px;display:grid}.bus-jakarta__overlay .bus-jakarta__note{color:#9dbbb6;font-size:11px}.bus-jakarta__overlay section>button{color:#163c34;background:#cfedb5;width:100%;margin-top:12px;padding:17px}.bus-jakarta__overlay section>a{text-align:center;color:#c9dbd4;margin-top:18px;font-size:12px;display:block}@media (max-width:700px){.bus-jakarta__top{gap:8px;inset:12px 12px auto}.bus-jakarta h1{font-size:19px}.bus-jakarta__top button{padding:10px;font-size:11px}.bus-jakarta__mission{width:190px;padding:12px;top:82px;left:12px}.bus-jakarta__mission>strong{font-size:20px}.bus-jakarta__mission p{margin:8px 0;font-size:11px}.bus-jakarta__map{width:110px;top:82px;right:12px}.bus-jakarta__controls{gap:6px;inset:auto 12px 16px}.bus-jakarta__controls>div{gap:6px}.bus-jakarta__controls>div button{width:53px;height:56px}.bus-jakarta__controls>button{padding:10px;font-size:10px}.bus-jakarta__speed{padding:8px 16px;bottom:94px}.bus-jakarta__speed strong{font-size:30px}.bus-jakarta__overlay section{padding:24px}.bus-jakarta__overlay h2{font-size:30px}}@media (max-height:520px){.bus-jakarta__mission{top:75px}.bus-jakarta__mission p{margin:5px 0}.bus-jakarta__map{width:100px;top:75px}.bus-jakarta__speed{bottom:18px}.bus-jakarta__overlay{padding:12px}.bus-jakarta__overlay section{width:580px;padding:18px}.bus-jakarta__overlay h2{margin:8px 0;font-size:26px}.bus-jakarta__overlay p{margin:6px 0}.bus-jakarta__legend{margin:10px 0}}.bus-jakarta .bus-jakarta__map--expanded{z-index:5;width:min(460px,100vw - 24px,92dvh - 147.2px);box-shadow:0 18px 80px #051d28aa}.bus-jakarta .bus-jakarta__map--expanded>small{padding:10px;font-size:10px}
