.avatar-host{width:100%}.avatar-stage{--avatar-floor:#2a193538;opacity:0;width:100%;margin:0 auto;transition:opacity .2s linear;position:relative}.avatar-stage[data-ready=true]{opacity:1}@media (prefers-color-scheme:dark){.avatar-stage{--avatar-floor:#00000080}}.avatar-floor{left:var(--anchor-x);top:var(--anchor-y);background:radial-gradient(closest-side, var(--avatar-floor), transparent);border-radius:50%;width:34%;height:5%;position:absolute;transform:translate(-50%,-50%)}.avatar-motion,.avatar-act,.avatar-bounce,.avatar-rig{position:absolute;inset:0}.avatar-motion,.avatar-act,.avatar-bounce{transform-origin:var(--avatar-origin)}.avatar-body{object-fit:contain;-webkit-user-select:none;user-select:none;-webkit-user-drag:none;width:100%;height:100%;position:absolute;inset:0}.avatar-lid{opacity:0;pointer-events:none;position:absolute}.avatar-mouth{opacity:0;pointer-events:none;transition:transform 45ms linear,opacity 45ms linear;position:absolute}.avatar-mouth img{width:100%;height:100%;display:block}.avatar-part{position:absolute}.avatar-part>img{-webkit-user-select:none;user-select:none;-webkit-user-drag:none;width:100%;height:100%;display:block;position:absolute;inset:0}.avatar-fx{overflow:hidden;-webkit-mask-size:100% 100%;mask-size:100% 100%;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.avatar-fx-dim,.avatar-fx-flash{opacity:0;position:absolute;inset:0}.avatar-fx-dim{background:#2a1935}.avatar-fx-flash{background:#fff}.avatar-fx-shine{opacity:.9;background:linear-gradient(100deg,#0000 0%,#ffffffd9 50%,#0000 100%);width:45%;height:120%;position:absolute;top:-10%;left:-60%}.avatar-pulse-ring{border:3px solid var(--ring-color,#2fd27c);opacity:0;position:absolute;inset:0}@media (prefers-reduced-motion:no-preference){.motion-breathe{animation:3.6s ease-in-out infinite avatar-breathe}.motion-lean{animation:.5s ease-out forwards avatar-lean}.motion-sway{animation:2.8s ease-in-out infinite avatar-sway}}@keyframes avatar-breathe{0%,to{transform:scale(1)}50%{transform:scale(1.008,1.018)}}@keyframes avatar-lean{to{transform:rotate(-3deg)scale(1.02)}}@keyframes avatar-sway{0%,to{transform:rotate(-1.6deg)}50%{transform:rotate(1.6deg)}}:root{--bg:#eef5f0;--surface:#fff;--ink:#2a1935;--muted:#5c4a69;--brand:#8a22cc;--brand-ink:#fff;--mint:#177a47;--mint-ink:#fff;--line:#d3e2d8;--focus:#177a47;--rs-green:#1f9d55;--font-text:"Nunito Sans", ui-rounded, "Segoe UI", system-ui, sans-serif;--font-title:"Montserrat", "Nunito Sans", ui-rounded, system-ui, sans-serif;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;font-family:var(--font-text)}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--bg:#17121c;--surface:#231a2b;--ink:#f4eef8;--muted:#c4b5d0;--brand:#b65cff;--brand-ink:#17121c;--mint:#3ddc8b;--mint-ink:#0b2416;--line:#3a2e45;--focus:#3ddc8b;--rs-green:#68d982}}*,:before,:after{box-sizing:border-box}body{background:var(--bg);color:var(--ink);margin:0;font-size:17px;line-height:1.5}:focus-visible{outline:3px solid var(--focus);outline-offset:3px}.visually-hidden{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.app{max-width:1100px;min-height:100dvh;padding:max(16px, env(safe-area-inset-top)) 16px max(20px, env(safe-area-inset-bottom));grid-template-rows:auto auto minmax(0,1fr) auto;grid-template-areas:"brand""header""stage""talk";gap:8px;margin:0 auto;display:grid;position:relative}.brand-tag{text-align:center;font-family:var(--font-title);letter-spacing:.12em;text-transform:uppercase;color:var(--rs-green);grid-area:brand;margin:0;font-size:1.25rem;font-weight:800}@media (width>=720px){.app{border:2px solid var(--rs-green);border-radius:32px;min-height:calc(100dvh - 48px);margin:24px auto;padding:40px 28px 28px}.brand-tag{background:var(--bg);white-space:nowrap;grid-area:auto;padding:0 18px;position:absolute;top:-2px;left:50%;transform:translate(-50%,-50%)}}.app-header{text-align:center;grid-area:header}.app-header h1{font-family:var(--font-title);color:var(--brand);letter-spacing:-.02em;margin:0;font-size:1.8rem;font-weight:900}.app-header p{color:var(--muted);margin:0;font-size:.95rem}.stage{grid-area:stage;justify-content:center;align-items:center;min-height:0;display:flex}.stage .avatar-stage{max-width:calc(1.2*min(52dvh,560px));max-height:min(52dvh,560px)}.talk-area{flex-direction:column;grid-area:talk;align-items:center;gap:10px;width:100%;max-width:40rem;margin:0 auto;display:flex}@media (width>=900px) and (orientation:landscape){.app{grid-template:"brand brand""header header""stage talk"1fr/minmax(0,1.1fr) minmax(0,1fr);align-items:center}.stage .avatar-stage{max-width:84dvh;max-height:70dvh}}.captions{text-align:center;width:100%;min-height:6.5em}.captions-user{color:var(--muted);margin:0 0 4px;font-size:1rem}.captions-answer{margin:0;font-size:clamp(1.15rem,2.6vw,1.45rem);font-weight:500;line-height:1.4}.captions-thinking{color:var(--muted);font-weight:400}.sources{color:var(--muted);text-align:center;margin:0;font-size:.88rem}.sources-label{font-weight:600}.notice{background:color-mix(in srgb, var(--mint) 16%, transparent);text-align:center;border-radius:12px;margin:0;padding:8px 14px;font-size:.95rem}.retry-button,.feedback-button{font:inherit;font-family:var(--font-title);cursor:pointer;color:var(--ink);background:var(--surface);border-radius:999px;font-weight:600}.retry-button{border:1.5px solid var(--brand);align-self:center;padding:10px 20px}.feedback{color:var(--muted);flex-wrap:wrap;justify-content:center;align-items:center;gap:8px;margin:0;font-size:.88rem;display:flex}.feedback-button{border:1.5px solid var(--line);padding:6px 12px;font-size:.85rem}.feedback-button:hover:not(:disabled){border-color:var(--brand)}.feedback-button:disabled{opacity:.55;cursor:wait}.hint{color:var(--muted);margin:-4px 0 0;font-size:.85rem}.talk{--halo:color-mix(in srgb, var(--brand) 18%, transparent);--halo-outer:color-mix(in srgb, var(--brand) 8%, transparent);box-shadow:0 0 0 10px var(--halo), 0 0 0 22px var(--halo-outer);font-family:var(--font-title);background:var(--brand);width:min(100% - 44px,26rem);min-height:64px;color:var(--brand-ink);font:inherit;cursor:pointer;touch-action:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;border:0;border-radius:999px;justify-content:center;align-items:center;gap:10px;margin:22px 0 18px;padding:14px 24px;font-size:1.1rem;font-weight:700;display:inline-flex}.talk:disabled{opacity:.7;cursor:progress}.talk.is-active{--halo:color-mix(in srgb, var(--mint) 28%, transparent);--halo-outer:color-mix(in srgb, var(--mint) 12%, transparent);background:var(--mint);color:var(--mint-ink)}@media (prefers-reduced-motion:no-preference){.talk.is-active{animation:1.2s ease-out infinite halo}}@keyframes halo{0%{box-shadow:0 0 0 6px var(--halo), 0 0 0 12px var(--halo-outer)}to{box-shadow:0 0 0 14px #0000,0 0 0 28px #0000}}.talk-dot{opacity:.85;background:currentColor;border-radius:50%;width:12px;height:12px}@media (prefers-reduced-motion:no-preference){.talk.is-active .talk-dot{animation:1s ease-in-out infinite pulse}}@keyframes pulse{50%{opacity:.4;transform:scale(1.5)}}.text-ask{gap:8px;width:100%;display:flex}.text-ask input{min-width:0;font:inherit;color:var(--ink);background:var(--surface);border:1.5px solid var(--line);border-radius:12px;flex:1;padding:10px 12px}.text-ask button,.privacy button{font:inherit;font-family:var(--font-title);cursor:pointer;border:1.5px solid var(--brand);background:var(--surface);color:var(--ink);border-radius:12px;padding:10px 16px;font-weight:600}.text-ask button:disabled{opacity:.55;cursor:not-allowed}.privacy-backdrop{z-index:10;background:#00000073;place-items:center;padding:16px;display:grid;position:fixed;inset:0}.privacy{background:var(--surface);max-width:28rem;color:var(--ink);border-radius:18px;padding:20px}.privacy h2{font-family:var(--font-title);margin:0 0 8px;font-size:1.2rem}.privacy p{margin:0 0 16px}.privacy-actions{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}.privacy button.primary{background:var(--brand);color:var(--brand-ink)}@media (pointer:coarse){.hint{display:none}}.conversation,.dock{flex-direction:column;align-items:center;gap:10px;width:100%;display:flex}.text-toggle{display:none}@media (width<=899px),(orientation:portrait){.app{grid-template-rows:auto auto auto minmax(0,1fr);gap:4px;height:100dvh;min-height:0;padding-bottom:0}.stage .avatar-stage{max-width:36dvh;max-height:30dvh}.app-header h1{font-size:1.5rem}.app-header p{font-size:.88rem}.talk-area{gap:0;max-width:40rem;height:100%;min-height:0}.conversation{overscroll-behavior:contain;flex:auto;min-height:0;padding:4px 4px 12px;overflow-y:auto;-webkit-mask-image:linear-gradient(#000 calc(100% - 18px),#0000);mask-image:linear-gradient(#000 calc(100% - 18px),#0000)}.conversation>*{flex-shrink:0}.captions{min-height:0}.dock{padding:6px 0 max(12px, env(safe-area-inset-bottom));background:var(--bg);flex:none;gap:6px}.talk{min-height:56px;box-shadow:0 0 0 7px var(--halo), 0 0 0 15px var(--halo-outer);width:min(100% - 30px,26rem);margin:14px 0 12px;padding:12px 18px;font-size:1rem}.text-toggle{color:var(--muted);font:inherit;cursor:pointer;background:0 0;border:0;border-radius:999px;align-items:center;gap:6px;padding:6px 12px;font-size:.95rem;font-weight:600;display:inline-flex}.text-ask:not(.is-open){display:none}}@media ((width<=899px) or (orientation:portrait)) and (width>=720px){.app{height:calc(100dvh - 48px);padding-bottom:0}}
