html,body{width:100%;height:100%;overflow:hidden}#map{position:fixed;top:0;left:0;width:100vw;height:100vh;height:100dvh;z-index:0}.maplibregl-canvas{outline:none}#loading-overlay{position:fixed;inset:0;z-index:50;background:#000;display:flex;align-items:center;justify-content:center;transition:opacity 1s ease}#loading-bar{width:0%;transition:width 1.2s cubic-bezier(.4,0,.2,1)}.loading-globe svg{display:block;margin:0 auto}.globe-spin{transform-origin:center;animation:spin 2s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.ui-overlay{position:fixed;z-index:20;opacity:0;transition:opacity .7s ease;pointer-events:none}.ui-overlay.visible{opacity:1}.glass-card{background:#0c0c0cbf;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:1px solid rgba(255,255,255,.06);border-radius:12px}.random-btn{width:40px;height:40px;display:flex;align-items:center;justify-content:center;cursor:pointer;color:#fff9;transition:color .2s,background .2s;border:1px solid rgba(255,255,255,.06)}.random-btn:hover{color:#f59e0b;background:#f59e0b14}.random-btn.spin svg{animation:dice-roll .6s ease}@keyframes dice-roll{0%{transform:rotate(0) scale(1)}50%{transform:rotate(180deg) scale(.8)}to{transform:rotate(360deg) scale(1)}}#detail-panel{position:fixed;z-index:30;top:0;right:0;width:420px;height:100vh;height:100dvh;transform:translate(100%);transition:transform .5s cubic-bezier(.16,1,.3,1)}#detail-panel.open{transform:translate(0)}.panel-inner{height:100%;overflow-y:auto;background:#0a0a0ae0;backdrop-filter:blur(30px);-webkit-backdrop-filter:blur(30px);border-left:1px solid rgba(255,255,255,.06);scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.12) transparent}.panel-inner::-webkit-scrollbar{width:4px}.panel-inner::-webkit-scrollbar-thumb{background:#ffffff1f;border-radius:2px}.panel-content-fade{opacity:0;transition:opacity .3s ease}.panel-cover{position:relative;height:240px;overflow:hidden}.panel-cover img{width:100%;height:120%;-o-object-fit:cover;object-fit:cover;transform:translateY(-10%);transition:transform .3s ease}.cover-gradient{position:absolute;inset:0;background:linear-gradient(to top,rgba(0,0,0,.9) 0%,rgba(0,0,0,.2) 50%,transparent 100%)}.cover-text{position:absolute;bottom:16px;left:20px;right:20px}.panel-close-btn{position:absolute;top:16px;right:16px;z-index:10;width:36px;height:36px;border-radius:50%;background:#00000080;border:1px solid rgba(255,255,255,.1);color:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background .2s,transform .2s}.panel-close-btn:hover{background:#ffffff26;transform:rotate(90deg)}.drag-handle{display:none}@media(max-width:767px){#detail-panel{inset:auto 0 0;width:100%;height:70vh;height:70dvh;transform:translateY(100%);border-radius:20px 20px 0 0;overflow:hidden}#detail-panel.open{transform:translateY(0)}.panel-inner{border-left:none;border-top:1px solid rgba(255,255,255,.08);border-radius:20px 20px 0 0}.drag-handle{display:flex;justify-content:center;padding:12px 0 4px;cursor:grab;position:sticky;top:0;z-index:5;background:inherit}.drag-bar{width:36px;height:4px;border-radius:2px;background:#ffffff40}.panel-cover{height:180px}.panel-close-btn{top:12px;right:12px;width:32px;height:32px}}.trip-marker{border-radius:50%;border:3px solid rgba(255,255,255,.85);overflow:hidden;cursor:pointer;box-shadow:0 2px 12px #00000080;transition:border-color .3s,box-shadow .3s,opacity .3s}.trip-marker img{width:100%;height:100%;-o-object-fit:cover;object-fit:cover;display:block}.trip-marker.hidden{opacity:0}.trip-marker.entrance{animation:marker-pop .5s cubic-bezier(.34,1.56,.64,1) forwards}@keyframes marker-pop{0%{opacity:0}to{opacity:1}}.trip-marker.hover{border-color:#f59e0b;box-shadow:0 0 20px #f59e0b59}.trip-marker.active{border-color:#f59e0b;box-shadow:0 0 25px #f59e0b66;animation:marker-pulse 2s ease-in-out infinite}.trip-marker.dimmed{opacity:.15;pointer-events:none}@keyframes marker-pulse{0%,to{box-shadow:0 0 20px #f59e0b4d}50%{box-shadow:0 0 35px #f59e0b80}}.marker-popup .maplibregl-popup-content{background:#0a0a0aeb;backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.1);color:#fff;padding:5px 11px;border-radius:8px;font-size:12px;font-weight:500;box-shadow:0 4px 12px #0006}.marker-popup .maplibregl-popup-tip{border-top-color:#0a0a0aeb}.timeline-pill{padding:5px 12px;border-radius:20px;font-size:12px;font-weight:500;color:#ffffff80;background:transparent;border:1px solid transparent;cursor:pointer;transition:all .25s ease;white-space:nowrap}@media(min-width:768px){.timeline-pill{padding:6px 16px;font-size:13px}}.timeline-pill:hover{color:#fffc;background:#ffffff0d}.timeline-pill.active{color:#f59e0b;background:#f59e0b1a;border-color:#f59e0b4d}.tag{display:inline-block;padding:3px 10px;border-radius:20px;font-size:11px;font-weight:500;text-transform:uppercase;letter-spacing:.05em;color:#f59e0b;background:#f59e0b1a;border:1px solid rgba(245,158,11,.15)}.gallery-thumb{cursor:pointer;overflow:hidden;border-radius:8px}.gallery-thumb img{width:100%;height:120px;-o-object-fit:cover;object-fit:cover;display:block;transition:opacity .2s,transform .3s}.gallery-thumb:hover img{opacity:.8;transform:scale(1.05)}#lightbox{position:fixed;inset:0;z-index:50;background:#000000f2;display:flex;align-items:center;justify-content:center;opacity:0;pointer-events:none;transition:opacity .3s ease}#lightbox.visible{opacity:1;pointer-events:auto}#lightbox>img{max-width:92vw;max-height:82vh;-o-object-fit:contain;object-fit:contain;border-radius:8px}#lightbox-counter{position:absolute;bottom:20px;left:50%;transform:translate(-50%);font-size:13px;color:#ffffff73}.lightbox-btn{position:absolute;z-index:10;width:42px;height:42px;border-radius:50%;background:#ffffff14;border:1px solid rgba(255,255,255,.1);color:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background .2s}.lightbox-btn:hover{background:#ffffff2e}.lightbox-nav{top:50%;transform:translateY(-50%)}.maplibregl-ctrl-group{background:#0c0c0cbf!important;backdrop-filter:blur(20px);border:1px solid rgba(255,255,255,.06)!important;border-radius:10px!important;overflow:hidden}.maplibregl-ctrl-group button{background:transparent!important;border:none!important;width:36px!important;height:36px!important}.maplibregl-ctrl-group button+button{border-top:1px solid rgba(255,255,255,.06)!important}.maplibregl-ctrl-group button span{filter:invert(1)!important}.maplibregl-ctrl-group button:hover{background:#ffffff1a!important}@media(max-width:767px){.maplibregl-ctrl-bottom-right{bottom:60px!important}}
