.NpcCodexClient-module__ddkbtq__codex{--npc-accent:#7130b1;padding-bottom:3rem}html.dark .NpcCodexClient-module__ddkbtq__codex{--npc-accent:#d1b2ff}.NpcCodexClient-module__ddkbtq__label{color:var(--color-soft-gray);letter-spacing:.13em;text-transform:uppercase;margin-bottom:.5rem;font-size:.7rem;font-weight:700;display:block}.NpcCodexClient-module__ddkbtq__search{border:1px solid var(--color-border-strong);background:var(--color-canvas);width:100%;min-height:2.75rem;color:var(--color-ink);border-radius:.75rem;padding:.65rem .85rem .65rem 2.5rem;font-size:.875rem}.NpcCodexClient-module__ddkbtq__search::placeholder{color:var(--color-soft-gray)}.NpcCodexClient-module__ddkbtq__search:focus-visible,.NpcCodexClient-module__ddkbtq__filter:focus-visible{outline:2px solid var(--npc-accent);outline-offset:3px}.NpcCodexClient-module__ddkbtq__filter{border:1px solid var(--color-border-strong);background:var(--color-surface);min-height:2.75rem;color:var(--color-ink);cursor:pointer;border-radius:.75rem;align-items:center;gap:.5rem;padding:.4rem .875rem;font-size:.8125rem;font-weight:600;transition:border-color .16s,background .16s;display:inline-flex}.NpcCodexClient-module__ddkbtq__filter:hover{border-color:var(--npc-accent)}.NpcCodexClient-module__ddkbtq__filter[aria-pressed=true]{color:#fff;background:#7130b1;border-color:#7130b1}.NpcCodexClient-module__ddkbtq__filterCount{background:color-mix(in srgb, currentColor 10%, transparent);font-variant-numeric:tabular-nums;border-radius:.35rem;padding:.1rem .4rem;font-size:.7rem}.NpcCodexClient-module__ddkbtq__results{color:var(--color-soft-gray);margin-top:1rem;font-size:.8125rem}.NpcCodexClient-module__ddkbtq__grid{grid-template-columns:repeat(auto-fill,minmax(min(100%,18rem),1fr));gap:1.5rem;display:grid}.NpcCodexClient-module__ddkbtq__card{border:1px solid var(--color-border-strong);background:var(--color-surface);min-width:0;color:var(--color-ink);border-radius:1.125rem;flex-direction:column;text-decoration:none;transition:transform .22s,box-shadow .22s,border-color .22s;display:flex;overflow:hidden;box-shadow:0 4px 18px -10px #190c3038}.NpcCodexClient-module__ddkbtq__card:focus-visible{outline:3px solid var(--npc-accent);outline-offset:4px}.NpcCodexClient-module__ddkbtq__portrait{aspect-ratio:1;background:#211834;position:relative;overflow:hidden}.NpcCodexClient-module__ddkbtq__portrait:after{content:"";pointer-events:none;background:linear-gradient(#0d081b52,#0000 28% 80%,#0d081b33);border:1px solid #ffffff14;position:absolute;inset:0}.NpcCodexClient-module__ddkbtq__image{object-fit:cover;object-position:center 22%;width:100%;height:100%;transition:transform .45s;position:absolute;inset:0}.NpcCodexClient-module__ddkbtq__placeholder{color:#d3c2ed;background:radial-gradient(at 50% 35%,#47326b,#1b132c 75%);flex-direction:column;justify-content:center;align-items:center;gap:1rem;font-size:.75rem;display:flex;position:absolute;inset:0}.NpcCodexClient-module__ddkbtq__badge{z-index:1;color:#eee4ff;letter-spacing:.1em;text-transform:uppercase;background:#21182f;border:1px solid #ddccff59;border-radius:.5rem;align-items:center;gap:.45rem;padding:.4rem .65rem;font-size:.625rem;font-weight:700;display:inline-flex;position:absolute;top:1rem;left:1rem}.NpcCodexClient-module__ddkbtq__badgeDot{background:#c4a0fb;border-radius:50%;width:.375rem;height:.375rem}.NpcCodexClient-module__ddkbtq__badge[data-source=Homebrew]{color:#ccf2ff;background:#102e39;border-color:#508394}.NpcCodexClient-module__ddkbtq__badge[data-source=Homebrew] .NpcCodexClient-module__ddkbtq__badgeDot{background:#7dd3fc}.NpcCodexClient-module__ddkbtq__body{flex-direction:column;flex:1;padding:1.25rem;display:flex;position:relative}.NpcCodexClient-module__ddkbtq__body:before{content:"";background:linear-gradient(90deg,#a78bfa,#38bdf8);width:2.75rem;height:2px;position:absolute;top:0;left:1.25rem}.NpcCodexClient-module__ddkbtq__name{color:var(--color-ink);font-family:var(--font-heading);letter-spacing:-.025em;overflow-wrap:anywhere;font-size:clamp(1.125rem,1.5vw,1.3rem);font-weight:700;line-height:1.35}.NpcCodexClient-module__ddkbtq__origin{color:var(--npc-accent);overflow-wrap:anywhere;align-items:flex-start;gap:.4rem;margin-top:.55rem;font-size:.75rem;font-weight:600;line-height:1.5;display:flex}.NpcCodexClient-module__ddkbtq__origin svg{flex-shrink:0;margin-top:.1rem}.NpcCodexClient-module__ddkbtq__concept{-webkit-line-clamp:3;color:var(--color-soft-gray);overflow-wrap:anywhere;-webkit-box-orient:vertical;margin-top:.875rem;margin-bottom:1.25rem;font-size:.875rem;line-height:1.7;display:-webkit-box;overflow:hidden}.NpcCodexClient-module__ddkbtq__footer{border-top:1px solid var(--color-border);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;margin-top:auto;padding-top:1rem;font-size:.75rem;display:flex}.NpcCodexClient-module__ddkbtq__gender{color:var(--color-soft-gray)}.NpcCodexClient-module__ddkbtq__action{color:var(--npc-accent);align-items:center;gap:.5rem;margin-left:auto;font-weight:700;display:inline-flex}.NpcCodexClient-module__ddkbtq__action svg{transition:transform .2s}@media (hover:hover){.NpcCodexClient-module__ddkbtq__card:hover{border-color:var(--npc-accent);transform:translateY(-4px);box-shadow:0 18px 32px -20px #5d299c80}.NpcCodexClient-module__ddkbtq__card:hover .NpcCodexClient-module__ddkbtq__image{transform:scale(1.035)}.NpcCodexClient-module__ddkbtq__card:hover .NpcCodexClient-module__ddkbtq__action svg{transform:translate(3px)}}@media (prefers-reduced-motion:reduce){.NpcCodexClient-module__ddkbtq__card,.NpcCodexClient-module__ddkbtq__image,.NpcCodexClient-module__ddkbtq__action svg,.NpcCodexClient-module__ddkbtq__filter{transition:none}.NpcCodexClient-module__ddkbtq__card:hover,.NpcCodexClient-module__ddkbtq__card:hover .NpcCodexClient-module__ddkbtq__image,.NpcCodexClient-module__ddkbtq__card:hover .NpcCodexClient-module__ddkbtq__action svg{transform:none}}
