:root{font:14px/1.45 system-ui,sans-serif;color:#f7faf3;background:#0b1514;color-scheme:dark;--accent:#e5f0bd}*{box-sizing:border-box}body{margin:0;overflow:hidden}[hidden]{display:none!important}#canvas{position:fixed;inset:0;width:100%;height:100dvh;touch-action:none;background:#111b18}button,input{font:inherit;color:inherit;min-height:44px;padding:8px 12px;border:0;border-radius:0;background:#0b1917d9}button{cursor:pointer}button:hover{background:#304137}button:disabled{opacity:.45}button[aria-pressed=true]{color:var(--accent);box-shadow:inset 0 -2px var(--accent)}:focus-visible{outline:2px solid var(--accent);outline-offset:3px}input{min-width:0}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}header,.captions,.tools,footer,#source,#search,.empty{position:fixed;z-index:2}header{left:max(24px,env(safe-area-inset-left));top:max(18px,env(safe-area-inset-top));pointer-events:none}header:before{content:'';position:fixed;z-index:-1;inset:0 0 auto;height:180px;pointer-events:none;background:linear-gradient(#000a,transparent)}h1{font-size:25px;font-weight:500;letter-spacing:-1px;margin:0;text-shadow:0 2px 12px #000}#search{right:max(24px,env(safe-area-inset-right));top:max(18px,env(safe-area-inset-top));width:360px;max-width:calc(100vw - 32px);max-height:calc(100dvh - 180px);overflow:auto}#place-search{display:flex;gap:3px}#query{flex:1;width:0;background:#0b1917e8}#cities{display:flex;gap:3px;margin-top:5px}#cities button{flex:1;font-size:11px;padding:8px 5px;white-space:nowrap}#place-results{display:grid;gap:3px}#place-results:not(:empty){margin-top:8px}#place-results button{text-align:left;font-size:12px}.search-actions{display:flex;gap:4px;margin-top:4px}.search-actions button{font-size:11px;min-height:36px;background:#0b191799}#status{margin:4px 0 0;font-size:12px;text-shadow:0 1px 5px #000}.error{color:#ffbfb2}.captions{top:62px;left:24px;display:flex;gap:14px;pointer-events:none;font-size:12px;text-shadow:0 1px 5px #000}.captions span{background:#0b191799;padding:5px 8px}#divider{position:fixed;z-index:1;top:0;bottom:0;left:50%;width:1px;background:#ffffffae;pointer-events:none}#wipe-handle{position:absolute;top:48%;left:0;transform:translate(-50%,-50%);pointer-events:auto;touch-action:none;white-space:nowrap;background:#f0f5e7;color:#19251c;border-radius:24px;font-size:14px;font-weight:650;box-shadow:0 2px 16px #0004}#wipe-handle span{margin:0 6px;color:#71816d}.tools{right:24px;bottom:24px;display:flex;gap:4px}.tools button{background:#0b1917b8}.empty{left:50%;top:48%;transform:translate(-50%,-50%);width:calc(100% - 40px);max-width:400px;text-align:center;padding:25px;background:#0c1b18ed}h2{font-size:24px;font-weight:500;letter-spacing:-.5px;margin:0 0 8px}p{margin:8px 0;color:#e1e8df}footer{bottom:max(24px,env(safe-area-inset-bottom));left:24px;right:230px;pointer-events:none}footer:before{content:'';position:fixed;z-index:-1;inset:auto 0 0;height:170px;pointer-events:none;background:linear-gradient(transparent,#000c)}footer h2{font-size:24px;margin:0}#place-note{font-size:12px;margin:5px 0}#credit{font-size:10px;color:#dae3d8}#source{z-index:4;right:24px;top:18px;width:min(380px,calc(100vw - 32px));max-height:calc(100dvh - 100px);overflow:auto;padding:20px;background:#0c1b18f5;box-shadow:0 6px 40px #0007;font-size:12px}#source>button{float:right;font-size:12px}#source h2{font-size:19px;margin:5px 0 16px}#source p{line-height:1.6}#source a{color:var(--accent);overflow-wrap:anywhere}#source small{color:#b9c7bd;font-size:11px}@media(max-width:600px){header{left:16px;top:14px}h1{font-size:21px}#search{right:16px;top:14px;width:calc(100vw - 32px)}#place-search{margin-left:112px}#query{font-size:12px;padding:8px}#place-search button{font-size:12px;padding:8px}#cities button{font-size:11px}.captions{top:147px;left:16px;font-size:11px;gap:6px}.captions span{padding:4px 6px}footer{left:16px;right:16px;bottom:14px}footer h2{font-size:21px;max-width:100%}#place-note{font-size:11px}#credit{display:block;font-size:9px;max-width:100%}.tools{right:16px;bottom:112px;gap:3px}.tools button{font-size:13px;padding:8px 10px}#source{right:16px;top:14px;max-height:calc(100dvh - 150px)}#wipe-handle{top:48%}}@media(max-height:560px) and (min-width:601px){header,#search{top:10px}h1{font-size:22px}.captions{top:53px}footer{bottom:10px}footer h2{font-size:20px}.tools{bottom:10px}#source{top:10px;max-height:calc(100dvh - 75px)}}@media(prefers-reduced-motion:no-preference){button{transition:background .15s}}
