:root{--wechat-green: #95ec69;--wechat-brand: #07c160;--bubble-in: #ffffff;--ink: #1a1a1a;--muted: #9a9a9a;font-family:-apple-system,BlinkMacSystemFont,PingFang SC,Helvetica Neue,Microsoft YaHei,Noto Sans SC,sans-serif}*{box-sizing:border-box}html,body{height:100%;margin:0;overflow:hidden}body{display:grid;place-items:center;background:radial-gradient(120% 90% at 50% 0%,#e8eef6,#d5dfec 60%,#c7d4e4);color:var(--ink);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;overscroll-behavior:none}button,input{font:inherit}button{cursor:pointer;border:0}.phone{position:relative;width:min(100vw,56.25dvh);height:100dvh;overflow:hidden;isolation:isolate;background:radial-gradient(85% 55% at 50% 12%,#fffffff5,#fff0 70%),linear-gradient(172deg,#eaf1f9,#f4f1ee 52%,#f0e5e3)}@media(orientation:portrait){body{background:linear-gradient(172deg,#eaf1f9,#f4f1ee 52%,#f0e5e3)}}@media(orientation:landscape)and (min-width:700px){.phone{border-radius:1.25rem;box-shadow:0 28px 90px #1e2d4647,0 2px 10px #1e2d461f}}.poster,.avatar-canvas{position:absolute;inset:0;width:100%;height:100%;display:block;object-fit:cover;transition:opacity .4s ease;pointer-events:none}.avatar-canvas{opacity:0}.avatar-canvas.visible{opacity:1}.poster.hidden{opacity:0}.boot.retry{cursor:pointer}.chat:before{content:"";position:absolute;inset:0;background:linear-gradient(to bottom,#f5f6f800,#f5f6f829 26%,#f5f6f857);pointer-events:none}.boot{position:absolute;inset:0;z-index:30;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1rem;background:linear-gradient(172deg,#eaf1f9,#f6f2ee);transition:opacity .55s ease,visibility .55s ease}.boot.hidden{opacity:0;visibility:hidden;pointer-events:none}.boot-name{font-size:1.625rem;font-weight:500;letter-spacing:.42em;text-indent:.42em;color:#4b5563}.boot-track{width:min(11.25rem,46%);height:.1875rem;border-radius:99px;overflow:hidden;background:#64748b2e}.boot-fill{width:0%;height:100%;border-radius:99px;background:linear-gradient(90deg,#f0a6a0,#d9534f);transition:width .18s ease}.boot-meta{display:flex;gap:1.125rem;align-items:center;font-size:.6875rem;color:#94a3b8;font-variant-numeric:tabular-nums;letter-spacing:.04em}.toast{position:absolute;z-index:25;top:calc(.875rem + env(safe-area-inset-top));left:50%;transform:translate(-50%,-.75rem);max-width:82%;padding:.5625rem 1rem;border-radius:99px;background:#262a30d1;color:#fff;font-size:.75rem;line-height:1.4;text-align:center;opacity:0;pointer-events:none;transition:opacity .25s ease,transform .25s ease;backdrop-filter:blur(10px)}.toast.show{opacity:1;transform:translate(-50%)}.chat{position:absolute;z-index:10;left:0;right:0;bottom:0;height:44%;min-height:15rem;display:flex;flex-direction:column;pointer-events:none}.messages{position:relative;flex:1;min-height:0;overflow-y:auto;display:flex;flex-direction:column;padding:1.125rem .75rem .625rem;pointer-events:auto;scrollbar-width:none;-webkit-mask-image:linear-gradient(to bottom,transparent 0,#000 13%,#000 100%);mask-image:linear-gradient(to bottom,transparent 0,#000 13%,#000 100%)}.messages::-webkit-scrollbar{display:none}.msg-stack{margin-top:auto;display:flex;flex-direction:column;gap:.875rem}.time-sep,.sys{align-self:center;color:#464e5a9e;font-size:.6875rem;line-height:1.5;text-align:center;max-width:88%}.sys{padding:.3125rem .6875rem;border-radius:.375rem;background:#d2d6dcb8;color:#5c6470}.row{display:flex;align-items:flex-start;gap:.5625rem}.row.right{flex-direction:row-reverse}.avatar{flex:0 0 2.375rem;width:2.375rem;height:2.375rem;border-radius:.3125rem;object-fit:cover;background:#e3e8ef;border:1px solid rgba(0,0,0,.05)}.avatar-me{display:grid;place-items:center;background:#c9d3e0;color:#5c6a7d;font-size:.875rem;font-weight:600}.bubble{position:relative;max-width:min(72%,18.75rem);padding:.5625rem .75rem;border-radius:.375rem;background:var(--bubble-in);color:var(--ink);font-size:.9375rem;line-height:1.5;word-break:break-word;white-space:pre-wrap;box-shadow:0 1px 2px #141e2d17}.bubble:before{content:"";position:absolute;top:.8125rem;left:-.3125rem;border-style:solid;border-width:.3125rem .375rem .3125rem 0;border-color:transparent var(--bubble-in) transparent transparent}.row.right .bubble{background:var(--wechat-green)}.row.right .bubble:before{left:auto;right:-.3125rem;border-width:.3125rem 0 .3125rem .375rem;border-color:transparent transparent transparent var(--wechat-green)}.bubble.streaming{opacity:.9}.row.left .bubble.streaming:after{content:"";display:inline-block;width:.07em;height:1em;margin-left:.1em;vertical-align:-.14em;border-radius:1px;background:currentColor;opacity:.55;animation:typing-caret .8s steps(1) infinite}@keyframes typing-caret{50%{opacity:0}}.bubble.partial{background:#ffffffd1;color:#55606e}.row.right .bubble.partial{background:#95ec69b8}.bubble.typing{display:flex;align-items:center;gap:.25rem;min-height:2.375rem}.bubble.typing i{width:.375rem;height:.375rem;border-radius:50%;background:#9aa3ad;animation:typing 1.1s infinite ease-in-out}.bubble.typing i:nth-child(2){animation-delay:.18s}.bubble.typing i:nth-child(3){animation-delay:.36s}@keyframes typing{0%,60%,to{opacity:.35;transform:translateY(0)}30%{opacity:1;transform:translateY(-3px)}}.composer{position:relative;flex:0 0 auto;display:flex;align-items:center;gap:.5625rem;padding:.5625rem .6875rem calc(.5625rem + env(safe-area-inset-bottom));background:#f7f7f7f0;border-top:1px solid rgba(0,0,0,.055);backdrop-filter:blur(16px);pointer-events:auto}.mode-btn{flex:0 0 1.875rem;width:1.875rem;height:2rem;padding:.1875rem;background:transparent;color:#4a5260;display:grid;place-items:center;border-radius:.375rem;transition:color .2s ease,background .2s ease}.mode-btn svg{width:1.375rem;height:1.375rem}.mode-btn:active{background:#0000000f}.composer.ptt-mode .icon-mic{display:none}.composer:not(.ptt-mode) .icon-kbd{display:none}.ptt-btn{position:relative;flex:1;min-width:0;height:2.375rem;display:flex;align-items:center;justify-content:center;gap:.5rem;border-radius:.3125rem;border:1px solid rgba(0,0,0,.06);background:#fff;color:#333;font-size:.9375rem;font-weight:500;letter-spacing:.02em;box-shadow:0 1px 2px #141e2d0f;overflow:hidden;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;touch-action:none;transition:background .14s ease,color .14s ease,transform .12s ease,box-shadow .14s ease}.ptt-btn:after{content:"";position:absolute;inset:0;background:radial-gradient(65% 130% at 50% 100%,rgba(7,193,96,.22),transparent 72%);opacity:calc(var(--level, 0) * .9);pointer-events:none;transition:opacity .12s ease}.ptt-btn>span{position:relative;z-index:1}.ptt-dot{width:.4375rem;height:.4375rem;border-radius:50%;background:#c9ced5;transition:background .2s ease,box-shadow .2s ease}.ptt-btn.mic-ready .ptt-dot{background:var(--wechat-brand);box-shadow:0 0 0 .1875rem #07c16024}.ptt-btn.holding{background:#e7e9ec;color:#1f7a4d;transform:scale(.992);box-shadow:inset 0 1px 4px #00000017}.ptt-btn.holding .ptt-dot{background:var(--wechat-brand);animation:ptt-pulse 1s infinite ease-in-out}.ptt-btn.waiting{color:#8a919b}@keyframes ptt-pulse{0%,to{box-shadow:0 0 0 .1875rem #07c1601f}50%{box-shadow:0 0 0 .4375rem #07c1600d}}.text-input{flex:1;min-width:0;height:2.375rem;padding:0 .6875rem;border:0;border-radius:.3125rem;background:#fff;outline:none;font-size:.9375rem;color:var(--ink)}.text-input::placeholder{color:#a9adb4}.send-btn{flex:0 0 auto;height:2.125rem;min-width:3.375rem;padding:0 .75rem;border-radius:.3125rem;background:#e3e6ea;color:#8b929b;font-size:.8125rem;font-weight:500;transition:background .18s ease,color .18s ease}.send-btn.active{background:var(--wechat-brand);color:#fff}.send-btn:active.active{background:#06ad56}.composer.ptt-mode .text-input,.composer.ptt-mode .send-btn{display:none}.composer:not(.ptt-mode) .ptt-btn{display:none}@media(max-height:560px){.chat{height:52%;min-height:11.875rem}}.platform-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block;z-index:0;opacity:0;transition:opacity .6s ease;pointer-events:none}.platform-bg.loaded{opacity:1}.phone.platform-theme{--platform-font: #ffffff;--platform-textbox: rgba(255, 255, 255, .1)}.phone.platform-theme .chat:before{background:linear-gradient(to bottom,#0000,#0003 26%,#0009)}body.platform-theme{background:#000}.phone.platform-theme .time-sep,.phone.platform-theme .sys{text-shadow:0 1px 3px rgba(0,0,0,.65)}.phone.platform-theme .time-sep{color:#ffffffb8}.phone.platform-theme .sys{background:#ffffff21;color:#ffffffd1}.phone.platform-theme .avatar{background:#ffffff24;border-color:#ffffff1f}.phone.platform-theme .avatar-me{background:#ffffff2e;color:#ffffffe0}.phone.platform-theme .bubble.typing i{background:#ffffff8c}.phone.platform-theme .composer{background:#101012ad;border-top-color:#ffffff1a}.phone.platform-theme .mode-btn{color:var(--platform-font)}.phone.platform-theme .mode-btn:active{background:#ffffff1a}.phone.platform-theme .ptt-btn{background:var(--platform-textbox);border-color:#ffffff24;color:var(--platform-font);box-shadow:none}.phone.platform-theme .ptt-btn.holding{background:#fff3;color:#8ee7b3}.phone.platform-theme .ptt-btn.waiting{color:#ffffff8c}.phone.platform-theme .text-input{background:var(--platform-textbox);color:var(--platform-font)}.phone.platform-theme .text-input::placeholder{color:#ffffff73}.phone.platform-theme .send-btn{background:#ffffff21;color:#ffffff9e}.phone.platform-theme .boot{background:#000}.phone.platform-theme .boot-name{color:#ffffffe0}.phone.platform-theme .boot-meta{color:#ffffff85}.phone.platform-theme .boot-track{background:#ffffff29}
