:root{color-scheme:light;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;--ink: #1f2a2d;--muted: #607177;--paper: rgba(255, 252, 244, .92);--paper-strong: rgba(255, 252, 244, .98);--shadow-border: 0 0 0 1px rgba(0, 0, 0, .06), 0 1px 2px -1px rgba(0, 0, 0, .08), 0 16px 40px rgba(45, 57, 63, .12);--shadow-border-hover: 0 0 0 1px rgba(0, 0, 0, .08), 0 2px 4px -2px rgba(0, 0, 0, .12), 0 20px 50px rgba(45, 57, 63, .16);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box}html,body{width:100%;height:100%;margin:0;overflow:hidden;background:#b7d8ec;color:var(--ink)}button,input{font:inherit}#app,#atlas-canvas,.label-layer{position:fixed;top:0;right:0;bottom:0;left:0}#atlas-canvas{width:100%;height:100%;display:block}.label-layer{pointer-events:auto}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.topbar,.info-panel,.mode-bar,.nav-gizmo{position:fixed;z-index:10}.topbar{top:16px;left:16px;display:flex;align-items:center;gap:10px}.brand-tile,.search,.primary-button,.mode-button,.nav-gizmo,.info-panel{box-shadow:var(--shadow-border);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.brand-tile{width:48px;height:48px;border-radius:12px;display:grid;place-items:center;background:var(--paper-strong);position:relative}.brand-tile span{position:absolute;bottom:13px;width:6px;background:#344b4d;border-radius:2px}.brand-tile span:nth-child(1){height:11px;left:15px}.brand-tile span:nth-child(2){height:19px;left:22px}.brand-tile span:nth-child(3){height:27px;left:29px}.search{width:min(360px,calc(100vw - 190px));min-width:0;height:48px;border-radius:14px;display:flex;align-items:center;gap:10px;padding:0 10px 0 18px;background:var(--paper-strong)}.search input{min-width:0;flex:1;border:0;outline:0;color:var(--ink);background:transparent}.search input::placeholder{color:#98a2a4}kbd{min-width:28px;height:28px;border-radius:8px;display:grid;place-items:center;color:#68777a;background:#2d3a3d12;font-size:13px}.primary-button,.secondary-button,.mode-button{min-height:44px;border:0;cursor:pointer;color:#18322d;background:var(--paper-strong);transition-property:transform,background-color,box-shadow,color;transition-duration:.16s;transition-timing-function:cubic-bezier(.2,0,0,1)}.primary-button:active,.secondary-button:active,.mode-button:active{transform:scale(.96)}.primary-button{height:48px;padding:0 20px;border-radius:14px;color:#fff;background:#1fb37f;font-weight:750}.secondary-button{height:48px;padding:0 16px;border-radius:14px;color:#526668;background:var(--paper-strong);font-weight:760}.secondary-button.is-active{color:#17332d;background:#e1f7edf5}.primary-button:hover,.secondary-button:hover,.mode-button:hover,.map-label:hover{box-shadow:var(--shadow-border-hover)}.panel-kicker{margin:0;color:#536c72;font-size:11px;font-weight:800;letter-spacing:.16em;text-transform:uppercase}.info-panel{right:24px;top:22px;width:310px;padding:18px;border-radius:18px;background:var(--paper)}.info-panel h2{margin:5px 0 8px;font-size:21px;line-height:1.05;text-wrap:balance}.info-panel p{margin:0;color:var(--muted);font-size:14px;line-height:1.45;text-wrap:pretty}.info-panel dl{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:16px 0 0}.info-panel dl div{padding:10px;border-radius:10px;background:#2039390f}.info-panel dt{color:#6a7b7e;font-size:11px;font-weight:760;text-transform:uppercase}.info-panel dd{margin:3px 0 0;color:#1f2a2d;font-size:13px;font-weight:690;line-height:1.25}.mode-bar{left:22px;bottom:22px;display:flex;gap:8px;padding:8px;border-radius:18px;background:#f5f1e2c7;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.mode-button{--mode-color: #22373a;min-width:74px;padding:0 12px 0 10px;border-radius:10px;display:inline-flex;align-items:center;justify-content:center;gap:7px;color:#57696c;font-size:13px;font-weight:780}.mode-button[data-layer=terrain]{--mode-color: #4f9d61}.mode-button[data-layer=economy]{--mode-color: #e46f3e}.mode-button[data-layer=cities]{--mode-color: #5a8dff}.mode-button[data-layer=landmarks]{--mode-color: #9a6df2}.mode-button[data-layer=off]{--mode-color: #66777a}.mode-button.is-active{color:#1d2a2d;background:#fffcf4f5}.mode-dot{width:22px;height:22px;flex:0 0 22px;border-radius:999px;display:grid;place-items:center;color:var(--mode-color);background:transparent;box-shadow:inset 0 0 0 2px var(--mode-color);transition-property:background-color,box-shadow,color;transition-duration:.16s;transition-timing-function:cubic-bezier(.2,0,0,1)}.mode-dot svg{width:13px;height:13px;display:block;fill:currentColor}.mode-button.is-active .mode-dot{color:#fff;background:var(--mode-color);box-shadow:inset 0 0 0 1px #ffffff80,0 0 0 3px #fffcf4e6}.mode-label{min-width:0;overflow:hidden;text-overflow:ellipsis}.nav-gizmo{right:24px;bottom:24px;width:202px;height:128px;padding:8px 10px 8px 8px;border-radius:28px;display:flex;align-items:center;gap:10px;background:#f6faf5b8;text-align:center}.gizmo-compass{--compass-rotation: 0rad;position:relative;width:112px;height:112px;margin:0;border-radius:999px;background:radial-gradient(circle at center,rgba(255,252,244,.96) 0 18%,transparent 19%),radial-gradient(circle at center,transparent 0 54%,rgba(32,55,58,.14) 55% 56%,transparent 57%),conic-gradient(from 0deg,rgba(31,52,55,.18) 0 3deg,transparent 3deg 42deg,rgba(31,52,55,.1) 42deg 48deg,transparent 48deg 87deg,rgba(31,52,55,.18) 87deg 93deg,transparent 93deg 132deg,rgba(31,52,55,.1) 132deg 138deg,transparent 138deg 177deg,rgba(31,52,55,.18) 177deg 183deg,transparent 183deg 222deg,rgba(31,52,55,.1) 222deg 228deg,transparent 228deg 267deg,rgba(31,52,55,.18) 267deg 273deg,transparent 273deg 312deg,rgba(31,52,55,.1) 312deg 318deg,transparent 318deg 360deg),conic-gradient(from 45deg,#ffffffd1,#fff3,#ffffffd1);box-shadow:inset 0 0 0 1px #20373a17,0 10px 24px #1f2a2d1f}.gizmo-compass:after{content:"";position:absolute;top:50%;left:50%;z-index:3;width:10px;height:10px;border-radius:999px;background:#22373a;transform:translate(-50%,-50%);box-shadow:0 0 0 4px #fffcf4e6;pointer-events:none}.gizmo-rose{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:inherit;transform:rotate(var(--compass-rotation));transition-property:transform;transition-duration:.12s;transition-timing-function:cubic-bezier(.2,0,0,1)}.gizmo-rose:before{content:"";position:absolute;top:16px;right:16px;bottom:16px;left:16px;border-radius:inherit;background:conic-gradient(from -18deg,#d84736 0 36deg,transparent 36deg 180deg,#2b5660 180deg 216deg,transparent 216deg 360deg);clip-path:polygon(50% 0,61% 42%,100% 50%,61% 58%,50% 100%,39% 58%,0 50%,39% 42%);opacity:.9;pointer-events:none}.gizmo-tick{position:absolute;top:10px;bottom:10px;left:50%;width:1px;background:#20373a2e;transform:translate(-50%);pointer-events:none}.gizmo-tick.is-east-west{transform:translate(-50%) rotate(90deg)}.gizmo-button{position:absolute;z-index:2;width:40px;height:40px;border:0;border-radius:999px;display:grid;place-items:center;color:#53686b;background:#fffcf4e6;box-shadow:0 0 0 1px #0000000d,0 6px 14px #2732351a;cursor:pointer;font-size:12px;font-weight:820;transition-property:transform,background-color,box-shadow,color;transition-duration:.16s;transition-timing-function:cubic-bezier(.2,0,0,1)}.gizmo-button:hover{box-shadow:var(--shadow-border-hover)}.gizmo-button:active{transform:scale(.96)}.gizmo-button.is-active{color:#fff;background:#22373a}.gizmo-button.is-north{top:0;left:36px}.gizmo-button.is-east{top:36px;right:0}.gizmo-button.is-south{bottom:0;left:36px}.gizmo-button.is-west{top:36px;left:0}.gizmo-button.is-top{top:36px;left:36px;z-index:4}.gizmo-map{width:52px;height:82px;display:block;flex:0 0 auto}.gizmo-map path{fill:#d8ceb7e6;stroke:#2a3f429e;stroke-width:2.3}.gizmo-map circle{fill:#19a878;stroke:#fff;stroke-width:4}.map-label{--poi-type-color: var(--label-accent, #76b7ff);position:relative;z-index:10;min-height:34px;display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:7px;border:0;border-radius:8px;padding:6px 9px;color:#1d2a2d;background:#fffcf4f5;box-shadow:var(--shadow-border);cursor:pointer;pointer-events:auto;white-space:nowrap;overflow:visible;transition-property:opacity,filter,box-shadow,background-color,border-radius,padding,width,height;transition-duration:.18s;transition-timing-function:cubic-bezier(.2,0,0,1)}.map-label:after{content:"";position:absolute;top:-4px;right:-4px;bottom:-4px;left:-4px;border-radius:12px}.label-icon{width:24px;height:24px;border-radius:7px;display:grid;place-items:center;color:#fff;background:var(--label-accent, #76b7ff);box-shadow:inset 0 0 0 1px #ffffff85}.label-icon svg{width:15px;height:15px;display:block;fill:currentColor}.label-logo{width:auto;min-width:28px;padding:0 5px;font-size:8px;font-weight:870;letter-spacing:.02em;line-height:1;font-variant-numeric:tabular-nums}.label-shield{background:#fffcf4f5;padding:2px}.label-shield img{width:100%;height:100%;display:block;object-fit:contain}.label-copy{min-width:0;display:flex;flex-direction:column;align-items:flex-start;gap:2px}.map-label strong{max-width:170px;overflow:hidden;color:#1d2a2d;font-size:13px;line-height:1.02;text-overflow:ellipsis}.map-label .label-copy>span{color:#33845e;font-size:11px;font-weight:790;font-variant-numeric:tabular-nums}.map-label.cities{--label-accent: #5a8dff;--poi-type-color: #5a8dff;z-index:30}.map-label.economy{--label-accent: #e46f3e;--poi-type-color: #e46f3e;z-index:50}.map-label.landmarks{--label-accent: #9a6df2;--poi-type-color: #9a6df2;z-index:40}.map-label.terrain{--label-accent: #4f9d61;--poi-type-color: #4f9d61;z-index:20}.map-label.mini{z-index:5}.map-label[data-priority=high]{z-index:60}.map-label.mini{min-height:30px;padding:5px 8px;border-radius:8px;pointer-events:auto}.map-label.mini .label-icon{width:19px;height:19px;border-radius:6px}.map-label.mini .label-icon svg{width:12px;height:12px}.map-label.mini strong{max-width:126px;font-size:11px}.map-label.mini .label-copy>span{color:#65777a;font-size:10px}.map-label.is-distant:not(:hover):not(:focus-visible):not(.is-selected){width:max-content;height:20px;min-height:20px;grid-template-columns:auto;gap:0;padding:1px;border-radius:6px;color:#fff;background:#fffcf4c7;box-shadow:0 7px 16px #1f2a2d2e}.map-label.is-distant:not(:hover):not(:focus-visible):not(.is-selected) .label-copy{opacity:0;pointer-events:none}.map-label.is-distant:not(:hover):not(:focus-visible):not(.is-selected) .label-icon{width:var(--poi-world-icon-size, 18px);height:var(--poi-world-icon-size, 18px);border-radius:5px;opacity:1;box-shadow:0 2px 6px #1f2a2d2e}.poi-icon-outline-enabled .map-label.is-distant:not(:hover):not(:focus-visible):not(.is-selected){box-shadow:0 0 0 1px #fff,0 7px 16px #1f2a2d2e}.poi-icon-outline-enabled .map-label.is-distant:not(:hover):not(:focus-visible):not(.is-selected) .label-icon{box-shadow:0 0 0 var(--poi-compact-icon-outline-width, 1px) #fff,0 2px 6px #1f2a2d2e}.map-label.is-distant:not(:hover):not(:focus-visible):not(.is-selected) .label-icon svg{width:calc(var(--poi-world-icon-size, 18px) * .62);height:calc(var(--poi-world-icon-size, 18px) * .62)}.map-label.is-distant:not(:hover):not(:focus-visible):not(.is-selected) .label-logo{width:auto;min-width:calc(var(--poi-world-icon-size, 18px) + 4px);height:var(--poi-world-icon-size, 18px);padding:0 3px;font-size:6px;border-radius:5px}.map-label.is-distant:not(:hover):not(:focus-visible):not(.is-selected) .label-shield{padding:2px}.map-label.is-distant:not(:hover):not(:focus-visible):not(.is-selected):after{top:-10px;right:-10px;bottom:-10px;left:-10px;border-radius:14px}.map-label.is-distant:not(:hover):not(:focus-visible):not(.is-selected) .label-copy{width:0;max-width:0;overflow:hidden}.map-label.is-muted{opacity:.2;filter:blur(1px)}.map-label.is-selected{z-index:80;box-shadow:0 0 0 2px #1fb37f3d,0 12px 34px #19414133}.map-label:focus-visible{outline:2px solid var(--poi-type-color);outline-offset:3px}.panel-logo{min-height:24px;min-width:40px;width:fit-content;margin-top:8px;border-radius:7px;display:grid;place-items:center;padding:0 7px;color:#fff;background:var(--label-accent, #22373a);font-size:10px;font-weight:860;letter-spacing:.03em;font-variant-numeric:tabular-nums}.labels-hidden .map-label{opacity:0;filter:blur(4px);pointer-events:none}.is-ground-dragging,.is-ground-dragging .label-layer{cursor:grabbing}.stagger-in{opacity:0;transform:translateY(12px);filter:blur(4px);animation:fade-in-up .42s cubic-bezier(.2,0,0,1) forwards}.stagger-in:nth-of-type(2){animation-delay:80ms}.stagger-in:nth-of-type(3){animation-delay:.16s}.stagger-in:nth-of-type(4){animation-delay:.24s}@keyframes fade-in-up{to{opacity:1;transform:translateY(0);filter:blur(0)}}@media (max-width: 820px){.topbar{right:12px;left:12px;top:12px}.brand-tile{display:none}.search{width:auto;min-width:0;flex:1}.primary-button{flex:0 0 64px;padding:0 12px}.secondary-button{flex:0 0 56px;padding:0 10px}.info-panel{right:12px;top:72px;left:12px;width:auto;padding:14px}.info-panel dl{grid-template-columns:1fr;margin-top:12px}.mode-bar{right:12px;left:12px;bottom:12px;gap:6px;overflow:hidden;justify-content:flex-start}.mode-button{flex:1 1 0;min-width:0;padding:0;gap:0;font-size:11px}.mode-label{display:none}.mode-dot{width:26px;height:26px;flex-basis:26px}.nav-gizmo{right:12px;bottom:76px;width:164px;height:112px;padding:8px;border-radius:24px;gap:8px}.gizmo-compass{width:96px;height:96px}.gizmo-button{width:40px;height:40px}.gizmo-button.is-north,.gizmo-button.is-south{left:28px}.gizmo-button.is-east,.gizmo-button.is-west,.gizmo-button.is-top{top:28px}.gizmo-button.is-top{left:28px}.gizmo-map{width:42px;height:66px}.map-label:not(.is-distant):not([data-priority=high]):not(.is-selected){display:none}.map-label[data-priority=high]:not(.is-distant),.map-label.is-selected,.map-label.is-distant:hover,.map-label.is-distant:focus-visible{display:grid;padding:6px 8px;gap:6px}.map-label[data-priority=high]:not(.is-distant) .label-icon,.map-label.is-selected .label-icon,.map-label.is-distant:hover .label-icon,.map-label.is-distant:focus-visible .label-icon{width:21px;height:21px;border-radius:6px}.map-label[data-priority=high]:not(.is-distant) strong,.map-label.is-selected strong,.map-label.is-distant:hover strong,.map-label.is-distant:focus-visible strong{max-width:112px;overflow:hidden;text-overflow:ellipsis;font-size:11px}.map-label[data-priority=high]:not(.is-distant) .label-copy>span,.map-label.is-selected .label-copy>span,.map-label.is-distant:hover .label-copy>span,.map-label.is-distant:focus-visible .label-copy>span{font-size:10px}.map-label.mini{display:none}}
