.nova{--nova-look-x:0;--nova-look-y:0;--nova-tint:var(--color-accent);--nova-tilt:0deg;width:100%;height:auto;overflow:visible}.nova-eyes{transform:translate(calc(var(--nova-look-x) * 9px), calc(var(--nova-look-y) * 6px));transform-box:fill-box;transform-origin:50%;filter:drop-shadow(0 0 7px color-mix(in oklab, var(--nova-tint) 70%, transparent))}.nova-head{transform:rotate(calc(var(--nova-look-x) * 4.5deg + var(--nova-tilt))) translate(calc(var(--nova-look-x) * 3px), calc(var(--nova-look-y) * 2.5px));transform-box:fill-box;transform-origin:50% 100%;transition:transform .4s cubic-bezier(.22,1,.36,1)}.nova-lean{transform:translateX(calc(var(--nova-look-x) * 5px));transform-box:fill-box;transform-origin:50%}.nova-eye,.nova-eye-happy,.nova-sparkle,.nova-mouth-smile,.nova-mouth-grin,.nova-mouth-flat,.nova-mouth-open{transition:opacity .26s,transform .32s cubic-bezier(.22,1,.36,1)}.nova-eye{fill:var(--nova-tint);transform-box:fill-box;transform-origin:50%}.nova-eye-happy{stroke:var(--nova-tint);opacity:0}.nova-sparkle{fill:var(--nova-tint);opacity:0;transform-box:fill-box;transform-origin:50%}.nova-mouth-smile,.nova-mouth-grin,.nova-mouth-flat{stroke:color-mix(in oklab, var(--nova-tint) 60%, transparent)}.nova-mouth-open{fill:color-mix(in oklab, var(--nova-tint) 45%, transparent)}.nova-mouth-grin,.nova-mouth-flat,.nova-mouth-open{opacity:0}.nova[data-mood=warm]{--nova-tilt:-4deg}.nova[data-mood=warm] .nova-eye,.nova[data-mood=waving] .nova-eye{opacity:0}.nova[data-mood=warm] .nova-eye-happy,.nova[data-mood=waving] .nova-eye-happy{opacity:1}.nova[data-mood=warm] .nova-mouth-smile,.nova[data-mood=waving] .nova-mouth-smile{opacity:0}.nova[data-mood=warm] .nova-mouth-grin,.nova[data-mood=waving] .nova-mouth-grin{opacity:1}.nova[data-mood=thinking]{--nova-tilt:7deg}.nova[data-mood=thinking] .nova-eye{transform:scaleY(.72)}.nova[data-mood=thinking] .nova-mouth-smile{opacity:0}.nova[data-mood=thinking] .nova-mouth-flat{opacity:1}.nova[data-mood=thinking] .nova-antenna{transform-box:fill-box;transform-origin:50% 100%;transform:rotate(-14deg)}.nova[data-mood=excited]{--nova-tint:var(--color-violet)}.nova[data-mood=excited] .nova-eye{transform:scale(1.18)}.nova[data-mood=excited] .nova-mouth-smile{opacity:0}.nova[data-mood=excited] .nova-mouth-open{opacity:1}.nova[data-mood=excited] .nova-sparkle{opacity:1;animation:1.6s ease-in-out infinite nova-sparkle}.nova[data-mood=excited] .nova-sparkle-late{animation-delay:-.8s}.nova[data-mood=excited] .nova-arm-pose{transform:translateY(-18px)}.nova[data-mood=proud]{--nova-tilt:-2deg}.nova[data-mood=proud] .nova-eye{transform-origin:bottom;transform:scaleY(.55)}.nova[data-mood=focused] .nova-eye{transform:scaleX(.68)scaleY(1.08)}.nova[data-mood=focused] .nova-mouth-smile{opacity:0}.nova[data-mood=focused] .nova-mouth-flat{opacity:1}.nova[data-mood=focused] .nova-lamp{filter:drop-shadow(0 0 10px var(--nova-tint))}.nova[data-mood=waving] .nova-arm-pose-right{transform-box:fill-box;transform-origin:50% 100%;animation:.9s ease-in-out infinite nova-wave}.nova[data-blink=true] .nova-eye{transform-origin:50%;transition-duration:70ms;transform:scaleY(.08)}.nova-float{transform-box:fill-box;transform-origin:50%;animation:5.5s ease-in-out infinite nova-float}.nova-arm{transform-box:fill-box;transform-origin:50%;animation:4.2s ease-in-out infinite nova-limb}.nova-arm-right{animation-delay:-2.1s}.nova-arm-pose{transform-box:fill-box;transform-origin:50%;transition:transform .42s cubic-bezier(.34,1.56,.64,1)}.nova-antenna{transition:transform .42s cubic-bezier(.34,1.56,.64,1)}.nova-shadow{transform-box:fill-box;transform-origin:50%;animation:5.5s ease-in-out infinite nova-shadow}.nova-glowing{animation:2.8s ease-in-out infinite nova-glow}@keyframes nova-float{0%,to{transform:translateY(0)}50%{transform:translateY(-9px)}}@keyframes nova-limb{0%,to{transform:translateY(0)}50%{transform:translateY(-5px)}}@keyframes nova-shadow{0%,to{opacity:.45;transform:scale(1)}50%{opacity:.28;transform:scale(.84)}}@keyframes nova-glow{0%,to{opacity:1}50%{opacity:.5}}@keyframes nova-sparkle{0%,to{opacity:.35;transform:scale(.7)rotate(0)}50%{opacity:1;transform:scale(1.15)rotate(25deg)}}@keyframes nova-wave{0%,to{transform:translateY(-26px)rotate(-14deg)}50%{transform:translateY(-26px)rotate(20deg)}}.nova[data-react=true] .nova-bob{transform-box:fill-box;transform-origin:bottom;animation:.42s ease-out nova-bob}@keyframes nova-bob{0%{transform:translateY(0)scale(1)}35%{transform:translateY(5px)scale(1.05,.95)}to{transform:translateY(0)scale(1)}}.nova-lamp{fill:var(--nova-tint);filter:drop-shadow(0 0 6px color-mix(in oklab, var(--nova-tint) 65%, transparent))}.nova-stem{stroke:#3a4460}.nova-plate{stroke:#2b3448}.nova-shadow{fill:color-mix(in oklab, var(--nova-tint) 45%, transparent);opacity:.38;filter:blur(7px)}.nova-bloom-start{stop-color:color-mix(in oklab, var(--nova-tint) 32%, transparent)}.nova-bloom-end{stop-color:transparent}.nova-stage{z-index:40;pointer-events:none;opacity:0;position:fixed;inset:0}.nova-stage[data-ready=true]{opacity:1}.nova-anchor{transform-origin:50%;will-change:transform;width:380px;position:absolute;top:0;left:0}.nova-anchor[data-flying=true]{transition:transform .78s cubic-bezier(.4,.1,.2,1)}.nova-tap{pointer-events:auto;cursor:pointer;border-radius:22%;position:absolute;inset:5% 12% 6%}.nova-tap:focus-visible{outline:2px solid var(--color-accent);outline-offset:6px}.nova-chat{right:20px;bottom:var(--nova-dock-gap,160px);z-index:1;width:min(21rem,100vw - 2.5rem);max-height:min(28rem, calc(100vh - var(--nova-dock-gap,160px) - 1.5rem));border:1px solid color-mix(in oklab, var(--color-accent) 24%, var(--color-line));background:color-mix(in oklab, var(--color-surface) 94%, transparent);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);box-shadow:0 24px 60px -24px #000000f2, 0 0 30px -16px color-mix(in oklab, var(--color-accent) 60%, transparent);opacity:0;visibility:hidden;transform-origin:100% 100%;border-radius:1.1rem;flex-direction:column;transition:opacity .2s,transform .3s cubic-bezier(.22,1,.36,1),visibility 0s linear .2s;display:flex;position:fixed;transform:translateY(10px)scale(.97)}.nova-chat[data-open=true]{opacity:1;visibility:visible;pointer-events:auto;transition-delay:0s;transform:translateY(0)scale(1)}.nova-chat-head{border-bottom:1px solid var(--color-line);justify-content:space-between;align-items:center;padding:.7rem .85rem;display:flex}.nova-chat-title{font-family:var(--font-display);letter-spacing:.02em;align-items:center;gap:.5rem;font-size:.8rem;display:inline-flex}.nova-chat-dot{background:var(--color-accent);width:.4rem;height:.4rem;box-shadow:0 0 8px var(--color-accent);border-radius:999px}.nova-chat-close{color:var(--color-faint);border-radius:.5rem;padding:.25rem;transition:color .18s;display:inline-flex}.nova-chat-close:hover{color:var(--color-ink)}.nova-chat-log{overscroll-behavior:contain;scrollbar-width:thin;flex-direction:column;flex:auto;gap:.5rem;padding:.85rem;display:flex;overflow-y:auto}.nova-chat-msg{text-wrap:pretty;border-radius:.85rem;max-width:88%;padding:.5rem .7rem;font-size:.8125rem;line-height:1.5}.nova-chat-msg[data-from=nova]{border:1px solid var(--color-line);background:var(--color-bg-soft);color:var(--color-ink);border-bottom-left-radius:.3rem;align-self:flex-start}.nova-chat-msg[data-from=visitor]{background:color-mix(in oklab, var(--color-accent) 88%, black);color:var(--color-bg);border-bottom-right-radius:.3rem;align-self:flex-end}.nova-chat-typing{gap:.2rem;padding:.15rem 0;display:inline-flex}.nova-chat-typing i{background:var(--color-faint);border-radius:999px;width:.32rem;height:.32rem;animation:1.2s ease-in-out infinite nova-typing}.nova-chat-typing i:nth-child(2){animation-delay:.15s}.nova-chat-typing i:nth-child(3){animation-delay:.3s}@keyframes nova-typing{0%,60%,to{opacity:.25;transform:translateY(0)}30%{opacity:1;transform:translateY(-2px)}}.nova-chat-chips{flex-wrap:wrap;gap:.35rem;padding:0 .85rem .6rem;display:flex}.nova-chat-chip{border:1px solid var(--color-line);background:var(--color-bg-soft);color:var(--color-muted);border-radius:999px;padding:.3rem .6rem;font-size:.72rem;transition:border-color .18s,color .18s}.nova-chat-chip:hover{border-color:color-mix(in oklab, var(--color-accent) 50%, transparent);color:var(--color-ink)}.nova-chat-form{border-top:1px solid var(--color-line);gap:.4rem;padding:.65rem;display:flex}.nova-chat-input{border:1px solid var(--color-line);background:var(--color-bg-soft);min-width:0;color:var(--color-ink);font:inherit;border-radius:.7rem;flex:auto;padding:.45rem .7rem;font-size:.8125rem}.nova-chat-input::placeholder{color:var(--color-faint)}.nova-chat-input:focus{border-color:color-mix(in oklab, var(--color-accent) 60%, transparent);outline:none}.nova-chat-send{background:var(--color-accent);width:2.1rem;color:var(--color-bg);border-radius:.7rem;justify-content:center;align-items:center;transition:opacity .18s;display:inline-flex}.nova-chat-send:disabled{opacity:.35;cursor:not-allowed}@media (max-width:639px){.nova-chat{transform-origin:bottom;width:100%;max-height:78vh;padding-bottom:env(safe-area-inset-bottom);border-bottom:0;border-left:0;border-right:0;border-radius:1.25rem 1.25rem 0 0;bottom:0;left:0;right:0;transform:translateY(100%)}.nova-chat[data-open=true]{transform:translateY(0)}.nova-stage[data-chatting=true] .nova-anchor{opacity:0;pointer-events:none;transition:opacity .2s}}.nova-speech-anchor{transform:translate(var(--nova-bubble-x,0px), var(--nova-bubble-y,0px));position:absolute;top:0;left:0}.nova-speech{border:1px solid color-mix(in oklab, var(--color-accent) 28%, var(--color-line));background:color-mix(in oklab, var(--color-surface) 92%, transparent);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);width:max-content;max-width:min(19rem,100vw - 3rem);box-shadow:0 18px 40px -18px #000000e6, 0 0 24px -12px color-mix(in oklab, var(--color-accent) 60%, transparent);color:var(--color-ink);text-wrap:pretty;opacity:0;visibility:hidden;border-radius:1rem;padding:.7rem .95rem;font-size:.8125rem;line-height:1.45;transition:opacity .22s,transform .32s cubic-bezier(.22,1,.36,1),visibility 0s linear .22s;position:absolute;top:0;left:0}.nova-speech[data-open=true]{opacity:1;visibility:visible;transition-delay:0s}.nova-speech[data-interactive=true][data-open=true]{pointer-events:auto}.nova-speech[data-interactive=true]{max-width:min(23rem,100vw - 3rem)}.nova-ask{flex-wrap:wrap;align-items:center;gap:.4rem;margin-top:.6rem;display:flex}.nova-ask-input{border:1px solid var(--color-line);background:var(--color-bg-soft);min-width:0;color:var(--color-ink);font:inherit;border-radius:.6rem;flex:8rem;padding:.35rem .6rem;font-size:.8125rem}.nova-ask-input::placeholder{color:var(--color-faint)}.nova-ask-input:focus{border-color:color-mix(in oklab, var(--color-accent) 60%, transparent);outline:none}.nova-ask-save,.nova-ask-skip{white-space:nowrap;border-radius:.6rem;padding:.35rem .7rem;font-size:.75rem;transition:background-color .2s,color .2s}.nova-ask-save{background:var(--color-accent);color:var(--color-bg);font-weight:500}.nova-ask-skip{color:var(--color-faint)}.nova-ask-skip:hover{color:var(--color-ink)}.nova-speech:after{content:"";border-right:inherit;border-bottom:inherit;background:inherit;border-radius:0 0 3px;width:9px;height:9px;position:absolute;bottom:-5px;transform:rotate(45deg)}.nova-speech[data-dock=false]{transform:translate(-50%,-100%)scale(.94)}.nova-speech[data-dock=false][data-open=true]{transform:translate(-50%,-100%)scale(1)}.nova-speech[data-dock=false]:after{left:calc(50% - 4.5px)}.nova-speech[data-dock=true]{transform:translate(-100%,-100%)scale(.94)}.nova-speech[data-dock=true][data-open=true]{transform:translate(-100%,-100%)scale(1)}.nova-speech[data-dock=true]:after{right:18px}@media (prefers-reduced-motion:reduce){.nova-float,.nova-arm,.nova-shadow,.nova-glowing,.nova-sparkle,.nova[data-mood=waving] .nova-arm-pose-right,.nova[data-react=true] .nova-bob{animation:none}.nova[data-mood=waving] .nova-arm-pose-right{transform:translateY(-26px)}.nova-anchor[data-flying=true]{transition:none}.nova-speech,.nova-speech[data-open=true]{transition:opacity .2s,visibility 0s linear .2s}.nova-speech[data-open=true]{transition-delay:0s}.nova-speech[data-dock=false],.nova-speech[data-dock=false][data-open=true]{transform:translate(-50%,-100%)}.nova-speech[data-dock=true],.nova-speech[data-dock=true][data-open=true]{transform:translate(-100%,-100%)}.nova-chat-typing i{opacity:.6;animation:none}.nova-chat,.nova-chat[data-open=true]{transition:opacity .18s,visibility 0s linear .18s;transform:none}.nova-chat[data-open=true]{transition-delay:0s}}
