:root{--theme-paper:#f4ead7;--theme-ink:#2c2620;--theme-accent:#9c4f27;--theme-muted:#7b6b5b;--theme-land:#dfd2b9;--theme-water:#7fa9aa}*{box-sizing:border-box;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent;margin:0;padding:0}html,body,#app{width:100vw;height:100vh;overscroll-behavior:none;touch-action:none;cursor:grab;background-color:#d8ecfa;height:100dvh;font-family:Avenir Next,Segoe UI,system-ui,-apple-system,sans-serif;overflow:hidden}body.is-mobile,body.is-mobile #app{cursor:default}body.pointer-locked,body.pointer-locked #app{cursor:none}canvas{touch-action:none;outline:none;width:100%;height:100%;display:block}.loading-screen{z-index:120;padding:env(safe-area-inset-top,0px) env(safe-area-inset-right,0px) env(safe-area-inset-bottom,0px) env(safe-area-inset-left,0px);cursor:default;touch-action:manipulation;background:radial-gradient(circle at 50% 42%,#fbf6ea 0%,#efe4cf 68%,#e4d4b9 100%);justify-content:center;align-items:center;transition:opacity .56s cubic-bezier(.22,1,.36,1),visibility .56s;display:flex;position:fixed;inset:0}.loading-screen.is-loaded{opacity:0;visibility:hidden;pointer-events:none}.loading-minimal{flex-direction:column;align-items:center;gap:20px;display:flex}.sparrow-progress{justify-content:center;align-items:center;display:flex}.sparrow-silhouette-base{fill:#3a2d242e;stroke:#3a2d242e}.sparrow-silhouette-fill{fill:#3a2d24e0;stroke:#3a2d24e0}.loading-status{text-transform:uppercase;color:#3a2d24d1;font-size:14px;font-weight:700}.loading-status.is-error{text-align:center;text-transform:none;color:#8f3926;background:#fcf1e8eb;border:1.5px solid #b04c346b;border-radius:12px;max-width:min(420px,100vw - 32px);padding:10px 16px;line-height:1.45}.loading-status.is-hidden,.press-start-btn.is-hidden{display:none}.press-start-btn{appearance:none;color:#3a2d24;text-transform:uppercase;cursor:pointer;touch-action:manipulation;background:#fdf9f0b8;border:2px solid #3a2d2461;border-radius:999px;padding:10px 28px;font-family:inherit;font-size:14px;font-weight:700;transition:transform .14s,background-color .14s,border-color .14s;animation:2.1s ease-in-out infinite pressStartPulse;box-shadow:0 4px 14px #261c121a}.press-start-btn:hover,.press-start-btn:focus-visible{background:#fffcf6f5;border-color:#3a2d24ad;outline:none;transform:translateY(-1px)}.press-start-btn:active{transform:translateY(1px)}@keyframes pressStartPulse{0%,to{opacity:.86}50%{opacity:1}}.tutorial-overlay{z-index:20;pointer-events:none;max-width:calc(100vw - 24px);transition:opacity .28s,transform .28s cubic-bezier(.22,1,.36,1),visibility .28s;position:fixed;top:16%;left:50%;transform:translate(-50%,-50%)}.tutorial-overlay.is-mobile{top:calc(env(safe-area-inset-top,0px) + 52px)}.tutorial-overlay.is-idle{opacity:0;visibility:hidden;transform:translate(-50%,-42%)scale(.94)}.tutorial-overlay.is-complete{opacity:0;visibility:hidden;transform:translate(-50%,-32%)scale(.9)}.tutorial-keys{justify-content:center;align-items:center;gap:10px;display:flex}.tutorial-keys.step-pop{animation:.26s cubic-bezier(.22,1,.36,1) indieStepPop}@keyframes indieStepPop{0%{opacity:.35;transform:scale(.86)translateY(6px)}to{opacity:1;transform:scale(1)translateY(0)}}.indie-key{color:#232128;letter-spacing:.05em;background:#fbf5e8;border:2px solid #dfd2bc;border-radius:11px;justify-content:center;align-items:center;min-width:48px;height:48px;padding:0 14px;font-size:18px;font-weight:800;transition:transform 70ms,box-shadow 70ms,background-color .1s;display:inline-flex;transform:translateY(0);box-shadow:0 5px #b7a78e,0 8px 16px #0c0e1652}.indie-key.is-wide{letter-spacing:.12em;min-width:148px;font-size:16px}.indie-key.is-medium{letter-spacing:.1em;min-width:92px;font-size:14.5px}.indie-key.is-square{letter-spacing:0;width:46px;min-width:46px;height:46px;padding:0;font-size:17px}.wasd-cluster{grid-template-rows:repeat(2,46px);grid-template-columns:repeat(3,46px);place-items:center;gap:7px 6px;display:grid}.wasd-w{grid-area:1/2}.wasd-a{grid-area:2/1}.wasd-s{grid-area:2/2}.wasd-d{grid-area:2/3}.indie-key.is-pressed{background:#ffd778;border-color:#e5b248;transform:translateY(4px);box-shadow:0 1px #b68a32,0 3px 6px #0c0e1638}.mobile-tutorial-row{flex-wrap:nowrap;justify-content:center;align-items:center;gap:8px;display:inline-flex}.mobile-touch-pill{color:#262229;white-space:nowrap;background:#fbf5e8f0;border:2px solid #dfd2bc;border-radius:999px;align-items:center;gap:7px;padding:6px 12px 6px 8px;transition:transform 80ms,box-shadow 80ms,background-color .1s;display:inline-flex;box-shadow:0 3px #b7a78e,0 6px 14px #0c0e1638}.mobile-touch-pill.is-pressed{background:#ffd778;border-color:#e5b248;transform:translateY(2px);box-shadow:0 1px #b68a32,0 3px 8px #0c0e162e}.mobile-touch-gesture{color:#fbf5e8;letter-spacing:.08em;background:#332a24;border-radius:999px;justify-content:center;align-items:center;padding:2px 7px;font-size:10.5px;font-weight:800;display:inline-flex}.mobile-touch-hint{letter-spacing:.01em;font-size:12.5px;font-weight:700}.journal-hud{top:calc(env(safe-area-inset-top,0px) + 14px);left:calc(env(safe-area-inset-left,0px) + 14px);z-index:18;pointer-events:none;flex-direction:column;align-items:flex-start;gap:8px;transition:opacity .45s,transform .45s cubic-bezier(.22,1,.36,1),visibility .45s;display:flex;position:fixed}.journal-hud.is-hidden{opacity:0;visibility:hidden;transform:translateY(-10px)}.journal-top-bar{pointer-events:auto;align-items:center;gap:8px;display:inline-flex}.journal-pill{appearance:none;cursor:pointer;touch-action:manipulation;color:#29252c;white-space:nowrap;background:#fbf5e8eb;border:2px solid #44382e38;border-radius:999px;align-items:center;gap:9px;padding:7px 13px;font-family:inherit;font-size:13.5px;font-weight:700;transition:background-color .15s,border-color .15s,transform .12s;display:inline-flex;box-shadow:0 6px 18px #1216222e}.journal-pill:hover{background:#fffbf3fa;border-color:#44382e73}.journal-pill:focus-visible{outline-offset:2px;background:#fffbf3fa;border-color:#44382e85;outline:2px solid #c86428}.journal-stat{align-items:center;gap:6px;display:inline-flex}.journal-seed-dot{background:linear-gradient(135deg,#f6e4bc 0%,#cf8436 100%);border:1.5px solid #8c531e;border-radius:44% 56% 52% 48%;width:11px;height:9px;box-shadow:0 1px 2px #2a1a0c38}.journal-sep{color:#29252c66}.journal-tab-key{letter-spacing:.06em;color:#3a332d;background:#ebe0cc;border:1px solid #cbbba0;border-radius:5px;padding:2px 6px;font-size:10.5px;font-weight:800;box-shadow:0 2px #b7a68b}.journal-card{width:max-content;max-width:calc(100vw - env(safe-area-inset-left,0px) - env(safe-area-inset-right,0px) - 28px);max-height:calc(100dvh - env(safe-area-inset-top,0px) - env(safe-area-inset-bottom,0px) - 74px);background:color-mix(in srgb, var(--theme-paper) 95%, transparent);border:2px solid color-mix(in srgb, var(--theme-ink) 22%, transparent);opacity:0;visibility:hidden;transform-origin:0 0;pointer-events:none;touch-action:pan-y;border-radius:16px;padding:12px 14px;transition:opacity .24s,transform .24s cubic-bezier(.22,1,.36,1),visibility .24s;overflow-y:auto;transform:translateY(-6px)scale(.97);box-shadow:0 14px 32px #1014203d}.journal-hud.is-expanded .journal-card{opacity:1;visibility:visible;pointer-events:auto;transform:translateY(0)scale(1)}.journal-list{flex-direction:column;gap:6px;list-style:none;display:flex}.journal-item{color:#2f2a28;white-space:nowrap;flex-direction:row;align-items:center;gap:8px;font-size:clamp(11px,2.85vw,12.5px);line-height:1.25;display:flex}.journal-body{flex-direction:column;gap:1px;min-width:0;display:flex}.journal-label{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.journal-hint{color:#2f2a28a8;white-space:normal;font-size:10px;line-height:1.25;display:none}.journal-item.is-tracked .journal-hint{display:block}.journal-item.is-done{color:#2f2a2885}.journal-item.is-done .journal-label{text-decoration:line-through}.journal-check{color:#0000;background:#fffcf6b8;border:1.5px solid #9d8974;border-radius:4px;flex-shrink:0;justify-content:center;align-items:center;width:15px;height:15px;font-size:10.5px;font-weight:900;line-height:1;display:inline-flex}.journal-item.is-done .journal-check{color:#fffaf0;background:#3f9154;border-color:#357c47}.journal-toast-host{top:calc(env(safe-area-inset-top,0px) + 14px);right:calc(env(safe-area-inset-right,0px) + 14px);z-index:19;pointer-events:none;flex-direction:column;align-items:flex-end;gap:8px;display:flex;position:fixed}.journal-toast{max-width:calc(100vw - env(safe-area-inset-left,0px) - env(safe-area-inset-right,0px) - 28px);white-space:nowrap;background:#fcf6eaf5;border:2px solid #df9b42;border-radius:12px;flex-direction:row;align-items:center;gap:9px;padding:8px 13px;transition:opacity .35s,transform .35s;animation:.34s cubic-bezier(.22,1,.36,1) toastSlideIn;display:inline-flex;box-shadow:0 10px 24px #12141e38}.journal-toast.is-leaving{opacity:0;transform:translateY(-8px)scale(.97)}@keyframes toastSlideIn{0%{opacity:0;transform:translateY(-10px)scale(.95)}to{opacity:1;transform:translateY(0)scale(1)}}.journal-toast-stamp{color:#fffaf0;background:#3f9154;border:1.5px solid #357c47;border-radius:5px;flex-shrink:0;justify-content:center;align-items:center;width:18px;height:18px;font-size:11.5px;font-weight:900;line-height:1;display:inline-flex}.journal-toast.is-royal{background:#fff9e8fa;border-color:#e4a328}.journal-toast.is-royal .journal-toast-stamp{color:#3a2308;background:linear-gradient(135deg,#ffd866 0%,#df961e 100%);border-color:#b57410}.journal-toast-label{color:#292423;white-space:nowrap;text-overflow:ellipsis;font-size:clamp(11.5px,3vw,13.5px);font-weight:700;line-height:1.2;overflow:hidden}@media (max-width:680px){.journal-toast-host{top:calc(env(safe-area-inset-top,0px) + 56px);left:calc(env(safe-area-inset-left,0px) + 14px);align-items:flex-start;right:auto}}.mobile-joystick{z-index:16;pointer-events:none;opacity:0;will-change:transform, opacity;width:0;height:0;transition:opacity .14s;position:fixed;top:0;left:0}.mobile-joystick.is-active{opacity:1;transition:none}.mobile-joystick-ring{background:#fcf8f01f;border:1.5px solid #fffaf06b;border-radius:50%;width:86px;height:86px;position:absolute;top:0;left:0;transform:translate(-50%,-50%);box-shadow:0 0 0 1px #2a221c1f}.mobile-joystick-nub{will-change:transform;background:#fffbf357;border:1.5px solid #fffbf39e;border-radius:50%;width:32px;height:32px;position:absolute;top:0;left:0;transform:translate(-50%,-50%);box-shadow:0 2px 8px #1c161224}.journal-item[role=button]{cursor:pointer;border-radius:6px;margin:0 -4px;padding:2px 4px}.journal-item[role=button]:hover{background:#ffd77838}.journal-item[role=button]:focus-visible{outline-offset:1px;outline:2px solid #c86428}.journal-item.is-tracked{background:#ffd7786b}.journal-item.is-done[role=button]{cursor:default}.journal-track{text-align:center;color:#2f2a2857;flex-shrink:0;width:12px;font-size:10px;line-height:1}.journal-item.is-tracked .journal-track{color:#b57410}.objective-hud{top:calc(env(safe-area-inset-top,0px) + 104px);z-index:21;background:color-mix(in srgb, var(--theme-paper) 94%, transparent);border:2px solid color-mix(in srgb, var(--theme-ink) 20%, transparent);pointer-events:auto;border-radius:999px;align-items:center;gap:9px;max-width:calc(100vw - 28px);padding:6px 8px 6px 7px;display:flex;position:fixed;left:50%;transform:translate(-50%);box-shadow:0 6px 18px #1216222e}.objective-hud[hidden],.journal-hud.is-expanded~.objective-hud{display:none}.objective-hud.is-arrived{border-color:#3f9154;box-shadow:0 0 0 2px #3f91543d,0 6px 18px #1216222e}.objective-radar{background:#332a24;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:30px;height:30px;display:flex;position:relative}.objective-radar:after{content:"";border:1px dashed #fbf5e866;border-radius:50%;position:absolute;inset:4px}.objective-arrow{color:#ffd778;font-size:12px;line-height:1;transition:transform .2s linear}.objective-text{flex-direction:column;min-width:0;display:flex}.objective-kicker{letter-spacing:.12em;text-transform:uppercase;color:#3a2d248c;font-size:8.5px;font-weight:800}.objective-label{text-overflow:ellipsis;white-space:nowrap;max-width:46vw;color:var(--theme-ink);font-size:12px;font-weight:700;overflow:hidden}.objective-distance{color:#2f2a289e;white-space:nowrap;font-size:10px}.objective-hint{text-overflow:ellipsis;white-space:nowrap;color:#2f2a28b8;max-width:46vw;font-size:10px;line-height:1.25;overflow:hidden}.objective-edge{z-index:20;pointer-events:none;white-space:nowrap;background:#332a24db;border:2px solid #ffd7788c;border-radius:999px;align-items:center;gap:6px;padding:4px 9px 4px 7px;display:flex;position:fixed;top:0;left:0;transform:translate(-50%,-50%);box-shadow:0 4px 14px #1216223d}.objective-edge[hidden]{display:none}.objective-edge-arrow{color:#ffd778;font-size:13px;line-height:1;transition:transform .12s linear}.objective-edge-distance{color:#fbf5e8;font-size:10px;font-weight:700}.objective-hud.is-arrived .objective-kicker{color:#2f7a48}.objective-hud.is-arrived .objective-hint{color:#2f6f43;font-weight:700}.objective-clear{appearance:none;cursor:pointer;touch-action:manipulation;color:#3a332d;background:#fffcf6e6;border:1.5px solid #44382e38;border-radius:7px;flex-shrink:0;justify-content:center;align-items:center;width:24px;height:24px;font-family:inherit;font-size:15px;font-weight:800;line-height:1;display:inline-flex}.objective-clear:hover{background:#fff;border-color:#44382e80}.objective-hud.is-mobile{top:calc(env(safe-area-inset-top,0px) + 112px)}.mission-hud{top:calc(env(safe-area-inset-top,0px) + 58px);z-index:22;pointer-events:none;width:min(460px,100vw - 28px);position:fixed;left:50%;transform:translate(-50%)}.mission-hud[hidden]{display:none}.mission-strip{background:color-mix(in srgb, var(--theme-paper) 94%, transparent);border:2px solid color-mix(in srgb, var(--theme-ink) 20%, transparent);border-radius:14px;align-items:center;gap:9px;padding:6px 10px;display:flex;box-shadow:0 6px 18px #1216222e}.mission-hud.has-result .mission-strip{display:none}.mission-kicker{color:#ffd778;letter-spacing:.12em;text-transform:uppercase;background:#332a24;border-radius:6px;flex-shrink:0;padding:3px 6px;font-size:8px;font-weight:800}.mission-copy{flex-direction:column;flex:1;min-width:0;display:flex}.mission-title{text-overflow:ellipsis;white-space:nowrap;letter-spacing:.08em;text-transform:uppercase;color:#3a2d248c;font-size:9px;font-weight:800;overflow:hidden}.mission-objective{text-overflow:ellipsis;white-space:nowrap;color:var(--theme-ink);font-size:12px;font-weight:700;overflow:hidden}.mission-direction{color:#3a2d24b8;font-variant-numeric:tabular-nums;white-space:nowrap;background:#3a2d2414;border-radius:5px;flex-shrink:0;padding:2px 5px;font-size:9px;font-weight:800}.mission-direction[hidden]{display:none}.mission-timer{font-variant-numeric:tabular-nums;color:var(--theme-ink);flex-shrink:0;font-size:13px;font-weight:800}.mission-heat{background:#3a2d2429;border-radius:999px;flex-shrink:0;width:42px;height:6px;overflow:hidden}.mission-heat[hidden]{display:none}.mission-heat-fill{border-radius:inherit;background:linear-gradient(90deg,#d9a13b,#b23b2e);width:0;height:100%;transition:width .2s linear;display:block}.mission-result{background:color-mix(in srgb, var(--theme-paper) 97%, transparent);border:2px solid color-mix(in srgb, var(--theme-ink) 22%, transparent);pointer-events:auto;border-radius:16px;flex-direction:column;align-items:flex-start;gap:3px;padding:10px 38px 10px 12px;display:flex;position:relative;box-shadow:0 10px 26px #12162238}.mission-result[hidden]{display:none}.mission-result-kicker{letter-spacing:.14em;text-transform:uppercase;color:var(--theme-accent);font-size:8.5px;font-weight:800}.mission-result-title{color:var(--theme-ink);font-size:15px;font-weight:800}.mission-result-body{color:#2f2a28b8;font-size:10.5px;line-height:1.35}.mission-close{appearance:none;width:24px;height:24px;color:var(--theme-ink);cursor:pointer;touch-action:manipulation;background:#3a2d2414;border:0;border-radius:50%;place-items:center;padding:0;font-family:inherit;font-size:17px;line-height:1;display:grid;position:absolute;top:7px;right:7px}.mission-close:hover{background:#3a2d2429}.mission-retry{appearance:none;color:#ffd778;letter-spacing:.08em;text-transform:uppercase;cursor:pointer;touch-action:manipulation;background:#332a24;border:1.5px solid #44382e4d;border-radius:8px;margin-top:5px;padding:6px 11px;font-family:inherit;font-size:9px;font-weight:800}.mission-retry:hover{background:#46382f}.mission-hud.is-mobile{top:calc(env(safe-area-inset-top,0px) + 64px);width:min(390px,100vw - 20px)}.mission-hud.is-mobile .mission-objective{font-size:11px}.mission-hud.is-mobile .mission-direction{padding:2px 4px;font-size:8.5px}.mission-hud.is-mobile .mission-result{padding:9px 52px 9px 12px}.mission-hud.is-mobile .mission-close{width:44px;height:44px;font-size:24px;top:4px;right:4px}.mission-hud.is-mobile .mission-retry{min-height:44px;padding:10px 14px;font-size:10px}.controls-panel{right:calc(env(safe-area-inset-right,0px) + 14px);bottom:calc(env(safe-area-inset-bottom,0px) + 14px);z-index:26;pointer-events:none;flex-direction:column;align-items:flex-end;display:flex;position:fixed}.controls-pill{appearance:none;cursor:pointer;touch-action:manipulation;pointer-events:auto;color:#29252c;letter-spacing:.04em;white-space:nowrap;background:#fbf5e8eb;border:2px solid #44382e38;border-radius:999px;align-items:center;gap:6px;min-height:32px;padding:3px 8px 3px 6px;font-family:inherit;font-size:11px;font-weight:800;transition:background-color .15s,border-color .15s,transform .12s;display:inline-flex;box-shadow:0 6px 18px #1216222e}.controls-pill:hover{background:#fffbf3fa;border-color:#44382e73}.controls-pill:focus-visible{outline-offset:2px;outline:2px solid #c86428}.controls-pill:active{transform:translateY(1px)}.controls-pill-glyph{color:#fbf5e8;letter-spacing:0;background:#332a24;border-radius:50%;justify-content:center;align-items:center;width:18px;height:18px;font-size:11.5px;font-weight:900;display:inline-flex}.controls-panel.is-mobile .controls-pill{min-height:40px;padding:6px 10px 6px 7px}.controls-card{width:min(312px, calc(100vw - env(safe-area-inset-left,0px) - env(safe-area-inset-right,0px) - 28px));max-height:min(62dvh, calc(100dvh - env(safe-area-inset-top,0px) - env(safe-area-inset-bottom,0px) - 88px));opacity:0;visibility:hidden;transform-origin:100% 100%;pointer-events:none;touch-action:pan-y;background:#fcf6eaf5;border:2px solid #483a2e3d;border-radius:16px;padding:12px 14px 11px;transition:opacity .24s,transform .24s cubic-bezier(.22,1,.36,1),visibility .24s;overflow-y:auto;transform:translateY(8px)scale(.97);box-shadow:0 14px 32px #1014203d}.controls-panel.is-open .controls-card{opacity:1;visibility:visible;pointer-events:auto;transform:translateY(0)scale(1)}.controls-header{justify-content:space-between;align-items:center;gap:10px;margin-bottom:8px;display:flex}.controls-title{text-transform:uppercase;letter-spacing:.1em;color:#3a332d;font-size:12px;font-weight:800}.controls-close{appearance:none;cursor:pointer;touch-action:manipulation;color:#3a332d;background:#fffcf6e6;border:1.5px solid #44382e3d;border-radius:8px;justify-content:center;align-items:center;width:26px;height:26px;font-family:inherit;font-size:16px;font-weight:800;line-height:1;display:inline-flex}.controls-close:hover{background:#fff;border-color:#44382e80}.controls-close:focus-visible{outline-offset:2px;outline:2px solid #c86428}.controls-group+.controls-group{margin-top:8px}.controls-group-title{text-transform:uppercase;letter-spacing:.09em;color:#3a2d248c;margin-bottom:4px;font-size:10.5px;font-weight:800}.controls-row{border-top:1px dashed #483a2e26;grid-template-columns:minmax(0,1fr) auto;align-items:baseline;gap:2px 10px;padding:4px 0;display:grid}.controls-group-title+.controls-row{border-top:0;padding-top:2px}.controls-action{color:#2f2a28;font-size:clamp(11.5px,2.9vw,12.5px);font-weight:700}.controls-keys{flex-wrap:wrap;justify-content:flex-end;gap:4px;display:flex}.controls-key{letter-spacing:.04em;color:#3a332d;white-space:nowrap;background:#ebe0cc;border:1px solid #cbbba0;border-radius:5px;align-items:center;padding:1px 6px;font-size:10.5px;font-weight:800;display:inline-flex;box-shadow:0 2px #b7a68b}.controls-row.is-emphasis .controls-key{background:#ffd778;border-color:#e5b248;box-shadow:0 2px #b68a32}.controls-row.is-emphasis .controls-action{color:#8a5316}.controls-note{color:#2f2a289e;grid-column:1/-1;font-size:10.5px;line-height:1.35}.controls-foot{color:#2f2a288c;border-top:1px dashed #483a2e26;margin-top:10px;padding-top:8px;font-size:10.5px}.controls-panel.is-mobile .controls-key{box-shadow:none;color:#fbf5e8;letter-spacing:.06em;background:#332a24;border-color:#332a24}.controls-panel.is-mobile .controls-row.is-emphasis .controls-key{background:#c86428;border-color:#a94e1c}.city-map{z-index:30;background:radial-gradient(circle at 50% 42%,#18141266,#100d0bb3);justify-content:center;align-items:center;padding:14px;display:flex;position:fixed;inset:0}.city-map[hidden]{display:none}.city-map-card{border:1px solid color-mix(in srgb, var(--theme-ink) 34%, transparent);background:color-mix(in srgb, var(--theme-paper) 96%, #fff);border-radius:14px;grid-template-rows:auto auto auto auto;grid-template-columns:minmax(0,1fr);gap:8px;width:min(96vw,67dvh,720px);max-height:96dvh;padding:13px 13px 11px;display:grid;box-shadow:0 22px 60px #1014206b}.city-map-header{border-bottom:1px solid color-mix(in srgb, var(--theme-ink) 18%, transparent);justify-content:space-between;align-items:flex-start;gap:10px;padding-bottom:6px;display:flex}.city-map-heading{min-width:0}.city-map-kicker{letter-spacing:.16em;text-transform:uppercase;color:color-mix(in srgb, var(--theme-accent) 82%, var(--theme-ink));margin:0 0 3px;font-size:9px;font-weight:800;display:block}.city-map-title{letter-spacing:-.03em;color:var(--theme-ink);margin:0;font-size:22px;font-weight:800;line-height:1}.city-map-subtitle{color:color-mix(in srgb, var(--theme-ink) 62%, transparent);margin:4px 0 0;font-size:10px;line-height:1.3}.city-map-close{appearance:none;cursor:pointer;border:1.5px solid color-mix(in srgb, var(--theme-ink) 24%, transparent);background:color-mix(in srgb, var(--theme-paper) 88%, transparent);width:44px;height:44px;color:var(--theme-ink);border-radius:11px;flex-shrink:0;font-family:inherit;font-size:20px;line-height:1}.city-map-close:hover{background:color-mix(in srgb, var(--theme-accent) 16%, var(--theme-paper))}.city-map-close:focus-visible{outline:2px solid var(--theme-accent);outline-offset:2px}.city-map-frame{isolation:isolate;border:1px solid color-mix(in srgb, var(--theme-ink) 34%, transparent);background:radial-gradient(circle at 24% 18%, color-mix(in srgb, #fff2cf 54%, var(--theme-paper)), transparent 62%), radial-gradient(circle at 50% 42%, color-mix(in srgb, var(--theme-paper) 88%, #fff), color-mix(in srgb, var(--theme-land) 88%, var(--theme-paper)));min-height:0;box-shadow:inset 0 0 0 3px color-mix(in srgb, var(--theme-paper) 36%, transparent), inset 0 0 42px color-mix(in srgb, var(--theme-ink) 12%, transparent);border-radius:8px;place-items:center;display:grid;position:relative;overflow:hidden}.city-map-viewport{touch-action:none;cursor:grab;width:100%;position:relative;overflow:hidden}.city-map-viewport.is-panning{cursor:grabbing}.city-map-plane{transform-origin:0 0;will-change:transform;--map-shadow-x:0px;--map-shadow-y:0px;position:absolute;inset:0}.city-map-shadow-layer{transform:translate(var(--map-shadow-x), var(--map-shadow-y));will-change:transform}.city-map-atmosphere{z-index:2;pointer-events:none;transform:translate(var(--map-light-x,0px), var(--map-light-y,0px));transition:transform .12s ease-out;position:absolute;inset:0;overflow:hidden}.city-map-atmosphere>span{display:block;position:absolute;inset:0}.city-map-sun{mix-blend-mode:screen;background:radial-gradient(at 22% 15%,#fff6d685,#ffeebe24 34%,#0000 68%)}.city-map-haze{mix-blend-mode:multiply;background:linear-gradient(135deg,#fffaeb33 0%,#0000 44%,#1f2d3b1f 100%)}.city-map-vignette{background:radial-gradient(ellipse at 46% 38%, transparent 48%, color-mix(in srgb, var(--theme-ink) 26%, transparent) 115%);box-shadow:inset 0 0 34px #181b1f33}.city-map-atmosphere:after{content:"";opacity:.055;background-image:repeating-linear-gradient(118deg,#0000 0 3px,#ffffffb3 3px 4px);position:absolute;inset:-30%;transform:rotate(-2deg)}.city-map-geometry{width:100%;height:100%;display:block;position:absolute;inset:0}.city-map-paper{fill:color-mix(in srgb, var(--theme-paper) 94%, #fff)}.city-map-grid{pointer-events:none}.city-map-grid-line{stroke:color-mix(in srgb, var(--theme-ink) 7%, transparent);stroke-width:1px}.city-map-area{fill:color-mix(in srgb, var(--theme-land) 78%, transparent);stroke:color-mix(in srgb, var(--theme-ink) 24%, transparent);stroke-width:1.1px;vector-effect:non-scaling-stroke}.city-map-area[data-district=nw]{fill:color-mix(in srgb, #d9b06a 30%, var(--theme-land))}.city-map-area[data-district=ne]{fill:color-mix(in srgb, #7fa574 30%, var(--theme-land))}.city-map-area[data-district=sw]{fill:color-mix(in srgb, var(--theme-water) 24%, var(--theme-land))}.city-map-area[data-district=se]{fill:color-mix(in srgb, #bd8262 26%, var(--theme-land))}.city-map-area[data-district=atelier]{fill:color-mix(in srgb, #d5bc82 38%, var(--theme-land));stroke-dasharray:6 4}.city-map-block-shadow{fill:color-mix(in srgb, var(--theme-ink) 24%, transparent);opacity:.46}.city-map-block-wall{fill:color-mix(in srgb, var(--theme-ink) 50%, #8a674a);opacity:.82}.city-map-block-wall[data-district=nw]{fill:color-mix(in srgb, #9b633f 56%, var(--theme-ink))}.city-map-block-wall[data-district=ne]{fill:color-mix(in srgb, #607d51 42%, var(--theme-ink))}.city-map-block-wall[data-district=sw]{fill:color-mix(in srgb, #5f7882 42%, var(--theme-ink))}.city-map-block-wall[data-district=se]{fill:color-mix(in srgb, #925b43 46%, var(--theme-ink))}.city-map-block-wall[data-district=atelier]{fill:color-mix(in srgb, #9d7d45 44%, var(--theme-ink))}.city-map-block{stroke:color-mix(in srgb, var(--theme-ink) 24%, transparent);stroke-width:.9px;vector-effect:non-scaling-stroke}.city-map-block.is-tone-0{fill:color-mix(in srgb, #b48660 48%, var(--theme-paper))}.city-map-block.is-tone-1{fill:color-mix(in srgb, #c9a77d 42%, var(--theme-paper))}.city-map-block.is-tone-2{fill:color-mix(in srgb, #9f735b 38%, color-mix(in srgb, var(--theme-paper) 74%, var(--theme-land)))}.city-map-block[data-district=nw].is-tone-0{fill:color-mix(in srgb, #b57a4e 54%, var(--theme-paper))}.city-map-block[data-district=nw].is-tone-1{fill:color-mix(in srgb, #c89465 48%, var(--theme-paper))}.city-map-block[data-district=nw].is-tone-2{fill:color-mix(in srgb, #a36848 44%, var(--theme-paper))}.city-map-block[data-district=ne].is-tone-0{fill:color-mix(in srgb, #86a071 48%, var(--theme-paper))}.city-map-block[data-district=ne].is-tone-1{fill:color-mix(in srgb, #a0b68a 44%, var(--theme-paper))}.city-map-block[data-district=ne].is-tone-2{fill:color-mix(in srgb, #759363 42%, var(--theme-paper))}.city-map-block[data-district=sw].is-tone-0{fill:color-mix(in srgb, #839ba2 46%, var(--theme-paper))}.city-map-block[data-district=sw].is-tone-1{fill:color-mix(in srgb, #9fb4b8 42%, var(--theme-paper))}.city-map-block[data-district=sw].is-tone-2{fill:color-mix(in srgb, #718c96 40%, var(--theme-paper))}.city-map-block[data-district=se].is-tone-0{fill:color-mix(in srgb, #b9795c 48%, var(--theme-paper))}.city-map-block[data-district=se].is-tone-1{fill:color-mix(in srgb, #cc997b 44%, var(--theme-paper))}.city-map-block[data-district=se].is-tone-2{fill:color-mix(in srgb, #a56752 42%, var(--theme-paper))}.city-map-block[data-district=atelier].is-tone-0,.city-map-block[data-district=atelier].is-tone-1{fill:color-mix(in srgb, #c3a164 50%, var(--theme-paper))}.city-map-block-vent{fill:color-mix(in srgb, var(--theme-ink) 22%, transparent);stroke:#fff7e280;stroke-width:.7px;vector-effect:non-scaling-stroke}.city-map-block-highlight{fill:none;stroke:#fff6de8f;stroke-width:1.1px;stroke-linecap:round;vector-effect:non-scaling-stroke}.city-map-block-yard{fill:color-mix(in srgb, var(--theme-paper) 56%, transparent);stroke:color-mix(in srgb, var(--theme-ink) 18%, transparent);stroke-width:.7px;vector-effect:non-scaling-stroke}.city-map-block[data-depth="1"]{opacity:.93}.city-map-block[data-depth="2"]{opacity:.84}.city-map-block[data-depth="3"]{opacity:.73}.city-map-block-wall[data-depth="1"]{opacity:.72}.city-map-block-wall[data-depth="2"]{opacity:.62}.city-map-block-wall[data-depth="3"]{opacity:.52}.city-map-block-shadow[data-depth="1"]{opacity:.4}.city-map-block-shadow[data-depth="2"]{opacity:.34}.city-map-block-shadow[data-depth="3"]{opacity:.27}.city-map-block.is-shape-chamfer{stroke-linejoin:bevel}.city-map-block-step{fill:color-mix(in srgb, var(--theme-paper) 26%, transparent);stroke:color-mix(in srgb, var(--theme-ink) 30%, transparent);stroke-width:.9px;vector-effect:non-scaling-stroke}.city-map-block-ridge{stroke:#fff8e485;stroke-width:1.2px;stroke-linecap:round;vector-effect:non-scaling-stroke}.city-map-skyline-layer{pointer-events:none}.city-map-skyline{fill:color-mix(in srgb, var(--theme-ink) 30%, var(--theme-land));opacity:.72;stroke:color-mix(in srgb, var(--theme-paper) 46%, transparent);stroke-width:1.1px;vector-effect:non-scaling-stroke}.city-map-skyline.is-hollow{fill:none;stroke-width:2.6px}.city-map-avenue-label{z-index:3;transform:translate(-50%, -50%) scale(calc(1 / var(--map-zoom,1)));background:color-mix(in srgb, var(--theme-paper) 78%, transparent);color:color-mix(in srgb, var(--theme-ink) 56%, transparent);letter-spacing:.16em;text-transform:uppercase;white-space:nowrap;pointer-events:none;border-radius:999px;padding:2px 6px;font-size:8px;font-weight:800;position:absolute}.city-map-avenue-label.is-vertical{transform:translate(-50%, -50%) rotate(-90deg) scale(calc(1 / var(--map-zoom,1)))}.city-map-route-glow{fill:none;stroke:color-mix(in srgb, var(--theme-accent) 42%, transparent);stroke-width:12px;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke;opacity:0;pointer-events:none;transition:opacity .18s}.city-map-route-glow.is-visible{opacity:.55}.city-map-pin.is-tracked .city-map-pin-dot{width:27px;height:27px;box-shadow:0 0 0 4px color-mix(in srgb, var(--theme-accent) 42%, transparent), 0 0 0 9px color-mix(in srgb, var(--theme-accent) 16%, transparent), 0 2px 7px #1e171266}.city-map-pin-badge{background:var(--theme-accent);color:#201812;letter-spacing:.12em;white-space:nowrap;border-radius:999px;padding:1px 5px 2px;font-size:7px;font-weight:900;display:none;position:absolute;top:-19px;left:0;transform:translate(-50%,-50%);box-shadow:0 1px 4px #1e171252}.city-map-pin.is-tracked .city-map-pin-badge{display:block}.city-map-sidewalk{fill:color-mix(in srgb, var(--theme-paper) 84%, var(--theme-land));stroke:color-mix(in srgb, var(--theme-ink) 12%, transparent);stroke-width:1px;vector-effect:non-scaling-stroke}.city-map-avenue{fill:color-mix(in srgb, var(--theme-ink) 20%, var(--theme-land))}.city-map-avenue-axis{stroke:color-mix(in srgb, var(--theme-paper) 78%, transparent);stroke-width:2px;stroke-dasharray:9 11;vector-effect:non-scaling-stroke}.city-map-canal{stroke:color-mix(in srgb, var(--theme-water) 88%, #356d78);stroke-linecap:round}.city-map-water-layer{filter:drop-shadow(0 2px 1px #2830322e)}.city-map-canal-bank{stroke:color-mix(in srgb, var(--theme-ink) 18%, transparent);stroke-linecap:round}.city-map-canal-crest{stroke:#fff6;stroke-dasharray:10 13;stroke-linecap:round}.city-map-park{fill:color-mix(in srgb, #79a56f 46%, var(--theme-land));stroke:#47694a66;stroke-width:1px;stroke-dasharray:4 3;vector-effect:non-scaling-stroke}.city-map-park-path{fill:none;stroke:color-mix(in srgb, var(--theme-paper) 78%, transparent);stroke-width:3px;stroke-dasharray:5 5;stroke-linecap:round;vector-effect:non-scaling-stroke}.city-map-tree-shadow{fill:color-mix(in srgb, var(--theme-ink) 24%, transparent);opacity:.46}.city-map-tree{fill:color-mix(in srgb, #47734f 82%, var(--theme-land));opacity:.96;stroke:#2f543880;stroke-width:.8px;vector-effect:non-scaling-stroke}.city-map-tree-highlight{fill:#afcb9a;opacity:.54}.city-map-tree-lobe{fill:color-mix(in srgb, #4f7c55 80%, var(--theme-land));opacity:.9;stroke:#2f543870;stroke-width:.6px;vector-effect:non-scaling-stroke}.city-map-bridge-shadow{fill:color-mix(in srgb, var(--theme-ink) 24%, transparent);opacity:.4}.city-map-bridge{fill:color-mix(in srgb, #d6b987 58%, var(--theme-paper));stroke:color-mix(in srgb, var(--theme-ink) 20%, transparent);stroke-width:.8px;vector-effect:non-scaling-stroke}.city-map-bridge-edge{stroke:color-mix(in srgb, var(--theme-ink) 28%, transparent);stroke-width:1px;vector-effect:non-scaling-stroke}.city-map-route-casing{fill:none;stroke:color-mix(in srgb, var(--theme-ink) 52%, transparent);stroke-width:7px;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke;opacity:0;transition:opacity .18s}.city-map-route-casing.is-visible{opacity:.72}.city-map-route-line{fill:none;stroke:color-mix(in srgb, var(--theme-accent) 90%, transparent);stroke-width:3px;stroke-dasharray:7 6;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke;opacity:0;transition:opacity .18s}.city-map-route-line.is-visible{opacity:1}.city-map-plane .city-map-district-label{transform:scale(calc(1 / var(--map-zoom,1)));transform-origin:0 0;border:1px solid color-mix(in srgb, var(--theme-ink) 16%, transparent);background:color-mix(in srgb, var(--theme-paper) 84%, transparent);max-width:min(42%,200px);color:color-mix(in srgb, var(--theme-ink) 80%, transparent);z-index:3;border-radius:4px;flex-direction:column;gap:0;margin:8px 0 0 8px;padding:4px 6px 3px;display:flex;position:absolute;box-shadow:0 1px 3px #281c1214}.city-map-plane .city-map-district-label strong{letter-spacing:.14em;color:color-mix(in srgb, var(--theme-ink) 88%, transparent);font-size:10px}.city-map-plane .city-map-district-label span{letter-spacing:.04em;text-transform:uppercase;opacity:.82;font-size:8px;line-height:1.15}.city-map-plane .city-map-pin,.city-map-plane .city-map-landmark,.city-map-plane .city-map-player{transform:translate(-50%, -50%) scale(calc(1 / var(--map-zoom,1)))}.city-map-pin{width:0;height:0;color:var(--theme-ink);cursor:pointer;background:0 0;border:0;padding:0;font-family:inherit;display:block;position:absolute}.city-map-pin-dot{border:2px solid color-mix(in srgb, var(--theme-paper) 92%, #fff);background:color-mix(in srgb, var(--theme-accent) 82%, #fff);border-radius:50%;width:19px;height:19px;position:absolute;top:0;left:0;transform:translate(-50%,-50%);box-shadow:0 1px 4px #1e171259}.city-map-pin-index{z-index:1;color:#fff8ec;text-shadow:0 1px 1px #00000059;pointer-events:none;font-family:Courier New,monospace;font-size:8px;font-weight:800;position:absolute;top:0;left:0;transform:translate(-50%,-50%)}.city-map-pin-label{border:1px solid color-mix(in srgb, var(--theme-ink) 22%, transparent);background:color-mix(in srgb, var(--theme-paper) 96%, #fff);white-space:nowrap;border-radius:4px;padding:2px 6px;font-size:9px;font-weight:700;display:none;position:absolute;top:0;left:13px;transform:translateY(-50%);box-shadow:0 2px 5px #1e17122e}.city-map-pin.is-tracked .city-map-pin-dot{border-color:var(--theme-accent);background:var(--theme-ink);width:23px;height:23px;box-shadow:0 0 0 3px color-mix(in srgb, var(--theme-accent) 45%, transparent), 0 2px 6px #1e171259}.city-map-pin.is-tracked .city-map-pin-index{color:var(--theme-accent);font-size:9px}.city-map-pin.is-arrived .city-map-pin-dot{box-shadow:0 0 0 4px #3f915466}.city-map-pin.is-done .city-map-pin-dot{background:#3f9154}.city-map-pin.is-done .city-map-pin-index{text-decoration:line-through}.city-map-pin:hover .city-map-pin-dot,.city-map-pin.is-hovered .city-map-pin-dot,.city-map-pin:focus-visible .city-map-pin-dot{box-shadow:0 0 0 3px color-mix(in srgb, var(--theme-accent) 40%, transparent), 0 2px 6px #1e171259}.city-map-pin:focus-visible{outline:none}.city-map-pin.is-right-edge .city-map-pin-label{left:auto;right:13px}.city-map-plane .city-map-pin.is-tracked .city-map-pin-label,.city-map-plane .city-map-pin:hover .city-map-pin-label,.city-map-plane .city-map-pin.is-hovered .city-map-pin-label,.city-map-plane .city-map-pin:focus-visible .city-map-pin-label{display:inline}.city-map-landmark{z-index:4;border:1px solid color-mix(in srgb, var(--theme-ink) 22%, transparent);background:color-mix(in srgb, var(--theme-paper) 88%, transparent);color:color-mix(in srgb, var(--theme-ink) 84%, transparent);border-radius:999px;align-items:center;gap:2px;padding:2px;display:flex;position:absolute;box-shadow:0 1px 3px #281c121f}.city-map-landmark-glyph{place-items:center;width:15px;height:15px;font-size:9px;line-height:1;display:grid}.city-map-landmark-label{white-space:nowrap;padding-right:4px;font-size:8.5px;font-weight:700;display:none}.city-map-landmark.is-anchor{z-index:6;background:color-mix(in srgb, var(--theme-paper) 94%, #fff);flex-direction:column;gap:1px;min-width:24px;padding:2px 4px 3px;box-shadow:0 2px 5px #281c122e}.city-map-landmark.is-anchor .city-map-landmark-glyph{width:auto;height:12px;font-size:8px}.city-map-landmark.is-anchor .city-map-landmark-label{letter-spacing:.06em;text-transform:uppercase;color:color-mix(in srgb, var(--theme-ink) 78%, transparent);padding-right:0;font-size:6.5px;line-height:1;display:inline}.city-map-landmark:hover .city-map-landmark-label,.city-map-landmark:focus-visible .city-map-landmark-label{display:inline}.city-map-player[hidden]{display:none}.city-map-player{z-index:90;pointer-events:none;flex-direction:column;align-items:center;gap:2px;display:flex;position:absolute}.city-map-player-heading{justify-content:center;align-items:center;width:24px;height:24px;display:flex;position:relative}.city-map-player-cone{background:linear-gradient(to top, color-mix(in srgb, var(--theme-accent) 62%, transparent), color-mix(in srgb, var(--theme-accent) 6%, transparent) 82%);clip-path:polygon(50% 0,100% 100%,0 100%);pointer-events:none;width:34px;height:46px;position:absolute;top:50%;left:50%;transform:translate(-50%,-100%)}.city-map-player-arrow{z-index:1;background:var(--theme-ink);width:24px;height:24px;color:var(--theme-accent);text-align:center;border:2.5px solid #fff5e2;border-radius:50%;font-size:11px;line-height:19px;position:relative;box-shadow:0 2px 6px #1e171266}.city-map-player-label{background:var(--theme-ink);color:#fff5e2;letter-spacing:.08em;border-radius:3px;padding:1px 4px;font-size:7px;font-weight:800}.city-map-tools{z-index:9;border:1px solid color-mix(in srgb, var(--theme-ink) 22%, transparent);background:color-mix(in srgb, var(--theme-paper) 92%, transparent);border-radius:6px;align-items:center;gap:2px;padding:3px;display:flex;position:absolute;top:auto;bottom:8px;left:50%;transform:translate(-50%);box-shadow:0 2px 8px #281c1224}.city-map-tool{appearance:none;cursor:pointer;width:23px;height:23px;color:var(--theme-ink);background:0 0;border:none;border-radius:4px;padding:0;font-family:inherit;font-size:13px;line-height:1}.city-map-tool:hover{background:color-mix(in srgb, var(--theme-accent) 16%, transparent)}.city-map-tool:disabled{opacity:.35;cursor:default;background:0 0}.city-map-zoom-readout{text-align:center;letter-spacing:.04em;min-width:30px;color:var(--theme-muted);font-family:Courier New,monospace;font-size:7.5px}.city-map-compass{z-index:5;border:1px solid color-mix(in srgb, var(--theme-ink) 22%, transparent);background:color-mix(in srgb, var(--theme-paper) 82%, transparent);border-radius:50%;place-items:center;width:34px;height:34px;display:grid;position:absolute;top:9px;right:9px;box-shadow:0 1px 4px #281c121f}.city-map-compass-n{letter-spacing:.06em;font-family:Courier New,monospace;font-size:7px;font-weight:800;position:absolute;top:2px;left:50%;transform:translate(-50%)}.city-map-compass i{border-bottom:12px solid #c0392b;border-left:4px solid #0000;border-right:4px solid #0000;width:0;height:0;margin-top:6px}.city-map-scale{z-index:5;background:color-mix(in srgb, var(--theme-paper) 72%, transparent);color:var(--theme-muted);letter-spacing:.04em;border-radius:3px;align-items:center;gap:5px;padding:3px 6px;font-family:Courier New,monospace;font-size:7.5px;display:flex;position:absolute;bottom:9px;right:10px}.city-map-scale-bar{border-bottom:1.5px solid;border-left:1.5px solid;border-right:1.5px solid;width:34px;height:7px;display:block}.city-map-coords{z-index:5;background:color-mix(in srgb, var(--theme-paper) 70%, transparent);color:var(--theme-muted);letter-spacing:.04em;pointer-events:none;border-radius:2px;padding:2px 5px;font-family:Courier New,monospace;font-size:7.5px;position:absolute;bottom:8px;left:9px}.city-map-rows{grid-template-columns:repeat(3,minmax(0,1fr));gap:5px;padding:0;display:grid}.city-map-row{appearance:none;cursor:pointer;border:1px solid color-mix(in srgb, var(--theme-ink) 18%, transparent);background:color-mix(in srgb, var(--theme-paper) 84%, transparent);min-width:0;color:var(--theme-ink);text-align:left;border-radius:6px;align-items:center;gap:6px;padding:4px 6px 4px 5px;font-family:inherit;display:flex}.city-map-row:hover,.city-map-row.is-hovered{border-color:var(--theme-accent);background:#fff9ed}.city-map-row.is-tracked{border-color:var(--theme-accent);background:color-mix(in srgb, var(--theme-accent) 24%, var(--theme-paper));box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--theme-accent) 55%, transparent)}.city-map-row.is-done{opacity:.52}.city-map-row.is-done .city-map-row-label{text-decoration:line-through}.city-map-row:focus-visible{outline:2px solid var(--theme-accent);outline-offset:1px}.city-map-row-index{background:color-mix(in srgb, var(--theme-accent) 16%, transparent);border-radius:50%;flex:none;place-items:center;width:16px;height:16px;font-family:Courier New,monospace;font-size:7px;font-weight:800;display:grid}.city-map-row-text{flex-direction:column;min-width:0;display:flex}.city-map-row-label{white-space:nowrap;text-overflow:ellipsis;font-size:9.5px;font-weight:700;line-height:1.2;overflow:hidden}.city-map-row-meta{letter-spacing:.04em;color:var(--theme-muted);white-space:nowrap;font-family:Courier New,monospace;font-size:6.5px}.city-map-legend{flex-wrap:wrap;align-items:center;gap:4px 14px;padding-top:2px;display:flex}.city-map-legend-item{align-items:center;gap:5px;display:inline-flex}.city-map-legend-label{white-space:nowrap;font-size:9px}.city-map-legend-deed,.city-map-legend-tracked,.city-map-legend-cleared,.city-map-legend-landmark,.city-map-legend-player{border-radius:50%;flex-shrink:0;width:8px;height:8px;display:inline-block}.city-map-legend-deed{background:#c86428;border:1px solid #8a4316}.city-map-legend-tracked{background:#ffd778;border:1px solid #a9630e;box-shadow:0 0 0 2px #ffd77859}.city-map-legend-cleared{background:#3f9154;border:1px solid #2f6f43}.city-map-legend-landmark{border:1px solid color-mix(in srgb, var(--theme-ink) 38%, transparent);background:color-mix(in srgb, var(--theme-paper) 82%, transparent);width:9px;height:9px}.city-map-legend-player{background:var(--theme-ink);border:1px solid #fff5e2}@media (prefers-reduced-motion:reduce){.city-map-shadow-layer,.city-map-atmosphere{transition:none;transform:none}}@media (max-width:680px){.city-map{padding:8px}.city-map-card{border-radius:12px;gap:8px;width:calc(100vw - 12px);padding:12px 12px 10px}.city-map-header{padding-bottom:6px}.city-map-kicker{font-size:8.5px}.city-map-title{font-size:20px}.city-map-subtitle{font-size:9px}.city-map-close{width:44px;height:44px}.city-map-rows{grid-template-columns:repeat(2,minmax(0,1fr))}.city-map-row{gap:5px;padding:4px 6px}.city-map-pin-dot{width:18px;height:18px}.city-map-pin.is-tracked .city-map-pin-dot{width:26px;height:26px}.city-map-row-index{width:15px;height:15px;font-size:7px}.city-map-row-label{font-size:9.5px}.city-map-row-meta{font-size:6.5px}.city-map-legend{gap:3px 11px}.city-map-legend-label{font-size:8.5px}.city-map-coords{display:none}.city-map-tools{bottom:6px}.city-map-compass{width:30px;height:30px;top:7px;right:7px}.city-map-plane .city-map-district-label{margin:6px 0 0 6px;padding:3px 5px 2px}.city-map-plane .city-map-district-label span{display:none}.city-map-plane .city-map-district-label strong{font-size:9px}.city-map-plane .city-map-district-label span{font-size:7px}.city-map-landmark.is-anchor{min-width:21px;padding:1px 3px 2px}.city-map-landmark.is-anchor .city-map-landmark-label{font-size:6px}.city-map-scale{bottom:6px;right:7px}}body[data-state=welcome] .loading-screen{display:none}.welcome-screen{z-index:150;color:#2b2620;cursor:default;background:radial-gradient(circle at 10% 12%,#c964281f,#0000 29%),radial-gradient(circle at 92% 20%,#46745d1f,#0000 26%),linear-gradient(135deg,#f4ecd9 0%,#efe2c9 48%,#e2e9dc 100%);transition:opacity .5s,visibility .5s;position:fixed;inset:0;overflow-y:auto}.welcome-screen:before{content:"";pointer-events:none;opacity:.34;background-image:linear-gradient(#4b3a2a0b 1px,#0000 1px),linear-gradient(90deg,#4b3a2a0b 1px,#0000 1px);background-size:28px 28px;position:fixed;inset:0;-webkit-mask-image:linear-gradient(#000,#0000 92%);mask-image:linear-gradient(#000,#0000 92%)}.welcome-screen.is-leaving{opacity:0;visibility:hidden;pointer-events:none}.welcome-shell{width:min(1160px,100vw - 48px);padding:calc(env(safe-area-inset-top,0px) + 32px) 0 calc(env(safe-area-inset-bottom,0px) + 30px);flex-direction:column;gap:28px;margin:0 auto;display:flex;position:relative}.welcome-masthead{border-bottom:2px solid #44342585;justify-content:space-between;align-items:flex-end;gap:24px;padding-bottom:20px;display:flex}.welcome-kicker{letter-spacing:.19em;color:#9b4e25;margin:0 0 12px;font-size:10.5px;font-weight:800}.welcome-title{letter-spacing:-.065em;color:#27231e;margin:0;font-size:clamp(44px,7.4vw,88px);font-weight:800;line-height:.9}.welcome-title em{color:#b9562a;font-style:normal}.welcome-lede{color:#2b2620b3;max-width:560px;margin:16px 0 0;font-size:clamp(13px,1.35vw,15.5px);line-height:1.5}.welcome-build-badge{letter-spacing:.13em;color:#2b2620a8;background:#fffcf48c;border:1px solid #44342552;border-radius:999px;flex-shrink:0;align-items:center;gap:8px;padding:7px 11px;font-size:9.5px;font-weight:800;display:inline-flex}.welcome-build-dot{background:#4a8a62;border-radius:50%;width:7px;height:7px;box-shadow:0 0 0 3px #4a8a6226}.welcome-choice-grid{grid-template-columns:minmax(0,1.2fr) minmax(300px,.8fr);align-items:start;gap:clamp(22px,4vw,52px);display:grid}.welcome-section{min-width:0}.welcome-section-head{border-top:1px solid #44342542;align-items:flex-start;gap:13px;margin-bottom:13px;padding-top:11px;display:flex}.welcome-section-number{letter-spacing:.1em;color:#a75b30;flex-shrink:0;padding-top:2px;font-family:Courier New,monospace;font-size:10px;font-weight:800}.welcome-section-head h2{letter-spacing:-.015em;margin:0;font-size:17px;line-height:1.15}.welcome-section-head p{color:#2b262094;margin:4px 0 0;font-size:11.5px;line-height:1.35}.welcome-birds{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;display:grid}.welcome-bird-card{appearance:none;color:#2c2722;text-align:left;cursor:pointer;background:#fffbf285;border:1px solid #44342530;border-radius:11px;grid-template-columns:66px minmax(0,1fr) 17px;align-items:center;gap:9px;min-height:78px;padding:7px 9px 7px 7px;font-family:inherit;transition:background-color .16s,border-color .16s,transform .16s;display:grid;position:relative}.welcome-bird-card:hover{background:#fffcf6e6;border-color:#4434256b;transform:translateY(-1px)}.welcome-bird-card.is-selected{color:#fbf4e5;background:#2f2a25;border-color:#2f2a25;box-shadow:0 5px 16px #281f172e}.welcome-bird-card:focus-visible,.welcome-city-card:focus-visible,.welcome-level-card:focus-visible,.welcome-start:focus-visible{outline-offset:2px;outline:2px solid #b9562a}.welcome-bird-copy{flex-direction:column;gap:3px;min-width:0;display:flex}.welcome-bird-name{white-space:nowrap;text-overflow:ellipsis;font-size:clamp(11px,1vw,13px);font-weight:750;line-height:1.12;overflow:hidden}.welcome-bird-tag{letter-spacing:.045em;color:#2b262080;font-size:9px;line-height:1.2}.welcome-check{color:#fff8eb;opacity:0;background:#d87842;border-radius:50%;justify-content:center;align-items:center;width:17px;height:17px;font-size:9px;font-weight:900;transition:opacity .15s,transform .15s;display:inline-flex;transform:scale(.65)}.welcome-bird-card.is-selected .welcome-check{opacity:1;transform:scale(1)}.welcome-bird-figure{background:linear-gradient(160deg,#fffcf57a,#d7c7ad52);border-radius:9px;width:64px;height:62px;position:relative;overflow:hidden}.welcome-bird-card.is-selected .welcome-bird-figure{background:linear-gradient(160deg,#ffffff1a,#ffffff08)}.welcome-bird-tail{background:var(--bird-wing);border-radius:80% 10% 50% 20%;width:25px;height:15px;position:absolute;bottom:12px;left:3px;transform:rotate(20deg)}.welcome-bird-body{background:linear-gradient(145deg, var(--bird-mantle) 14%, var(--bird-breast) 78%);border-radius:58% 44% 55% 42%;width:38px;height:31px;position:absolute;bottom:8px;left:14px;box-shadow:inset -3px -4px #241c161a}.welcome-bird-wing{background:var(--bird-wing);border-radius:82% 40% 70% 24%;width:25px;height:18px;position:absolute;top:9px;left:4px;transform:rotate(11deg)}.welcome-bird-head{background:radial-gradient(circle at 34% 30%, var(--bird-crown), var(--bird-mantle));border-radius:50%;width:24px;height:24px;position:absolute;top:8px;right:8px}.welcome-bird-eye{background:#f8f1df;border-radius:50%;width:4px;height:4px;position:absolute;top:7px;right:6px;box-shadow:inset 1px 0 #16130f}.welcome-bird-beak{border-top:4px solid #0000;border-bottom:4px solid #0000;border-left:8px solid var(--bird-beak);width:0;height:0;position:absolute;top:10px;right:-7px}.welcome-bird-leg{background:var(--bird-leg);border-radius:2px;width:8px;height:2px;position:absolute;bottom:5px;left:33px;transform:rotate(8deg);box-shadow:0 3px #231b143d}.welcome-cities,.welcome-levels{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;display:grid}.welcome-levels{margin-top:7px}.welcome-city-card,.welcome-level-card{appearance:none;color:#2c2722;text-align:left;cursor:pointer;background:#fffbf280;border:1px solid #44342530;border-radius:10px;flex-direction:column;align-items:flex-start;gap:3px;min-height:66px;padding:10px 11px;font-family:inherit;transition:background-color .16s,border-color .16s,transform .16s;display:flex;position:relative}.welcome-city-card:hover,.welcome-level-card:hover{background:#fffcf6e6;border-color:#44342566;transform:translateY(-1px)}.welcome-city-card.is-selected,.welcome-level-card.is-selected{background:#f7e1c4;border-color:#9e5128;box-shadow:inset 0 0 0 1px #9e51283d}.welcome-city-name,.welcome-level-name{max-width:calc(100% - 50px);font-size:12px;font-weight:750;line-height:1.18}.welcome-city-meta,.welcome-level-meta{color:#2b262085;font-size:9.5px;line-height:1.25}.welcome-status{letter-spacing:.08em;color:#3c6c4d;background:#619b7326;border-radius:2px;padding:2px 5px;font-family:Courier New,monospace;font-size:7.5px;font-weight:800;position:absolute;top:8px;right:8px}.welcome-status.is-draft{color:#8f5a2a;background:#c47f3b29}.welcome-footer{border-top:2px solid #44342585;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:20px;padding-top:17px;display:grid}.welcome-footer-copy{flex-direction:column;gap:5px;min-width:0;display:flex}.welcome-route-summary{color:#322c26;font-size:12.5px;font-weight:750}.welcome-controls-hint{letter-spacing:.025em;color:#2b26208c;font-family:Courier New,monospace;font-size:9.5px}.welcome-action{flex-direction:column;align-items:flex-end;gap:6px;display:flex}.welcome-start{appearance:none;color:#fff6e7;letter-spacing:.08em;text-transform:uppercase;cursor:pointer;background:#b9562a;border:2px solid #7f3c1d;border-radius:999px;min-width:214px;min-height:44px;padding:13px 20px;font-family:inherit;font-size:12px;font-weight:800;transition:transform .13s,background-color .13s,box-shadow .13s;box-shadow:0 5px #7f3c1d,0 9px 20px #5b311a33}.welcome-start:hover{background:#c96435;transform:translateY(-1px)}.welcome-start:active{transform:translateY(3px);box-shadow:0 2px #7f3c1d,0 4px 10px #5b311a2e}.welcome-start:disabled{opacity:.6;cursor:default}.welcome-note{text-align:right;color:#2b262078;max-width:300px;margin:0;font-size:9px;line-height:1.35}.mobile-climb-btn{display:none}body.is-mobile .mobile-climb-btn{right:max(18px, env(safe-area-inset-right,0px));bottom:max(22px, env(safe-area-inset-bottom,0px));z-index:22;color:#fff8e9;cursor:pointer;touch-action:none;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);background:#2d262080;border:1.5px solid #fff7e6b3;border-radius:50%;flex-direction:column;justify-content:center;align-items:center;gap:2px;width:82px;height:82px;padding:0;font-family:inherit;transition:transform 80ms,background-color 80ms;display:flex;position:fixed;box-shadow:0 4px 16px #18120e3d,inset 0 0 0 4px #fffaee14}body.is-mobile .mobile-climb-btn.is-pressed{background:#be5e2de6;transform:scale(.94)}.mobile-climb-label{letter-spacing:.06em;font-size:12px;font-weight:800}.mobile-climb-hint{letter-spacing:.08em;opacity:.68;font-size:6.5px;font-weight:700}body.is-map-open .mobile-climb-btn,.mobile-action-btn{display:none}body.is-mobile .mobile-action-btn{right:max(108px, calc(env(safe-area-inset-right,0px) + 108px));bottom:max(30px, calc(env(safe-area-inset-bottom,0px) + 30px));z-index:23;color:#fff8e9;cursor:pointer;touch-action:none;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);background:#2d26209e;border:1.5px solid #fff7e6b3;border-radius:50%;flex-direction:column;justify-content:center;align-items:center;gap:3px;width:72px;height:72px;padding:0;font-family:inherit;transition:transform 80ms,background-color 80ms;display:flex;position:fixed;box-shadow:0 4px 16px #18120e3d,inset 0 0 0 4px #fffaee14}body.is-mobile .mobile-action-btn.is-pressed{background:#2a6f79eb;transform:scale(.94)}body.is-mobile .mobile-action-btn.is-carrying{border-color:#ffd68beb}.mobile-action-label{letter-spacing:.06em;font-size:11px;font-weight:800}.mobile-action-hint{letter-spacing:.07em;text-align:center;opacity:.72;max-width:64px;font-size:6px;font-weight:700;line-height:1.2}body.is-map-open .mobile-action-btn,body.is-mission-result .mobile-action-btn{display:none}.city-map-pill{appearance:none;cursor:pointer;border:2px solid color-mix(in srgb, var(--theme-ink) 20%, transparent);background:color-mix(in srgb, var(--theme-paper) 92%, transparent);color:var(--theme-ink);letter-spacing:.055em;border-radius:999px;align-items:center;gap:6px;padding:7px 9px 7px 7px;font-family:inherit;font-size:10px;font-weight:800;transition:background-color .15s,border-color .15s,transform .12s;display:inline-flex;box-shadow:0 6px 18px #1216222e}.city-map-pill:hover{background:#fffbf3fa;border-color:#44382e73}.city-map-pill:focus-visible{outline-offset:2px;outline:2px solid #c86428}.city-map-pill-glyph{color:#9c4f27;font-size:15px;line-height:.8}.city-map-pill.is-mobile{padding:7px 9px}.city-map-pill.is-mobile .city-map-pill-key{display:none}@media (max-width:820px){.welcome-choice-grid{grid-template-columns:1fr;gap:20px}.welcome-route-section{padding-top:2px}.welcome-birds{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:680px){.welcome-shell{width:calc(100vw - 28px);padding-top:calc(env(safe-area-inset-top,0px) + 20px);gap:20px}.welcome-masthead{flex-direction:column;align-items:flex-start;gap:12px;padding-bottom:15px}.welcome-title{font-size:clamp(40px,14vw,66px)}.welcome-lede{margin-top:12px;font-size:12px}.welcome-build-badge{align-self:flex-start}.welcome-birds{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}.welcome-bird-card{grid-template-columns:50px minmax(0,1fr) 14px;gap:6px;min-height:67px;padding:5px 6px 5px 5px}.welcome-bird-figure{transform-origin:0;width:48px;height:55px;margin-right:-10px;transform:scale(.79)}.welcome-bird-name{font-size:10.5px}.welcome-bird-tag{font-size:8px}.welcome-check{width:14px;height:14px}.welcome-city-name,.welcome-level-name{font-size:11px}.welcome-city-meta,.welcome-level-meta{font-size:8.5px}.welcome-shell{padding-bottom:calc(env(safe-area-inset-bottom,0px) + 164px)}.welcome-footer{z-index:2;padding:10px 14px calc(env(safe-area-inset-bottom,0px) + 10px);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#f4ecd9f7;border-top:1px solid #44342547;grid-template-columns:1fr;gap:8px;position:fixed;bottom:0;left:0;right:0;box-shadow:0 -8px 24px #34271b14}.welcome-footer-copy{gap:2px}.welcome-controls-hint{display:none}.welcome-route-summary{font-size:10.5px}.welcome-action{gap:5px}.welcome-note{font-size:8.5px}.welcome-action{align-items:stretch;gap:7px}.welcome-start{width:100%}.welcome-note{text-align:left;max-width:none}.welcome-controls-hint{font-size:8.5px;line-height:1.45}}@media (max-height:680px) and (orientation:landscape){.welcome-shell{gap:17px}.welcome-title{font-size:clamp(36px,7vw,60px)}}.welcome-screen{color:var(--theme-ink);background:radial-gradient(circle at 10% 12%, color-mix(in srgb, var(--theme-accent) 14%, transparent), transparent 29%), radial-gradient(circle at 92% 20%, color-mix(in srgb, var(--theme-water) 15%, transparent), transparent 26%), linear-gradient(135deg, var(--theme-paper) 0%, color-mix(in srgb, var(--theme-paper) 74%, var(--theme-land)) 52%, color-mix(in srgb, var(--theme-paper) 68%, var(--theme-water)) 100%)}.welcome-screen:before{background-image:linear-gradient(color-mix(in srgb, var(--theme-ink) 6%, transparent) 1px, transparent 1px), linear-gradient(90deg, color-mix(in srgb, var(--theme-ink) 6%, transparent) 1px, transparent 1px)}.welcome-masthead,.welcome-footer{border-color:color-mix(in srgb, var(--theme-ink) 38%, transparent)}.welcome-kicker,.welcome-section-number,.welcome-title em{color:var(--theme-accent)}.welcome-title{color:var(--theme-ink)}.welcome-lede,.welcome-section-head p,.welcome-controls-hint,.welcome-note{color:color-mix(in srgb, var(--theme-ink) 68%, transparent)}.welcome-build-badge{border-color:color-mix(in srgb, var(--theme-ink) 28%, transparent);background:color-mix(in srgb, var(--theme-paper) 62%, transparent);color:color-mix(in srgb, var(--theme-ink) 72%, transparent)}.welcome-build-dot{background:var(--theme-accent);box-shadow:0 0 0 3px color-mix(in srgb, var(--theme-accent) 18%, transparent)}.welcome-section-head{border-top-color:color-mix(in srgb, var(--theme-ink) 24%, transparent)}.welcome-section-head h2,.welcome-route-summary{color:var(--theme-ink)}.welcome-bird-card,.welcome-city-card,.welcome-level-card{border-color:color-mix(in srgb, var(--theme-ink) 18%, transparent);background:color-mix(in srgb, var(--theme-paper) 56%, transparent);color:var(--theme-ink)}.welcome-bird-card:hover,.welcome-city-card:hover,.welcome-level-card:hover{border-color:color-mix(in srgb, var(--theme-ink) 42%, transparent);background:color-mix(in srgb, var(--theme-paper) 92%, white 8%)}.welcome-bird-card.is-selected{color:var(--theme-paper);background:var(--theme-ink);border-color:var(--theme-ink)}.welcome-city-card.is-selected,.welcome-level-card.is-selected{border-color:var(--theme-accent);background:color-mix(in srgb, var(--theme-accent) 13%, var(--theme-paper));box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--theme-accent) 28%, transparent)}.welcome-bird-tag,.welcome-city-meta,.welcome-level-meta{color:color-mix(in srgb, var(--theme-ink) 58%, transparent)}.welcome-bird-card.is-selected .welcome-bird-tag{color:color-mix(in srgb, var(--theme-paper) 66%, transparent)}.welcome-bird-stats{max-width:100%;color:color-mix(in srgb, var(--theme-ink) 50%, transparent);letter-spacing:-.02em;text-overflow:ellipsis;white-space:nowrap;font-family:Courier New,monospace;font-size:7px;font-weight:800;line-height:1.15;overflow:hidden}.welcome-bird-card.is-selected .welcome-bird-stats{color:color-mix(in srgb, var(--theme-paper) 58%, transparent)}.welcome-city-theme{max-width:calc(100% - 54px);color:color-mix(in srgb, var(--theme-accent) 82%, var(--theme-ink));letter-spacing:.04em;text-overflow:ellipsis;white-space:nowrap;font-size:8.5px;font-weight:800;overflow:hidden}.welcome-city-swatch{gap:2px;display:flex;position:absolute;bottom:9px;right:9px}.welcome-city-swatch i{border:1px solid color-mix(in srgb, var(--theme-ink) 28%, transparent);border-radius:2px;width:9px;height:9px;display:block}.welcome-start{border-color:color-mix(in srgb, var(--theme-ink) 58%, var(--theme-accent));background:var(--theme-accent);color:var(--theme-paper);box-shadow:0 5px 0 color-mix(in srgb, var(--theme-ink) 58%, var(--theme-accent)), 0 9px 20px color-mix(in srgb, var(--theme-ink) 18%, transparent)}.welcome-start:hover{background:color-mix(in srgb, var(--theme-accent) 86%, white 14%)}.welcome-start:active{box-shadow:0 2px 0 color-mix(in srgb, var(--theme-ink) 58%, var(--theme-accent)), 0 4px 10px color-mix(in srgb, var(--theme-ink) 16%, transparent)}.welcome-city-card,.welcome-level-card{padding-bottom:22px}.roster-pill,.roster-overlay,.roster-close,.roster-bird-card{touch-action:manipulation}.roster-pill{appearance:none;cursor:pointer;border:2px solid color-mix(in srgb, var(--theme-ink) 20%, transparent);background:color-mix(in srgb, var(--theme-paper) 92%, transparent);color:var(--theme-ink);letter-spacing:.055em;border-radius:999px;align-items:center;gap:5px;padding:7px 9px 7px 7px;font-family:inherit;font-size:10px;font-weight:800;display:inline-flex;box-shadow:0 6px 18px #1216222e}.roster-pill:hover{background:var(--theme-paper);border-color:color-mix(in srgb, var(--theme-accent) 55%, transparent)}.roster-pill-glyph{color:var(--theme-accent);font-size:15px;line-height:1}.roster-pill-key{border:1px solid color-mix(in srgb, var(--theme-ink) 24%, transparent);color:color-mix(in srgb, var(--theme-ink) 58%, transparent);border-radius:3px;padding:1px 3px;font-family:Courier New,monospace;font-size:7px}.roster-overlay{z-index:170;-webkit-backdrop-filter:blur(7px);backdrop-filter:blur(7px);background:#0e12189e;place-items:center;padding:18px;display:grid;position:fixed;inset:0}.roster-overlay[hidden]{display:none}.roster-card{border:1px solid color-mix(in srgb, var(--theme-ink) 40%, transparent);background:var(--theme-paper);width:min(760px,96vw);max-height:92dvh;color:var(--theme-ink);border-radius:12px;padding:18px;overflow-y:auto;box-shadow:0 28px 80px #04080e7a}.roster-header{border-bottom:2px solid color-mix(in srgb, var(--theme-ink) 35%, transparent);justify-content:space-between;align-items:flex-start;gap:18px;padding-bottom:12px;display:flex}.roster-kicker{color:var(--theme-accent);letter-spacing:.14em;margin-bottom:4px;font-family:Courier New,monospace;font-size:9px;font-weight:800}.roster-header h2{letter-spacing:-.03em;font-size:25px}.roster-subtitle{max-width:530px;color:color-mix(in srgb, var(--theme-ink) 64%, transparent);margin-top:5px;font-size:11px;line-height:1.4}.roster-close{border:1px solid color-mix(in srgb, var(--theme-ink) 30%, transparent);width:30px;height:30px;color:var(--theme-ink);cursor:pointer;background:0 0;border-radius:50%;font-size:19px}.roster-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;padding:13px 0;display:grid}.roster-bird-card{appearance:none;border:1px solid color-mix(in srgb, var(--theme-ink) 20%, transparent);background:color-mix(in srgb, var(--theme-paper) 68%, transparent);min-height:70px;color:var(--theme-ink);text-align:left;cursor:pointer;border-radius:9px;grid-template-columns:48px minmax(0,1fr) 15px;align-items:center;gap:8px;padding:7px;font-family:inherit;display:grid;position:relative}.roster-bird-card:hover{border-color:color-mix(in srgb, var(--theme-accent) 55%, transparent);background:color-mix(in srgb, var(--theme-paper) 94%, white 6%)}.roster-bird-card.is-selected{border-color:var(--theme-accent);background:color-mix(in srgb, var(--theme-accent) 12%, var(--theme-paper));box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--theme-accent) 30%, transparent)}.roster-bird-art{background:linear-gradient(145deg, var(--roster-crown), var(--roster-wing));border-radius:7px;width:48px;height:48px;display:block;position:relative;overflow:hidden}.roster-bird-body,.roster-bird-wing,.roster-bird-head{display:block;position:absolute}.roster-bird-body{background:linear-gradient(145deg, var(--roster-mantle), var(--roster-breast));border-radius:58% 44% 55% 42%;width:30px;height:23px;bottom:7px;left:8px}.roster-bird-wing{background:var(--roster-wing);border-radius:80% 40% 70% 24%;width:19px;height:12px;bottom:14px;left:12px;transform:rotate(10deg)}.roster-bird-head{background:var(--roster-crown);border-radius:50%;width:17px;height:17px;top:7px;right:8px}.roster-bird-copy{flex-direction:column;gap:2px;min-width:0;display:flex}.roster-bird-copy strong{text-overflow:ellipsis;white-space:nowrap;font-size:11px;overflow:hidden}.roster-bird-stats{color:color-mix(in srgb, var(--theme-ink) 58%, transparent);letter-spacing:-.02em;text-overflow:ellipsis;white-space:nowrap;font-family:Courier New,monospace;font-size:7.5px;font-weight:800;overflow:hidden}.roster-bird-tag{color:color-mix(in srgb, var(--theme-ink) 48%, transparent);text-overflow:ellipsis;white-space:nowrap;font-size:8px;overflow:hidden}.roster-check{color:var(--theme-accent);opacity:0;font-size:12px;font-weight:900}.roster-bird-card.is-selected .roster-check{opacity:1}.roster-footer{border-top:1px solid color-mix(in srgb, var(--theme-ink) 24%, transparent);color:color-mix(in srgb, var(--theme-ink) 58%, transparent);justify-content:space-between;align-items:center;gap:12px;padding-top:12px;font-size:9px;display:flex}.roster-setup{appearance:none;border:1px solid var(--theme-accent);color:var(--theme-accent);cursor:pointer;background:0 0;border-radius:999px;padding:7px 10px;font-family:inherit;font-size:9px;font-weight:800}@media (max-width:680px){.welcome-bird-card{min-height:82px}.welcome-bird-stats{font-size:6.5px}.welcome-footer{background:color-mix(in srgb, var(--theme-paper) 97%, transparent)}.roster-card{padding:13px}.roster-pill{min-height:44px}.roster-close{flex:0 0 44px;width:44px;min-width:44px;height:44px;font-size:22px}.roster-setup{min-height:44px}.roster-header h2{font-size:21px}.roster-grid{grid-template-columns:1fr;gap:5px}.roster-bird-card{min-height:60px}.roster-footer{flex-direction:column;align-items:flex-start}.welcome-shell{width:calc(100vw - 24px);padding-top:calc(env(safe-area-inset-top,0px) + 14px);padding-bottom:calc(env(safe-area-inset-bottom,0px) + 136px);gap:12px}.welcome-masthead{gap:7px;padding-bottom:10px}.welcome-masthead .welcome-build-badge{display:none}.welcome-kicker{letter-spacing:.14em;margin-bottom:6px;font-size:8.5px}.welcome-title{font-size:clamp(34px,12vw,46px)}.welcome-lede{margin-top:8px;font-size:10.5px;line-height:1.35}.welcome-choice-grid{gap:12px}.welcome-section-head{gap:8px;margin-bottom:7px;padding-top:6px}.welcome-section-head h2{font-size:14px}.welcome-section-head p{display:none}.welcome-birds{grid-template-columns:repeat(4,minmax(0,1fr));gap:4px}.welcome-bird-card{text-align:center;grid-template-columns:1fr;justify-items:center;gap:1px;min-height:62px;padding:3px 2px 4px}.welcome-bird-card .welcome-bird-figure{transform-origin:50%;border-radius:6px;width:36px;height:35px;margin:-2px 0 -5px;transform:scale(.53)}.welcome-bird-copy{align-items:center;gap:0}.welcome-bird-name{max-width:100%;font-size:9.5px;line-height:1.1}.welcome-bird-tag,.welcome-bird-stats{display:none}.welcome-check{width:12px;height:12px;font-size:7px;position:absolute;top:3px;right:3px}.welcome-cities,.welcome-levels{gap:4px}.welcome-levels{margin-top:4px}.welcome-city-card,.welcome-level-card{gap:1px;min-height:48px;padding:6px 7px}.welcome-city-name,.welcome-level-name{max-width:calc(100% - 30px);font-size:10px}.welcome-city-meta,.welcome-level-meta{font-size:7.5px}.welcome-city-theme{display:none}.welcome-status{padding:1px 3px;font-size:6px;top:4px;right:4px}.welcome-footer{padding:7px 12px calc(env(safe-area-inset-bottom,0px) + 7px);gap:5px}.welcome-footer-copy{gap:1px}.welcome-route-summary{font-size:9.5px}.welcome-note{font-size:7.5px;line-height:1.25}.welcome-start{min-width:0;min-height:48px;padding:10px 16px;font-size:11px}}.flight-hud{left:max(16px, env(safe-area-inset-left,0px));bottom:max(18px, env(safe-area-inset-bottom,0px));z-index:19;border:1px solid color-mix(in srgb, var(--theme-ink,#2b2620) 22%, transparent);background:color-mix(in srgb, var(--theme-paper,#f4ead7) 84%, transparent);min-width:150px;color:var(--theme-ink,#2b2620);-webkit-backdrop-filter:blur(9px);backdrop-filter:blur(9px);font-variant-numeric:tabular-nums;pointer-events:none;opacity:0;border-radius:12px;padding:9px 12px 10px;transition:opacity .22s,transform .22s;position:fixed;transform:translateY(8px);box-shadow:0 8px 22px #14121a38}.flight-hud.is-visible{opacity:1;transform:none}.flight-hud-head{letter-spacing:.14em;justify-content:space-between;align-items:center;gap:10px;margin-bottom:5px;font-family:Courier New,monospace;font-size:8px;font-weight:800;display:flex}.flight-hud-title{color:var(--theme-accent,#b9562a)}.flight-hud-mode{color:color-mix(in srgb, var(--theme-ink,#2b2620) 56%, transparent)}.flight-hud-row{justify-content:space-between;align-items:baseline;gap:14px;line-height:1.35;display:flex}.flight-hud-label{letter-spacing:.08em;color:color-mix(in srgb, var(--theme-ink,#2b2620) 58%, transparent);font-family:Courier New,monospace;font-size:9px;font-weight:700}.flight-hud-value{align-items:baseline;gap:4px;display:inline-flex}.flight-hud-value b{letter-spacing:-.02em;font-size:17px;line-height:1}.flight-hud-value small{color:color-mix(in srgb, var(--theme-ink,#2b2620) 52%, transparent);font-size:8px;font-weight:700}.flight-hud-vs i{width:9px;color:var(--theme-accent,#b9562a);font-size:10px;font-style:normal}.flight-hud[data-state=sink] .flight-hud-vs i,.flight-hud[data-state=sink] .flight-hud-vs b{color:var(--theme-accent,#b9562a);opacity:.75}.flight-hud[data-state=level] .flight-hud-vs i{color:color-mix(in srgb, var(--theme-ink,#2b2620) 48%, transparent)}.flight-hud-meter{background:color-mix(in srgb, var(--theme-ink,#2b2620) 14%, transparent);border-radius:999px;height:3px;margin-top:7px;overflow:hidden}.flight-hud-meter span{border-radius:inherit;background:var(--theme-accent,#b9562a);width:100%;height:100%;transition:width .12s linear,background-color .2s;display:block}.flight-hud.is-low .flight-hud-meter span{background:#c0392b}body.is-mobile .flight-hud{left:max(12px, env(safe-area-inset-left,0px));bottom:max(14px, env(safe-area-inset-bottom,0px));min-width:132px;padding:7px 10px 8px}body.is-mobile .flight-hud-value b{font-size:15px}@media (prefers-reduced-motion:reduce){.welcome-screen,.welcome-screen *,.flight-hud,.flight-hud *{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.objective-height{letter-spacing:.02em;color:#2f6f43;white-space:nowrap;font-family:Courier New,monospace;font-size:9px;font-weight:800}.objective-height.is-below{color:#8a5316}.objective-height[hidden]{display:none}.objective-trail{appearance:none;cursor:pointer;touch-action:manipulation;color:#3a332d;background:#fffcf6e6;border:1.5px dashed #44382e59;border-radius:7px;flex-shrink:0;justify-content:center;align-items:center;width:24px;height:24px;font-family:inherit;font-size:13px;line-height:1;display:inline-flex}.objective-trail[aria-pressed=true]{background:#fff4dc;border-style:solid;border-color:#c864288c}.objective-trail.is-off{opacity:.55}.objective-trail:hover{background:#fff;border-color:#44382e8c}.objective-radar:before{content:"";pointer-events:none;border:1px solid #ffd7788c;border-radius:50%;animation:2.4s ease-out infinite objective-pulse;position:absolute;inset:-4px}.objective-hud.is-arrived .objective-radar:before{border-color:#6fd98db3;animation-duration:1.1s}@keyframes objective-pulse{0%{opacity:.9;transform:scale(.72)}70%{opacity:0;transform:scale(1.18)}to{opacity:0}}@media (prefers-reduced-motion:reduce){.objective-radar:before{opacity:0;animation:none}}
