:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#1d2b31;--ink:#e8e2d0;--muted:#9aa69c;font-family:ui-serif,Georgia,serif}html,body,#root{background:var(--bg);height:100%;color:var(--ink);margin:0}html,body,.island,.island *,.tree-story,.timeline,.journal{overscroll-behavior:none}main{grid-template-rows:1fr auto auto auto;height:100%;display:grid}main.immersive{grid-template-rows:1fr}.scene{min-height:0;display:grid;position:relative}.scene>.island{min-height:0}.immersive-toggle{right:calc(10px + env(safe-area-inset-right));bottom:calc(10px + env(safe-area-inset-bottom));width:40px;height:40px;color:var(--ink);font:inherit;cursor:pointer;opacity:.7;background:#1d2b3199;border:1px solid #9aa69c80;border-radius:8px;place-items:center;padding:0;font-size:18px;line-height:1;transition:opacity .15s;display:grid;position:absolute}.immersive .immersive-toggle{opacity:.35}.immersive-toggle:hover,.immersive-toggle:focus-visible{opacity:1}@media (prefers-reduced-motion:reduce){.immersive-toggle{transition:none}}.island{touch-action:none;min-height:0;position:relative;overflow:hidden}.island canvas{display:block;position:absolute;inset:0}.timeline{align-items:center;gap:12px;padding:12px 16px;display:flex}.timeline input{accent-color:#b9a36f;flex:1}.timeline span{color:var(--muted);text-align:right;min-width:9em;font-size:14px}.timeline button{border:1px solid var(--muted);color:var(--ink);font:inherit;background:0 0;border-radius:6px;padding:4px 10px}.journal-panel{padding-bottom:env(safe-area-inset-bottom)}.journal-toggle{color:var(--muted);font:inherit;cursor:pointer;background:0 0;border:0;padding:4px 16px 8px;font-size:14px;display:block}.journal-toggle span{margin-left:2px;font-size:12px}.journal{color:var(--muted);margin:0;padding:0 16px 16px;font-size:14px;list-style:none}.journal time{opacity:.7;margin-right:8px}.note{color:var(--muted);padding:24px}.loading{pointer-events:none;justify-content:center;align-items:center;gap:6px;display:flex;position:absolute;inset:0}.loading>span{background:var(--muted);border-radius:50%;width:8px;height:8px;animation:1.4s ease-in-out infinite loading-pulse}.loading>span:nth-child(2){animation-delay:.2s}.loading>span:nth-child(3){animation-delay:.4s}@keyframes loading-pulse{0%,60%,to{opacity:.3}30%{opacity:1}}@media (prefers-reduced-motion:reduce){.loading>span{animation-duration:2.8s}}.dock,.data-dock{--dock-w:calc(100vw - 28px - env(safe-area-inset-left) - env(safe-area-inset-right));--spring-snap-d:.412s;--spring-snap:linear(0, .0688, .1997, .3401, .4686, .5703, .6615, .7349, .7931, .8389, .8747, .9027, .9244, .9402, .9536, .964, .9721, .9784, .9832, .987, .9899, .992, .9938, .9952, .9963, .9971, .9978, .9983, .9987, .9989, .9992, .9994, 1);--spring-panel-d:.619s;--spring-panel:linear(0, .0394, .1319, .2398, .3507, .4611, .5551, .637, .7099, .7674, .8148, .8552, .8859, .9106, .9311, .9463, .9589, .9682, .9755, .9814, .9857, .9891, .9918, .9937, .9952, .9964, .9973, .9979, .9985, .9988, .9991, .9993, 1);--fade:.2s;--ease-standard:cubic-bezier(.4, 0, .2, 1);--glass:20, 28, 34}.dock{z-index:2;left:calc(14px + env(safe-area-inset-left));bottom:calc(14px + env(safe-area-inset-bottom));color:var(--ink);touch-action:manipulation;pointer-events:none;flex-direction:column;align-items:flex-start;gap:6px;font-size:14px;display:flex;position:absolute}.dock>*{pointer-events:auto}@media (width>=640px){.dock{--dock-w:26.5rem;left:calc(18px + env(safe-area-inset-left));bottom:calc(18px + env(safe-area-inset-bottom))}}.dock-above{width:var(--dock-w);flex-direction:column;display:flex}.dock-above:empty{display:none}.dock-islands{width:var(--dock-w);pointer-events:none;height:42px;position:relative}.dock-islands>*{pointer-events:auto}.dock-goo{width:0;height:0;position:absolute}.dock-islands>.dock-liquid{z-index:-1;pointer-events:none;opacity:.86;filter:url(#dock-goo)drop-shadow(0 0 1px #e8e2d073)drop-shadow(0 1px 3px #0006);position:absolute;inset:0}.dock-drop{box-sizing:content-box;background:linear-gradient(#ffffff1a, #ffffff1a), rgb(var(--glass));transition:left var(--spring-snap-d) var(--spring-snap), width var(--spring-snap-d) var(--spring-snap), height var(--spring-snap-d) var(--spring-snap), border-radius var(--spring-snap-d) var(--spring-snap), padding var(--spring-snap-d) var(--spring-snap);border-radius:21px;padding:3px;position:absolute;bottom:0}.dock-drop[data-hidden]{padding:0}.dock-drop-x{width:42px;height:42px;animation:dock-drop-part var(--spring-snap-d) var(--spring-snap) .28s backwards;border-radius:999px;padding:0}@keyframes dock-drop-part{0%{transform:translate(-1.5rem)scale(.5)}}.dock-isle{box-sizing:content-box;-webkit-backdrop-filter:blur(20px)saturate(140%);backdrop-filter:blur(20px)saturate(140%);transition:left var(--spring-snap-d) var(--spring-snap), width var(--spring-snap-d) var(--spring-snap), height var(--spring-snap-d) var(--spring-snap), border-radius var(--spring-snap-d) var(--spring-snap), opacity var(--fade) var(--ease-standard), filter var(--fade) var(--ease-standard), transform var(--spring-snap-d) var(--spring-snap);border-radius:21px;padding:3px;position:absolute;bottom:0;overflow:hidden}.dock:not([data-open]) .dock-isle{transition-delay:0s,0s,0s,0s,.16s,.16s,0s}.dock-isle[data-hidden]{opacity:0;filter:blur(6px);pointer-events:none;transition:left var(--spring-snap-d) var(--spring-snap), width var(--spring-snap-d) var(--spring-snap), height var(--spring-snap-d) var(--spring-snap), border-radius var(--spring-snap-d) var(--spring-snap), opacity .14s var(--ease-standard), filter .14s var(--ease-standard), transform var(--spring-snap-d) var(--spring-snap);transform:scale(.9)}.dock-rest{width:36px;height:36px;color:inherit;font:inherit;cursor:pointer;background:0 0;border:0;border-radius:18px;place-items:center;padding:0;display:grid}.dock-rest>svg{animation:dock-in .16s var(--ease-standard) backwards}.dock-held-x>svg{animation:dock-in .15s var(--ease-standard) both}@media (hover:hover){.dock-rest:hover{background:#ffffff14}}.dock-panel{height:36px;animation:dock-in var(--fade) var(--ease-standard) both;align-items:center;display:flex}@keyframes dock-in{0%{opacity:0}}@keyframes dock-rise{0%{opacity:0;transform:translateY(.75rem)}}@keyframes dock-melt{to{opacity:0;filter:blur(6px);transform:translateY(.375rem)scale(.96)}}.dock-x{color:#e8e2d0bf;cursor:pointer;width:42px;height:42px;animation:dock-x-in var(--fade) var(--ease-standard) .36s backwards;background:0 0;border:0;border-radius:999px;place-items:center;padding:0;display:grid;position:absolute;bottom:0}.dock-x:hover{color:var(--ink)}@keyframes dock-x-in{0%{opacity:0;filter:blur(6px)}}.dock-search{box-sizing:border-box;width:100%;height:36px;color:var(--muted);align-items:center;gap:8px;padding:0 12px;display:flex}.dock-panel:has(.dock-search){width:100%}.dock-search input{min-width:0;color:var(--ink);font:inherit;background:0 0;border:0;outline:none;flex:1;font-size:16px}.dock-search input::placeholder{color:var(--muted)}.dock-search input::-webkit-search-cancel-button{display:none}.dock-card{background:rgba(var(--glass), .88);-webkit-backdrop-filter:blur(24px)saturate(140%);backdrop-filter:blur(24px)saturate(140%);animation:dock-rise var(--fade) var(--ease-standard) both;border-radius:16px;padding:4px;box-shadow:0 0 0 1px #00000047,0 10px 40px #0000004d}.dock-results ul{max-height:50vh;margin:0;padding:0;list-style:none;overflow:auto}.dock-results li button{text-align:left;width:100%;color:var(--ink);font:inherit;cursor:pointer;background:0 0;border:0;border-radius:12px;padding:7px 10px;display:block}.dock-results li button:hover,.dock-results li button:focus-visible,.dock-results li button.chosen{background:#ffffff14}.dock-results li button span{color:var(--muted);margin-left:8px;font-size:.85em}.dock-note{color:var(--muted);margin:4px 10px;font-size:12px}.dock-frame{z-index:-1;background:rgba(var(--glass), .8);-webkit-backdrop-filter:blur(24px)saturate(140%);backdrop-filter:blur(24px)saturate(140%);opacity:0;clip-path:inset(calc(100% - 58px) 0 0 round 16px);pointer-events:none;transition:opacity var(--fade) var(--ease-standard), clip-path var(--spring-panel-d) var(--spring-panel);border-radius:16px;position:absolute;inset:-8px;box-shadow:inset 0 0 0 1px #e8e2d014,0 10px 40px #0000004d}.dock[data-held] .dock-frame{opacity:1;clip-path:inset(0 round 16px);pointer-events:auto}@media (width<=639.98px){.dock-frame{inset:-6px -6px calc(-14px - env(safe-area-inset-bottom));border-bottom-right-radius:0;border-bottom-left-radius:0}}.dock-menu{animation:dock-rise var(--fade) var(--ease-standard) both;padding:6px 8px 4px}.dock-menu h2{color:var(--muted);letter-spacing:.04em;text-transform:uppercase;margin:0 0 4px;font-size:12px;font-weight:600}.dock-sources{max-height:min(50vh,24rem);margin:0;padding:0;font-size:12px;line-height:1.5;list-style:none;overflow:auto}.dock-sources li+li{margin-top:4px}.dock-sources b{color:var(--muted);font-weight:500}.dock-sources summary{cursor:pointer}.dock-sources details p{margin:4px 0 0}.dock-sources code{word-break:break-all;font-size:11px}.data-dock{z-index:2;right:calc(14px + env(safe-area-inset-right));top:calc(14px + env(safe-area-inset-top));color:var(--ink);touch-action:manipulation;font-size:13px;position:absolute}@media (width>=640px){.data-dock{right:calc(18px + env(safe-area-inset-right));top:calc(18px + env(safe-area-inset-top))}}.data-dock>.data-liquid{z-index:-1;pointer-events:none;opacity:.86;filter:url(#dock-goo)drop-shadow(0 0 1px #e8e2d073)drop-shadow(0 1px 3px #0006);position:absolute;inset:0}.data-dock .dock-drop,.data-dock .dock-isle{top:0;bottom:auto;right:0}.data-isle{position:relative!important}.data-dock .dock-drop-x{animation-name:data-drop-part}@keyframes data-drop-part{0%{transform:translate(1.5rem)scale(.5)}}.data-dock .dock-x{top:0;bottom:auto}.data-inner{width:max-content}.data-strip{height:36px;color:inherit;font:inherit;white-space:nowrap;cursor:pointer;max-width:calc(100vw - 34px - env(safe-area-inset-left) - env(safe-area-inset-right));animation:dock-in .16s var(--ease-standard) backwards;background:0 0;border:0;border-radius:18px;align-items:center;gap:10px;padding:0 14px;display:flex;overflow:hidden}.data-strip>span{flex:none;align-items:center;gap:5px;display:inline-flex}.data-strip>span+span:before{content:"";background:var(--muted);border-radius:50%;width:3px;height:3px;margin-right:5px}@media (hover:hover){.data-strip:hover{background:#ffffff14}}.data-panel{width:min(20rem, calc(100vw - 28px - 54px - env(safe-area-inset-left) - env(safe-area-inset-right)));max-height:calc(100dvh - 48px - env(safe-area-inset-top) - env(safe-area-inset-bottom));box-sizing:border-box;animation:dock-in var(--fade) var(--ease-standard) both;padding:8px 10px 6px;overflow:auto}.data-panel section+section{margin-top:8px}.data-panel h3{color:var(--muted);letter-spacing:.04em;text-transform:uppercase;margin:0 0 2px;font-size:11px;font-weight:600}.data-panel ul{margin:0;padding:0;list-style:none}.data-panel li{align-items:center;gap:8px;min-height:28px;display:flex}.data-label{color:var(--muted);flex:none}.data-value{text-align:right;font-variant-numeric:tabular-nums;flex:1;min-width:0}.data-pin{width:26px;height:26px;color:var(--muted);opacity:.55;cursor:pointer;background:0 0;border:0;border-radius:13px;flex:none;place-items:center;padding:0;display:grid}.data-pin[aria-pressed=true]{color:var(--ink);opacity:1}@media (hover:hover){.data-pin:hover{opacity:1;background:#ffffff14}}.data-asof{color:var(--muted);margin:8px 0 0;font-size:11px}.dock-leaving{pointer-events:none;animation:dock-melt var(--fade) var(--ease-standard) forwards}@media (prefers-reduced-motion:reduce){.dock-drop,.dock-isle,.dock-frame{transition:none}.dock-rest>svg,.dock-held-x>svg,.dock-panel,.dock-x,.dock-drop-x,.dock-card,.dock-menu,.data-strip,.data-panel{animation:none}.dock-leaving{display:none}}.start-ask{max-width:30em;color:var(--ink);place-self:center;padding:24px;line-height:1.6}.start-ask button{border:1px solid var(--muted);color:var(--ink);font:inherit;cursor:pointer;background:0 0;border-radius:6px;padding:6px 14px}.notice{color:var(--muted);margin:0;padding:6px 16px 0;font-size:14px}.notice button{color:var(--ink);font:inherit;cursor:pointer;background:0 0;border:0;padding:0;text-decoration:underline}.tree-story{background:#1d2b31e6;border-radius:10px;max-width:min(340px,100vw - 48px);max-height:60vh;padding:12px 14px;font-size:14px;position:fixed;top:12px;left:12px;overflow:auto}.tree-story p{margin:0 0 6px}.tree-story .note-line{color:var(--muted)}.tree-story .journal{padding:0}.tree-story button.small{border:1px solid var(--muted);color:var(--ink);font:inherit;cursor:pointer;background:0 0;border-radius:6px;padding:1px 8px;font-size:12px}
