@import"https://fonts.googleapis.com/css2?family=DM+Sans:wght@500;600;700&family=Manrope:wght@700;800&display=swap";*{box-sizing:border-box}html,body,#app{margin:0;min-height:100%;background:#06111b;color:#f6fbff;font-family:DM Sans,sans-serif}body{display:grid;place-items:center;overflow-x:hidden}.shell{width:min(100vw,430px);min-height:100dvh;background:#0a1925;display:flex;flex-direction:column;position:relative;overflow:hidden}header{height:68px;padding:16px 18px 10px;flex:none;background:#081520;border-bottom:1px solid #19303f}.brand{font:800 13px/1 Manrope;letter-spacing:.13em;color:#ff8a3d}.brand span{color:#8fa6b5;margin-left:5px}.place{margin-top:7px;font-size:12px;color:#dce9ef}.scene{position:relative;flex:1;min-height:365px;overflow:hidden;background:#102331}.scene>img{width:100%;height:100%;position:absolute;object-fit:cover;object-position:center 42%;filter:saturate(.78) contrast(1.04)}.shade{position:absolute;inset:0;background:linear-gradient(180deg,#050e1640,#050e160d 55%,#050e16d1)}.scene svg{position:absolute;inset:0;width:100%;height:100%}.route{transition:opacity .48s ease,filter .3s}.route .bed{fill:none;stroke:#071019;stroke-width:18;stroke-linecap:round;stroke-linejoin:round;opacity:.86}.route .line{fill:none;stroke:var(--route);stroke-width:10;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:3 17;filter:drop-shadow(0 3px 2px rgba(0,0,0,.65));transition:stroke-dashoffset .55s,stroke-width .25s}.route.reachable .line{stroke-width:12;animation:pulse 1.25s infinite alternate;filter:drop-shadow(0 0 7px var(--route))}.route.cleared{opacity:0;pointer-events:none}.route.cleared .line{stroke-dashoffset:100}.route.waiting{opacity:.62}@keyframes pulse{to{filter:drop-shadow(0 0 12px var(--route)) brightness(1.25)}}.scene-top{position:absolute;top:14px;left:14px;right:14px;display:flex;justify-content:space-between;font:700 11px/1 Manrope;letter-spacing:.08em}.scene-top span{background:#05111ad4;border:1px solid rgba(255,255,255,.15);border-radius:20px;padding:8px 10px}.level{color:#ffab70}.instruction{position:absolute;bottom:14px;left:50%;transform:translate(-50%);white-space:nowrap;background:#06111be6;padding:9px 14px;border-radius:20px;font-size:12px;box-shadow:0 8px 25px #00000059}.dock{flex:none;min-height:237px;background:linear-gradient(#0b1c29,#07131d);padding:12px 12px max(12px,env(safe-area-inset-bottom));border-top:1px solid #203746}.waiting{height:48px;display:flex;align-items:center;justify-content:center;gap:8px}.wait-label{font:700 9px Manrope;letter-spacing:.12em;color:#6f8999;margin-right:4px}.slot{width:38px;height:38px;border:1px solid #355063;background:#102532;border-radius:10px;display:grid;place-items:center;font:800 13px Manrope;color:#07131d}.slot.filled{background:var(--route);box-shadow:0 0 14px color-mix(in srgb,var(--route) 60%,transparent)}.travellers{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.traveller{min-height:72px;border:1px solid #294354;border-radius:14px;background:#102633;color:#fff;display:grid;grid-template-columns:30px 1fr;grid-template-rows:1fr 1fr;align-items:center;text-align:left;padding:8px;gap:0 7px;cursor:pointer;position:relative;overflow:hidden}.traveller:before{content:"";position:absolute;inset:0 auto 0 0;width:3px;background:var(--route)}.traveller .badge{grid-row:1/3;width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:var(--route);color:#07131d;font:800 12px Manrope}.traveller>span:nth-child(2){font:700 11px Manrope}.traveller small{font-size:8px;letter-spacing:.09em;color:#77909f}.traveller:not(:disabled):active{transform:scale(.96)}.traveller:not(:disabled){box-shadow:0 5px 15px #0003}.traveller:not(:disabled) small{color:var(--route)}.traveller:disabled{opacity:.38}.traveller.waiting{opacity:.7}.result{position:absolute;inset:0;background:#050f17db;-webkit-backdrop-filter:blur(7px);backdrop-filter:blur(7px);display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:24px;z-index:5}.result .eyebrow{font:800 10px Manrope;letter-spacing:.18em;color:#24d6df}.result.loss .eyebrow{color:#ff8a3d}.result h1{font:800 27px Manrope;margin:9px 0 3px}.result p{margin:0 0 20px;color:#abc0cc;font-size:13px}.result button{min-width:154px;min-height:48px;border:0;border-radius:24px;background:#ff8a3d;color:#081520;font:800 13px Manrope;cursor:pointer}.win{background:linear-gradient(#050f172e,#050f17b8)}.win h1{text-shadow:0 3px 18px #000}@media(max-height:780px){header{height:60px;padding-top:12px}.scene{min-height:330px}.dock{min-height:220px;padding-top:8px}.traveller{min-height:65px}.waiting{height:43px}}@media(min-width:401px){.shell{box-shadow:0 0 80px #000}.scene{min-height:410px}}
