:root{--ink:#2b2a4a;--muted:#6d6890;--panel:#ffffffe6;--accent:#5b45c9;--shadow:0 8px 24px #3c286e2e;color:var(--ink);font-family:Be Vietnam Pro,Segoe UI,system-ui,-apple-system,BlinkMacSystemFont,Roboto,Noto Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif}*{box-sizing:border-box}html,body{-webkit-user-select:none;user-select:none;background:#f3ecff;height:100%;margin:0;overflow:hidden}#app{position:fixed;top:0;bottom:0;left:0;right:0}#app canvas{outline:none;display:block}#hud{pointer-events:none;position:fixed;top:0;bottom:0;left:0;right:0}#hud>*{pointer-events:auto}#hud>.card:not(.show){visibility:hidden;pointer-events:none}.hud-top{top:max(12px, env(safe-area-inset-top));flex-direction:column;gap:8px;width:min(340px,100vw - 24px);display:flex;position:absolute;left:12px}.brand{background:var(--panel);box-shadow:var(--shadow);border-radius:999px;align-self:flex-start;align-items:center;gap:8px;padding:8px 14px;font-size:14px;display:inline-flex}.brand b{font-weight:800}.brand span:last-child{color:var(--muted)}.search{position:relative}.search input{background:var(--panel);width:100%;box-shadow:var(--shadow);font:inherit;color:var(--ink);-webkit-user-select:text;user-select:text;border:2px solid #0000;border-radius:14px;outline:none;padding:11px 14px;font-size:14px}.search input:focus{border-color:#c9b4ff}.results{background:var(--panel);box-shadow:var(--shadow);border-radius:14px;margin:6px 0 0;padding:0;list-style:none;overflow:hidden}.results:empty{display:none}.results li{cursor:pointer;align-items:center;gap:10px;padding:9px 12px;font-size:14px;display:flex}.results li:hover{background:#f4eeff}.results .name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.chip{text-align:center;min-width:40px;color:var(--ink);border-radius:8px;flex:none;padding:3px 8px;font-size:12px;font-weight:800}.chip.big{border-radius:10px;padding:6px 12px;font-size:16px}.hud-side{top:max(12px, env(safe-area-inset-top));flex-direction:column;align-items:flex-end;gap:8px;display:flex;position:absolute;right:12px}.minimap{box-shadow:var(--shadow);cursor:crosshair;border:3px solid #fff;border-radius:14px;display:block}.buttons{flex-wrap:wrap;justify-content:flex-end;gap:6px;max-width:calc(100vw - 24px);display:flex}.buttons button{background:var(--panel);box-shadow:var(--shadow);font:inherit;color:var(--ink);cursor:pointer;border:0;border-radius:999px;padding:8px 12px;font-size:13px;font-weight:700}.buttons button:hover{background:#fff}.buttons button.icon{padding:8px 11px;font-size:15px;line-height:1}.settings{background:var(--panel);width:250px;box-shadow:var(--shadow);border-radius:14px;padding:12px}.settings[hidden]{display:none}.settings-row{margin-bottom:10px}.seg{gap:4px;margin-top:4px;display:flex}.seg button{font:inherit;color:var(--ink);white-space:nowrap;cursor:pointer;background:#f1ebff;border:0;border-radius:10px;flex:1;padding:7px 4px;font-size:12px;font-weight:700}.seg button.active,.buttons button.active{background:var(--accent);color:#fff}.card{left:50%;bottom:max(20px, env(safe-area-inset-bottom));background:var(--panel);opacity:0;pointer-events:none;z-index:35;border-radius:18px;width:min(440px,100vw - 24px);padding:14px 16px;transition:opacity .2s,transform .2s;position:absolute;transform:translate(-50%,20px);box-shadow:0 12px 36px #2d1e5540}.card.show{opacity:1;pointer-events:auto;transform:translate(-50%)}.card-head{align-items:center;gap:12px;display:flex}.card-title{font-size:17px;font-weight:800;line-height:1.25}.card-sub{color:var(--muted);font-size:12px}.groups{flex-wrap:wrap;align-items:center;gap:6px;margin-top:10px;display:flex}.groups .card-sub{width:100%}.tag{background:#fff;background:color-mix(in srgb, var(--c) 30%, white);border:2px solid var(--c);border-radius:999px;padding:3px 10px;font-size:12px;font-weight:700}.help{left:12px;bottom:max(12px, env(safe-area-inset-bottom));background:var(--panel);box-shadow:var(--shadow);color:var(--muted);border-radius:14px;padding:10px 14px;font-size:12px;line-height:1.6;position:absolute}.help b{color:var(--ink)}.joystick{left:24px;bottom:max(28px, env(safe-area-inset-bottom));width:120px;height:120px;box-shadow:var(--shadow);touch-action:none;background:#ffffff8c;border:3px solid #ffffffe6;border-radius:50%;display:none;position:absolute}.joystick .knob{background:var(--accent);border-radius:50%;width:52px;height:52px;margin:-26px 0 0 -26px;position:absolute;top:50%;left:50%;box-shadow:0 4px 12px #5b45c973}@media (pointer:coarse){.joystick{display:block}.help{display:none}.card{bottom:170px}.buttons button{padding:7px 10px;font-size:12px}}@media (max-width:640px){.minimap{width:150px!important;height:auto!important}.brand span:last-child{display:none}.hud-top{width:calc(100vw - 190px)}}.start{padding:16px 16px max(28px, env(safe-area-inset-bottom));z-index:10;background:linear-gradient(#f3ecff00 40%,#f3ecffd9);justify-content:center;align-items:flex-end;transition:opacity .5s;display:flex;position:fixed;top:0;bottom:0;left:0;right:0}.start.hide{opacity:0;pointer-events:none}.start{box-sizing:border-box;padding:max(12px, env(safe-area-inset-top)) max(12px, env(safe-area-inset-right)) max(12px, env(safe-area-inset-bottom)) max(12px, env(safe-area-inset-left));overflow-y:auto}.start .start-card{box-sizing:border-box;max-height:calc(100dvh - 24px - env(safe-area-inset-top) - env(safe-area-inset-bottom));overscroll-behavior:contain;flex-shrink:0;overflow-y:auto}.start-card{width:min(420px,100%);box-shadow:var(--shadow);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);text-align:center;background:#ffffffeb;border-radius:22px;padding:20px 20px 16px}.start-brand{color:var(--muted);align-items:center;gap:8px;font-size:13px;font-weight:700;display:inline-flex}.start p{color:var(--muted);margin:0 0 14px;font-size:14px}.gender{justify-content:center;gap:10px;margin-bottom:14px;display:flex}.gender button{max-width:150px;font:inherit;color:var(--ink);cursor:pointer;background:#f4eeff;border:3px solid #0000;border-radius:16px;flex-direction:column;flex:1;align-items:center;gap:4px;padding:10px 8px 8px;font-weight:800;display:flex}.gender button svg{width:64px;height:64px}.gender button[aria-pressed=true]{border-color:var(--accent);background:#eeeaff}.gender button:disabled{cursor:default}#start-btn{background:var(--accent);width:100%;font:inherit;color:#fff;cursor:pointer;border:0;border-radius:14px;padding:13px 16px;font-size:16px;font-weight:800;box-shadow:0 6px 16px #5b45c959}#start-btn:disabled{box-shadow:none;cursor:default;background:#c9b8e8}.start.error #start-btn{background:#e25b5b}.progress{visibility:hidden;background:#eee6ff;border-radius:999px;height:6px;margin-top:10px;overflow:hidden}.start.loading .progress{visibility:visible}.progress>div{background:var(--accent);width:0;height:100%;transition:width .25s}.start-error{color:#b33b3b;margin:12px 0 0;font-size:13px;line-height:1.5}.notice{z-index:20;background:#f3ecffd9;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;top:0;bottom:0;left:0;right:0}.notice[hidden]{display:none}.notice-card{width:min(360px,100%);box-shadow:var(--shadow);text-align:center;background:#fff;border-radius:18px;padding:18px 20px}.notice-card p{color:var(--muted);font-size:14px}.notice-card button{background:var(--accent);font:inherit;color:#fff;cursor:pointer;border:0;border-radius:12px;padding:10px 22px;font-weight:800}button{touch-action:manipulation}.mobile-stand-pill{left:50%;bottom:max(24px, env(safe-area-inset-bottom));background:var(--panel);border:2px solid var(--accent);color:var(--ink);cursor:pointer;z-index:10;white-space:nowrap;border-radius:999px;align-items:center;gap:8px;padding:8px 16px;font-size:13px;font-weight:700;animation:none;display:flex;position:absolute;transform:translate(-50%);box-shadow:0 8px 24px #3c286e38}.mobile-stand-pill .pill-hint{color:var(--accent);background:#eeeaff;border-radius:999px;padding:2px 8px;font-size:11px;font-weight:800}.card-head{position:relative}.card-close{width:28px;height:28px;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:50%;justify-content:center;align-items:center;margin-left:auto;display:flex}.card-close:hover{color:var(--ink);background:#f0ebf8}.card-actions{border-top:1px solid #6d689026;flex-wrap:wrap;gap:8px;margin-top:14px;padding-top:12px;display:flex}.card-actions button{min-width:100px;font:inherit;cursor:pointer;border:0;border-radius:12px;flex:1;justify-content:center;align-items:center;gap:6px;padding:9px 12px;font-size:13px;font-weight:700;transition:transform .15s,opacity .15s;display:inline-flex}.card-actions button:active{transform:scale(.97)}.card-actions .act-nav{color:#fff;background:#00c0f0;box-shadow:0 4px 12px #00c0f059}.card-actions .act-nav:hover{background:#00b0dc}.card-actions .act-loc{color:var(--ink);background:#f1ebff}.card-actions .act-loc:hover{background:#e6ddff}.card-nav-box{background:#f0faff;border:1.5px solid #00c0f0;border-radius:14px;flex-direction:column;gap:8px;margin-top:12px;padding:11px 13px;display:flex}.card-nav-title{color:#0088b0;align-items:center;gap:6px;font-size:13px;font-weight:700;display:flex}.card-nav-origin{color:var(--muted);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:6px;font-size:12px;display:flex}.card-nav-origin b{color:var(--ink)}.card-nav-actions{flex-wrap:wrap;align-items:center;gap:6px;margin-top:2px;display:flex}.card-nav-actions button{min-width:90px;font:inherit;cursor:pointer;border:0;border-radius:10px;flex:1;justify-content:center;align-items:center;gap:5px;padding:8px 10px;font-size:12px;font-weight:700;transition:transform .15s,opacity .15s;display:inline-flex}.card-nav-actions .btn-view{color:var(--ink);background:#f0ebf8}.card-nav-actions .act-loc{color:#3b5bdb;background:#eef2ff}.act-stop-nav,.btn-stop-nav{color:#d90429!important;background:#e9e6ff!important;border:1px solid #c4bcf3!important;font-weight:700!important}.act-stop-nav:hover,.btn-stop-nav:hover{background:#d9d3fb!important}.nav-bottom-panel{bottom:max(20px, env(safe-area-inset-bottom));z-index:25;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#fffffff2;border:2px solid #00c0f0;border-radius:20px;flex-direction:column;gap:8px;width:min(480px,100vw - 24px);padding:12px 16px;display:flex;position:absolute;left:50%;transform:translate(-50%);box-shadow:0 10px 32px #2d1e5538}.nav-row-origin{color:var(--muted);border-bottom:1px dashed #6d689033;align-items:center;gap:8px;padding-bottom:8px;font-size:13px;display:flex}.nav-origin-pin{color:#00c0f0}.nav-origin-text{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.nav-origin-text b{color:var(--ink)}.btn-change-origin{color:#0088b0;cursor:pointer;white-space:nowrap;background:#eef9fd;border:1px solid #c2edfc;border-radius:999px;flex-shrink:0;align-items:center;gap:5px;margin-left:auto;padding:4px 10px;font-size:12px;font-weight:700;display:inline-flex}.btn-change-origin:hover{background:#dcf4fc}.nav-row-dest{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;display:flex}.nav-dest-info{color:var(--ink);align-items:center;gap:8px;font-size:14px;font-weight:700;display:flex}.nav-dest-icon{color:var(--accent)}.nav-dist{color:#08a;background:#e6f9fd;border-radius:8px;padding:3px 8px;font-size:12px;font-weight:800}.nav-dest-actions{align-items:center;gap:6px;margin-left:auto;display:flex}.nav-dest-actions button{font:inherit;cursor:pointer;white-space:nowrap;border:0;border-radius:999px;align-items:center;gap:4px;padding:6px 12px;font-size:12px;font-weight:700;display:inline-flex}.nav-dest-actions .btn-view{color:var(--ink);background:#f0ebf8}.nav-dest-actions .btn-tele{color:var(--accent);background:#eeeaff}.nav-dest-actions .btn-close{width:26px;height:26px;color:var(--muted);background:#eee;border-radius:50%;justify-content:center;align-items:center;padding:0;display:flex}.nav-dest-actions .btn-close:hover{color:var(--ink);background:#ddd}.location-modal{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:40;background:#1e143273;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;top:0;bottom:0;left:0;right:0}.location-modal[hidden]{display:none}.location-card{background:#fff;border-radius:20px;flex-direction:column;width:min(440px,100%);max-height:85vh;padding:20px;display:flex;box-shadow:0 16px 40px #28195040}.loc-header{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.loc-header h2{align-items:center;gap:6px;margin:0;font-size:18px;font-weight:800;display:inline-flex}.loc-search{width:100%;font:inherit;border:2px solid #e0d7f2;border-radius:12px;outline:none;margin:10px 0 12px;padding:10px 14px;font-size:14px}.loc-search:focus{border-color:var(--accent)}.loc-presets{flex-wrap:wrap;gap:8px;margin-bottom:12px;display:flex}.loc-presets button{font:inherit;color:var(--ink);cursor:pointer;background:#f8f6fc;border:1px solid #e0d7f2;border-radius:10px;align-items:center;gap:5px;padding:7px 11px;font-size:13px;font-weight:700;display:inline-flex}.loc-presets button:hover{background:#eee6fa;border-color:#c9b8e8}.loc-results{border:1px solid #eee;border-radius:12px;max-height:200px;margin:0;padding:0;list-style:none;overflow-y:auto}.loc-results li{cursor:pointer;border-bottom:1px solid #f6f4fa;align-items:center;gap:10px;padding:8px 12px;display:flex}.loc-results li:hover{background:#f4eeff}.loc-hint{color:var(--muted);align-items:center;gap:6px;margin:10px 0 0;font-size:12px;line-height:1.4;display:flex}.toast{top:max(20px, env(safe-area-inset-top));color:#fff;box-shadow:var(--shadow);z-index:100;pointer-events:none;opacity:0;background:#2b2a4a;border-radius:999px;align-items:center;gap:6px;padding:9px 18px;font-size:13px;font-weight:700;transition:opacity .25s,transform .25s;display:inline-flex;position:fixed;left:50%;transform:translate(-50%)}.toast.show{opacity:1;transform:translate(-50%,6px)}@media (pointer:coarse){.mobile-stand-pill,.nav-bottom-panel{bottom:155px}}@media (max-width:640px){.nav-bottom-panel{width:calc(100vw - 20px);padding:10px 12px}.btn-change-origin{padding:3px 8px;font-size:11px}}@media (orientation:landscape) and (max-height:520px){.hud-top{gap:4px;width:min(240px,32vw);top:8px;left:8px}.brand{padding:4px 8px;font-size:12px}.search input{padding:6px 10px;font-size:12px}.hud-side{gap:4px;top:8px;right:8px}.minimap{border-width:2px;width:100px!important;height:auto!important}.buttons{gap:4px}.buttons button{padding:5px 8px;font-size:11px}.buttons button.icon{padding:5px 7px}.joystick{width:86px;height:86px;bottom:12px;left:12px}.joystick .knob{width:38px;height:38px;margin:-19px 0 0 -19px}.card{width:min(380px,100vw - 120px);max-height:calc(100vh - 20px);padding:10px 14px;bottom:10px;left:50%;overflow-y:auto;transform:translate(-50%)}.mobile-stand-pill{padding:6px 12px;font-size:12px;bottom:12px}.nav-bottom-panel{gap:4px;width:min(440px,100vw - 120px);padding:8px 12px;bottom:10px}.nav-row-origin{padding-bottom:4px;font-size:12px}.nav-row-dest{gap:4px}}.map-launch{background:var(--panel);color:var(--ink);font:inherit;cursor:pointer;border:0;border-radius:14px;padding:0;overflow:hidden}.map-launch span{padding:6px;font-size:12px;font-weight:700;display:block}.map-modal{width:min(1100px,100vw - 24px);max-height:calc(100dvh - 24px);color:var(--ink);border:0;border-radius:20px;padding:16px}.map-modal::backdrop{background:#211b3c99}.map-close{min-height:44px;font:inherit;cursor:pointer;border:0;border-radius:12px;padding:8px 16px}.map-scroll{touch-action:pan-x pan-y;max-height:calc(100dvh - 160px);overflow:auto}.map-surface{width:100%;min-width:1000px;position:relative}.expanded-map{width:100%;height:100%}.map-stand{color:#24203c;cursor:pointer;background:#fffd;border:1px solid #55517466;border-radius:5px;min-width:28px;min-height:26px;padding:2px 4px;font:700 10px system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Noto Sans,Ubuntu,Cantarell,Helvetica Neue;position:absolute;transform:translate(-50%,-50%)}.map-stand:hover{z-index:2;outline:3px solid var(--accent)}.map-stand:focus-visible{z-index:2;outline:3px solid var(--accent)}.results{max-height:min(320px,45dvh);overflow-y:auto}.buttons button,.seg button,.card-close,.card-actions button,.card-nav-actions button,.nav-dest-actions button,.btn-change-origin{min-height:44px}.card-close{min-width:44px}@media (max-width:768px),(pointer:coarse){.hud-top{gap:6px;width:calc(100vw - 120px);top:8px;left:8px}.brand{padding:6px 10px;font-size:12px}.brand span:last-child{display:none}.search input{min-height:44px;padding:8px 10px;font-size:16px}.hud-side{gap:6px;top:8px;right:8px}.map-launch .minimap{width:96px!important;height:auto!important}.map-launch span{padding:4px;font-size:11px}.buttons{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;max-width:196px;display:grid}.buttons button{padding:6px 9px;font-size:12px}.settings{max-width:calc(100vw - 16px);max-height:calc(100dvh - 200px);overflow-y:auto}.joystick{left:max(16px,env(safe-area-inset-left));bottom:max(16px,env(safe-area-inset-bottom));width:104px;height:104px;display:block}.joystick .knob{width:44px;height:44px;margin:-22px 0 0 -22px}.help{display:none}.card,.nav-bottom-panel{max-height:calc(100dvh - 260px);bottom:132px;overflow-y:auto}.mobile-stand-pill{white-space:normal;max-width:calc(100vw - 24px);animation:none;bottom:132px}}@media (orientation:landscape) and (max-height:520px){.hud-top{width:min(300px,100vw - 300px)}.hud-side{flex-direction:row;align-items:flex-start}.buttons{max-width:180px}.settings{max-height:calc(100dvh - 116px);position:absolute;top:100px;right:0}.card,.nav-bottom-panel{width:min(380px,100vw - 156px);max-height:calc(100dvh - 116px);bottom:8px;left:auto;right:8px;transform:none}.card.show{transform:none}.mobile-stand-pill{max-width:calc(100vw - 156px);bottom:12px;left:auto;right:8px;transform:none}}.map-modal{color:#edf3f6;background:#17232b;width:min(1200px,100vw - 24px);height:min(860px,100dvh - 24px);max-height:none;padding:16px;overflow:hidden}.map-modal[open]{flex-direction:column;gap:8px;display:flex}.map-modal .loc-header{flex:none;margin:0}.map-hint{color:#b5c4cd;flex:none;margin:0;font-size:12px}.map-scroll{touch-action:none;background-color:#24343d;background-image:linear-gradient(#ffffff0a 1px,#0000 1px),linear-gradient(90deg,#ffffff0a 1px,#0000 1px);background-size:48px 48px;border:1px solid #617782;border-radius:8px;flex:1;min-height:0;max-height:none;position:relative;overflow:hidden}.map-surface{transform-origin:0 0;min-width:0;position:absolute;top:0;left:0}.expanded-map{width:100%;height:100%;display:block}.map-stand{color:#0000;white-space:nowrap;background:0 0;border:1px solid #25354444;border-radius:1px;min-width:0;min-height:0;padding:0;font:700 10px system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Noto Sans,Ubuntu,Cantarell,Helvetica Neue;overflow:hidden;transform:none}.map-stand.label-visible{color:#17232b;background:#fff5}.map-stand.selected{z-index:2;color:#17232b;background:#f6c94c99;outline:2px solid #ffe082}.map-tools{z-index:3;gap:6px;display:flex;position:absolute;bottom:10px;right:10px}.map-tools button,.map-navigate{color:#fff;cursor:pointer;background:#17232bee;border:1px solid #7b8b93;border-radius:6px;min-width:44px;min-height:44px;padding:8px 12px;font:700 13px system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Noto Sans,Ubuntu,Cantarell,Helvetica Neue}.map-compass{color:#fff;text-shadow:0 1px 3px #000;pointer-events:none;font-weight:800;position:absolute;top:10px;right:12px}.map-selection{flex:none;justify-content:space-between;align-items:center;gap:12px;min-height:44px;font-size:13px;display:flex}.map-selection span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.map-navigate{color:#17232b;background:#f6c94c;border:0;flex:none}.map-navigate:disabled{color:#889ca8;cursor:default;background:#34434d}@media (max-width:768px),(max-height:520px){.map-modal{width:100vw;max-width:none;height:100dvh;max-height:none;padding:max(8px,env(safe-area-inset-top)) max(8px,env(safe-area-inset-right)) max(8px,env(safe-area-inset-bottom)) max(8px,env(safe-area-inset-left));border-radius:0;gap:6px;margin:0}.map-modal .loc-header h2{font-size:15px}.map-hint{font-size:11px}}.map-modal{color:#233746;background:#f5f8fb}.map-modal .map-close{color:#233746;background:#e3ebf1}.map-hint{color:#596f7e}.map-scroll{background-color:#e8f0f4;background-image:linear-gradient(#718c9e18 1px,#0000 1px),linear-gradient(90deg,#718c9e18 1px,#0000 1px);border-color:#b7cbd7}.map-tools button{color:#233746;background:#fffffff2;border-color:#b7cbd7;box-shadow:0 2px 8px #23374614}.map-compass{color:#233746;text-shadow:0 1px 2px #fff}.map-navigate:disabled{color:#758995;background:#e0e8ee}.buttons button{justify-content:center;align-items:center;gap:6px;display:inline-flex}@media (max-width:768px),(pointer:coarse){.buttons .button-label{display:none}.buttons{grid-template-columns:repeat(2,44px);max-width:94px}.buttons button,.buttons button.icon{gap:0;width:44px;height:44px;padding:0}.buttons button svg{width:20px;height:20px}}.hud-top{z-index:12;width:min(420px,100vw - 130px)}.search-map-bar{align-items:center;gap:8px;min-width:0;display:flex}.search-map-bar .search{flex:1;min-width:0}.search-map-bar .map-launch{border-radius:10px;flex:none;width:76px;min-height:44px}.search-map-bar .map-launch .minimap{border-width:2px;border-radius:8px;width:76px!important;height:auto!important}.search-map-bar .map-launch span{padding:3px;font-size:10px}.search-map-bar .results{border-radius:10px;max-height:min(220px,35dvh);margin-top:5px;position:absolute;top:100%;left:0;right:0;overflow-y:auto}.search-map-bar .results li{gap:6px;min-height:44px;padding:6px 8px;font-size:12px}.search-map-bar .results .chip{text-overflow:ellipsis;min-width:32px;max-width:72px;padding:3px 5px;font-size:10px;overflow:hidden}.search-map-bar .results .name{min-width:0}@media (max-width:768px),(pointer:coarse){.hud-top{width:calc(100vw - 116px)}.search-map-bar{gap:6px}.search-map-bar .map-launch{width:56px}.search-map-bar .map-launch .minimap{width:56px!important}.search-map-bar .map-launch span{font-size:9px}.search-map-bar .results{max-height:min(176px,32dvh)}.search-map-bar .search input{padding:8px}}@media (orientation:landscape) and (max-height:520px){.hud-top{width:min(380px,100vw - 120px)}.search-map-bar .results{max-height:132px}}.location-card{gap:4px;max-height:calc(100dvh - 24px);padding:14px;overflow-y:auto}.loc-header h2{font-size:16px}.loc-presets{gap:5px;margin-bottom:4px}.loc-presets button{border-radius:8px;min-height:32px;padding:5px 8px;font-size:11px}.loc-presets button svg{width:13px;height:13px}.loc-search{flex:none;margin:6px 0;padding:8px 10px;font-size:16px}.loc-results{flex-shrink:0;max-height:min(176px,30dvh)}.loc-results li{gap:6px;min-height:44px;padding:5px 8px;font-size:12px}.loc-results .name{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.loc-results .chip{min-width:32px;padding:3px 5px;font-size:10px}.loc-results .loc-empty{color:var(--muted);cursor:default}.location-card .card-close{width:32px;min-width:32px;height:32px;min-height:32px}@media (max-width:768px),(pointer:coarse){.buttons{grid-template-columns:repeat(2,36px);max-width:78px}.buttons button,.buttons button.icon{width:36px;height:36px;min-height:36px}.buttons button svg{width:17px;height:17px}.location-modal{padding:8px;padding-top:max(12px,env(safe-area-inset-top));align-items:flex-start}}.hud-top{width:min(340px,100vw - 130px)}.hud-side .map-launch{width:96px}.hud-side .map-launch .minimap{width:96px!important;height:auto!important}.act-begin{color:#fff;background:#007de3;font-weight:800}@media (max-width:768px),(pointer:coarse){.card{max-height:calc(100dvh - 220px);padding:9px 11px;bottom:126px}.card-head{gap:7px}.card-title{font-size:14px}.chip.big{padding:4px 7px;font-size:13px}.card-sub{font-size:10px}.groups{gap:3px;margin-top:5px}.tag{border-width:1px;padding:2px 6px;font-size:10px}.card-nav-box{gap:5px;margin-top:6px;padding:7px}.card-nav-title{gap:4px;font-size:11px}.card-nav-origin{gap:4px;font-size:10px}.card-nav-actions{flex-wrap:nowrap;gap:4px}.card-nav-actions button{min-width:0;min-height:32px;padding:5px 6px;font-size:10px}.card-nav-actions .act-begin{flex:1.2}.btn-change-origin{min-height:28px;padding:4px 6px;font-size:10px}.card-close{min-width:28px;min-height:28px}.nav-bottom-panel{gap:4px;padding:7px 9px}.nav-row-origin{padding-bottom:4px;font-size:10px}.nav-dest-info{font-size:12px}.nav-dest-actions button{min-height:30px;padding:5px 8px;font-size:10px}}@media (orientation:landscape) and (max-height:520px){.hud-side{flex-direction:column;align-items:flex-end}.hud-side .map-launch{width:72px}.hud-side .map-launch .minimap{width:72px!important}.hud-side .map-launch span{display:none}.card{width:min(330px,100vw - 200px);max-height:calc(100dvh - 16px);top:8px;bottom:auto;right:94px}.nav-bottom-panel{width:min(330px,100vw - 200px);right:94px}.card,.nav-bottom-panel{top:auto;bottom:max(10px,env(safe-area-inset-bottom));width:min(330px,100vw - 240px);max-height:calc(100dvh - 24px);left:calc(50% + 18px);right:auto;transform:translate(-50%)}.card.show{transform:translate(-50%)}}.rotate-hint{left:50%;bottom:max(10px,env(safe-area-inset-bottom));z-index:45;color:#233746;cursor:pointer;background:#fffffff2;border:1px solid #b7cbd7;border-radius:12px;max-width:calc(100vw - 24px);padding:8px 12px;font:600 11px system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Noto Sans,Ubuntu,Cantarell,Helvetica Neue;position:fixed;transform:translate(-50%)}.rotate-hint[hidden]{display:none}.map-surface{will-change:transform}.map-modal{gap:6px;padding:10px}.map-modal .loc-header h2{font-size:14px}.map-modal .map-close{min-height:32px;padding:5px 10px;font-size:12px}.map-selection{min-height:36px}.map-navigate{min-height:36px;padding:6px 10px;font-size:12px}.poster-modal{color:#233746;background:#f5f8fb;border:0;border-radius:14px;width:min(760px,100vw - 16px);max-height:calc(100dvh - 16px);padding:10px;overflow:auto}.poster-header{justify-content:space-between;align-items:center;gap:12px;margin-bottom:8px;font-size:12px;display:flex}.poster-header button{color:#233746;cursor:pointer;background:#e3ebf1;border:0;border-radius:8px;flex:none;padding:8px 12px}.poster-header strong{flex:1;min-width:0}.poster-counter{color:#5b7385;flex:none;font-weight:700}.poster-header button{justify-content:center;align-items:center;min-width:36px;min-height:36px;padding:6px;display:inline-flex}.poster-modal{display:none}.poster-modal[open]{flex-direction:column;width:min(960px,100vw - 16px);height:calc(100dvh - 16px);display:flex;overflow:hidden}.poster-stage{touch-action:none;-webkit-user-select:none;user-select:none;background:#e8f0f4;border-radius:10px;flex:1;min-height:0;position:relative;overflow:hidden}.poster-stage img{object-fit:contain;transform-origin:50%;will-change:transform;max-width:100%;max-height:100%;margin:auto;position:absolute;top:0;bottom:0;left:0;right:0}.poster-stage button{color:#233746;cursor:pointer;background:#fffffff2;border:1px solid #b7cbd7;border-radius:50%;justify-content:center;align-items:center;width:44px;height:44px;display:inline-flex;box-shadow:0 2px 8px #23374622}.poster-stage button:disabled{opacity:.4;cursor:default}.poster-stage button[hidden]{display:none}.poster-nav{z-index:2;position:absolute;top:50%;transform:translateY(-50%)}.poster-nav.prev{left:8px}.poster-nav.next{right:8px}.poster-zoom{z-index:2;gap:6px;display:flex;position:absolute;bottom:8px;right:8px}.poster-nearby[hidden]{display:none}.poster-inspection .card-actions{margin-top:6px;padding-top:6px}.poster-inspection .card-actions button{min-width:0;padding:6px 8px;font-size:11px}.site-logo{object-fit:contain;width:100px;height:auto;display:block}.start-brand .site-logo{width:108px;height:auto;max-height:44px}@media (max-width:768px),(pointer:coarse){.brand .site-logo{width:72px}}.start .event-description{margin:6px 0 10px;font-size:11px;line-height:1.5}.start-brand{gap:10px;margin-bottom:8px}.poster-modal{--pv-navy:#0a0a2e;--pv-navy-2:#15124a;--pv-violet:#4b3a9c;--pv-gold:#e6d28f;--pv-peri:#8fa4e8;background:var(--pv-navy);color:#f2eefc;border:1px solid #3a2f7a;box-shadow:0 12px 40px #000a}.poster-modal::backdrop{background:#05051acc}.poster-header strong{color:var(--pv-gold);letter-spacing:.2px}.poster-counter{color:var(--pv-peri)}.poster-stage{background:radial-gradient(circle at 50% 45%, var(--pv-violet) 0%, var(--pv-navy-2) 45%, var(--pv-navy) 100%);border:1px solid #2c2569}.poster-modal button{border:1px solid var(--pv-peri);color:var(--pv-gold);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#15124acc;transition:background .15s,color .15s,border-color .15s,transform .15s}.poster-header button,.poster-stage button{box-shadow:0 2px 10px #0008}.poster-modal button:hover:not(:disabled){background:var(--pv-gold);color:var(--pv-navy);border-color:var(--pv-gold)}.poster-modal button:focus-visible{outline:2px solid var(--pv-gold);outline-offset:2px}.poster-modal button:active:not(:disabled){transform:scale(.94)}.poster-modal button:disabled{color:#8fa4e866;border-color:#8fa4e833}.poster-nav.prev:active:not(:disabled),.poster-nav.next:active:not(:disabled){transform:translateY(-50%)scale(.94)}.booth-details{margin:12px 0}.booth-details p{margin:0 0 8px;font-size:13px}.booth-sample-preview{color:#233746;cursor:pointer;background:#f6f9fc;border:1px solid #c6d7e3;border-radius:12px;width:100%;padding:8px}.booth-sample-preview img{object-fit:contain;border-radius:8px;width:100%;height:160px;display:block}.booth-sample-preview span{padding-top:6px;font-size:12px;display:block}.booth-info-link{color:#2456a6;text-align:center;background:#e8f1ff;border-radius:10px;margin-top:10px;padding:10px 12px;font-size:13px;font-weight:600;text-decoration:none;display:block}.booth-info-link:hover{background:#d7e7ff}.booth-info-link:focus-visible{outline-offset:2px;outline:2px solid #2456a6}.booth-details{gap:8px;margin:10px 0;display:flex}.booth-details .booth-info-link{cursor:pointer;border:0;flex:1;margin:0;font:600 13px inherit}.sample-download{color:#e6d28f;white-space:nowrap;border:1px solid #8fa4e8;border-radius:8px;padding:8px 12px;font-size:13px;text-decoration:none}.sample-download:focus-visible{outline-offset:2px;outline:2px solid #e6d28f}@media (max-height:520px){.start .start-card{border-radius:16px;width:min(360px,100%);padding:12px 14px 10px}.start .start-brand{gap:8px;margin-bottom:4px;font-size:11px}.start .start-brand .site-logo{width:88px;max-height:34px}.start .event-description{margin:4px 0 6px;font-size:10px;line-height:1.35}.start p{margin-bottom:8px;font-size:12px;line-height:1.35}.start .gender{gap:8px;margin-bottom:8px}.start .gender button{border-width:2px;border-radius:11px;gap:2px;max-width:112px;padding:5px 6px;font-size:12px}.start .gender button svg{width:40px;height:40px}.start #start-btn{border-radius:10px;min-height:36px;padding:9px 12px;font-size:13px}.start .progress{height:4px;margin-top:6px}}
