.qn-npc-layer{z-index:6}.qn-npc-layer>*{pointer-events:auto}.qn-npc-tag{border:2.5px solid var(--qn-ink);background:var(--qn-paper);min-height:36px;color:var(--qn-ink);box-shadow:2px 2px 0 var(--qn-ink);font:800 .86rem / 1 var(--font-display,"Archivo", sans-serif);letter-spacing:.05em;text-transform:uppercase;white-space:nowrap;cursor:pointer;border-radius:999px 999px 999px 6px;align-items:center;gap:.45em;padding:0 12px 0 6px;font-stretch:75%;animation:1.8s ease-in-out infinite qn-npc-float;display:inline-flex;position:absolute;translate:-50% -100%}.qn-npc-tag[hidden]{display:none}.qn-npc-tag:before{content:"";border:2px solid var(--qn-ink);background:var(--npc-dye,var(--qn-accent));border-radius:50%;order:2;width:10px;height:10px}.qn-npc-tag:hover{background:#fff7e6}.qn-npc-tag:focus-visible{outline:3px solid var(--qn-ochre);outline-offset:3px}.qn-npc-tag:after{content:"";position:absolute;inset:-6px}@keyframes qn-npc-float{0%,to{transform:translateY(0)}50%{transform:translateY(-3px)}}.qn-npc-card{--tail-x:48px;border:2.5px solid var(--qn-ink);background:var(--qn-paper);width:min(380px,100vw - 24px);box-shadow:4px 4px 0 var(--qn-ink), 0 18px 40px -18px #1f1a1780;transform-origin:var(--tail-x) 100%;border-radius:10px;position:absolute}.qn-npc-card.is-pop{animation:.26s cubic-bezier(.16,1,.3,1) both qn-npc-pop}@keyframes qn-npc-pop{0%{opacity:.4;transform:translateY(6px)scale(.97)}to{opacity:1;transform:none}}.qn-npc-card:after,.qn-npc-card:before{content:"";left:var(--tail-x);border-style:solid;width:0;height:0;position:absolute;translate:-50%}.qn-npc-card:before{border-width:17px 11px 0;border-color:var(--qn-ink) transparent transparent transparent;bottom:-17px}.qn-npc-card:after{border-width:13px 8px 0;border-color:var(--qn-paper) transparent transparent transparent;bottom:-12px}.qn-npc-card.tail-off:before,.qn-npc-card.tail-off:after,.qn-npc-card.is-docked:before,.qn-npc-card.is-docked:after{display:none}.qn-npc-card.is-docked{top:auto;left:50%;bottom:calc(var(--qn-bottom) + 64px);width:min(440px, calc(100vw - 2 * var(--qn-side)));translate:-50%}.qn-npc-head{border-bottom:2px solid var(--qn-ink);background:var(--qn-paper-2);border-radius:7px 7px 0 0;align-items:center;gap:10px;padding:10px 8px 8px 12px;display:flex}.qn-npc-swatch{border:2px solid var(--qn-ink);background:var(--qn-accent);background-image:radial-gradient(circle at 50% 30%, var(--qn-ink) 2px, transparent 2.5px), radial-gradient(circle at 50% 70%, var(--qn-ink) 2px, transparent 2.5px);border-radius:3px;flex:none;width:14px;height:30px}.qn-npc-who{flex:1;min-width:0}.qn-npc-name{font:800 1.12rem / 1 var(--font-display,"Archivo", sans-serif);letter-spacing:.05em;text-transform:uppercase;margin:0;font-stretch:72%}.qn-npc-role{color:var(--qn-muted);font:600 .72rem / 1.2 var(--font-mono,"JetBrains Mono", monospace);letter-spacing:.02em;margin:3px 0 0}.qn-npc-close{width:36px;min-height:36px;box-shadow:2px 2px 0 var(--qn-ink)}.qn-npc-close svg{width:18px;height:18px}.qn-npc-text{min-height:3em;font:500 1rem / 1.45 var(--font-body,"Hanken Grotesk", system-ui, sans-serif);text-wrap:pretty;margin:0;padding:12px 14px 4px}.qn-npc-text.is-typing:after{content:"";vertical-align:-.1em;background:var(--qn-ink);width:.5em;height:.95em;margin-left:2px;animation:.7s step-end infinite qn-npc-caret;display:inline-block}@keyframes qn-npc-caret{50%{opacity:0}}.qn-npc-choices{gap:6px;padding:6px 12px 12px;display:grid}.qn-npc-choices[hidden]{display:none}.qn-npc-choice{border:2px solid var(--qn-ink);background:var(--qn-paper);min-height:44px;color:var(--qn-ink);font:600 .95rem / 1.25 var(--font-body,"Hanken Grotesk", system-ui, sans-serif);text-align:left;cursor:pointer;border-radius:6px;align-items:center;gap:10px;padding:6px 12px 6px 6px;transition:transform .12s cubic-bezier(.2,.9,.3,1),box-shadow .12s cubic-bezier(.2,.9,.3,1),background-color .16s;display:flex}.qn-npc-choice:hover,.qn-npc-choice.is-sel{background:var(--qn-cloth);box-shadow:2px 2px 0 var(--qn-ink);transform:translate(-1px,-1px)}.qn-npc-choice:active{box-shadow:none;transform:translate(1px,1px)}.qn-npc-choice:focus-visible{outline:3px solid var(--qn-ochre);outline-offset:2px}.qn-npc-foot{justify-content:flex-end;padding:4px 12px 12px;display:flex}.qn-npc-next{min-height:40px;padding:0 14px 0 8px;font-size:.9rem}.qn-npc-next[hidden]{display:none}.qn-npc-toast{top:calc(var(--qn-top) + 52px);max-width:calc(100vw - 2 * var(--qn-side));border:2.5px solid var(--qn-ink);background:var(--qn-paper);box-shadow:3px 3px 0 var(--qn-ink);font:700 .85rem / 1.2 var(--font-mono,"JetBrains Mono", monospace);text-align:center;opacity:0;pointer-events:none;border-radius:6px;padding:8px 14px 7px;transition:opacity .24s cubic-bezier(.16,1,.3,1),translate .36s cubic-bezier(.16,1,.3,1);position:absolute;left:50%;translate:-50% -10px}.qn-npc-toast:before{content:"◆ ";color:var(--qn-accent)}.qn-npc-toast.is-on{opacity:1;translate:-50%}@media (pointer:coarse){.qn-npc-tag kbd{display:none}.qn-npc-tag{min-height:40px;padding-left:12px}}@media (prefers-reduced-motion:reduce){.qn-npc-tag,.qn-npc-card.is-pop,.qn-npc-text.is-typing:after{animation:none}.qn-npc-toast,.qn-npc-choice{transition:none}}.qn-npc-foot[hidden]{display:none}.qn-npc-thanks{top:calc(var(--qn-top) + 96px);width:min(400px, calc(100vw - 2 * var(--qn-side)));border:2.5px solid var(--qn-ink);background:var(--qn-paper);box-shadow:4px 4px 0 var(--qn-ink), 0 18px 40px -18px #1f1a1780;opacity:0;pointer-events:none;border-radius:10px;padding:12px 16px;transition:opacity .26s cubic-bezier(.16,1,.3,1),translate .42s cubic-bezier(.16,1,.3,1);position:absolute;left:50%;translate:-50% -12px}.qn-npc-thanks.is-on{opacity:1;translate:-50%}.qn-npc-thanks-seal{float:right;border:3px double var(--qn-accent);color:var(--qn-accent);font:800 .7rem / 1.1 var(--font-display,"Archivo", sans-serif);letter-spacing:.06em;text-transform:uppercase;border-radius:6px;margin:-2px 0 6px 10px;padding:4px 8px 3px;font-stretch:75%;rotate:4deg}.qn-npc-thanks-who{font:800 .95rem / 1.2 var(--font-display,"Archivo", sans-serif);letter-spacing:.05em;text-transform:uppercase;font-stretch:75%;display:block}.qn-npc-thanks-text{font:400 .95rem / 1.45 var(--font-body,"Hanken Grotesk", sans-serif);margin:6px 0 0}@media (prefers-reduced-motion:reduce){.qn-npc-thanks{transition:none}}
