.npc-bubble{z-index:9999;cursor:pointer;position:fixed;bottom:24px;right:24px}.npc-bubble-avatar{border:3px solid var(--primary);width:64px;height:64px;box-shadow:0 4px 20px #0000001a,0 0 0 4px var(--background),0 0 20px color-mix(in oklch,var(--primary)20%,transparent);background:var(--background);border-radius:50%;animation:3s ease-in-out infinite npc-float;overflow:hidden}.npc-bubble-avatar img{object-fit:cover;width:100%;height:100%}.npc-notification-dot{border:3px solid var(--background);background:#f43f5e;border-radius:50%;width:16px;height:16px;animation:1.5s ease-in-out infinite npc-pulse;position:absolute;top:-2px;right:-2px}.npc-streak-badge{color:#fff;border:2px solid var(--background);white-space:nowrap;background:linear-gradient(135deg,#ff6b35,#f43f5e);border-radius:10px;padding:1px 6px;font-size:11px;font-weight:700;line-height:1.4;position:absolute;bottom:-4px;left:50%;transform:translate(-50%);box-shadow:0 2px 8px #f43f5e4d}.npc-streak-header{color:#f97316;background:#f973161a;background:lab(64.4963% 49.3667 68.6637/.1);border-radius:8px;align-items:center;gap:2px;margin-left:6px;padding:1px 6px;font-size:12px;font-weight:600;display:inline-flex}.npc-chat-panel{z-index:9998;background-color:var(--background);border:1px solid color-mix(in oklch,var(--foreground)10%,transparent);transform-origin:100% 100%;border-radius:20px;flex-direction:column;width:360px;max-height:520px;animation:.4s cubic-bezier(.34,1.56,.64,1) npc-slide-in;display:flex;position:fixed;bottom:100px;right:24px;overflow:hidden;box-shadow:0 20px 60px #0000002e,0 8px 24px #00000014}.npc-chat-panel.npc-closing{animation:.25s ease-in forwards npc-slide-out}.npc-chat-header{border-bottom:1px solid color-mix(in oklch,var(--foreground)6%,transparent);background:color-mix(in oklch,var(--primary)4%,var(--background));align-items:center;gap:12px;padding:16px 16px 12px;display:flex}.npc-chat-header-avatar{border:2px solid color-mix(in oklch,var(--primary)30%,transparent);border-radius:50%;flex-shrink:0;width:40px;height:40px;overflow:hidden}.npc-chat-header-avatar img{object-fit:cover;width:100%;height:100%}.npc-chat-header-info{flex:1;min-width:0}.npc-chat-header-name{color:var(--foreground);font-size:14px;font-weight:800;line-height:1.2}.npc-chat-header-status{color:var(--primary);align-items:center;gap:4px;font-size:11px;font-weight:600;display:flex}.npc-chat-header-status:before{content:"";background:var(--primary);border-radius:50%;width:6px;height:6px}.npc-chat-header-close{cursor:pointer;width:32px;height:32px;color:color-mix(in oklch,var(--foreground)40%,transparent);background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;transition:all .2s;display:flex}.npc-chat-header-close:hover{background:color-mix(in oklch,var(--foreground)6%,transparent);color:color-mix(in oklch,var(--foreground)80%,transparent)}.npc-section-indicator{background:color-mix(in oklch,var(--primary)6%,var(--background));border-bottom:1px solid color-mix(in oklch,var(--foreground)4%,transparent);align-items:center;gap:6px;padding:8px 16px;display:flex}.npc-section-dot{background:color-mix(in oklch,var(--foreground)12%,transparent);border-radius:50%;width:6px;height:6px;transition:all .3s}.npc-section-dot.active{background:var(--primary);box-shadow:0 0 8px color-mix(in oklch,var(--primary)40%,transparent)}.npc-section-label{color:color-mix(in oklch,var(--foreground)30%,transparent);text-transform:uppercase;letter-spacing:.1em;margin-left:auto;font-size:10px;font-weight:700}.npc-chat-body{background-color:var(--background);flex:1;min-height:100px;max-height:220px;padding:16px;overflow-y:auto}.npc-message{color:color-mix(in oklch,var(--foreground)80%,transparent);white-space:pre-line;font-size:14px;font-weight:500;line-height:1.7}.npc-link{color:var(--primary);text-underline-offset:2px;text-decoration:underline;-webkit-text-decoration-color:color-mix(in oklch,var(--primary)40%,transparent);text-decoration-color:color-mix(in oklch,var(--primary)40%,transparent);cursor:pointer;font-weight:600;transition:all .2s}.npc-link:hover{-webkit-text-decoration-color:var(--primary);text-decoration-color:var(--primary);opacity:.85}.npc-typing-cursor{background:var(--primary);vertical-align:text-bottom;width:2px;height:16px;margin-left:2px;animation:.8s step-end infinite npc-blink;display:inline-block}.npc-options{background-color:var(--background);flex-direction:column;gap:6px;padding:8px 16px 12px;display:flex}.npc-option-btn{border:1px solid color-mix(in oklch,var(--foreground)10%,transparent);background-color:var(--background);width:100%;color:color-mix(in oklch,var(--foreground)70%,transparent);text-align:left;cursor:pointer;border-radius:12px;padding:10px 14px;font-size:13px;font-weight:600;transition:all .2s cubic-bezier(.34,1.56,.64,1)}.npc-option-btn:hover{background:color-mix(in oklch,var(--primary)8%,var(--background));border-color:color-mix(in oklch,var(--primary)20%,transparent);color:var(--primary)}.npc-ai-input-area{border-top:1px solid color-mix(in oklch,var(--foreground)6%,transparent);background-color:var(--background);padding:8px 16px 16px}.npc-ai-input-wrapper{align-items:center;gap:8px;display:flex}.npc-ai-input{border:1px solid color-mix(in oklch,var(--foreground)10%,transparent);background-color:color-mix(in oklch,var(--foreground)3%,var(--background));color:var(--foreground);border-radius:12px;outline:none;flex:1;padding:10px 14px;font-family:inherit;font-size:13px;font-weight:500;transition:border-color .2s}.npc-ai-input:focus{border-color:color-mix(in oklch,var(--primary)40%,transparent)}.npc-ai-input::placeholder{color:color-mix(in oklch,var(--foreground)30%,transparent)}.npc-ai-send-btn{background:var(--primary);color:#fff;cursor:pointer;border:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;transition:all .2s;display:flex}.npc-ai-send-btn:hover{box-shadow:0 2px 12px color-mix(in oklch,var(--primary)30%,transparent)}.npc-ai-send-btn:disabled{opacity:.5;cursor:not-allowed;transform:none}.npc-ai-loading{color:color-mix(in oklch,var(--foreground)40%,transparent);align-items:center;gap:6px;padding:8px 0 4px;font-size:12px;font-weight:600;display:flex}.npc-ai-loading-dots{gap:3px;display:flex}.npc-ai-loading-dots span{background:color-mix(in oklch,var(--primary)50%,transparent);border-radius:50%;width:5px;height:5px;animation:1.2s ease-in-out infinite npc-loading-dot}.npc-ai-loading-dots span:nth-child(2){animation-delay:.2s}.npc-ai-loading-dots span:nth-child(3){animation-delay:.4s}@keyframes npc-loading-dot{0%,to{opacity:.3;transform:scale(.8)}50%{opacity:1;transform:scale(1.2)}}.npc-ask-toggle{border:1px dashed color-mix(in oklch,var(--primary)30%,transparent);background:color-mix(in oklch,var(--primary)4%,var(--background));width:100%;color:color-mix(in oklch,var(--primary)70%,transparent);text-align:center;cursor:pointer;border-radius:12px;padding:8px 14px;font-size:12px;font-weight:700;transition:all .2s}.npc-ask-toggle:hover{background:color-mix(in oklch,var(--primary)8%,var(--background));border-color:color-mix(in oklch,var(--primary)40%,transparent);color:var(--primary)}@media (max-width:639px){.npc-bubble{bottom:16px;right:16px}.npc-bubble-avatar{width:52px;height:52px}.npc-chat-panel{border-radius:20px 20px 0 0;width:100%;max-height:70vh;animation:.4s cubic-bezier(.34,1.56,.64,1) npc-sheet-up;position:fixed;bottom:0;left:0;right:0}.npc-chat-panel.npc-closing{animation:.25s ease-in forwards npc-sheet-down}.npc-chat-panel:before{content:"";background:color-mix(in oklch,var(--foreground)15%,transparent);border-radius:2px;width:36px;height:4px;margin:8px auto 0;display:block}}@keyframes npc-float{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}@keyframes npc-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.7;transform:scale(1.2)}}@keyframes npc-blink{0%,to{opacity:1}50%{opacity:0}}@keyframes npc-slide-in{0%{opacity:0;transform:scale(.8)translateY(20px)}to{opacity:1;transform:scale(1)translateY(0)}}@keyframes npc-slide-out{0%{opacity:1;transform:scale(1)translateY(0)}to{opacity:0;transform:scale(.8)translateY(20px)}}@keyframes npc-sheet-up{0%{opacity:0;transform:translateY(100%)}to{opacity:1;transform:translateY(0)}}@keyframes npc-sheet-down{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(100%)}}.npc-backdrop{z-index:9997;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0000004d;animation:.3s npc-fade-in;position:fixed;inset:0}@keyframes npc-fade-in{0%{opacity:0}to{opacity:1}}@media (min-width:640px){.npc-backdrop{display:none}}.npc-section-highlight{outline:2.5px solid var(--primary);outline-offset:-2.5px;animation:2s ease-in-out infinite npc-border-pulse;position:relative}.npc-section-highlight:after{content:"🌿";z-index:12;font-size:18px;animation:2s ease-in-out infinite npc-leaf-bounce;position:absolute;top:8px;right:12px}@keyframes npc-border-pulse{0%,to{outline-color:var(--primary)}50%{outline-color:color-mix(in oklch,var(--primary)40%,transparent)}}@keyframes npc-leaf-bounce{0%,to{transform:translateY(0)rotate(0)}50%{transform:translateY(-4px)rotate(8deg)}}
