*,:before,:after{box-sizing:border-box;min-width:0}:root{text-wrap:pretty;overflow-wrap:break-word;font-synthesis:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent;overscroll-behavior:none}h1,h2,h3,h4{text-wrap:balance}svg{flex:none;display:block}button{touch-action:manipulation;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}.sr-only{clip-path:inset(50%);white-space:nowrap;block-size:1px;inline-size:1px;position:absolute;overflow:clip}[hidden]{display:none!important}:focus-visible{outline:3px solid var(--accent);outline-offset:2px}kbd{border:1px solid;font:600 .6875rem / 1.4 var(--font-mono);white-space:nowrap;border-block-end-width:2px;border-radius:4px;padding-inline:.3em}.app{background:linear-gradient(var(--sky-top), var(--sky-horizon) 70%);block-size:100dvh;position:fixed;inset:0;overflow:clip}.map{position:absolute;inset:0}.map:focus-visible{outline-color:#0000}.map:focus-visible:after{outline:3px solid var(--accent);outline-offset:-3px;pointer-events:none;content:"";position:absolute;inset:0}.avatar-arrow{pointer-events:none;-webkit-tap-highlight-color:transparent;background:0 0;border:0;padding:0;position:absolute;inset-block-start:0;inset-inline-start:0}.avatar-arrow svg{filter:drop-shadow(0 2px 0 color-mix(in oklch, var(--ink) 35%, transparent));display:block;translate:-50% calc(-100% - 6px)}.avatar-arrow[data-edge=true]{pointer-events:auto;cursor:pointer}.avatar-arrow[data-edge=true]:before{border:var(--border) solid var(--ink);background:var(--paper);block-size:44px;inline-size:44px;box-shadow:var(--shadow-hard);content:"";border-radius:50%;position:absolute;inset-block-start:-22px;inset-inline-start:-22px}.avatar-arrow[data-edge=true] svg{translate:-50% -50%;rotate:var(--turn);filter:none;position:relative;scale:.7}@media (prefers-reduced-motion:no-preference){.avatar-arrow[data-edge=false] svg{animation:1.4s ease-in-out infinite alternate arrow-bob}}@keyframes arrow-bob{to{translate:-50% calc(-100% - 12px)}}.city{touch-action:none;block-size:100%;inline-size:100%;display:block;position:absolute;inset:0}.overlay{pointer-events:none;position:absolute;inset:0;overflow:clip}.hud{gap:var(--space-s);padding-inline:max(var(--gutter), env(safe-area-inset-left,0px)) max(var(--gutter), env(safe-area-inset-right,0px));pointer-events:none;display:grid;position:absolute;inset-inline:0}.hud-top{grid-template-columns:1fr auto;align-items:start;padding-block-start:calc(var(--gutter) + env(safe-area-inset-top,0px));inset-block-start:0}.hud-bottom{grid-template-columns:1fr auto 1fr;align-items:end;padding-block-end:calc(var(--gutter) + env(safe-area-inset-bottom,0px));inset-block-end:0}.bar{grid-column:2;display:flex}.action,.menu-trigger{pointer-events:auto;border:var(--border) solid var(--ink);background:var(--paper);color:var(--ink);box-shadow:var(--shadow-hard);cursor:pointer}.action{justify-content:center;align-items:center;gap:var(--space-s);min-block-size:var(--bar);padding-inline:var(--space-l) 1.125rem;font:700 .9375rem / 1 var(--font-ui);white-space:nowrap;border-radius:999px;display:inline-flex}.action.primary{background:var(--accent);color:var(--paper)}.action kbd{opacity:.75}.menu-trigger{justify-content:center;justify-self:end;align-items:center;gap:var(--space-s);block-size:40px;min-inline-size:40px;font:inherit;border-radius:999px;grid-column:3;padding-inline:9px;display:inline-flex;position:relative}.menu-trigger:after{content:"";position:absolute;inset:-2px}.menu-trigger kbd{opacity:.75;padding-inline-end:.35em}@media (hover:none),(pointer:coarse){.action kbd,.menu-trigger kbd,.menu-option .keycaps{display:none}}.action:active:not(:disabled),.menu-trigger:active{translate:0 calc(var(--lift) - 1px);box-shadow:var(--shadow-pressed)}.action:active:not(:disabled,.primary),.menu-trigger:active{background:var(--paper-press)}.action.primary:active:not(:disabled){background:var(--accent-press)}.action:disabled{opacity:.5;cursor:default}@media (hover:hover) and (pointer:fine){.action:hover:not(:disabled,.primary),.menu-trigger:hover{background:var(--paper-press)}.action.primary:hover:not(:disabled){background:var(--accent-press)}}@media (prefers-reduced-motion:no-preference){.action,.menu-trigger{transition:translate .12s var(--ease-out), box-shadow .12s var(--ease-out), background-color .12s var(--ease-out)}}.minimap{aspect-ratio:1;border:var(--border) solid var(--ink);background:var(--paper);inline-size:clamp(5.5rem,24vw,9.5rem);box-shadow:var(--shadow-hard);pointer-events:auto;cursor:pointer;border-radius:50%;grid-column:1;justify-self:start;padding:0;overflow:clip}.minimap canvas{block-size:100%;inline-size:100%;display:block}.minimap:active{translate:0 calc(var(--lift) - 1px);box-shadow:var(--shadow-pressed)}@media (prefers-reduced-motion:no-preference){.minimap{transition:translate .12s var(--ease-out), box-shadow .12s var(--ease-out)}}@media (width<=30rem){.bar{grid-area:1/1/auto/-1;justify-self:center}.bar:empty{display:none}.minimap,.menu-trigger{grid-row:2}}.player-tags{pointer-events:none;position:absolute;inset:0;overflow:clip}.player-tag{border:1.5px solid var(--ink);background:var(--paper);max-inline-size:12rem;color:var(--ink);white-space:nowrap;will-change:transform;border-radius:999px;align-items:center;gap:.3em;padding-block:.15em;padding-inline:.4em .55em;font-size:.75rem;font-weight:700;line-height:1.2;display:flex;position:absolute;inset-block-start:0;inset-inline-start:0;overflow:clip;translate:-50% -100%}.player-tag:before{border:1px solid var(--ink);background:var(--shirt,var(--accent));content:"";border-radius:50%;flex:none;block-size:.6em;inline-size:.6em}.sign-slot{display:flex}.sign{min-block-size:40px;max-inline-size:min(17rem,100%);padding-block:var(--space-xs);padding-inline:var(--space-m);border:var(--border) solid var(--ink);border-radius:var(--radius);background:var(--sign);color:var(--paper);box-shadow:inset 0 0 0 3px var(--sign), inset 0 0 0 4.5px var(--paper), var(--shadow-hard);letter-spacing:.015em;text-align:center;text-wrap:balance;align-items:center;margin:0;font-size:.875rem;font-weight:750;line-height:1.25;display:flex}.sign-name{animation:fade-in .2s var(--ease-out)}@media (prefers-reduced-motion:no-preference){.sign{animation:sign-in .24s var(--ease-out)}.sign-name{animation:name-in .3s var(--ease-out)}}@keyframes fade-in{0%{opacity:0}}@keyframes sign-in{0%{opacity:0;translate:-.5rem}}@keyframes name-in{0%{opacity:0;translate:-.375rem}}.credits{justify-content:flex-end;column-gap:var(--space-s);max-inline-size:13rem;color:color-mix(in oklch, var(--ink) 85%, var(--paper));text-align:end;text-shadow:0 0 1px var(--paper), 0 0 1px var(--paper), 0 0 3px var(--paper), 0 0 3px var(--paper);flex-wrap:wrap;grid-column:2;margin:0;font-size:.625rem;font-weight:600;line-height:1.5;display:flex}.credits a{color:inherit;pointer-events:auto;margin-block:calc(.5lh - 12px);padding-block:calc(12px - .5lh);text-decoration:none}@media (hover:hover) and (pointer:fine){.credits a:hover{text-decoration:underline}}.hint{max-inline-size:min(30rem,100%);padding-block:var(--space-xs);padding-inline:var(--space-m);border:var(--border) solid var(--ink);border-radius:var(--radius);background:var(--paper);box-shadow:var(--shadow-hard);text-align:center;text-wrap:balance;pointer-events:none;grid-column:1/-1;justify-self:center;margin:0;font-size:.8125rem;font-weight:600;line-height:1.5;display:block}.hint:empty{box-shadow:none;border:0;padding:0}.hint-keys{display:none}@media (hover:hover) and (pointer:fine){.hint-keys{display:inline}.hint-touch{display:none}}.load-error{gap:var(--space-m);text-wrap:balance;justify-items:center;max-inline-size:20rem;font-weight:600;display:grid}.app>.load-error{position:absolute;inset-block-start:50%;inset-inline-start:50%;translate:-50% -50%}.menu{inline-size:min(40rem, 100% - 2 * var(--gutter));block-size:min(36rem,100dvh - 4rem);max-block-size:none;max-inline-size:none;color:var(--ink);opacity:0;transition:opacity .15s ease-out, display .15s allow-discrete, overlay .15s allow-discrete;background:0 0;border:0;margin:auto;padding:0;overflow:visible}.menu[open]{opacity:1;transition-duration:.3s}@starting-style{.menu[open]{opacity:0}}.menu::backdrop{background:color-mix(in oklch, var(--ink) 35%, transparent);opacity:0;transition:opacity .15s ease-out, display .15s allow-discrete, overlay .15s allow-discrete}.menu[open]::backdrop{opacity:1;transition-duration:.3s}@starting-style{.menu[open]::backdrop{opacity:0}}@media (prefers-reduced-motion:no-preference){.menu{filter:blur(4px);transition-property:opacity,translate,filter,display,overlay;translate:0 -12px}.menu[open]{filter:none;translate:0}@starting-style{.menu[open]{filter:blur(4px);translate:0 12px}}}.menu-panel{border:var(--border) solid var(--ink);border-radius:var(--radius-large);background:var(--paper);block-size:100%;box-shadow:0 6px 0 var(--ink);flex-direction:column;display:flex;overflow:clip}.menu-panel:focus-visible{outline:none}.menu-head{align-items:center;gap:var(--space-m);min-block-size:3.75rem;padding-inline:1.125rem var(--space-m);border-block-end:var(--border) solid var(--ink);flex:none;display:flex}.menu-search{block-size:3rem;color:inherit;font:600 1.125rem / 1.2 var(--font-ui);background:0 0;border:0;outline:none;flex:1;padding:0}.menu-search::placeholder{color:color-mix(in oklch, var(--ink) 55%, var(--paper))}.menu-title{flex:1;margin:0;font-size:1.0625rem;font-weight:800}.menu-close,.menu-icon-button{min-inline-size:var(--control);block-size:var(--control);padding-inline:var(--space-s);border-radius:var(--radius-inner);color:inherit;font:inherit;cursor:pointer;background:0 0;border:0;justify-content:center;align-items:center;display:inline-flex;position:relative}.menu-icon-button{margin-inline-start:calc(-1 * var(--space-s))}.menu-close svg,.menu-close kbd{opacity:.75}@media (hover:hover) and (pointer:fine){.menu-close svg{display:none}.menu-close:hover,.menu-icon-button:hover{background:var(--paper-press)}}@media (hover:none),(pointer:coarse){.menu-close kbd{display:none}}.menu-close:active,.menu-icon-button:active{background:var(--paper-press)}.menu-body{min-block-size:0;padding:var(--space-s);overscroll-behavior:contain;scrollbar-gutter:stable;flex:1;overflow-y:auto}.menu-group{padding:var(--space-m) var(--space-m) var(--space-xs);color:color-mix(in oklch, var(--ink) 65%, var(--paper));letter-spacing:.04em;text-transform:uppercase;font-size:.75rem;font-weight:750}.menu-group:first-child{padding-block-start:var(--space-xs)}.menu-option{align-items:center;gap:var(--space-m);min-block-size:var(--bar);padding:var(--space-s) var(--space-m);border-radius:var(--radius-inner);cursor:pointer;scroll-margin-block:var(--space-s);grid-template-columns:auto 1fr auto;display:grid}.menu-option[aria-selected=true]{background:var(--accent);color:var(--paper)}.menu-option-icon{border:1.5px solid;border-radius:8px;place-items:center;block-size:2rem;inline-size:2rem;display:grid}.menu-option-icon svg{block-size:18px;inline-size:18px}.menu-option-text{display:grid}.menu-option-label{align-items:center;gap:var(--space-s);font-size:.9375rem;font-weight:700;line-height:1.3;display:flex}.menu-option-detail{opacity:.8;font-size:.8125rem;font-weight:500;line-height:1.35}.menu-state{border:1.5px solid;border-radius:999px;padding-inline:.45em;font-size:.6875rem;font-weight:750;line-height:1.4}.menu-state[data-on=true]{border-color:var(--ink);background:var(--ink);color:var(--paper)}.menu-option[aria-selected=true] .menu-state[data-on=true]{border-color:var(--paper);background:var(--paper);color:var(--accent)}.keycaps{justify-content:flex-end;align-items:center;gap:var(--space-xs);flex-wrap:wrap;display:inline-flex}.keycaps kbd{text-align:center;min-inline-size:1.6em}.keycaps-or{opacity:.7;font-size:.75rem;font-weight:500}.menu-empty{padding:var(--space-l) var(--space-m);text-align:center;margin:0;font-size:.9375rem;font-weight:600}.menu-page{gap:var(--space-l);padding:var(--space-s) var(--space-m) var(--space-l);display:grid}.menu-lede{margin:0;font-size:.9375rem;font-weight:500;line-height:1.5}.menu-page a{color:var(--accent);font-weight:650}.key-section h3{margin:0 0 var(--space-s);letter-spacing:.04em;text-transform:uppercase;opacity:.7;font-size:.75rem;font-weight:750}.key-list,.credit-list{margin:0;padding:0;list-style:none;display:grid}.key-row,.credit-list li{justify-content:space-between;align-items:baseline;gap:var(--space-xs) var(--space-l);padding-block:var(--space-s);border-block-end:1px solid color-mix(in oklch, var(--ink) 15%, transparent);flex-wrap:wrap;font-size:.875rem;display:flex}.key-row dt{font-weight:650}.key-row dd{justify-content:flex-end;align-items:baseline;gap:var(--space-xs) var(--space-m);flex-wrap:wrap;margin:0;display:flex}.key-touch{opacity:.8;font-size:.8125rem}.menu-foot{justify-content:space-between;gap:var(--space-l);padding:var(--space-s) 1.125rem;border-block-start:var(--border) solid var(--ink);background:var(--paper-press);flex:none;font-size:.75rem;font-weight:650;display:flex}.menu-foot-keys kbd{margin-inline-start:var(--space-xs)}@media (hover:hover) and (pointer:fine){.menu-option:not([aria-selected=true]):hover{background:var(--paper-press)}}@media (pointer:coarse){.menu-search{font-size:max(16px,1.0625rem)}.menu-option{min-block-size:56px}.menu-foot{display:none}}.top-end{justify-items:end;gap:var(--space-s);grid-column:2;display:grid}.top-end .credits{grid-column:auto;max-inline-size:8rem}@media (width<=24rem){.sign{padding-inline:var(--space-s);font-size:.8125rem}}.you{align-items:center;gap:var(--space-s);min-block-size:40px;max-inline-size:min(16rem,40vw);padding-inline:var(--space-s) var(--space-m);border:var(--border) solid var(--ink);background:var(--paper);color:var(--ink);box-shadow:var(--shadow-hard);font:700 .875rem / 1 var(--font-ui);white-space:nowrap;pointer-events:auto;cursor:pointer;border-radius:999px;display:inline-flex;position:relative}.you.primary{background:var(--accent);color:var(--paper);padding-inline-start:var(--space-m)}.you-dot{border:var(--border) solid var(--ink);background:var(--shirt);border-radius:50%;flex:none;block-size:1.25rem;inline-size:1.25rem}.you-name{text-overflow:ellipsis;overflow:clip}.you-count{font-variant-numeric:tabular-nums;opacity:.75;flex:none;align-items:center;gap:.2em;font-weight:650;display:inline-flex}.you.primary .you-count{opacity:1}.you:after{content:"";position:absolute;inset:-2px}.you:active{translate:0 calc(var(--lift) - 1px);box-shadow:var(--shadow-pressed)}@media (hover:hover) and (pointer:fine){.you:not(.primary):hover{background:var(--paper-press)}.you.primary:hover{background:var(--accent-press)}}@media (prefers-reduced-motion:no-preference){.you{transition:translate .12s var(--ease-out), box-shadow .12s var(--ease-out), background-color .12s var(--ease-out)}}@media (width<=40rem){.menu{block-size:min(85dvh,44rem);inline-size:100%;margin-block-end:0}.menu-panel{box-shadow:none;border-block-end:0;border-end-end-radius:0;border-end-start-radius:0;padding-block-end:env(safe-area-inset-bottom,0px)}@media (prefers-reduced-motion:no-preference){.menu{filter:none;transition-duration:.2s;transition-timing-function:var(--ease-out);translate:0 100%}.menu[open]{filter:none;translate:0}@starting-style{.menu[open]{filter:none;translate:0 100%}}}}@media (forced-colors:active){.menu-option[aria-selected=true]{color:highlighttext;forced-color-adjust:none;background:highlight}}
