:root{--bg: #e0dbd0;--panel: rgba(247, 243, 237, .92);--ink: #1d1818;--muted: #6f6a64;--accent: #c8553d;--hl: #ebe4d9;--shadow: 0 1px 2px rgba(60, 50, 40, .1), 0 4px 14px rgba(60, 50, 40, .1);font-family:Inter,system-ui,-apple-system,Segoe UI,sans-serif}*{box-sizing:border-box}html,body{margin:0;height:100%;background:var(--bg);color:var(--ink);overflow:hidden}#map{position:fixed;inset:0}.vignette{position:fixed;inset:0;pointer-events:none;z-index:2;opacity:0;background:radial-gradient(ellipse at 50% 50%,transparent 55%,rgba(90,75,60,.13) 100%)}.card{background:var(--panel);border-radius:12px;box-shadow:var(--shadow)}.card>.hd{background:var(--accent);color:#fff;font-size:11px;font-weight:800;letter-spacing:.9px;text-transform:uppercase;padding:5px 14px;border-radius:12px 12px 0 0;white-space:nowrap}.sq{width:16px;height:16px;flex:none;display:inline-grid;place-items:center;background:var(--c, var(--muted));outline:1.5px solid #2b1d16;box-shadow:2px 2px #0006;color:#fff}.sq svg{width:10px;height:10px}.bar{position:fixed;top:24px;left:24px;right:24px;z-index:10;display:flex;align-items:flex-start;gap:12px;pointer-events:none}.bar>*{pointer-events:auto}.brand{min-width:230px}.brand .bd{display:flex;gap:10px;align-items:center;padding:8px 14px 10px}.brand .logo{--c: var(--accent);width:26px;height:26px}.brand .logo svg{width:16px;height:16px}.brand h1{margin:0;font-size:23px;font-weight:700;letter-spacing:-.01em;line-height:1.15}.search{position:absolute;left:50%;top:0;transform:translate(-50%);width:min(340px,100%)}.search:focus-within{outline:2px solid var(--accent);outline-offset:1px}.search .row{display:flex;align-items:center;gap:10px;padding:0 14px}.search .icon{color:var(--muted)}.search .icon svg{width:14px;height:14px}.search input{flex:1;min-width:0;padding:9px 0 10px;font:inherit;font-size:14px;color:var(--ink);background:none;border:0;outline:none}.search input::placeholder{color:var(--muted)}.search ul{position:absolute;left:0;right:0;top:100%;list-style:none;margin:6px 0 0;padding:4px 0;max-height:60vh;overflow-y:auto;background:var(--panel);border-radius:12px;box-shadow:var(--shadow)}.search li{display:flex;justify-content:space-between;gap:12px;padding:6px 14px;cursor:pointer}.search li[aria-selected=true],.search li:hover{background:var(--hl)}.search li .kind{color:var(--muted);font-size:12px;white-space:nowrap;align-self:center}.search li.empty{color:var(--muted);cursor:default}.modes{margin-left:auto}.modes .bd{display:grid;grid-template-columns:repeat(4,64px);gap:6px;padding:7px}.modes button,.modes .button{display:flex;flex-direction:column;align-items:center;gap:5px;padding:6px 0 5px;text-decoration:none;font:inherit;font-size:12px;font-weight:700;color:var(--ink);cursor:pointer;background:none;border:0;border-radius:8px}.modes .sq{width:24px;height:24px}.modes .sq svg{width:15px;height:15px}.modes button:hover,.modes .button:hover{background:#fff9}.modes button[aria-pressed=true]{background:#fff;box-shadow:var(--shadow)}.modes button[aria-pressed=true] .sq{--c: var(--accent)}.modes button:focus-visible,.modes .button:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.zoom{position:fixed;right:24px;top:50%;transform:translateY(-50%);z-index:10;display:flex;flex-direction:column;background:var(--panel);border-radius:10px;box-shadow:var(--shadow)}.zoom button{width:36px;height:40px;border:0;background:none;color:var(--ink);cursor:pointer;font:inherit;font-size:20px;line-height:1;display:grid;place-items:center}.zoom button+button{border-top:1px solid var(--hl)}.zoom button:hover{color:var(--accent)}.zoom button:focus-visible{outline:2px solid var(--accent);outline-offset:-2px;border-radius:10px}.zoom svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round}.legend{position:fixed;left:24px;bottom:24px;z-index:10}.legend .bd{display:grid;grid-template-columns:auto auto;gap:6px 18px;margin:0;padding:10px 14px;list-style:none;font-size:13px}.legend li{display:flex;align-items:center;gap:8px}.hud:not([hidden])~.legend{display:none}.lm{position:absolute;width:22px;height:29px;margin:-29px 0 0 -11px;padding:0;border:0;background:none;cursor:pointer;visibility:hidden}#map[data-lm="1"] .lm[data-tier="1"],#map[data-lm="2"] .lm:is([data-tier="1"],[data-tier="2"]),#map[data-lm="3"] .lm:not([data-tier="4"]),#map[data-lm="4"] .lm{visibility:visible}body.live-mode .lm{visibility:hidden!important}body.live-mode .lm.near{visibility:visible!important;pointer-events:none;z-index:2}body.live-mode .lm.near .sign{display:block}body.live-mode .lm.near .mark{animation:lm-pulse 1.1s ease-in-out infinite}@keyframes lm-pulse{50%{transform:translateY(-4px);box-shadow:3px 7px #00000059}}@media (prefers-reduced-motion: reduce){body.live-mode .lm.near .mark{animation:none}}.lm .mark{position:absolute;left:0;top:0;width:22px;height:22px;display:grid;place-items:center;background:var(--c);outline:2px solid #2b1d16;box-shadow:3px 3px #00000073}.lm .mark svg{width:13.5px;height:13.5px;fill:#fff}svg.px{display:block;fill:currentColor}.lm .tip{position:absolute;left:6px;bottom:0;width:0;height:0;border:5px solid transparent;border-bottom:0;border-top:7px solid #2b1d16}.lm .sign{position:absolute;left:29px;top:2px;white-space:nowrap;background:#1d1818;color:#fff;font-size:12px;font-weight:800;padding:3px 7px;box-shadow:2px 2px #0006;display:none}.lm:hover .sign,.lm:focus-visible .sign{display:block}.lm.on .mark{background:#fff;outline-color:var(--c)}.lm.on .mark svg{fill:var(--c)}.lm.on,.lm:hover,.lm:focus-visible{z-index:1}.lm:focus-visible{outline:none}.lm:focus-visible .mark{outline-color:var(--accent)}.inspector{position:fixed;left:24px;bottom:24px;z-index:11;width:330px;background:var(--panel);border-radius:14px;box-shadow:var(--shadow);overflow:hidden}.inspector[hidden]{display:none}.inspector:not([hidden])~.legend{display:none}.inspector .hd{background:var(--c);color:#1d1818;padding:8px 14px;font-size:12px;font-weight:800;letter-spacing:.8px;text-transform:uppercase}.inspector img{display:block;width:100%;height:150px;object-fit:cover;image-rendering:pixelated;background:var(--hl)}.inspector .bd{position:relative;padding:12px 14px 14px}.inspector h3{margin:0 30px 8px 0;font-size:18px;line-height:1.2}.inspector .close{position:absolute;right:10px;top:10px;width:28px;height:28px;border:0;border-radius:50%;background:#fff;box-shadow:var(--shadow);color:var(--ink);font-size:13px;cursor:pointer}.inspector .stats{display:grid;grid-template-columns:auto 1fr;gap:3px 12px;font-size:12.5px;margin-bottom:10px}.inspector .stats[hidden]{display:none}.inspector .stats b{color:var(--muted);font-weight:600}.inspector p{margin:0 0 12px;font-size:13px;line-height:1.45}.inspector .acts{display:flex;gap:6px}.inspector .acts button{border:0;border-radius:999px;padding:7px 14px;font:inherit;font-size:13px;font-weight:700;background:#fff;color:var(--ink);box-shadow:var(--shadow);cursor:pointer}.inspector .acts button.on{background:var(--accent);color:#fff}.inspector .acts .card-pc{box-shadow:inset 0 0 0 2px var(--accent),var(--shadow);color:var(--accent)}.passing{position:fixed;left:24px;bottom:76px;z-index:10;width:min(360px,calc(100vw - 32px));pointer-events:none;opacity:0;transform:translate(-16px);visibility:hidden;transition:opacity .3s,transform .3s,visibility 0s .3s}body.live-mode .passing.on{visibility:visible;opacity:1;transform:none;transition:opacity .3s,transform .3s}.passing>.hd{background:var(--c);color:#1d1818}.passing .bd{display:flex;gap:10px;align-items:flex-start;padding:9px 14px 10px}.passing .sq{--c: inherit;margin-top:2px}.passing b{display:block;font-size:17px;line-height:1.2}.passing small{display:block;margin-top:4px;font-size:12.5px;line-height:1.4;color:var(--muted)}.passing small[hidden]{display:none}.passing.chip{width:auto;max-width:min(360px,calc(100vw - 32px));border-radius:999px;pointer-events:auto;cursor:pointer}.passing.chip>.hd,.passing.chip small{display:none}.passing.chip .bd{align-items:center;padding:6px 14px 6px 8px}.passing.chip .sq{margin-top:0}.passing.chip b{font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}@media (prefers-reduced-motion: reduce){.passing,body.live-mode .passing.on{transition:none}}@media (pointer: coarse) and (max-height: 480px){.passing{display:none}}.stampbtn{position:fixed;right:24px;bottom:76px;z-index:10;width:46px;height:46px;padding:0;border:0;display:grid;place-items:center;background:var(--accent);color:#fff;cursor:pointer;outline:2px solid #2b1d16;box-shadow:3px 3px #00000073}.stampbtn svg{width:26px;height:26px}.stampbtn:hover{filter:brightness(1.08)}.stampbtn:focus-visible{outline-color:#fff}body.live-mode .stampbtn,.postcard[hidden]{display:none}.postcard .pc-back{position:fixed;inset:0;z-index:20;background:#1d181880}.pc-card{position:fixed;z-index:21;left:50%;top:50%;transform:translate(-50%,-50%);width:min(840px,calc(100vw - 24px));max-height:calc(100dvh - 24px);overflow-y:auto}.pc-card .bd{padding:16px;display:flex;flex-direction:column;gap:12px}.pc-card canvas{display:block;width:100%;height:auto;box-shadow:0 6px 22px #0000004d;background:#fbf7ef}.postcard.busy canvas{opacity:.55;transition:opacity .2s}.pc-row{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.pc-row label{display:flex;align-items:center;gap:8px;flex:1;min-width:200px;font-size:11px;font-weight:800;letter-spacing:.9px;text-transform:uppercase;color:var(--muted)}.pc-row input{flex:1;min-width:0;padding:7px 12px;border:0;border-radius:999px;background:#fff;box-shadow:var(--shadow);font:inherit;font-size:14px;font-weight:600;letter-spacing:0;text-transform:none;color:var(--ink)}.pc-row input:focus{outline:2px solid var(--accent)}.pc-acts button{border:0;border-radius:999px;padding:7px 14px;font:inherit;font-size:13px;font-weight:700;background:#fff;color:var(--ink);box-shadow:var(--shadow);cursor:pointer}.pc-acts{display:flex;gap:8px}.pc-acts .on{background:var(--accent);color:#fff;padding:9px 22px}.pc-acts button[hidden]{display:none}#pc-close{margin-left:auto}.scale{position:fixed;right:30px;bottom:28px;z-index:10;pointer-events:none;display:flex;flex-direction:column;align-items:center;gap:3px;font-size:11px;color:var(--muted);padding:4px 10px 6px;background:#f7f3edb3;border-radius:8px}.scale i{display:block;height:6px;border:1.5px solid #3a3430;border-top:0}.touch{position:fixed;left:0;right:0;bottom:38px;z-index:12;pointer-events:none;display:flex;justify-content:space-between;align-items:flex-end;padding:0 14px}.touch[hidden]{display:none}.touch .pad{display:flex;gap:10px;align-items:flex-end;pointer-events:auto}.touch .pad.right{flex-wrap:wrap;justify-content:flex-end;max-width:230px}.touch button{width:68px;height:68px;border-radius:50%;border:0;font:inherit;font-size:24px;font-weight:800;color:#fff;background:#14141873;box-shadow:0 2px 6px #00000059;touch-action:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}.touch button.wide{width:auto;height:46px;padding:0 14px;border-radius:23px;font-size:14px}.touch button[aria-pressed=true]{background:#c8553dd9}.touch button[hidden]{display:none}.popup{position:fixed;left:50%;top:24%;z-index:15;pointer-events:none;white-space:nowrap;font-size:34px;font-weight:800;color:#fff;letter-spacing:.5px;text-shadow:0 2px 0 #222,0 0 10px rgba(0,0,0,.55);transform:translate(-50%,-50%)}.popup.good{color:#ffe066}.popup.warn{color:#ff8a65}.popup.boost{color:#7fdcff}.popup.show{animation:pop 1.6s ease-out forwards}@keyframes pop{0%{opacity:0;transform:translate(-50%,-50%) scale(.6)}12%{opacity:1;transform:translate(-50%,-50%) scale(1.12)}22%{transform:translate(-50%,-50%) scale(1)}75%{opacity:1}to{opacity:0;transform:translate(-50%,-80%) scale(1)}}@media (prefers-reduced-motion: reduce){.popup.show{animation:none}}canvas.pixel{position:absolute;left:0;top:0;pointer-events:none;z-index:1;image-rendering:pixelated;transform-origin:0 0}#map .openseadragon-canvas,canvas.pixel{transition:filter .8s}body.sunset #map .openseadragon-canvas{filter:saturate(1.15) contrast(1.04)}#map .openseadragon-canvas{background:var(--bg)!important}body.sunset canvas.pixel,body.sunset canvas.live{filter:sepia(.25) saturate(1.2) hue-rotate(-10deg)}#tint{position:absolute;inset:0;z-index:1;pointer-events:none;mix-blend-mode:multiply;display:none}body.sunset #tint{display:block;background:linear-gradient(180deg,#ffbe96,#ffe1be 60%,#fff0e1)}canvas.live{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:1}.hud{position:fixed;left:24px;bottom:30px;z-index:10;padding:6px 12px;font-size:13px;font-variant-numeric:tabular-nums;background:var(--panel);border-radius:10px;box-shadow:var(--shadow)}.attribution{position:fixed;right:0;bottom:0;z-index:10;padding:2px 10px;font-size:10px;color:var(--muted);background:#f7f3edb3;border-top-left-radius:8px}.attribution a{color:inherit}@media (pointer: coarse){.hud{top:100px;bottom:auto}.hud .keys{display:none}}@media (pointer: coarse) and (max-width: 760px){.hud{top:186px}body.live-mode .hud{top:104px}}@media (max-width: 760px){.bar{flex-direction:column;align-items:stretch;top:12px;left:12px;right:12px;gap:8px}.brand{min-width:0}.brand .bd{padding:6px 12px 8px}.brand h1{font-size:20px}.search{position:relative;left:0;transform:none;width:100%}.modes{position:fixed;left:12px;right:12px;bottom:36px;margin-left:0}.modes .bd{grid-template-columns:repeat(4,1fr)}body.live-mode .brand,body.live-mode .search{display:none}body.live-mode .modes{top:12px;bottom:auto}.zoom,.legend{display:none}.inspector{left:8px;right:8px;bottom:8px;width:auto;max-height:60vh;overflow-y:auto}.inspector img{height:120px}.scale{right:16px;bottom:136px}.stampbtn{right:16px;bottom:180px}.passing,body.live-mode .scale{display:none}.attribution{left:0;text-align:right}}#map.crisp .openseadragon-canvas canvas,#map.crisp .openseadragon-canvas img{image-rendering:pixelated}@media (pointer: coarse){*{backdrop-filter:none!important;-webkit-backdrop-filter:none!important}}
