:root{--bg0: #0f1410;--bg1: #1a241c;--ink: #f2efe6;--muted: #a8b5a4;--accent: #e8ff4d;--accent-ink: #1a2208;--danger: #ff6b4a;--line: rgba(242, 239, 230, .12);--panel: rgba(15, 20, 16, .82);--font: "Manrope", system-ui, sans-serif;--mono: "IBM Plex Mono", ui-monospace, monospace}*{box-sizing:border-box}html,body,#root{margin:0;min-height:100%;height:100%;background:radial-gradient(120% 80% at 10% -10%,#2a3d28 0%,transparent 55%),radial-gradient(90% 60% at 100% 0%,#3a2a14 0%,transparent 45%),var(--bg0);color:var(--ink);font-family:var(--font)}body{overscroll-behavior:none}button{font:inherit;border:0;cursor:pointer}.app{min-height:100%;height:100%;display:flex;flex-direction:column}.screen{flex:1;display:flex;flex-direction:column;min-height:0;height:100%;max-height:100dvh}.hero{padding:28px 20px 20px;display:flex;flex-direction:column;gap:14px;justify-content:flex-end;min-height:100%;background:linear-gradient(180deg,transparent 0%,rgba(15,20,16,.35) 40%,rgba(15,20,16,.92) 100%),url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160' viewBox='0 0 160 160'%3E%3Cpath fill='%23ffffff08' d='M0 80h160M80 0v160'/%3E%3C/svg%3E")}.brand{font-size:clamp(3rem,14vw,4.5rem);font-weight:800;letter-spacing:-.04em;line-height:.9;margin:0;animation:rise .7s ease both}.tagline{margin:0;max-width:22rem;color:var(--muted);font-size:1.05rem;line-height:1.45;animation:rise .7s ease .08s both}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:52px;padding:0 22px;border-radius:14px;background:var(--accent);color:var(--accent-ink);font-weight:800;letter-spacing:-.01em;transition:transform .15s ease,filter .15s ease}.btn:active{transform:scale(.98)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-ghost{background:transparent;color:var(--ink);border:1px solid var(--line)}.actions{display:flex;flex-direction:column;gap:10px;margin-top:10px;animation:rise .7s ease .16s both}.topbar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px;background:var(--panel);border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);z-index:2}.pill{font-family:var(--mono);font-size:.8rem;padding:6px 10px;border-radius:999px;background:#e8ff4d1f;color:var(--accent)}.panorama-wrap,.map-wrap{flex:1 1 auto;min-height:0;position:relative;overflow:hidden;background:#0a0d0b}.map-wrap>div{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%}.pano-shell,.pano-api{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%}.pano-shell{overflow:hidden;background:#0a0d0b;touch-action:none}.pano-api{border:0;display:block;background:#0a0d0b}.pano-shell .pnlm-container{background:#0a0d0b!important}.pano-shell .pnlm-load-box,.pano-shell .pnlm-lbox,.pano-shell .pnlm-compass,.pano-shell .pnlm-panorama-info{display:none!important}.pano-error{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;padding:20px;color:var(--danger);text-align:center;z-index:3;background:#0a0d0bb8}.pano-busy{position:absolute;top:0;right:0;bottom:0;left:0;z-index:2;pointer-events:none;background:#0a0d0b1f}.pano-credit{position:absolute;left:14px;bottom:calc(78px + env(safe-area-inset-bottom));z-index:4;font-size:11px;color:#f2efe68c;pointer-events:none}.pano-tools{position:absolute;left:14px;bottom:calc(14px + env(safe-area-inset-bottom));z-index:5;display:flex;flex-direction:column;gap:8px}.pano-tools__btn{width:44px;height:44px;border:1px solid rgba(232,255,77,.28);border-radius:12px;background:#0f1410c7;color:var(--accent);display:grid;place-items:center;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);box-shadow:0 8px 20px #00000059;touch-action:manipulation}.pano-tools__btn:active:not(:disabled){transform:scale(.96);background:#e8ff4d29}.pano-tools__btn:disabled{opacity:.4;cursor:default}.move-stick{position:absolute;right:18px;bottom:calc(18px + env(safe-area-inset-bottom));z-index:5;width:96px;height:96px;border-radius:50%;background:radial-gradient(circle at 50% 45%,#f2efe624,#0f1410b8 70%);border:1px solid rgba(232,255,77,.28);box-shadow:0 10px 28px #0006;touch-action:none;user-select:none;-webkit-user-select:none;display:grid;place-items:center}.move-stick--disabled{opacity:.4;pointer-events:none}.move-stick__knob{border-radius:50%;background:linear-gradient(160deg,#f2efe6,#c8c4b4);box-shadow:inset 0 1px #ffffff8c,0 4px 12px #00000059;transform:translate(0);will-change:transform;pointer-events:none}.pnlm-hotspot.pano-road-arrow,.pano-road-arrow{width:44px!important;height:44px!important;margin-left:-22px!important;margin-top:-22px!important;background:transparent!important;border:0!important;box-shadow:none!important;cursor:pointer}.pano-road-arrow:before{content:"";position:absolute;left:50%;top:50%;width:0;height:0;border-left:16px solid transparent;border-right:16px solid transparent;border-bottom:34px solid rgba(255,255,255,.94);transform:translate(-50%,-42%) perspective(140px) rotateX(58deg);filter:drop-shadow(0 2px 3px rgba(0,0,0,.55));pointer-events:none}.pano-road-arrow:hover:before{border-bottom-color:#fff}.dock{display:flex;gap:10px;padding:12px 14px calc(12px + env(safe-area-inset-bottom));background:var(--panel);border-top:1px solid var(--line)}.dock .btn{flex:1}.sheet{padding:24px 20px calc(24px + env(safe-area-inset-bottom));display:flex;flex-direction:column;gap:16px}.stat-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.stat{padding:14px;border:1px solid var(--line);border-radius:16px;background:#ffffff08}.stat b{display:block;font-family:var(--mono);font-size:1.35rem;margin-top:4px}.stat span{color:var(--muted);font-size:.85rem}.place{font-size:1.35rem;font-weight:800;letter-spacing:-.02em;margin:0}.muted{color:var(--muted);margin:0}.leader{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.leader li{display:grid;grid-template-columns:2rem 1fr auto;gap:10px;align-items:center;padding:12px 14px;border-radius:14px;border:1px solid var(--line);background:#ffffff08}.err{color:var(--danger);margin:0}.loader{margin:auto;color:var(--muted)}@keyframes rise{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}.result-map{height:220px;border-radius:16px;overflow:hidden;border:1px solid var(--line)}
