@import"https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap";*{margin:0;padding:0;box-sizing:border-box}.loading-overlay{position:fixed;top:0;left:0;width:100vw;height:100vh;background:#f8f9fa;display:flex;align-items:center;justify-content:center;z-index:9999}.loading-container{text-align:center;color:#2c3e50;animation:fadeInUp .8s ease-out;font-family:Inter,SF Pro Display,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif}@keyframes fadeInUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}.loading-logo{margin-bottom:40px}.map-icon{font-size:4rem;margin-bottom:20px;animation:bounce 2s infinite}@keyframes bounce{0%,20%,50%,80%,to{transform:translateY(0)}40%{transform:translateY(-10px)}60%{transform:translateY(-5px)}}.loading-logo h1{font-size:2.5rem;font-weight:600;margin-bottom:10px;letter-spacing:-.02em}.loading-logo p{font-size:1.2rem;opacity:.7;font-weight:400}.loading-progress{margin-bottom:30px}.progress-bar{width:300px;height:6px;background:#e9ecef;border-radius:3px;overflow:hidden;margin:0 auto 15px;position:relative}.progress-fill{height:100%;background:#007bff;border-radius:3px;transition:width .3s ease;position:relative}.progress-fill:after{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background:linear-gradient(90deg,transparent,rgba(255,255,255,.3),transparent);animation:shimmer 2s infinite}@keyframes shimmer{0%{transform:translate(-100%)}to{transform:translate(100%)}}.progress-text{font-size:1rem;opacity:.6;font-weight:500}.loading-dots{display:flex;justify-content:center;gap:8px}.dot{width:12px;height:12px;background:#6c757d;border-radius:50%;animation:loadingDots 1.4s infinite ease-in-out}.dot:nth-child(1){animation-delay:-.32s}.dot:nth-child(2){animation-delay:-.16s}@keyframes loadingDots{0%,80%,to{transform:scale(.8);opacity:.5}40%{transform:scale(1.2);opacity:1}}@media (max-width: 480px){.loading-logo h1{font-size:2rem;font-weight:600}.loading-logo p{font-size:1rem;font-weight:400}.progress-text{font-size:.9rem}.map-icon{font-size:3rem}.progress-bar{width:250px}}html,body,#root{height:100%}.app{width:100vw;height:100vh;height:calc(var(--vh, 1vh) * 100);height:100dvh;position:relative;display:flex;align-items:center;justify-content:flex-start;overflow-x:auto;overflow-y:hidden;background-color:#bbe0f0;scroll-behavior:smooth;touch-action:pan-x}.map-svg{height:100vh;height:calc(var(--vh, 1vh) * 100);height:100dvh;width:auto;min-width:100vw;display:block;flex-shrink:0}.landmark{z-index:10;cursor:pointer;transition:transform .2s ease;-webkit-user-select:none;user-select:none;display:block;margin:0;padding:0;object-fit:contain}.landmark.visited{opacity:.4;filter:grayscale(60%);transition:opacity .3s ease,filter .3s ease}@media (hover: hover) and (pointer: fine){.landmark:hover{transform:scale(1.1)}.landmark.visited:hover{opacity:.7;filter:grayscale(30%)}}.landmark.editable{cursor:grab;outline:2px dashed rgba(255,255,0,.5);outline-offset:2px;border-radius:8px}.landmark.editable:active{cursor:grabbing;transform:none;outline-color:#ff0}.resize-handle{cursor:se-resize;opacity:.8;transition:opacity .2s ease}@media (hover: hover) and (pointer: fine){.landmark.editable:hover{outline-color:#ff0c;transform:none}.resize-handle:hover{opacity:1}}.landmark.resizing{outline:2px solid rgba(0,123,255,.8);outline-offset:2px;border-radius:8px}.resize-hint{padding:8px 12px;background:#fffffff2;border-radius:6px;border:1px solid #ddd;font-size:12px;color:#666;margin-top:8px;text-align:center}.editor-controls{position:fixed;top:20px;right:20px;z-index:100;display:flex;gap:10px}.toggle-btn,.export-btn,.clear-visited-btn{padding:10px 15px;border:none;border-radius:8px;background:#000c;color:#fff;font-size:14px;font-weight:700;cursor:pointer;transition:background .2s ease;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.toggle-btn{background:#228b22cc}.export-btn{background:#1e90ffcc}.clear-visited-btn{background:#ff5722cc}@media (hover: hover) and (pointer: fine){.toggle-btn:hover,.export-btn:hover,.clear-visited-btn:hover{background:#000000e6}.toggle-btn:hover{background:#228b22e6}.export-btn:hover{background:#1e90ffe6}.clear-visited-btn:hover{background:#ff5722e6}}.popup-overlay{position:fixed;top:0;left:0;width:100vw;height:100vh;height:calc(var(--vh, 1vh) * 100);height:100dvh;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:1000;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left)}.popup-content{background:#fff;border-radius:20px;max-width:540px;width:92vw;max-height:85vh;overflow:hidden;position:relative;box-shadow:0 20px 60px #00000026,0 8px 25px #0000001a;animation:popupAppear .4s cubic-bezier(.16,1,.3,1);font-family:Inter,SF Pro Display,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif}@keyframes popupAppear{0%{opacity:0;transform:scale(.9) translateY(-30px)}to{opacity:1;transform:scale(1) translateY(0)}}.popup-close{position:absolute;top:18px;right:18px;background:#0000000d;border:none;font-size:18px;cursor:pointer;color:#666;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:50%;transition:all .2s ease;z-index:10;touch-action:manipulation;-webkit-tap-highlight-color:transparent}@media (hover: hover) and (pointer: fine){.popup-close:hover{background:#0000001a;color:#333;transform:scale(1.1)}}.popup-header{display:flex;align-items:flex-start;gap:20px;padding:32px 32px 24px;background:linear-gradient(135deg,#f8f9fa,#fff);border-bottom:1px solid rgba(0,0,0,.06)}.popup-icon{width:72px;height:72px;border-radius:16px;flex-shrink:0;object-fit:cover}.popup-header h2{margin:0 0 6px;color:#1a1a1a;font-size:28px;font-weight:700;line-height:1.2;letter-spacing:-.5px}.popup-location{margin:0;color:#666;font-size:16px;font-weight:500;display:flex;align-items:center;gap:6px}.popup-location:before{content:"📍";font-size:14px}.popup-body{padding:28px 32px 32px;display:flex;flex-direction:column;flex:1;overflow:hidden;min-height:0}.popup-description{color:#374151;font-size:16px;line-height:1.7;margin-bottom:28px;font-weight:400}.popup-description p{margin-bottom:16px}.popup-description p:last-child{margin-bottom:0}.popup-content-area{flex:1;overflow-y:auto;display:flex;flex-direction:column;animation:slideIn .3s ease-out;min-height:0;-webkit-overflow-scrolling:touch}@keyframes slideIn{0%{opacity:0;transform:translate(20px)}to{opacity:1;transform:translate(0)}}.popup-navigation{margin-top:24px;padding-top:20px;border-top:1px solid #e9ecef;flex-shrink:0}.nav-controls{display:flex;align-items:center;justify-content:space-between;gap:16px}.nav-btn{background:#007bff;color:#fff;border:none;border-radius:8px;width:40px;height:40px;display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:18px;font-weight:600;transition:all .2s ease;touch-action:manipulation;-webkit-tap-highlight-color:transparent}.nav-btn:hover:not(:disabled){background:#0056b3;transform:scale(1.05)}.nav-btn:active:not(:disabled){transform:scale(.95)}.nav-btn:disabled{background:#e9ecef;color:#6c757d;cursor:not-allowed;transform:none}.nav-progress{display:flex;flex-direction:column;align-items:center;gap:8px;flex:1}.nav-progress .progress-text{font-size:14px;font-weight:500;color:#6c757d}.progress-dots{display:flex;gap:8px;align-items:center}.progress-dot{width:8px;height:8px;border-radius:50%;background:#dee2e6;transition:all .2s ease}.progress-dot.active{background:#007bff;transform:scale(1.2)}@media (max-aspect-ratio: 16/9),(max-width: 800px){.app{justify-content:flex-start;-webkit-overflow-scrolling:touch}.map-svg{height:100vh;height:calc(var(--vh, 1vh) * 100);height:100dvh;width:auto;min-width:178vh;min-width:calc(var(--vh, 1vh) * 100 * 1.78);min-width:178dvh}.editor-controls{display:none}.popup-overlay{padding:16px;padding:max(16px,env(safe-area-inset-top)) max(16px,env(safe-area-inset-right)) max(16px,env(safe-area-inset-bottom)) max(16px,env(safe-area-inset-left));-webkit-tap-highlight-color:transparent;touch-action:manipulation}.popup-content{width:100%;max-width:none;max-height:calc(100vh - 32px);max-height:calc(100dvh - 32px);border-radius:16px;margin:0;display:flex;flex-direction:column;touch-action:pan-y;-webkit-overflow-scrolling:touch}.popup-close{top:16px;right:16px;width:40px;height:40px;font-size:20px;background:#0000001a;color:#333}.popup-close:active{background:#0003;transform:scale(.95)}.popup-header{padding:24px 24px 20px;gap:16px;flex-shrink:0}.popup-icon{width:56px;height:56px;border-radius:12px}.popup-header h2{font-size:24px;letter-spacing:-.3px}.popup-location{font-size:15px}.popup-body{padding:20px 24px 24px;display:flex;flex-direction:column;flex:1;overflow:hidden;min-height:0}.popup-description{font-size:15px;line-height:1.6;margin-bottom:24px}.popup-description p{margin-bottom:14px}.popup-description p:last-child{margin-bottom:0}}@media (max-width: 480px){.popup-overlay{padding:12px;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))}.popup-content{max-height:calc(100vh - 24px);max-height:calc(100dvh - 24px);border-radius:12px}.popup-close{top:12px;right:12px;width:36px;height:36px;font-size:18px}.popup-close:active{background:#0003;transform:scale(.95)}.popup-header{padding:20px 20px 16px;gap:12px}.popup-body{padding:16px 20px 20px}.popup-navigation{margin-top:16px;padding-top:16px}.nav-btn{width:36px;height:36px;font-size:16px}.nav-progress .progress-text{font-size:12px}.progress-dots{gap:6px}.progress-dot{width:6px;height:6px}.popup-header h2{font-size:20px;letter-spacing:-.2px}.popup-description{font-size:14px;line-height:1.5;margin-bottom:20px}.popup-description p{margin-bottom:12px}.popup-description p:last-child{margin-bottom:0}}.back-button-container{position:fixed;top:20px;left:20px;z-index:1000;font-family:Inter,SF Pro Display,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif}.back-button{display:inline-flex;align-items:center;padding:8px 16px;background:#fffffff2;color:#2c3e50;text-decoration:none;border-radius:8px;font-size:14px;font-weight:500;box-shadow:0 2px 8px #00000026;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);transition:all .2s ease;border:1px solid rgba(255,255,255,.3)}.back-button:hover{background:#fff;transform:translateY(-1px);box-shadow:0 4px 12px #0003;color:#1a252f}.back-button:active{transform:translateY(0);box-shadow:0 2px 4px #0000001a}@media (max-width: 768px){.back-button-container{top:16px;left:16px;top:max(16px,env(safe-area-inset-top));left:max(16px,env(safe-area-inset-left))}.back-button{padding:10px 14px;font-size:13px;border-radius:6px}}
