:root{--bg: #14121a;--panel-bg: #1e1b26;--panel-fg: #e8e4f0;--accent: #f0a848;--muted: #9a93a8;--panel-width: 22rem}*{box-sizing:border-box}html,body{margin:0;padding:0;height:100%;overflow:hidden;background:var(--bg);color:var(--panel-fg);font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,sans-serif;overscroll-behavior:none}#app{position:relative;width:100%;height:100%}.visually-hidden{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}.skip-link{position:absolute;left:.75rem;top:-4rem;z-index:10;padding:.5rem .9rem;color:var(--bg);background:var(--accent);border-radius:0 0 .4rem .4rem;text-decoration:none;transition:top .12s ease-out}.skip-link:focus-visible{top:0}#stage{position:absolute;top:0;right:0;bottom:0;left:0;touch-action:none}#stage canvas{display:block;width:100%;height:100%}#hud{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;font-size:.8rem;z-index:3}#hud>*{position:absolute}#hud a{color:var(--muted);text-decoration:none;border-bottom:1px dotted currentColor;pointer-events:auto}#hud a:hover,#hud a:focus-visible{color:var(--accent)}#directory-link{right:.75rem;bottom:.75rem}#city-link{right:5.5rem;bottom:.75rem}.hud__room{left:.9rem;top:.8rem;font-size:.95rem;font-weight:600;letter-spacing:.02em;color:var(--panel-fg);text-shadow:0 1px 3px rgb(0 0 0 / 70%)}.hud__cue{left:50%;top:3.2rem;transform:translate(-50%);padding:.35rem .85rem;border-radius:999px;background:#0000008c;color:var(--accent);white-space:nowrap}.hud__loading{left:50%;top:50%;transform:translate(-50%,-50%);color:var(--muted);letter-spacing:.08em;text-transform:uppercase}.boot-error{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-content:center;padding:2rem;text-align:center;color:var(--muted)}.boot-error a{color:var(--accent)}noscript p{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-content:center;padding:2rem;text-align:center;background:var(--bg);color:var(--panel-fg)}#home-link{left:.75rem;bottom:.75rem}.panel{position:fixed;z-index:5;display:flex;flex-direction:column;gap:.75rem;right:0;bottom:0;left:0;width:100%;max-height:55vh;padding:0 1rem calc(.875rem + env(safe-area-inset-bottom,0px));overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;background:var(--panel-bg);color:var(--panel-fg);border-top:2px solid var(--accent);border-radius:.75rem .75rem 0 0;box-shadow:0 -.5rem 1.5rem #00000073;font-size:.95rem;line-height:1.5}.panel[hidden]{display:none}.panel__header{position:sticky;top:0;z-index:1;display:flex;flex-wrap:wrap;align-items:baseline;gap:.5rem;margin:0 -1rem;padding:.875rem 3rem .5rem 1rem;background:var(--panel-bg)}.panel__title{margin:0;flex:1 1 10rem;min-width:0;font-size:1.15rem;line-height:1.25;font-weight:650;overflow-wrap:anywhere}.panel__lock{flex-basis:100%;font-size:.75rem;color:var(--accent);letter-spacing:.02em}.panel__lock[hidden]{display:none}.panel__close{position:absolute;top:.5rem;right:.5rem;width:2rem;height:2rem;display:grid;place-items:center;padding:0;font-size:1.25rem;line-height:1;color:var(--muted);background:transparent;border:1px solid transparent;border-radius:50%;cursor:pointer}.panel__close:hover,.panel__close:focus-visible{color:var(--panel-fg);border-color:var(--muted)}.badge{flex:0 0 auto;padding:.1rem .5rem;font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;border:1px solid currentColor;border-radius:999px;color:var(--muted)}.badge--active{color:#6fd08c}.badge--paused{color:var(--accent)}.badge--archived{color:var(--muted)}.badge--idea{color:#8fb8f0}.tags{display:flex;flex-wrap:wrap;gap:.35rem;margin:0;padding:0;list-style:none}.tags:empty{display:none}.tags>li{padding:.1rem .5rem;font-size:.72rem;color:var(--muted);background:#ffffff0f;border-radius:999px;overflow-wrap:anywhere}.content{min-width:0;overflow-wrap:anywhere}.content>:first-child{margin-top:0}.content>:last-child{margin-bottom:0}.content h1,.content h2,.content h3,.content h4{margin:1.1em 0 .4em;line-height:1.25;font-weight:650}.content h1{font-size:1.1rem}.content h2{font-size:1rem}.content h3,.content h4{font-size:.9rem;color:var(--muted);text-transform:uppercase;letter-spacing:.05em}.content p,.content ul,.content ol,.content blockquote{margin:0 0 .75em}.content ul,.content ol{padding-left:1.2rem}.content li{margin-bottom:.2em}.content a{color:var(--accent);text-decoration:underline;text-underline-offset:.15em}.content a:hover,.content a:focus-visible{text-decoration-thickness:2px}.content img{display:block;max-width:100%;height:auto;margin:.5em 0;border-radius:.375rem;image-rendering:pixelated}.content code{padding:.1em .3em;font-family:ui-monospace,SFMono-Regular,Cascadia Code,Consolas,monospace;font-size:.85em;background:#ffffff14;border-radius:.25rem}.content pre{margin:0 0 .75em;padding:.6rem .75rem;overflow-x:auto;background:#00000059;border:1px solid rgb(255 255 255 / 8%);border-radius:.375rem}.content pre code{padding:0;background:none;white-space:pre}.content blockquote{padding-left:.75rem;border-left:2px solid var(--muted);color:var(--muted)}.content hr{margin:1em 0;border:0;border-top:1px solid rgb(255 255 255 / 12%)}.content table{width:100%;border-collapse:collapse;font-size:.85rem}.content th,.content td{padding:.25rem .4rem;text-align:left;border-bottom:1px solid rgb(255 255 255 / 10%)}.panel--locked{border-color:var(--accent);box-shadow:0 -.5rem 1.5rem #00000073,inset 0 0 0 1px var(--accent)}.panel--error .panel__title{color:var(--accent)}.panel__message{margin:0 0 .5em;color:var(--muted)}.panel__path{display:inline-block;padding:.15rem .4rem;font-family:ui-monospace,SFMono-Regular,Cascadia Code,Consolas,monospace;font-size:.82rem;background:#ffffff14;border-radius:.25rem;overflow-wrap:anywhere}@media(min-width:48rem){.panel{top:0;left:auto;bottom:0;width:var(--panel-width);max-width:100%;max-height:none;height:100%;padding:0 1.25rem 1.5rem;border-top:0;border-left:2px solid var(--accent);border-radius:0;box-shadow:-.5rem 0 1.5rem #00000073}.panel--locked{box-shadow:-.5rem 0 1.5rem #00000073,inset 0 0 0 1px var(--accent)}.panel__header{margin:0 -1.25rem;padding:1.25rem 3.25rem .5rem 1.25rem}.panel__close{top:1rem;right:.75rem}.panel__title{font-size:1.3rem}}@media(prefers-reduced-motion:no-preference){.panel{transition:opacity .12s ease-out}}
