:root{--ink: #f4ead8;--ink-dim: rgba(244, 234, 216, .62);--ink-faint: rgba(244, 234, 216, .32);--panel: rgba(16, 13, 12, .78);--line: rgba(244, 234, 216, .12);--accent: #f2b36a;--serif: "Fraunces", Georgia, "Times New Roman", serif;--sans: "Inter", system-ui, -apple-system, sans-serif;color-scheme:dark}*{box-sizing:border-box}html,body,#root{margin:0;height:100%;background:#060506;color:var(--ink);font-family:var(--sans);overflow:hidden;overscroll-behavior:none}body{-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;user-select:none;-webkit-user-select:none}button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}.app{position:fixed;inset:0;overflow:hidden;touch-action:none}.feed{position:absolute;inset:0;overflow:hidden;touch-action:none}.vtrack{position:absolute;inset:0;will-change:transform}.city-row{position:absolute;left:0;width:100%;height:100%}.htrack{position:absolute;inset:0;will-change:transform}.slide{position:absolute;top:0;width:100%;height:100%;overflow:hidden}.slide:after{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(130% 90% at 50% 50%,transparent 55%,rgba(0,0,0,.55) 100%)}.view{position:absolute;inset:0}.gl{position:fixed!important;inset:0;pointer-events:none;z-index:1}.feed .slide>*{z-index:0}.placeholder-note{position:absolute;left:50%;top:74%;transform:translate(-50%);z-index:2;display:grid;justify-items:center;gap:4px;text-align:center;pointer-events:none}.placeholder-note span{font-size:10px;letter-spacing:.24em;text-transform:uppercase;color:var(--ink-faint)}.placeholder-note b{font-family:var(--serif);font-weight:400;font-size:20px;color:var(--ink-dim)}.placeholder-note em{font-size:12px;color:var(--ink-faint)}.hud{position:fixed;inset:0;pointer-events:none;z-index:5}.hud [data-ui],.hud button{pointer-events:auto}.title{position:absolute;left:max(18px,env(safe-area-inset-left));top:max(16px,env(safe-area-inset-top));animation:rise .7s cubic-bezier(.2,.85,.25,1) both}.title .city{font-family:var(--serif);font-size:30px;line-height:1;letter-spacing:-.01em;text-shadow:0 2px 18px rgba(0,0,0,.6)}.title .cc{font-family:var(--sans);font-size:9px;letter-spacing:.18em;margin-left:8px;vertical-align:6px;color:var(--ink-faint);border:1px solid var(--line);padding:2px 5px;border-radius:4px}.title .place{margin-top:8px;font-size:13px;font-weight:600;letter-spacing:.02em}.title .tag{font-size:12px;color:var(--ink-dim);margin-top:2px}@keyframes rise{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.city-pips{position:absolute;right:max(10px,env(safe-area-inset-right));top:50%;transform:translateY(-50%);display:grid;gap:6px}.city-pips button{width:34px;height:34px;display:grid;place-items:center;border-radius:50%}.city-pips button span{font-size:9px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-faint);transition:color .3s}.city-pips button:before{content:"";position:absolute;width:3px;height:3px;border-radius:50%}.city-pips button.on span{color:var(--ink)}.city-pips button.on{box-shadow:inset 0 0 0 1px var(--line)}.loc-pips{position:absolute;left:50%;bottom:max(18px,env(safe-area-inset-bottom));transform:translate(-50%);display:flex;align-items:center;gap:2px}.loc-pips button{width:18px;height:28px;display:grid;place-items:center}.loc-pips button:after{content:"";width:6px;height:6px;border-radius:50%;background:var(--ink-faint);transition:all .3s}.loc-pips button.wip:after{background:transparent;box-shadow:inset 0 0 0 1px var(--ink-faint)}.loc-pips button.on:after{width:18px;border-radius:3px;background:var(--ink);box-shadow:none}.loc-pips button.arrow{width:28px;font-size:20px;color:var(--ink-dim)}.loc-pips button.arrow:after{display:none}.loc-pips button.arrow:disabled{opacity:.2;cursor:default}.caption{position:absolute;left:50%;bottom:calc(max(18px,env(safe-area-inset-bottom)) + 40px);transform:translate(-50%,6px);max-width:min(86vw,460px);padding:8px 14px;border-radius:14px;text-align:center;font-family:var(--serif);font-style:italic;font-size:14px;line-height:1.35;color:var(--ink);background:#0a08086b;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);opacity:0;transition:opacity .6s,transform .6s}.caption.show{opacity:1;transform:translate(-50%)}.caption.t-interaction{font-style:normal;font-family:var(--sans);font-size:13px}.caption.t-agent-dialogue{color:#ffe4bd}.sheet{position:absolute;left:50%;bottom:max(12px,env(safe-area-inset-bottom));transform:translate(-50%);width:min(94vw,420px);padding:16px 16px 14px;border-radius:18px;background:var(--panel);backdrop-filter:blur(14px) saturate(1.2);-webkit-backdrop-filter:blur(14px) saturate(1.2);box-shadow:0 10px 40px #00000080,inset 0 0 0 1px var(--line);animation:sheet-in .38s cubic-bezier(.2,.85,.25,1) both}@keyframes sheet-in{0%{opacity:0;transform:translate(-50%,24px)}to{opacity:1;transform:translate(-50%)}}.sheet .close{position:absolute;right:8px;top:6px;width:32px;height:32px;font-size:20px;color:var(--ink-dim)}.sheet .kind{font-size:10px;text-transform:uppercase;letter-spacing:.18em;color:var(--accent)}.sheet .owner{color:var(--ink-faint);text-transform:none;letter-spacing:.02em;font-size:11px}.sheet h2{margin:4px 0 6px;font-family:var(--serif);font-weight:400;font-size:21px;line-height:1.15}.sheet .desc{margin:0;font-size:13px;line-height:1.45;color:var(--ink-dim)}.sheet .status{margin-top:10px;font-size:12px;color:var(--ink);display:flex;align-items:center;gap:6px}.sheet .status:before{content:"";width:6px;height:6px;border-radius:50%;background:var(--accent);box-shadow:0 0 8px var(--accent)}.sheet .result{margin-top:8px;font-family:var(--serif);font-style:italic;font-size:14px;color:#ffe4bd;animation:rise .4s both}.sheet .actions{display:flex;flex-wrap:wrap;gap:6px;margin-top:12px}.sheet .actions button{padding:8px 12px;border-radius:999px;font-size:12px;font-weight:500;background:#f4ead814;box-shadow:inset 0 0 0 1px var(--line);transition:background .2s,transform .1s}.sheet .actions button:hover{background:#f4ead829}.sheet .actions button:active{transform:scale(.96)}.bubbles{position:fixed;inset:0;pointer-events:none;overflow:hidden}.bubble{position:absolute;left:0;top:0;max-width:168px;padding:5px 9px 6px;border-radius:11px;background:#faf2e4e6;color:#1c1512;font-size:11.5px;line-height:1.3;box-shadow:0 4px 18px #00000059;animation-name:bubble;animation-timing-function:linear;animation-fill-mode:both;margin-top:-10px}.bubble:after{content:"";position:absolute;left:var(--tail, 50%);bottom:-5px;width:10px;height:10px;background:inherit;transform:translate(-50%) rotate(45deg);border-radius:2px}.bubble .who{display:block;font-size:9px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:#8a5a2b;margin-bottom:1px}@keyframes bubble{0%{opacity:0}6%{opacity:1}88%{opacity:1}to{opacity:0}}.log{position:absolute;inset:0;background:#00000059;display:flex;align-items:flex-end;justify-content:center;animation:fade .3s both}@keyframes fade{0%{opacity:0}}.log-inner{width:min(96vw,460px);max-height:60vh;overflow:auto;margin-bottom:10px;padding:14px 16px;border-radius:18px;background:var(--panel);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);box-shadow:inset 0 0 0 1px var(--line)}.log-head{display:flex;justify-content:space-between;align-items:center;font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:var(--accent)}.log-head button{font-size:20px;color:var(--ink-dim)}.log ul{list-style:none;padding:0;margin:8px 0 0;display:grid;gap:8px}.log li{display:grid;grid-template-columns:58px 1fr;gap:8px;font-size:12.5px;line-height:1.4;color:var(--ink-dim)}.log li time{font-size:10px;color:var(--ink-faint);padding-top:2px;font-variant-numeric:tabular-nums}.log li.t-interaction span{color:var(--ink)}.log li.t-agent-dialogue span{color:#ffe4bd;font-family:var(--serif);font-style:italic}.log li.t-ambient span{font-style:italic}.log .empty{font-size:13px;color:var(--ink-faint)}.first-hint{position:absolute;left:50%;top:58%;transform:translate(-50%);display:flex;gap:14px;font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-dim);opacity:0;transition:opacity .8s;white-space:nowrap}.first-hint.show{opacity:1}.first-hint span{padding:6px 10px;border-radius:999px;background:#00000059;backdrop-filter:blur(6px)}@media (max-width: 600px){.city-pips{right:2px;gap:0}.city-pips button{width:26px;height:30px;box-shadow:none!important}.city-pips button span{font-size:0;width:5px;height:5px;border-radius:50%;background:var(--ink-faint)}.city-pips button.on span{height:16px;border-radius:3px;background:var(--ink)}}@media (min-width: 900px){.title .city{font-size:40px}.title{left:32px;top:28px}}.sheet.person .does{font-size:12.5px;color:var(--ink);margin:-2px 0 6px}.sheet .traits{display:flex;flex-wrap:wrap;gap:5px;margin-top:10px}.sheet .traits span{font-size:11px;padding:3px 8px;border-radius:999px;color:var(--ink-dim);box-shadow:inset 0 0 0 1px var(--line)}.coach{position:absolute;inset:0;pointer-events:none;z-index:6;transition:opacity .5s}.coach.out{opacity:0}.coach-finger,.coach-ripple,.coach-trail{position:absolute;left:0;top:0;will-change:transform,opacity}.coach-finger{opacity:0;filter:drop-shadow(0 6px 14px rgba(0,0,0,.55));transition:transform .12s}.coach-ripple{width:44px;height:44px;margin:-22px 0 0 -22px;border-radius:50%;background:#fff4e247;box-shadow:0 0 0 2px #fff4e28c;opacity:0;transition:transform .25s,opacity .25s}.coach-trail{border-radius:8px;background:#fff4e238;opacity:0}.coach-label{position:absolute;left:50%;top:calc(56% + 96px);transform:translate(-50%);padding:8px 14px;border-radius:999px;background:#0a08088c;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);font-size:13px;font-weight:500;letter-spacing:.01em;color:var(--ink);white-space:nowrap;animation:fade .4s both}@media (max-width: 380px){.coach-label{white-space:normal;text-align:center;width:80vw}}.dartzoom{position:absolute;left:50%;top:9%;width:min(68vw,46vh,360px);transform:translate(-50%);pointer-events:none;z-index:30;display:flex;flex-direction:column;align-items:center;gap:10px;animation:dz-in .45s cubic-bezier(.2,1.4,.4,1) both}.dartzoom.out{animation:dz-out .45s ease-in both}.dz-board{width:100%;height:auto;overflow:visible;filter:drop-shadow(0 18px 40px rgba(0,0,0,.6))}.dz-fly{animation:dz-fly .32s .35s cubic-bezier(.3,0,.2,1) both}.dz-dart.bounce .dz-fly{animation:dz-fly .32s .35s cubic-bezier(.3,0,.2,1) both,dz-drop .7s 1.05s ease-in forwards}.dz-ring{fill:none;stroke:#fff6d8;stroke-width:2;opacity:0;transform-box:fill-box;transform-origin:center;animation:dz-ring .7s .65s ease-out both}.dz-label{padding:7px 14px;border-radius:999px;background:#0a0808b3;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);color:var(--ink);font-weight:600;font-size:15px;letter-spacing:.01em;animation:fade .3s .7s both}@keyframes dz-in{0%{opacity:0;transform:translate(-50%) scale(.25)}to{opacity:1;transform:translate(-50%) scale(1)}}@keyframes dz-out{0%{opacity:1;transform:translate(-50%) scale(1)}to{opacity:0;transform:translate(-50%) scale(.3)}}@keyframes dz-fly{0%{opacity:0;transform:translate(40px,70px) scale(3.2)}70%{opacity:1}to{opacity:1;transform:none}}@keyframes dz-drop{to{transform:translate(6px,160px) rotate(80deg);opacity:0}}@keyframes dz-ring{0%{opacity:.95;transform:scale(.4)}to{opacity:0;transform:scale(3.2)}}
