*{box-sizing:border-box}html,body{margin:0;height:100%;background:#07060d;color:#e9e4ff;font:15px/1.45 system-ui,-apple-system,Segoe UI,sans-serif;overflow:hidden}
#c{position:fixed;inset:0;width:100%;height:100%;display:block;touch-action:none}
#hud{position:fixed;top:28px;left:0;right:0;text-align:center;pointer-events:none}
h1{font:300 54px/1 Georgia,serif;letter-spacing:.35em;margin:0;color:#f5e9ff;text-shadow:0 0 24px #a86bff}
#hint{opacity:.75;max-width:520px;margin:14px auto}#dots{letter-spacing:8px;color:#ffcf7a}
.panel{position:fixed;left:50%;top:55%;transform:translate(-50%,-50%);background:#120f22cc;backdrop-filter:blur(10px);border:1px solid #6d4bd8;border-radius:16px;padding:28px 32px;text-align:center;box-shadow:0 0 60px #6d4bd855}
.hidden{display:none!important}input,textarea{background:#0b0918;color:#fff;border:1px solid #4a3a8a;border-radius:10px;padding:10px 12px;font:inherit}
button{background:linear-gradient(135deg,#8a5cff,#ff8fb1);border:0;color:#fff;border-radius:10px;padding:10px 16px;font:inherit;cursor:pointer}
#lf{display:flex;gap:8px}#lf input{width:290px}.err{color:#ff8fa3;min-height:1em}
#room{position:fixed;inset:0;display:flex;background:#0a0814ee}
#pins{width:280px;border-right:1px solid #2a2150;padding:16px;overflow:auto;background:#0d0b1c}#pins h3{margin:0 0 12px}
.pin{background:#1a1534;border-left:3px solid #ffcf7a;border-radius:8px;padding:8px 10px;margin-bottom:10px;font-size:13px}
main{flex:1;display:flex;flex-direction:column;min-width:0}header{display:flex;gap:12px;align-items:center;padding:12px 18px;border-bottom:1px solid #2a2150}header b{font-family:Georgia,serif;letter-spacing:.3em}#who{flex:1;opacity:.7}header button{padding:6px 12px}
#msgs{flex:1;overflow:auto;padding:18px}.m{max-width:70%;margin:8px 0;padding:9px 12px;border-radius:12px;background:#1b1636;position:relative}
.m.me{margin-left:auto;background:#3a2780}.m.ai{background:#123a36;border:1px dashed #3fd1b5}.m .a{font-size:12px;padding-right:22px;opacity:.65}.m .t{white-space:pre-wrap;word-wrap:break-word}
.m .p{position:absolute;z-index:2;top:4px;right:6px;background:none;padding:0;opacity:.35;font-size:13px}.m:hover .p,.m .p.on{opacity:1}
#mf{display:flex;gap:8px;padding:12px 18px;border-top:1px solid #2a2150}#mf textarea{flex:1;resize:none}
@media(max-width:700px){#pins{display:none}.m{max-width:88%}h1{font-size:38px}}
