@import "https://fonts.googleapis.com/css2?family=Nunito:wght@500;700;800&family=ZCOOL+KuaiLe&display=swap";:root{--bg0:#ffe8c8;--bg1:#d8f3ff;--ink:#1d2a32;--muted:#5b6b75;--line:#1d2a321a;--user:#ff8f6b;--user-ink:#2a1208;--bot:#fff;--accent:#2ec4b6;--accent-2:#ffd166;--danger:#e85d4c;--cite:#3d7ea6;--font-sans:"Nunito", "PingFang SC", "Noto Sans SC", sans-serif;--font-display:"ZCOOL KuaiLe", "Nunito", cursive}*{box-sizing:border-box}html,body,#app{min-height:100%}body{font-family:var(--font-sans);color:var(--ink);background:linear-gradient(160deg, var(--bg0), var(--bg1) 55%, #e8ffe8);margin:0;overflow-x:hidden}.shell{isolation:isolate;min-height:100vh;position:relative}.blob{filter:blur(40px);opacity:.55;z-index:-1;pointer-events:none;border-radius:50%;animation:9s ease-in-out infinite float;position:fixed}.b1{background:#ffb4a2;width:280px;height:280px;top:8%;left:-60px}.b2{background:#8ecae6;width:320px;height:320px;animation-delay:-3s;top:28%;right:-80px}.b3{background:#bde0fe;width:220px;height:220px;animation-delay:-5.5s;bottom:8%;left:30%}.page{grid-template-rows:auto 1fr auto auto auto;gap:.9rem;width:min(720px,100% - 2rem);min-height:100vh;margin:0 auto;padding:1.35rem 0 1.2rem;display:grid}.brand{animation:.55s cubic-bezier(.2,.9,.2,1.15) both rise}.logo{font-family:var(--font-display);letter-spacing:.02em;background:linear-gradient(120deg,#ff6b4a,#2ec4b6 55%,#3d7ea6);color:#0000;-webkit-background-clip:text;background-clip:text;margin:0;font-size:clamp(2.6rem,9vw,3.6rem);font-weight:400;line-height:1;animation:4.5s ease-in-out infinite shimmer}.brand h1{color:#1f6f78;margin:.4rem 0 0;font-size:1.15rem;font-weight:800}.sub{color:var(--muted);margin:.3rem 0 0;font-size:.95rem;font-weight:600}.thread{scroll-behavior:smooth;flex-direction:column;gap:.85rem;min-height:42vh;max-height:min(58vh,580px);padding:.35rem .1rem .6rem;display:flex;overflow:auto}.empty{text-align:center;max-width:26rem;margin:auto;animation:.6s both rise}.wave{font-family:var(--font-display);margin:0;font-size:1.7rem;animation:2.4s ease-in-out infinite wobble}.empty-desc{color:var(--muted);margin:.55rem 0 1rem;font-weight:600}.hints{flex-wrap:wrap;justify-content:center;gap:.5rem;display:flex}.hint{color:var(--ink);font:inherit;cursor:pointer;background:#ffffffbf;border:0;border-radius:999px;padding:.55rem .9rem;font-size:.86rem;font-weight:700;transition:transform .18s cubic-bezier(.2,.9,.2,1.2),background .18s;box-shadow:0 6px 18px #2d5a6e14}.hint:hover{background:#fff;transform:translateY(-2px)scale(1.03)}.hint:active{transform:scale(.97)}.bubble{border-radius:1.25rem;max-width:min(92%,34rem);padding:.9rem 1.05rem;animation:.38s cubic-bezier(.2,.9,.25,1.25) both pop;position:relative;box-shadow:0 10px 28px #28465a14}.bubble.user{background:linear-gradient(145deg, #ff9a76, var(--user));color:var(--user-ink);border-bottom-right-radius:.4rem;align-self:flex-end}.bubble.assistant{background:var(--bot);border:1px solid #ffffffb3;border-bottom-left-radius:.4rem;align-self:flex-start}.bubble.streaming{box-shadow:0 10px 28px #2ec4b62e}.who{letter-spacing:.04em;opacity:.7;margin-bottom:.35rem;font-size:.72rem;font-weight:800;display:block}.body{white-space:pre-wrap;word-break:break-word;margin:0;font-size:1.02rem;font-weight:600;line-height:1.65}.body.plain{white-space:pre-wrap}.body .cite{min-width:1.15rem;height:1.15rem;color:var(--cite);vertical-align:.12em;cursor:pointer;background:#e7f6ff;border:0;border-radius:999px;justify-content:center;align-items:center;margin:0 .12rem;padding:0 .28rem;font-size:.72rem;font-weight:800;transition:transform .15s,background .15s;animation:.28s cubic-bezier(.2,.9,.2,1.3) both cite-in;display:inline-flex}.body .cite:hover,.body .cite:active{background:#d3efff;transform:scale(1.12)}.caret{vertical-align:-.15em;background:var(--accent);border-radius:2px;width:.45rem;height:1.05em;margin-left:.12rem;animation:.9s step-end infinite blink;display:inline-block}.status-pill{color:var(--muted);background:#fffc;border-radius:999px;align-self:flex-start;align-items:center;gap:.45rem;padding:.45rem .8rem;font-size:.86rem;font-weight:700;animation:.3s both rise;display:inline-flex}.spinner{border:2px solid #2ec4b640;border-top-color:var(--accent);border-radius:50%;width:.75rem;height:.75rem;animation:.7s linear infinite spin}.tip{background:#fff7d6;border:1px solid #ffd166b3;border-radius:1rem;flex-wrap:wrap;align-items:center;gap:.45rem;margin:0;padding:.7rem .9rem;font-weight:700;animation:.3s cubic-bezier(.2,.9,.2,1.2) both pop;display:flex}.tip-close{background:var(--accent-2);font:inherit;cursor:pointer;border:0;border-radius:999px;margin-left:auto;padding:.35rem .7rem;font-weight:800}.error{color:var(--danger);margin:0;font-size:.9rem;font-weight:700}.composer{grid-template-columns:1fr auto;align-items:end;gap:.65rem;animation:.7s 80ms both rise;display:grid}textarea{resize:none;width:100%;color:var(--ink);font:inherit;background:#ffffffe0;border:2px solid #0000;border-radius:1.15rem;outline:none;padding:.95rem 1rem;font-weight:600;line-height:1.45;transition:border-color .2s,transform .2s,box-shadow .2s;box-shadow:0 10px 24px #28465a14}textarea:focus{border-color:#2ec4b6b3;transform:translateY(-1px);box-shadow:0 12px 28px #2ec4b629}.send{background:linear-gradient(145deg, #3dd6c6, var(--accent));color:#05332e;font:inherit;cursor:pointer;border:0;border-radius:999px;padding:.9rem 1.25rem;font-weight:800;transition:transform .15s cubic-bezier(.2,.9,.2,1.2),box-shadow .15s;box-shadow:0 10px 20px #2ec4b647}.send:hover:not(:disabled){transform:translateY(-2px)scale(1.03)}.send:active:not(:disabled){transform:scale(.96)}.send:disabled{opacity:.45;cursor:not-allowed;box-shadow:none}@keyframes rise{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}@keyframes pop{0%{opacity:0;transform:translateY(10px)scale(.94)}to{opacity:1;transform:none}}@keyframes float{0%,to{transform:translateY(0)translate(0)}50%{transform:translateY(-18px)translate(10px)}}@keyframes wobble{0%,to{transform:rotate(-1.5deg)}50%{transform:rotate(1.5deg)}}@keyframes blink{50%{opacity:0}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes cite-in{0%{opacity:0;transform:scale(.6)}to{opacity:1;transform:none}}@keyframes shimmer{0%,to{filter:hue-rotate()}50%{filter:hue-rotate(12deg)}}@media (prefers-reduced-motion:reduce){.blob,.wave,.logo,.caret,.spinner,.bubble,.hint,.brand,.composer,.status-pill,.tip,.body .cite{animation:none!important}.thread{scroll-behavior:auto}}@media (width<=560px){.composer{grid-template-columns:1fr}.send{width:100%}}
