:root{color-scheme:light;font-family:"PingFang SC","Microsoft YaHei",system-ui,sans-serif;color:#17314c;background:#edf4fc}*{box-sizing:border-box}html,body,.ortho-viewer{width:100%;height:100%;margin:0;overflow:hidden}.ortho-viewer{position:relative;background:radial-gradient(ellipse at center,#fff,#e7f1fc)}#ortho-map{position:absolute;inset:0;background-color:#edf3f9;background-image:linear-gradient(#c8daed55 1px,transparent 1px),linear-gradient(90deg,#c8daed55 1px,transparent 1px);background-size:32px 32px;outline:none}#ortho-map:focus-visible{outline:3px solid #0672ff;outline-offset:-3px}.ortho-heading{position:absolute;z-index:600;top:24px;left:24px;pointer-events:none;padding:17px 22px;border:1px solid #ffffffc9;border-radius:16px;background:#ffffffd9;backdrop-filter:blur(16px);box-shadow:0 8px 32px #23476e0a}.ortho-badge{display:inline-block;font-size:10px;letter-spacing:1.4px;color:#0672ff;font-weight:700}.ortho-heading h1{font-size:21px;margin:8px 0 5px;font-weight:650;letter-spacing:.2px}.ortho-heading p{font-size:12px;color:#73879c;margin:0}.ortho-actions{position:absolute;z-index:650;top:24px;right:24px;display:flex;gap:6px}.ortho-actions button,#retry{height:36px;min-width:36px;padding:0 11px;border-radius:9px;border:1px solid #d5e2f1;color:#27537e;background:#fffefc;box-shadow:0 2px 12px #23476e09;font:600 12px inherit;cursor:pointer}.ortho-actions button:first-child,.ortho-actions button:nth-child(2){font-size:19px;padding:0}.ortho-actions button:hover,#retry:hover{border-color:#0875ff;color:#0068ed}.ortho-actions button:focus-visible,#retry:focus-visible{outline:3px solid #0b75ff66;outline-offset:2px}.ortho-actions button:disabled{opacity:.4;cursor:default}.ortho-bottom{position:absolute;z-index:600;bottom:0;left:0;right:0;min-height:34px;padding:9px 18px;display:flex;align-items:center;justify-content:space-between;gap:12px;background:#ffffffd9;backdrop-filter:blur(12px);font-size:10px;color:#72869b;pointer-events:none}.ortho-source{color:#375c83}.ortho-resolution{position:absolute;z-index:600;right:24px;bottom:55px;display:flex;align-items:center;gap:13px;padding:12px 16px;border-radius:13px;background:#ffffffdc;backdrop-filter:blur(12px);border:1px solid #fff;color:#7a8c9d;font-size:11px;pointer-events:none}.ortho-resolution b{color:#0672ff;font-size:25px;font-weight:650}.ortho-resolution b span{font-size:12px;margin-left:3px}.leaflet-control-scale{margin-left:24px!important;margin-bottom:53px!important}.leaflet-control-scale-line{background:#fffdfb;color:#4b6580;border-color:#4b6580;font-size:10px}.leaflet-control-attribution{display:none}.ortho-loading{position:absolute;z-index:700;inset:0;display:flex;flex-direction:column;justify-content:center;align-items:center;background:#edf4fbe8;color:#375c83;font-size:13px;transition:opacity .25s}.ortho-loading[hidden]{display:none}.ortho-loading.is-error{background:#edf4fbf2}.spinner{width:28px;height:28px;border:2px solid #cbdff5;border-top-color:#0672ff;border-radius:50%;animation:spin .9s linear infinite}.ortho-loading.is-error .spinner{display:none}.ortho-noscript{position:absolute;z-index:800;top:40%;width:100%;text-align:center;background:white;padding:20px}@keyframes spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.spinner{animation:none}}@media(max-width:650px){.ortho-heading{top:15px;left:15px;padding:12px 15px}.ortho-heading h1{font-size:17px}.ortho-heading p{display:none}.ortho-actions{top:108px;right:13px;flex-direction:column}.ortho-actions button{height:34px;padding:0 7px;min-width:39px}.ortho-bottom{font-size:9px;padding:9px 12px}.ortho-source{display:none}.ortho-resolution{right:13px;bottom:50px;padding:8px 12px;gap:8px}.ortho-resolution b{font-size:22px}.ortho-resolution>span{font-size:10px}.leaflet-control-scale{margin-left:15px!important}}@media(max-height:400px){.ortho-heading p,.ortho-resolution{display:none}}

.ortho-placeholder{position:absolute;inset:12%;width:76%;height:76%;object-fit:contain;opacity:.65}.ortho-loading-card{position:relative;display:flex;flex-direction:column;align-items:center;background:#fffffff2;border:1px solid #e1ecf8;border-radius:16px;box-shadow:0 12px 45px #264e7420;backdrop-filter:blur(14px);padding:25px 32px}

/* Overlap raster edges by one display pixel to prevent fractional-zoom hairlines. */
#ortho-map .leaflet-tile{width:257px!important;height:257px!important;mix-blend-mode:normal}
