:root{color-scheme:light;--paper: #e4e2d8;--paper-deep: #d7d4c6;--street: #f5f4ef;--footprint: #c6c1b1;--footprint-known: #b6b09c;--water: #aebfc4;--rail: #3a3733;--ink: #1c1a17;--ink-soft: #5a564f;--ink-faint: #8d877c;--sheet: #f3f1e9;--sheet-edge: #1c1a17;--you: #b5231f;--dot-known: #1c1a17;--dot-seen: #6f6a60;--dot-stranger: #b3ada0;font-family:Helvetica Neue,Helvetica,Liberation Sans,Arial,sans-serif;font-size:16px;line-height:1.4;-webkit-font-smoothing:antialiased;-webkit-text-size-adjust:100%}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--paper);color:var(--ink);overscroll-behavior:none;touch-action:manipulation;-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit}button:focus-visible,a:focus-visible{outline:2px solid var(--you);outline-offset:2px}@media(prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}.play{position:relative;height:100%;overflow:hidden;background:var(--paper)}.map{position:absolute;top:0;left:0;right:0;bottom:var(--sheet-height, 40vh);display:block;width:100%;height:calc(100% - var(--sheet-height, 40vh));touch-action:none;user-select:none;-webkit-user-select:none}.map .water{fill:var(--water)}.map .rail{stroke:var(--rail);stroke-width:.06;fill:none;stroke-dasharray:.12 .08}.map .street{stroke:var(--street);stroke-width:.34;fill:none;stroke-linecap:square}.map .street-label{font-size:.15px;letter-spacing:.02px;fill:var(--ink-faint);text-transform:uppercase}.map .filler{fill:var(--footprint);opacity:.55}.map .building{fill:var(--footprint);stroke:none;cursor:pointer}.map .building.known{fill:var(--footprint-known)}.map .building.here{stroke:var(--ink);stroke-width:.05}.map .building-label{font-size:.2px;fill:var(--ink);pointer-events:none}.map [tabindex]:focus{outline:none}.map .building:focus-visible{stroke:var(--you);stroke-width:.05}.map .npc{cursor:pointer}.map .npc:focus-visible circle:last-of-type{stroke:var(--you);stroke-width:.04}.map .npc-label{font-size:.17px;fill:var(--ink-soft);pointer-events:none}.map .you{fill:var(--you);stroke:var(--street);stroke-width:.05}.map .you-path{stroke:var(--you);stroke-width:.03;stroke-dasharray:.08 .08;fill:none;opacity:.6}.tab{position:absolute;top:max(10px,env(safe-area-inset-top));left:10px;padding:8px 12px 9px;background:var(--sheet);border-top:2px solid var(--sheet-edge);box-shadow:0 1px #00000026;font-size:13px;line-height:1.3;max-width:60vw}.tab .when{font-weight:500}.tab .how{color:var(--ink-soft)}.tab .district{color:var(--ink-faint);font-size:11px;margin-top:4px}.tab .link{border:none;background:none;padding:0;font-size:11px;color:var(--ink-faint);text-decoration:underline;cursor:pointer}.stick{position:absolute;right:14px;bottom:calc(var(--sheet-height, 40vh) + 14px);width:92px;height:92px;border-radius:50%;border:1.5px solid var(--ink-soft);background:#f3f1e9bf;touch-action:none;user-select:none;-webkit-user-select:none}.stick .knob{position:absolute;left:50%;top:50%;width:34px;height:34px;margin:-17px 0 0 -17px;border-radius:50%;background:var(--ink);pointer-events:none}.sheet{position:absolute;left:0;right:0;bottom:0;height:var(--sheet-height, 40vh);display:flex;flex-direction:column;background:var(--sheet);border-top:2px solid var(--sheet-edge);padding-bottom:env(safe-area-inset-bottom)}.sheet .grip{height:22px;flex:none;display:grid;place-items:center;cursor:pointer;touch-action:none}.sheet .grip:before{content:"";width:36px;height:3px;background:var(--ink-faint)}.sheet .lines{flex:1;overflow-y:auto;padding:0 18px 8px;font-size:17px;line-height:1.45;max-width:34em}.sheet .lines p{margin:0 0 .6em}.sheet .lines p.said{padding-left:1em;text-indent:-1em}.sheet .lines p.aside{color:var(--ink-soft);font-size:15px}.sheet .lines p.hint{color:var(--ink-faint);font-size:14px}.sheet .choices{flex:none;display:flex;flex-wrap:wrap;gap:8px;padding:8px 14px 12px;border-top:1px solid var(--paper-deep)}.choice{padding:9px 13px;background:transparent;border:1.5px solid var(--ink);border-radius:2px;font-size:15px;cursor:pointer}.choice:active{background:var(--ink);color:var(--sheet)}.choice.quiet{border-color:var(--ink-faint);color:var(--ink-soft)}.read{position:absolute;inset:0;background:var(--sheet);overflow-y:auto;padding:max(16px,env(safe-area-inset-top)) 20px 24px;max-width:36em}.read header{display:flex;justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:4px}.read h1{font-size:24px;font-weight:500;margin:0}.read .role{color:var(--ink-soft);margin:0 0 18px}.read h2{font-size:13px;font-weight:500;color:var(--ink-faint);margin:22px 0 6px;border-bottom:1px solid var(--paper-deep);padding-bottom:4px}.read p,.read li{margin:0 0 6px;font-size:17px}.read ul{margin:0;padding:0;list-style:none}.read .starters{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}.read .close{border:none;background:none;padding:6px 0 6px 12px;font-size:15px;color:var(--ink-soft);cursor:pointer}.make{min-height:100%;padding:max(28px,env(safe-area-inset-top)) 22px 32px;max-width:34em;margin:0 auto;display:flex;flex-direction:column;gap:18px}.make .who{font-size:19px;line-height:1.5;margin:0}.make .ask{font-size:21px;line-height:1.4;font-weight:500;margin:0 0 4px}.make .answer{display:block;width:100%;text-align:left;padding:12px 14px;margin-bottom:8px;background:transparent;border:1.5px solid var(--ink);border-radius:2px;font-size:16px;line-height:1.4;cursor:pointer}.make .answer:active{background:var(--ink);color:var(--sheet)}.make .actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:auto}.make .seed{color:var(--ink-faint);font-size:12px}.sheet .talk{flex:none;display:flex;flex-wrap:wrap;gap:8px;padding:8px 14px 12px;border-top:1px solid var(--paper-deep)}.sheet .talk input{flex:1 1 100%;min-width:0;padding:9px 11px;font:inherit;font-size:16px;color:var(--ink);background:transparent;border:1.5px solid var(--ink-faint);border-radius:2px}.sheet .talk input:focus{outline:none;border-color:var(--ink)}.sheet .talk button:disabled{opacity:.45;cursor:default}.sheet .lines p.live:after{content:"";display:inline-block;width:.5em;height:1em;margin-left:2px;vertical-align:-.15em;background:var(--ink-soft);animation:blink 1s steps(2,start) infinite}@keyframes blink{to{visibility:hidden}}@media(prefers-reduced-motion:reduce){.sheet .lines p.live:after{animation:none}}
