.lm{display:grid;gap:10px;width:100%;max-width:620px;margin:0 auto;font-family:"Be Vietnam Pro",Arial,sans-serif;color:#1d2350}.lm-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:6px 12px}.lm-title{margin:0;font:800 clamp(17px,2.4vw,21px)/1.25 "Be Vietnam Pro",Arial,sans-serif;color:#1d2350}.lm-stats{display:flex;gap:6px;margin:0}.lm-chip{padding:4px 12px;border-radius:999px;background:#f4efff;color:#4a2f9a;font:800 13px/1.4 "Be Vietnam Pro",Arial,sans-serif;font-variant-numeric:tabular-nums}.lm-chip-star{background:#fff6d6;color:#8a5a00}.lm-scroll{position:relative;height:min(62vh,600px);min-height:360px;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;border-radius:24px;border:3px solid #fff;box-shadow:0 0 0 1px #e6dcf7,0 18px 40px -26px rgba(60,30,120,.55);scroll-behavior:auto;outline:none}.lm-map{position:relative;width:100%;overflow:hidden}.lm-road{position:absolute;inset:0;width:100%;height:100%;display:block;pointer-events:none}.lm-lane{fill:none;stroke:rgba(255,255,240,.55);stroke-width:74;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke}.lm-ribbon{fill:none;stroke:#ff6fa8;stroke-width:16;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke}.lm-stripes{fill:none;stroke:#fff;stroke-width:16;stroke-dasharray:9 13;stroke-linejoin:round;vector-effect:non-scaling-stroke;opacity:.95}.lm-deco{position:absolute;display:block;pointer-events:none;z-index:0}.lm-deco svg{display:block;width:100%;height:auto;overflow:visible}.lm-castle{width:140px}.lm-banner{position:absolute;z-index:1;max-width:44%;padding:5px 14px;border-radius:12px;background:#fff;color:var(--lm-accent,#e8336f);font:800 13px/1.3 "Be Vietnam Pro",Arial,sans-serif;box-shadow:0 3px 0 var(--lm-accent,#e8336f),0 10px 18px -12px rgba(0,0,0,.45);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.lm-node{position:absolute;z-index:2;display:grid;place-items:center;width:58px;height:58px;margin:0;padding:0;border:0;border-radius:50%;transform:translate(-50%,-50%);cursor:pointer;background:radial-gradient(circle at 38% 30%,#ff9cc6 0 18%,#ff4f97 46%,#c8186a 100%);box-shadow:inset 0 -6px 0 rgba(0,0,0,.18),0 6px 0 #9e1253,0 12px 18px -8px rgba(120,10,60,.6)}.lm-num{color:#fff;font:900 21px/1 "Be Vietnam Pro",Arial,sans-serif;text-shadow:0 2px 0 rgba(120,10,60,.55);font-variant-numeric:tabular-nums}.lm-node[data-milestone=true]{background:radial-gradient(circle at 38% 30%,#fff1a8 0 18%,#ffbf2f 46%,#d98200 100%);box-shadow:inset 0 -6px 0 rgba(0,0,0,.15),0 6px 0 #a35f00,0 12px 18px -8px rgba(150,80,0,.6)}.lm-node[data-milestone=true] .lm-num{text-shadow:0 2px 0 rgba(140,70,0,.6)}.lm-stars{position:absolute;left:50%;top:calc(100% + 2px);display:flex;gap:1px;padding:1px 4px;border-radius:999px;background:rgba(255,255,255,.85);transform:translateX(-50%);pointer-events:none}.lm .lm-node .lm-stars svg{display:block;width:19px!important;height:19px!important;max-width:none!important;filter:drop-shadow(0 1px 0 rgba(0,0,0,.15))}.lm .lm-node .lm-stars svg:nth-child(2){margin-top:3px}.lm-current{width:70px;height:70px}.lm-current::before{content:"";position:absolute;inset:-9px;border-radius:50%;border:4px solid rgba(255,255,255,.95);box-shadow:0 0 0 4px rgba(255,111,168,.45),0 0 24px 6px rgba(255,220,120,.7)}.lm-current .lm-num{font-size:25px}.lm-open{background:radial-gradient(circle at 38% 30%,#ffffff 0 20%,#eef0f5 55%,#d6dae4 100%);box-shadow:inset 0 -5px 0 rgba(0,0,0,.08),0 5px 0 #bcc2cf}.lm-open .lm-num{color:#9aa1b2;text-shadow:none;font-size:18px}.lm-node:focus-visible{outline:4px solid #2f5fd0;outline-offset:6px}.lm-me{position:absolute;z-index:3;display:grid;place-items:center;width:46px;height:46px;margin:0;border:3px solid #fff;border-radius:14px;background:linear-gradient(160deg,#6fb8ff,#2f6fe0);color:#fff;font:900 13px/1 "Be Vietnam Pro",Arial,sans-serif;box-shadow:0 6px 14px -6px rgba(20,60,160,.8);transform:translate(48px,-78%);pointer-events:none}.lm-me[data-side=left]{transform:translate(-94px,-78%)}.lm-me::after{content:"";position:absolute;left:50%;bottom:-10px;width:12px;height:12px;border-radius:50%;background:#ff4d4d;box-shadow:0 2px 0 #b51d1d;transform:translateX(-50%)}.lm-bar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px 14px}.lm-note{flex:1 1 220px;margin:0;color:#4a4f73;font:600 14px/1.45 "Be Vietnam Pro",Arial,sans-serif}.lm-play{min-height:50px;padding:10px 26px;border:0;border-radius:999px;background:linear-gradient(180deg,#ff8a3d,#e8550f);color:#fff;font:900 17px/1.2 "Be Vietnam Pro",Arial,sans-serif;cursor:pointer;box-shadow:0 5px 0 #b33d06,0 14px 24px -12px rgba(232,85,15,.8)}.lm-play:focus-visible{outline:3px solid #2f5fd0;outline-offset:4px}@media(prefers-reduced-motion:no-preference){.lm-current::before{animation:lm-glow 2.4s ease-in-out infinite}@keyframes lm-glow{0%,100%{opacity:1}50%{opacity:.55}}}@media(max-width:480px){.lm-scroll{height:min(64vh,560px);border-radius:18px}.lm-node{width:52px;height:52px}.lm-current{width:62px;height:62px}.lm-me{width:40px;height:40px;transform:translate(40px,-78%)}.lm-me[data-side=left]{transform:translate(-80px,-78%)}.lm-play{width:100%}.lm-banner{font-size:12px}}.gl-result-stars{display:flex;justify-content:center;gap:4px;margin:6px 0 0}.gm-result .gl-result-stars svg{width:30px!important;height:30px!important}.lm-node:hover{filter:brightness(1.06)}.lm-open .lm-num{color:#c2306f}.lm-scroll{height:clamp(220px,calc(100vh - 330px),600px);min-height:0}@supports (height:100dvh){.lm-scroll{height:clamp(220px,calc(100dvh - 330px),600px)}}@media(max-width:480px){.lm{gap:8px}.lm-head{flex-wrap:nowrap}.lm .lm-title{display:none!important}.lm-head{justify-content:flex-start}.lm-chip{padding:3px 9px;font-size:12px;white-space:nowrap}.lm-scroll{height:clamp(220px,calc(100vh - 250px),560px)}@supports (height:100dvh){.lm-scroll{height:clamp(220px,calc(100dvh - 250px),560px)}}.lm-bar{gap:6px}.lm-note{flex-basis:100%;font-size:12.5px;line-height:1.35}.lm-play{min-height:46px;padding:8px 18px;font-size:16px}}.gm-result .gl-next-row{display:flex;justify-content:center;margin:10px 0 4px}.gm-result .gl-next{min-width:min(280px,100%);font-size:17px}.lm-locked{cursor:default;background:radial-gradient(circle at 38% 30%,#ffffff 0 20%,#eef0f5 55%,#d6dae4 100%);box-shadow:inset 0 -5px 0 rgba(0,0,0,.08),0 5px 0 #bcc2cf}.lm-locked .lm-num{color:#9aa1b2;text-shadow:none;font-size:18px}.lm-lock{position:absolute;right:-4px;bottom:-4px;width:22px;height:22px;padding:2px;border-radius:50%;background:#fff;box-shadow:0 2px 4px rgba(0,0,0,.18)}.lm .lm-node .lm-lock svg{display:block;width:100%!important;height:100%!important}.lm .lm-node,.lm .lm-node:hover,.lm .lm-node:active,.lm .lm-node:focus{transform:translate(-50%,-50%)!important;transition:filter .15s ease!important}.lm .lm-node:hover{filter:brightness(1.08) saturate(1.05)}.lm .lm-play,.lm .lm-play:hover,.lm .lm-play:active{transform:none!important;transition:filter .15s ease!important}.lm .lm-play:hover{filter:brightness(1.06)}
