*{margin:0;padding:0;box-sizing:border-box}html,body{width:100%;height:100%;overflow:hidden;background:#000005;cursor:none}body.cursor-visible,body.cursor-visible *{cursor:default!important}#app{width:100%;height:100%;position:fixed;top:0;left:0}canvas{display:block}#loading{position:fixed;top:0;left:0;width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:28px;z-index:10;background:#000005;transition:opacity 2.5s cubic-bezier(.4,0,.2,1)}#loading.fade-out{opacity:0;pointer-events:none}.loading-ring{width:40px;height:40px;border:1.5px solid rgba(34,68,170,.06);border-top-color:#24a6;border-radius:50%;animation:spin 2.2s linear infinite}.loading-title{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,system-ui,sans-serif;font-size:11px;font-weight:300;letter-spacing:4px;text-transform:uppercase;color:#6482c859;animation:fadeTitle 3s ease-in-out infinite alternate}@keyframes spin{to{transform:rotate(360deg)}}@keyframes fadeTitle{0%{opacity:.25}to{opacity:.55}}#controls{position:fixed;bottom:28px;right:28px;z-index:5;display:flex;align-items:center;gap:10px;padding:8px 16px;background:#080c188c;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid rgba(80,120,200,.12);border-radius:20px;opacity:0;transition:opacity .6s ease;cursor:default;pointer-events:none}body.cursor-visible #controls{opacity:1;pointer-events:auto}#controls:hover{background:#0a1020b3;border-color:#5078c838}#fullscreen-btn,#dim-btn{background:none;border:1px solid rgba(80,120,200,.15);border-radius:6px;color:#7896d273;font-size:14px;padding:3px 7px;cursor:pointer;transition:color .2s ease,border-color .2s ease,opacity .2s ease;line-height:1}#fullscreen-btn:hover,#dim-btn:hover{color:#b4c8f0cc;border-color:#78a0e659}#dim-btn.dim-off{opacity:.35}#night-dim{position:fixed;top:0;right:0;bottom:0;left:0;z-index:20;background:#000;opacity:0;pointer-events:none;transition:opacity 30s linear}#controls label{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,system-ui,sans-serif;font-size:9px;font-weight:400;letter-spacing:2.5px;text-transform:uppercase;color:#7896d273;-webkit-user-select:none;user-select:none;white-space:nowrap}#places-in-view{position:fixed;bottom:74px;right:40px;z-index:5;display:flex;flex-direction:column;align-items:flex-end;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,system-ui,sans-serif;pointer-events:none;transition:opacity .7s ease}#places-in-view.piv-hidden{opacity:0}.piv-place{display:flex;flex-direction:column;align-items:flex-end;gap:4px;max-height:0;opacity:0;overflow:hidden;transform:translate(10px);transition:opacity 1.1s ease,max-height 1.1s ease,transform 1.1s ease,margin-bottom 1.1s ease}.piv-place.piv-visible{max-height:26px;opacity:1;transform:translate(0);margin-bottom:9px}.piv-name{font-size:10px;font-weight:300;letter-spacing:2.5px;text-transform:uppercase;color:#becdeb8c;text-shadow:0 1px 6px rgba(0,0,0,.5);white-space:nowrap}.piv-line{display:block;height:1px;background:linear-gradient(270deg,rgba(255,195,120,.5),transparent)}body.kiosk #controls,body.kiosk #globe-menu,body.kiosk #mobile-fs-btn,body.kiosk #mobile-menu-btn{display:none!important}#mobile-fs-btn{display:none;position:fixed;top:max(12px,env(safe-area-inset-top));right:max(12px,env(safe-area-inset-right));z-index:15;width:44px;height:44px;align-items:center;justify-content:center;background:#080c188c;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid rgba(80,120,200,.22);border-radius:12px;color:#c8d2f0e6;font-size:20px;line-height:1;cursor:pointer;opacity:0;pointer-events:none;transition:opacity .45s ease;-webkit-tap-highlight-color:transparent}body.phone-touch:not(.standalone) #mobile-fs-btn{display:flex}body.mobile-fs-visible #mobile-fs-btn{opacity:1;pointer-events:auto}#mobile-fs-hint{position:fixed;left:50%;bottom:max(20px,env(safe-area-inset-bottom));transform:translate(-50%) translateY(8px);z-index:25;max-width:min(420px,calc(100vw - 32px));padding:10px 16px;background:#080c18e0;border:1px solid rgba(80,120,200,.22);border-radius:14px;color:#c8d2f0e6;font-family:-apple-system,BlinkMacSystemFont,system-ui,sans-serif;font-size:13px;line-height:1.35;text-align:center;opacity:0;pointer-events:none;transition:opacity .35s ease,transform .35s ease}#mobile-fs-hint.show{opacity:1;transform:translate(-50%) translateY(0)}body.kiosk{cursor:none!important}#homescreen-hint{position:fixed;bottom:max(20px,env(safe-area-inset-bottom));left:50%;transform:translate(-50%);z-index:25;display:flex;align-items:center;gap:12px;max-width:min(420px,calc(100vw - 32px));padding:10px 12px 10px 16px;background:#080c18d1;border:1px solid rgba(80,120,200,.22);border-radius:14px;color:#c8d2f0d9;font-family:-apple-system,BlinkMacSystemFont,system-ui,sans-serif;font-size:13px;line-height:1.35}#homescreen-hint button{flex-shrink:0;background:none;border:1px solid rgba(80,120,200,.3);border-radius:8px;color:#b4c8f0e6;padding:6px 10px;font-size:12px}@media(orientation:landscape)and (pointer:coarse){#places-in-view{right:max(36px,calc(env(safe-area-inset-right) + 20px));bottom:max(40px,env(safe-area-inset-bottom))}}@media(orientation:portrait)and (pointer:coarse){#places-in-view{right:max(16px,env(safe-area-inset-right));bottom:max(16px,env(safe-area-inset-bottom));max-width:48%}.piv-name{font-size:9px;max-width:100%;overflow:hidden;text-overflow:ellipsis}.reveal-info{left:max(16px,env(safe-area-inset-left));bottom:max(24px,env(safe-area-inset-bottom));padding:12px 14px 8px}.reveal-info.reveal-info-top{top:max(24px,env(safe-area-inset-top));bottom:auto}.reveal-city{font-size:12px;letter-spacing:2px}}#memory-reveal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:8;pointer-events:none;opacity:0;visibility:hidden}#memory-reveal.reveal-enter,#memory-reveal.reveal-exit{opacity:1;visibility:visible}.reveal-photo{position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden}.reveal-photo img,.reveal-photo video{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover;opacity:0;--kb-origin-x: 50%;--kb-origin-y: 50%;transform-origin:var(--kb-origin-x) var(--kb-origin-y);transition:opacity 2s ease;will-change:transform,opacity}.reveal-photo img.reveal-fill{object-fit:cover;filter:blur(36px) saturate(1.15) brightness(.55);transform:scale(1.2);z-index:0;pointer-events:none}.reveal-photo img.reveal-letterbox,.reveal-photo video.reveal-letterbox{object-fit:contain;z-index:1;background:transparent}.reveal-photo img.reveal-photo-visible,.reveal-photo video.reveal-photo-visible{opacity:1}.reveal-photo img.reveal-photo-entering,.reveal-photo video.reveal-photo-entering{transition:opacity 1.2s ease}#memory-reveal.reveal-exit .reveal-photo img.reveal-photo-visible,#memory-reveal.reveal-exit .reveal-photo video.reveal-photo-visible{opacity:0;transition:opacity .8s ease .25s}.reveal-photo img.kb-1{animation:kbZoomIn 12s ease-out forwards}.reveal-photo img.kb-2{animation:kbZoomOut 12s ease-out forwards}.reveal-photo img.kb-3{animation:kbPanRight 12s ease-out forwards}.reveal-photo img.kb-4{animation:kbPanUpRight 12s ease-out forwards}.reveal-photo img.reveal-letterbox.kb-1,.reveal-photo img.reveal-letterbox.kb-3,.reveal-photo img.reveal-letterbox.kb-4{animation:kbZoomIn 12s ease-out forwards}.reveal-photo img.reveal-letterbox.kb-2{animation:kbZoomOut 12s ease-out forwards}.reveal-photo video.kb-1,.reveal-photo video.kb-2,.reveal-photo video.kb-3,.reveal-photo video.kb-4{animation:none}@keyframes kbZoomIn{0%{transform:scale(1)}to{transform:scale(1.05)}}@keyframes kbZoomOut{0%{transform:scale(1.05)}to{transform:scale(1)}}@keyframes kbPanRight{0%{transform:scale(1.02) translate(-.35%)}to{transform:scale(1.05) translate(.35%)}}@keyframes kbPanUpRight{0%{transform:scale(1.02) translate(-.25%,.2%)}to{transform:scale(1.05) translate(.25%,-.2%)}}.reveal-haze-wrap{position:absolute;top:-14%;right:-14%;bottom:-14%;left:-14%;z-index:2;pointer-events:none;opacity:var(--haze-gain, 1)}.reveal-haze{position:absolute;top:0;right:0;bottom:0;left:0;z-index:2;pointer-events:none;opacity:0;background:radial-gradient(ellipse at 50% 45%,#ebf2ffeb,#d2e1f5bf 35%,#b4c8e673 65%,#8caad226);backdrop-filter:blur(28px);-webkit-backdrop-filter:blur(28px);will-change:transform,opacity}.reveal-haze:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(ellipse 55% 42% at 28% 62%,rgba(255,255,255,.55),transparent 72%),radial-gradient(ellipse 48% 38% at 74% 32%,rgba(228,238,252,.5),transparent 72%)}.reveal-haze.reveal-haze-in{animation:hazeRush 1.3s ease-in forwards}.reveal-haze.reveal-haze-exiting{animation:hazeClear 1.7s ease-out forwards}.reveal-haze.reveal-haze-pulse{animation:hazePulse 2s ease-in-out forwards}@keyframes hazeRush{0%{opacity:0;transform:scale(.82)}to{opacity:1;transform:scale(1.16)}}@keyframes hazeClear{0%{opacity:1;transform:scale(1.16)}to{opacity:0;transform:scale(1.5)}}@keyframes hazePulse{0%{opacity:0;transform:scale(.9)}35%{opacity:1;transform:scale(1.12)}to{opacity:0;transform:scale(1.48)}}.reveal-photo.reveal-momentum{animation:photoMomentum 2.6s cubic-bezier(.22,1,.36,1) forwards}@keyframes photoMomentum{0%{transform:scale(1.14)}to{transform:scale(1)}}.reveal-photo-placeholder{position:absolute;top:0;right:0;bottom:0;left:0;opacity:0;background:linear-gradient(160deg,#0c1224f2,#182444d9,#0a0e1cf2);transition:opacity 1.2s ease}.reveal-photo-placeholder.reveal-photo-placeholder-visible{opacity:1}#memory-reveal.reveal-exit .reveal-photo-placeholder.reveal-photo-placeholder-visible{opacity:0;transition:opacity .5s ease}.reveal-photo-placeholder:after{content:"";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:36px;height:36px;border:1.5px solid rgba(100,140,220,.15);border-radius:50%}.reveal-info{position:absolute;bottom:48px;left:48px;z-index:3;display:flex;flex-direction:column;gap:5px;padding:16px 20px 12px;opacity:0;transition:opacity .8s ease .2s}.reveal-info:before{content:"";position:absolute;top:-140px;right:-180px;bottom:-64px;left:-64px;background:radial-gradient(ellipse at 22% 78%,rgba(0,4,12,.58) 0%,rgba(0,4,12,.32) 42%,rgba(0,4,12,.1) 65%,transparent 80%);z-index:-1;pointer-events:none}.reveal-info.reveal-info-visible{opacity:1}.reveal-info.reveal-info-top{top:48px;bottom:auto}.reveal-info.reveal-info-top:before{top:-64px;right:-180px;bottom:-140px;left:-64px;background:radial-gradient(ellipse at 22% 22%,rgba(0,4,12,.58) 0%,rgba(0,4,12,.32) 42%,rgba(0,4,12,.1) 65%,transparent 80%)}#memory-reveal.reveal-exit .reveal-info{opacity:0;transition:opacity .4s ease}.reveal-city{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,system-ui,sans-serif;font-size:15px;font-weight:300;letter-spacing:3.5px;text-transform:uppercase;color:#e6ecfaeb;text-shadow:0 1px 8px rgba(0,0,0,.55)}.reveal-coords{font-family:SF Mono,Fira Code,Cascadia Code,monospace;font-size:8px;font-weight:400;letter-spacing:1px;color:#b4c8eb8c;text-shadow:0 1px 6px rgba(0,0,0,.5)}.reveal-date{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,system-ui,sans-serif;font-size:9px;font-weight:300;letter-spacing:2px;color:#becdeb99;text-transform:uppercase;transition:opacity .5s ease;text-shadow:0 1px 6px rgba(0,0,0,.5)}.reveal-date.reveal-date-fading{opacity:0}#local-weather{position:fixed;bottom:36px;left:40px;z-index:5;display:flex;flex-direction:column;align-items:flex-start;gap:0;opacity:0;transition:opacity 1.5s cubic-bezier(.4,0,.2,1);pointer-events:none;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,system-ui,sans-serif}#local-weather.lw-loaded{opacity:1}#local-weather.lw-hidden{opacity:0}.lw-now{display:flex;align-items:center;gap:12px}.lw-temp{font-size:42px;font-weight:100;color:#c8d2f0b3;line-height:1;letter-spacing:-1px}.lw-icon{font-size:22px;line-height:1;opacity:.7}.lw-details{display:flex;flex-direction:column;gap:2px}.lw-condition{font-size:11px;font-weight:300;letter-spacing:1.5px;text-transform:uppercase;color:#a0b4dc80}.lw-hilo{font-size:10px;font-weight:300;letter-spacing:.8px;color:#a0b4dc59}.lw-location{font-size:9px;font-weight:400;letter-spacing:2px;text-transform:uppercase;color:#7896d240}.lw-divider,.lw-forecast{display:none}#local-weather.lw-has-weather .lw-divider{display:block;width:100%;height:1px;margin:10px 0 8px;background:linear-gradient(90deg,rgba(120,160,230,.15),transparent)}#local-weather.lw-has-weather .lw-forecast{display:flex;gap:16px}.lw-status{display:none;margin-top:6px;font-size:10px;font-weight:300;letter-spacing:2.2px;text-transform:uppercase;color:#b9d7ff8c;text-shadow:0 1px 6px rgba(0,0,0,.5);white-space:nowrap}.lw-status.lw-status-active{display:block;max-width:min(70vw,720px);overflow:hidden;text-overflow:ellipsis}.lw-day{display:flex;flex-direction:column;align-items:center;gap:3px}.lw-day-name{font-size:9px;font-weight:500;letter-spacing:1px;text-transform:uppercase;color:#a0b4dc66}.lw-day-icon{font-size:14px;line-height:1;opacity:.55}.lw-day-temps{font-size:10px;font-weight:300;color:#c8d2f073;white-space:nowrap}.lw-day-temps .lw-lo{color:#8ca0c84d}@media(orientation:landscape)and (pointer:coarse){#local-weather{left:max(36px,calc(env(safe-area-inset-left) + 20px));bottom:max(12px,env(safe-area-inset-bottom))}}@media(orientation:portrait)and (pointer:coarse){#local-weather{left:max(16px,env(safe-area-inset-left));bottom:max(16px,env(safe-area-inset-bottom));max-width:48%;overflow:hidden}#local-weather.lw-has-weather .lw-forecast,#local-weather.lw-has-weather .lw-divider{display:none}.lw-temp{font-size:28px}.lw-status{max-width:100%}.lw-status.lw-status-active{display:-webkit-box;white-space:normal;-webkit-line-clamp:2;-webkit-box-orient:vertical}}#menu-btn{background:none;border:1px solid rgba(80,120,200,.15);border-radius:6px;color:#7896d273;font-size:14px;padding:3px 7px;cursor:pointer;transition:color .2s ease,border-color .2s ease;line-height:1}#menu-btn:hover{color:#b4c8f0cc;border-color:#78a0e659}#globe-menu{position:fixed;bottom:76px;right:28px;z-index:16;display:flex;flex-direction:column;min-width:170px;padding:8px;background:#080c18d1;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border:1px solid rgba(80,120,200,.18);border-radius:14px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,system-ui,sans-serif}#globe-menu[hidden]{display:none}#globe-menu a{padding:11px 14px;border-radius:9px;color:#c8d7f5d9;text-decoration:none;font-size:14px}#globe-menu a:hover{background:#5a82d224}@media(pointer:coarse){#globe-menu{top:max(64px,calc(env(safe-area-inset-top) + 56px));right:max(12px,env(safe-area-inset-right));bottom:auto}}#mobile-menu-btn{display:none;position:fixed;top:max(12px,env(safe-area-inset-top));right:max(68px,calc(env(safe-area-inset-right) + 56px));z-index:15;width:44px;height:44px;border-radius:50%;border:1px solid rgba(120,160,230,.35);background:#080c188c;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);color:#bed2f5d9;font-size:15px;line-height:1;opacity:0;pointer-events:none;transition:opacity .4s ease}body.phone-touch.mobile-menu-visible #mobile-menu-btn{display:block;opacity:1;pointer-events:auto}body.standalone #mobile-menu-btn{right:max(12px,env(safe-area-inset-right))}#settings-nudge{position:fixed;top:max(14px,env(safe-area-inset-top));left:50%;transform:translate(-50%);z-index:18;display:flex;align-items:center;gap:12px;max-width:min(92vw,560px);padding:10px 14px;background:#080c18c7;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border:1px solid rgba(120,160,230,.28);border-radius:12px;color:#cddcfae6;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,system-ui,sans-serif;font-size:13px;text-decoration:none;line-height:1.4}#settings-nudge button{flex-shrink:0;background:none;border:1px solid rgba(120,160,230,.3);border-radius:7px;color:#a0b9e6bf;font-size:12px;padding:4px 10px;cursor:pointer}@media(pointer:coarse){#settings-nudge{top:max(64px,calc(env(safe-area-inset-top) + 52px))}}body.kiosk #settings-nudge{display:none}
