.app-mode .site-foot{display:none}
.app-mode .toasts{top:calc(var(--head-h) + .4375rem);bottom:auto}
.msg.media .mj-img img{max-height:22rem}
.chat-page{height:calc(100vh - var(--head-h));height:calc(100dvh - var(--head-h))}
.ch-gate{display:grid;place-items:center;height:100%;padding:1.5rem;overflow:auto}
.kgate{display:flex;flex-direction:column;gap:1.25rem;width:min(35rem,100%)}
.kgate .tstate{padding:0;border:0;background:none}
.gate-form{display:flex;flex-direction:column;gap:.875rem}
.gate-row{display:flex;gap:.5rem}
.gate-row .input{flex:1}
.gate-err{font-size:.8438rem;color:var(--down)}
.gate-no{color:var(--muted)}
.gate-form.shake .gate-row{animation:shake .36s var(--ease)}
@keyframes shake{25%{transform:translateX(-.3125rem)}50%{transform:translateX(.25rem)}75%{transform:translateX(-.125rem)}}

.chat-app{display:grid;grid-template-columns:17rem minmax(0,1fr);height:100%;border-top:1px solid var(--line)}
.ch-ic{display:inline-grid;place-items:center;flex:none;width:2.125rem;height:2.125rem;border-radius:.625rem;color:var(--muted);cursor:pointer;transition:background var(--d2),color var(--d2)}
.ch-ic:hover{background:var(--surface-3);color:var(--fg)}
.ch-ic svg{width:1.125rem;height:1.125rem;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.ch-ic.dim{opacity:.4}

.ch-side{display:flex;flex-direction:column;gap:.625rem;min-height:0;padding:.875rem .75rem .75rem;border-right:1px solid var(--line);background:var(--surface-2)}
.ch-new{justify-content:flex-start;width:100%;height:2.625rem;padding:0 .75rem 0 .875rem}
.ch-new svg{stroke-width:2}
.ch-new kbd{margin-left:auto;font:var(--t-meta);letter-spacing:.04em;color:rgba(255,255,255,.45)}
.ch-modes{display:flex;width:100%}
.ch-modes button{flex:1}
.ch-search{display:flex;align-items:center;gap:.5rem;height:2.25rem;padding:0 .625rem;border-radius:.625rem;color:var(--faint);transition:background var(--d2)}
.ch-search:focus-within,.ch-search:hover{background:var(--surface)}
.ch-search svg{width:1rem;height:1rem;flex:none;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round}
.ch-search input{flex:1;min-width:0;border:0;background:none;font-size:.8438rem;color:var(--fg);outline:none}
.ch-search input::placeholder{color:var(--faint)}
.ch-list{flex:1;min-height:0;overflow:auto;display:flex;flex-direction:column;margin:0 -.25rem;padding:0 .25rem .5rem;scrollbar-width:thin}
.ch-group{padding:.875rem .625rem .375rem;font:var(--t-meta);letter-spacing:var(--ls-meta);text-transform:uppercase;color:var(--faint)}
.ch-group:first-child{padding-top:.25rem}
.ch-item{position:relative;display:flex;align-items:center;border-radius:.5625rem;transition:background var(--d2)}
.ch-item a{flex:1;min-width:0;padding:.5rem .625rem;font-size:.875rem;color:var(--fg-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;-webkit-mask:linear-gradient(90deg,#000 85%,transparent);mask:linear-gradient(90deg,#000 85%,transparent)}
.ch-item a{display:flex;align-items:center;gap:.5rem}
.ch-item-i{display:grid;place-items:center;flex:none;width:1rem;height:1rem}
.ch-item-i>*{width:1rem;height:1rem;object-fit:contain}
.ch-item-t{min-width:0;overflow:hidden;text-overflow:ellipsis}
.ch-item:hover{background:var(--surface-3)}
.ch-item:hover a{color:var(--fg)}
.ch-item.on{background:var(--surface);box-shadow:0 0 0 1px var(--line),var(--sh1)}
.ch-item.on a{color:var(--fg);font-weight:560}
.ch-item.on::before{content:"";position:absolute;left:-.25rem;top:.625rem;bottom:.625rem;width:.125rem;border-radius:.125rem;background:var(--pink)}
.ch-item-m{display:grid;place-items:center;width:1.75rem;height:1.75rem;margin-right:.1875rem;border-radius:.4375rem;color:var(--muted);opacity:0;transition:opacity var(--d2),background var(--d2)}
.ch-item-m svg{width:1rem;height:1rem;fill:none;stroke:currentColor;stroke-width:2.6;stroke-linecap:round}
.ch-item:hover .ch-item-m,.ch-item.on .ch-item-m,.ch-item-m[aria-expanded="true"],.ch-item-m:focus-visible{opacity:1}
.ch-item-m:hover{background:var(--surface-2);color:var(--fg)}
.ch-empty{padding:.875rem .625rem;font-size:.8438rem;color:var(--faint)}
.ch-me{display:flex;flex-direction:column;gap:.5rem;padding:.75rem 0 0;border-top:1px solid var(--line)}
.ch-wal{position:relative;display:flex;flex-direction:column;gap:.5rem;padding:.6875rem .75rem .8125rem;border-radius:.875rem;background:var(--surface);box-shadow:0 0 0 1px var(--line),var(--sh1)}
.ch-wal-top{display:flex;align-items:center;gap:.5rem;height:1.25rem;font:var(--t-meta);letter-spacing:.08em;text-transform:uppercase;color:var(--faint)}
.ch-wal-top em{margin-left:auto;font-style:normal;font-variant-numeric:tabular-nums;letter-spacing:.02em;color:var(--muted)}
.ch-up{display:grid;place-items:center;width:1.5rem;height:1.5rem;margin-right:-.375rem;border-radius:.5rem;color:var(--muted);transition:background var(--d2),color var(--d2)}
.ch-up svg{width:.875rem;height:.875rem;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round}
.ch-up:hover{background:var(--pink-soft);color:var(--pink-deep)}
.ch-wal-num{position:relative;display:flex;align-items:baseline;gap:.375rem;min-width:0}
.ch-wal-num b{font-size:1.375rem;font-weight:680;line-height:1.1;letter-spacing:-.03em;font-variant-numeric:tabular-nums;transition:color var(--d3)}
.ch-wal-num small{font-size:.8125rem;color:var(--muted)}
.ch-wal-num:has(.ch-delta.go) small{animation:ch-unit 1.8s var(--ease) both}
@keyframes ch-unit{0%,100%{opacity:1}12%,76%{opacity:0}}
.ch-delta{position:absolute;right:0;bottom:.125rem;font:600 .75rem/1 var(--mono);font-style:normal;color:var(--pink-deep);opacity:0;pointer-events:none}
.ch-delta.go{animation:ch-delta 1.8s var(--ease) both}
@keyframes ch-delta{0%{opacity:0;transform:translateY(.375rem)}14%{opacity:1;transform:none}72%{opacity:1;transform:translateY(-.125rem)}100%{opacity:0;transform:translateY(-.625rem)}}
.ch-cells{position:relative;display:grid;grid-template-columns:repeat(24,minmax(0,1fr));gap:.125rem;height:.5rem;overflow:hidden;border-radius:.125rem}
.ch-cells i{border-radius:.0938rem;background:var(--line);transform:scaleY(.5);transition:background .4s var(--ease) calc(var(--i,0) * 16ms),transform .5s var(--ease) calc(var(--i,0) * 16ms),box-shadow .4s}
.ch-cells i.on{background:var(--fg);transform:none}
.ch-cells i.now{background:var(--pink);box-shadow:0 0 .5rem rgba(255,31,122,.6);animation:ch-head 2.6s ease-in-out 1s infinite}
@keyframes ch-head{50%{opacity:.5;box-shadow:0 0 .25rem rgba(255,31,122,.3)}}
.ch-cells::after{content:"";position:absolute;inset:0;background:linear-gradient(100deg,transparent 35%,rgba(255,255,255,.8) 50%,transparent 65%);transform:translateX(-100%);pointer-events:none}
.ch-wal:hover .ch-cells::after{animation:ch-sweep 1.2s var(--ease)}
@keyframes ch-sweep{to{transform:translateX(100%)}}
.ch-wal.low .ch-cells i.on{background:var(--pink)}
.ch-wal.low .ch-wal-num b,.ch-wal.out .ch-wal-num b{color:var(--pink-deep)}
.ch-low{font-size:.7812rem;line-height:1.45;color:var(--muted)}
.ch-me-act{display:flex;align-items:center;gap:.25rem}
.ch-acc{flex:1;min-width:0;display:flex;align-items:center;gap:.625rem;padding:.375rem .5rem .375rem .375rem;border-radius:.75rem;transition:background var(--d2)}
.ch-acc:hover{background:var(--surface-3)}
.ch-ava{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.125rem;width:2rem;height:2rem;padding:.4375rem;border-radius:.5625rem;background:var(--fg);flex:none;transition:transform var(--d3) var(--ease)}
.ch-ava i{border-radius:.0625rem;background:rgba(255,255,255,.12);transition:background var(--d3)}
.ch-ava i.on{background:#fff}
.ch-ava i.p{background:var(--pink)}
.ch-acc:hover .ch-ava{transform:rotate(-6deg) scale(1.04)}
.ch-acc-t{display:flex;flex-direction:column;min-width:0;line-height:1.25}
.ch-acc-t b{font-size:.875rem;font-weight:620}
.ch-acc-t small{font-size:.6875rem;color:var(--faint);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ch-acc-go{width:1rem;height:1rem;margin-left:auto;flex:none;fill:none;stroke:var(--faint);stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;transition:transform var(--d2) var(--ease),stroke var(--d2)}
.ch-acc:hover .ch-acc-go{transform:translateX(.1875rem);stroke:var(--fg)}
@media (prefers-reduced-motion:reduce){.ch-cells i{transition:none}.ch-cells i.now{animation:none}.ch-wal:hover .ch-cells::after{animation:none}.ch-delta.go,.ch-wal-num:has(.ch-delta.go) small{animation-duration:.01s}}

.ch-main{position:relative;display:flex;flex-direction:column;min-height:0;min-width:0;background:var(--bg)}
.ch-top{display:flex;align-items:center;gap:.75rem;height:3.5rem;padding:0 1rem 0 1.5rem;border-bottom:1px solid var(--line-2)}
.ch-menu{display:none}
.ch-title{flex:1;min-width:0;font-weight:620;letter-spacing:-.01em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:text;border-radius:.5rem;outline:none}
.ch-title:focus-visible{box-shadow:0 0 0 .1875rem rgba(255,31,122,.12)}
[data-mode="image"] .ch-title{cursor:default}
.ch-title-in{width:min(32.5rem,100%);height:2.125rem;padding:0 .625rem;margin-left:-.625rem;border:1px solid var(--pink-line);border-radius:.5rem;background:var(--surface);font-weight:620;outline:none;box-shadow:0 0 0 .25rem rgba(255,31,122,.08)}
.ch-ctl{display:flex;align-items:center;gap:.125rem}
[data-mode="image"] .ch-ctl{visibility:hidden}

.ch-scroll{flex:1;min-height:0;overflow:auto;overscroll-behavior:contain;scrollbar-gutter:stable both-edges}
.ch-msgs{max-width:50rem;margin:0 auto;padding:2.25rem 1.75rem 1.75rem;display:flex;flex-direction:column;gap:1.875rem}
.ch-msgs.gal{max-width:73.75rem}
.ch-hello{display:flex;flex-direction:column;align-items:center;gap:.75rem;padding-top:11vh;text-align:center;opacity:0;transform:translateY(.5rem);transition:opacity var(--d3) var(--ease),transform var(--d3) var(--ease)}
.ch-hello.in{opacity:1;transform:none}
.ch-hello-m{display:grid;place-items:center;width:3.75rem;height:3.75rem;margin-bottom:.375rem;border-radius:1.125rem;background:var(--surface);box-shadow:0 0 0 1px var(--line),0 1.125rem 2.25rem -1.5rem rgba(22,19,26,.3)}
.ch-hello .small{max-width:31.25rem;color:var(--muted)}
.ch-hello-spec{display:flex;flex-wrap:wrap;justify-content:center;gap:.625rem 2rem;margin-top:.875rem;padding-top:1.125rem;border-top:1px solid var(--line-2)}
.ch-hello-spec dt{font:var(--t-meta);letter-spacing:.08em;text-transform:uppercase;color:var(--faint)}
.ch-hello-spec dd{margin-top:.25rem;font-size:.875rem;font-weight:600}
.ch-starts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem;width:min(35rem,100%);margin-top:2rem;text-align:left}
.ch-starts button{display:flex;flex-direction:column;gap:.3125rem;min-height:4.25rem;padding:.75rem .875rem;border:1px solid var(--line);border-radius:.875rem;background:var(--surface);transition:border-color var(--d2),box-shadow var(--d2),transform var(--d2) var(--ease);animation:msg-in var(--d3) var(--ease) both;animation-delay:calc(var(--i,0) * 60ms + 120ms)}
.ch-starts button:hover{border-color:var(--line-strong);box-shadow:var(--sh1);transform:translateY(-1px)}
.ch-starts em{font:var(--t-meta);font-style:normal;letter-spacing:.1em;text-transform:uppercase;color:var(--faint);transition:color var(--d2)}
.ch-starts button:hover em{color:var(--pink-deep)}
.ch-starts span{font-size:.875rem;font-weight:560;color:var(--fg-2)}

.msg{position:relative;animation:msg-in var(--d3) var(--ease) both}
@keyframes msg-in{from{opacity:0;transform:translateY(.375rem)}}
.msg.me{align-self:flex-end;max-width:78%;display:flex;flex-direction:column;align-items:flex-end}
.msg.me .msg-body{padding:.75rem 1rem;border-radius:1.125rem 1.125rem .25rem 1.125rem;background:var(--surface-3);font-size:.9375rem;line-height:1.6;overflow-wrap:anywhere}
.msg-att{display:flex;flex-wrap:wrap;gap:.375rem;margin-bottom:.5rem}
.msg-att img{max-width:13.75rem;max-height:11.25rem;border-radius:.625rem;object-fit:cover;background:var(--surface)}
.msg-meta{display:flex;align-items:center;gap:.5rem;margin-bottom:.625rem;font:var(--t-meta);letter-spacing:.02em;color:var(--muted)}
.msg-act{display:flex;align-items:center;gap:.125rem;min-height:1.875rem;margin-top:.375rem;opacity:0;transition:opacity var(--d2)}
.msg:hover .msg-act,.msg:focus-within .msg-act,.msg.ai:last-child .msg-act{opacity:1}
.msg-act button{height:1.75rem;padding:0 .5625rem;border-radius:.4375rem;font-size:.7812rem;font-weight:550;color:var(--muted);transition:background var(--d1),color var(--d1)}
.msg-act button:hover{background:var(--surface-3);color:var(--fg)}
.msg-act button.done{color:var(--pink-deep)}
.msg-use{margin-left:.5rem;font:var(--t-meta);color:var(--faint);white-space:nowrap}
.msg-think{display:flex;align-items:center;gap:.625rem;height:1.625rem}
.msg-think::before{content:"";width:.375rem;height:.375rem;border-radius:50%;background:var(--pink);box-shadow:0 0 0 0 rgba(255,31,122,.4);animation:think 1.4s var(--ease) infinite}
@keyframes think{70%{box-shadow:0 0 0 .5rem rgba(255,31,122,0)}}
.ch-caret{display:inline-block;width:.62em;height:1.1em;margin-left:.125rem;vertical-align:-.18em;border-radius:.125rem;background:var(--pink);opacity:.85;animation:caret 1s steps(2) infinite}
@keyframes caret{50%{opacity:.2}}
.md>p:last-of-type:has(+.ch-caret){display:inline}
.msg-miss{margin-top:.375rem;font:var(--t-meta);letter-spacing:.02em;color:var(--faint)}
.msg-tag{padding:.125rem .375rem;border-radius:.3125rem;background:var(--surface-3);font:var(--t-meta);font-style:normal;letter-spacing:.04em;color:var(--muted)}
.msg-st{color:var(--faint)}
.msg.live .msg-st{color:var(--pink-deep)}
.msg-act .key{background:var(--pink-soft);color:var(--pink-deep);font-weight:620}
.msg-act .key:hover{background:#ffe3ef;color:var(--pink-deep)}
.ch-err{display:flex;align-items:flex-start;gap:1rem;padding:1rem 1.125rem 1rem .875rem;border:1px solid var(--line);border-radius:.875rem;background:linear-gradient(180deg,var(--surface),var(--bg));animation:msg-in var(--d3) var(--ease) both}
.ch-err .tstate-cv{width:3rem;height:2rem;margin-top:.125rem}
.ch-err-t{min-width:0}
.ch-err-t b{display:block;font-weight:640;letter-spacing:-.01em}
.ch-err-t p{margin-top:.25rem;font:var(--t-small);color:var(--muted)}
.ch-err-a{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.875rem}
.ch-err-a img{width:.875rem;height:.875rem}
.ch-err.pay{border-color:var(--pink-line);background:linear-gradient(180deg,var(--pink-soft),var(--surface) 70%)}
.ch-note{display:flex;align-items:center;gap:.625rem;margin-top:-.75rem;font-size:.8125rem;color:var(--muted);animation:msg-in var(--d3) var(--ease) both}
.ch-note::before{content:"";flex:none;width:.375rem;height:.375rem;border-radius:50%;background:var(--idle)}
.ch-note.warn::before{background:var(--warn)}
.msg.me.editing{width:min(40rem,100%);max-width:none}
.msg-edit{width:100%}
.msg-edit .textarea{min-height:5.5rem;border-color:var(--pink-line);box-shadow:0 0 0 .25rem rgba(255,31,122,.06)}
.msg-edit-a{display:flex;justify-content:flex-end;gap:.5rem;margin-top:.5rem}
.msg-edit-n{margin-top:.375rem;font:var(--t-meta);color:var(--faint);text-align:right}
.ch-item.live .ch-item-i{visibility:hidden}
.ch-item.live::after{content:"";position:absolute;left:.625rem;top:50%;width:.375rem;height:.375rem;margin-top:-.1875rem;border-radius:50%;background:var(--pink);animation:think 1.4s var(--ease) infinite}
.modal-wide{width:min(72rem,100%)}
.ch-prev-h{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1rem}
.ch-prev{display:block;width:100%;height:min(70vh,45rem);border:1px solid var(--line);border-radius:.75rem;background:#fff}
.ch-prev-n{margin-top:.625rem;font:var(--t-meta);color:var(--faint)}

.md{font-size:.9688rem;line-height:1.72;color:var(--fg);overflow-wrap:anywhere}
.md>*+*{margin-top:.75rem}
.md ul,.md ol{padding-left:1.375rem}
.md ul{list-style:disc}.md ol{list-style:decimal}
.md li+li{margin-top:.25rem}
.md li::marker{color:var(--faint)}
.md .md-h{font-weight:680;margin-top:1.375rem;letter-spacing:-.01em}
.md .ic{padding:1px .3125rem;border-radius:.3125rem;background:var(--surface-3);font:.8438rem var(--mono)}
.md a{color:var(--pink-deep);text-decoration:underline;text-decoration-color:var(--pink-line);text-underline-offset:.1875rem}
.md blockquote{padding-left:.875rem;border-left:.125rem solid var(--line-strong);color:var(--fg-2)}
.md hr{height:1px;border:0;background:var(--line)}
.md .code{margin:1rem 0}

.ch-comp{padding:.625rem 1.75rem 1rem}
.ch-box{display:flex;flex-direction:column;max-width:50rem;margin:0 auto;border:1px solid var(--line);border-radius:1.25rem;background:var(--surface);box-shadow:0 1.375rem 2.75rem -2rem rgba(22,19,26,.35),0 1px .125rem rgba(22,19,26,.04);transition:border-color var(--d2),box-shadow var(--d2)}
.ch-box{position:relative}
.vv-dbg{position:fixed;left:4px;right:4px;top:calc(var(--sa-t,0px) + 58px);z-index:999;margin:0;padding:6px 8px;border-radius:8px;background:rgba(22,19,26,.86);color:#fff;font:600 11px/1.35 var(--mono);white-space:pre-wrap;pointer-events:none}
.ch-ring{position:absolute;z-index:1;pointer-events:none}
@media (prefers-reduced-motion:reduce){.ch-ring{display:none}}
.ch-box:focus-within{border-color:var(--pink-line);box-shadow:0 0 0 .25rem rgba(255,31,122,.06),0 1.375rem 2.75rem -2rem rgba(22,19,26,.35)}
.chat-app.drop .ch-box{border-color:var(--pink);box-shadow:0 0 0 .3125rem rgba(255,31,122,.1)}
.ch-box textarea{display:block;width:100%;min-height:3.25rem;max-height:15rem;padding:.9375rem 1.125rem .375rem;border:0;resize:none;background:transparent;font-size:.9688rem;line-height:1.45;outline:none}
.ch-box textarea::placeholder{color:var(--faint)}
.ch-bar{display:flex;align-items:center;gap:.25rem;padding:.375rem .5rem .5rem .5rem}
.ch-bar>div[hidden],.ch-bar>div:empty{display:none}
.ch-bar .tsel-sm{border-color:transparent;background:transparent;max-width:16.25rem;font-weight:560}
.ch-bar .tsel-sm:hover,.ch-bar .tsel-sm[aria-expanded="true"]{background:var(--surface-2)}
.rz{display:inline-flex;align-items:center;gap:.5rem;height:2.125rem;padding:0 .75rem 0 .625rem;border-radius:.625rem;font-size:.8125rem;font-weight:560;color:var(--fg-2);white-space:nowrap;transition:background var(--d2),color var(--d2)}
.rz:hover,.rz[aria-expanded="true"]{background:var(--surface-2);color:var(--fg)}
.rz:focus-visible{outline:none;box-shadow:0 0 0 .1875rem rgba(255,31,122,.14)}
.rz-bars{display:flex;align-items:flex-end;gap:.125rem;height:.875rem}
.rz-bars i{width:.1875rem;height:calc(var(--h) * 100%);border-radius:.0625rem;background:var(--line-strong);transform-origin:bottom;transition:background .3s var(--ease) calc(var(--i) * 40ms),transform .45s cubic-bezier(.34,1.56,.64,1) calc(var(--i) * 40ms)}
.rz-bars i.on{background:var(--fg)}
.rz-bars i.top{background:var(--pink)}
.rz.off .rz-bars i{transform:scaleY(.45)}
.rz.off .rz-l{color:var(--muted)}
.rz.bump .rz-bars i.on{animation:rz-bump .5s cubic-bezier(.34,1.56,.64,1) calc(var(--i) * 45ms)}
@keyframes rz-bump{40%{transform:scaleY(1.25)}}
.chat-app.busy .rz-bars i.on{animation:rz-think 1.1s ease-in-out calc(var(--i) * -180ms) infinite}
@keyframes rz-think{0%,100%{transform:scaleY(1)}50%{transform:scaleY(.4)}}
.rz-pop{width:20rem;padding:1rem 1.125rem 1.125rem}
.rz-box{display:flex;flex-direction:column}
.rz-head{display:flex;align-items:center;justify-content:space-between;font:var(--t-meta);letter-spacing:var(--ls-meta);text-transform:uppercase;color:var(--faint)}
.rz-head kbd{font:500 .6875rem/1 var(--mono);letter-spacing:0;padding:.25rem .375rem;border-radius:.3125rem;background:var(--surface-3);color:var(--muted)}
.rz-track{--k:0;position:relative;height:2.25rem;margin:.875rem 0 0;touch-action:none;cursor:pointer;outline:none;border-radius:.5rem}
.rz-track:focus-visible{box-shadow:0 0 0 .1875rem rgba(255,31,122,.14)}
.rz-rail,.rz-fill{position:absolute;left:.625rem;right:.625rem;top:50%;height:.25rem;margin-top:-.125rem;border-radius:.25rem}
.rz-rail{background:var(--line)}
.rz-fill{background:linear-gradient(90deg,var(--fg) 55%,var(--pink));transform-origin:left;transform:scaleX(var(--k));transition:transform .45s cubic-bezier(.34,1.3,.64,1)}
.rz-stop{position:absolute;top:50%;left:calc(.625rem + var(--x) * (100% - 1.25rem));width:1.5rem;height:1.5rem;margin:-.75rem 0 0 -.75rem;display:grid;place-items:center;border-radius:50%}
.rz-stop i{width:.4375rem;height:.4375rem;border-radius:.125rem;background:var(--line-strong);transition:background .25s,transform .25s var(--ease)}
.rz-stop.on i{background:var(--fg)}
.rz-stop.pv i{transform:scale(1.5)}
.rz-knob{position:absolute;top:50%;left:calc(.625rem + var(--k) * (100% - 1.25rem));width:1.375rem;height:1.375rem;margin:-.6875rem 0 0 -.6875rem;border-radius:.4375rem;background:#fff;box-shadow:0 0 0 1px var(--line-strong),0 .25rem .75rem -.125rem rgba(22,19,26,.28);pointer-events:none;transition:left .45s cubic-bezier(.34,1.3,.64,1),transform .2s var(--ease)}
.rz-knob::after{content:"";position:absolute;inset:.4375rem;border-radius:.125rem;background:var(--pink)}
.rz-track.drag .rz-knob{transform:scale(1.12);transition:left .18s var(--ease),transform .2s var(--ease)}
.rz-track.drag .rz-fill{transition-duration:.18s}
.rz-ends{display:flex;justify-content:space-between;margin-top:.125rem;font-size:.6875rem;color:var(--faint)}
.rz-info{display:flex;align-items:baseline;justify-content:space-between;gap:.75rem;margin-top:.875rem}
.rz-name{font-size:1.0625rem;font-weight:660;letter-spacing:-.015em}
.rz-max{font-size:.75rem;color:var(--muted);white-space:nowrap}
.rz-hint{min-height:2.75rem;margin-top:.25rem;font-size:.8125rem;line-height:1.45;color:var(--muted)}
.rz-ms{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:.4375rem .875rem;margin-top:.875rem;padding-top:.875rem;border-top:1px solid var(--line-2);font-size:.75rem;color:var(--muted)}
.rz-m{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:.125rem;height:.375rem}
.rz-m i{border-radius:.0625rem;background:var(--line);transition:background .3s var(--ease) calc(var(--i) * 18ms)}
.rz-m i.on{background:var(--fg)}
.rz-ms .rz-m:nth-of-type(3) i.on{background:var(--pink)}
.pop.sheet.rz-pop{width:100%;padding:1.5rem 1.25rem max(1.25rem,var(--sa-b))}
.pop.sheet .rz-track{height:2.75rem}
@media (prefers-reduced-motion:reduce){.rz-bars i,.rz-fill,.rz-knob,.rz-m i{transition:none}.chat-app.busy .rz-bars i.on,.rz.bump .rz-bars i.on{animation:none}}
.ch-cost{margin-left:auto;padding:0 .5rem;font:var(--t-meta);color:var(--muted);white-space:nowrap}
.ch-send{display:grid;place-items:center;flex:none;width:2.25rem;height:2.25rem;margin-left:.25rem;border-radius:.75rem;background:var(--fg);color:#fff;transition:background var(--d2),transform var(--d2) var(--ease)}
.ch-tplb{margin-left:auto;opacity:0;pointer-events:none;transition:opacity var(--d2),background var(--d2),color var(--d2)}
.chat-app.typed .ch-tplb{opacity:1;pointer-events:auto}
[data-mode="image"] .ch-tplb{display:none}
.ch-send svg{width:1.125rem;height:1.125rem;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
.ch-send:hover{background:#000}
.ch-send:active{transform:scale(.94)}
.ch-send.stop{background:var(--pink)}
.ch-send.stop i{width:.6875rem;height:.6875rem;border-radius:.1562rem;background:#fff}
.ch-hint{max-width:50rem;margin:.5rem auto 0;font:var(--t-meta);color:var(--faint);text-align:center}
.ch-files{display:flex;flex-wrap:wrap;gap:.375rem;padding:.625rem .625rem 0}
.ch-file{display:inline-flex;align-items:center;gap:.5rem;height:2.5rem;padding:0 .25rem 0 .25rem;border:1px solid var(--line-2);border-radius:.625rem;background:var(--surface-2);font-size:.7812rem;max-width:15rem;animation:msg-in var(--d2) var(--ease) both}
.ch-file img,.ch-file b{flex:none;width:1.875rem;height:1.875rem;border-radius:.4375rem;object-fit:cover}
.ch-file b{display:grid;place-items:center;background:var(--surface-3);font:600 .5625rem/1 var(--mono);color:var(--muted)}
.ch-file span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ch-file.up{background:linear-gradient(90deg,var(--surface-2),var(--pink-soft),var(--surface-2)) 0 0/200% 100%;animation:skel 1.2s linear infinite}
.ch-file button{display:grid;place-items:center;flex:none;width:1.5rem;height:1.5rem;border-radius:.375rem;color:var(--muted)}
.ch-file button:hover{background:var(--surface-3);color:var(--fg)}
.ch-file button svg{width:.875rem;height:.875rem;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round}

.chat-app:not([data-mode="image"]) :is(#ch-imodel,#ch-isize,#ch-iqual){display:none}
.chat-app[data-mode="chat"] .ch-cost{display:none}
.chat-app:not([data-mode="media"]) :is(#ch-mctl,.ch-mparams){display:none}
[data-mode="image"] :is(#ch-model,#ch-effort,.ch-attach){display:none}
[data-mode="image"] .ch-files{display:none}
[data-mode="media"] :is(#ch-model,#ch-effort,.ch-attach,.ch-tplb,.ch-files){display:none}
[data-mode="media"] .ch-ctl{visibility:hidden}
[data-mode="media"] .ch-title{cursor:default}
.ch-cost.warn{color:var(--warn)}
.ch-mctl{display:flex;align-items:center;gap:.125rem;min-width:0}
.ch-mctl:empty{display:none}
.ch-mctl .tsel-sm{border-color:transparent;background:transparent;max-width:15rem;font-weight:560}
.ch-mctl .tsel-sm:hover,.ch-mctl .tsel-sm[aria-expanded="true"]{background:var(--surface-2)}
.ch-mparams{padding:.75rem .75rem 0}
.mm-row{display:flex;flex-wrap:wrap;align-items:center;gap:.375rem .5rem}
.mm-f{display:inline-flex;align-items:center;gap:.375rem;min-height:2.125rem;padding:0 .25rem 0 .625rem;border:1px solid var(--line-2);border-radius:.625rem;background:var(--surface-2)}
.mm-f>span{font:var(--t-meta);letter-spacing:.04em;color:var(--muted);white-space:nowrap}
.mm-f .tsel-sm{height:1.875rem;border-color:transparent;background:transparent;padding:0 .375rem 0 .25rem}
.mm-f .input{height:1.875rem;padding:0 .5rem;border-color:transparent;background:transparent;font-size:.8125rem}
.mm-num{width:5.5rem}
.mm-long{flex-basis:100%;align-items:flex-start;padding:.5rem .625rem}
.mm-long>span{padding-top:.375rem}
.mm-long .textarea{min-height:3.5rem;border:0;background:transparent;font-size:.8438rem}
.mm-tog{height:2.125rem;border-radius:.625rem}
.mm-more{height:2.125rem}
.mm-atts{display:flex;flex-wrap:wrap;gap:.375rem;margin-bottom:.5rem}
.mm-att button{display:grid;place-items:center;width:1.5rem;height:1.5rem;border-radius:.375rem;color:var(--muted);font-size:1rem;line-height:1}
.mm-pop{display:flex;flex-direction:column;gap:.5rem;width:min(23rem,calc(100vw - 2rem));padding:.375rem;max-height:60vh;overflow:auto}
.mm-pop .mm-f{justify-content:space-between}
.mm-pop-h{padding:.25rem .25rem .125rem;font:var(--t-meta);letter-spacing:var(--ls-meta);text-transform:uppercase;color:var(--faint)}
.ch-msgs.studio{max-width:53.5rem;gap:1.25rem}
.mm-head{display:flex;flex-direction:column;align-items:flex-start;gap:.75rem}
.mm-lead{font:var(--t-small);color:var(--muted)}
.mm-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(17.5rem,1fr));gap:1rem;align-items:start}
.mm-empty{padding-top:4vh}
.ch-msgs.studio .mm-ideas{max-width:none}
.mm-empty .tstate{border:0;background:none;padding:0}
.mm-ideas{display:flex;flex-direction:column;gap:.5rem;max-width:37.5rem;margin-top:1.5rem}
.mm-ideas button{padding:.75rem 1rem;border:1px solid var(--line);border-radius:.75rem;background:var(--surface);text-align:left;font-size:.875rem;color:var(--fg-2);transition:border-color var(--d2),box-shadow var(--d2),transform var(--d2) var(--ease)}
.mm-ideas button:hover{border-color:var(--line-strong);box-shadow:var(--sh1);transform:translateY(-1px)}
.mj{display:flex;flex-direction:column;gap:.625rem;padding:.875rem;border:1px solid var(--line);border-radius:.875rem;background:var(--surface);animation:msg-in var(--d3) var(--ease) both}
.mj.skel{height:14rem;border:0}
.mj.live{border-color:var(--pink-line)}
.mj.bad{border-color:#f5d0d8;background:linear-gradient(180deg,#fff7f9,var(--surface) 60%)}
.mj-h{display:flex;align-items:center;gap:.5rem;min-width:0}
.mj-k{flex:none;padding:.125rem .4375rem;border-radius:.375rem;background:var(--surface-3);font:var(--t-meta);letter-spacing:.04em;color:var(--fg-2)}
.mj-h b{min-width:0;font-size:.875rem;font-weight:620;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mj-st{margin-left:auto;flex:none;font:var(--t-meta);color:var(--faint)}
.mj.live .mj-st{color:var(--pink-deep)}
.mj-p{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;font-size:.875rem;line-height:1.5;color:var(--fg-2)}
.mj-run{height:.1875rem;border-radius:.1875rem;background:var(--surface-3);overflow:hidden}
.mj-run i{display:block;height:100%;background:linear-gradient(90deg,var(--pink-2),var(--pink));transform-origin:left;transform:scaleX(var(--p));transition:transform .8s var(--ease)}
.mj-g .glyphs{font-size:.75rem;letter-spacing:.16em}
.mj-err{font-size:.8438rem;color:#9c1030}
.mj-res{display:grid;gap:.375rem}
.mj-res.n2,.mj-res.n3,.mj-res.n4{grid-template-columns:1fr 1fr}
.mj-img img{width:100%;border-radius:.625rem;object-fit:cover;background:var(--surface-2);transition:transform var(--d4) var(--ease)}
.mj-img:hover img{transform:scale(1.015)}
.mj-video{display:block;width:100%;border-radius:.625rem;background:#0f0d12}
.mj-audio{width:100%;height:2.5rem}
.mj-file{display:flex;align-items:center;gap:.625rem;padding:.875rem 1rem;border:1px dashed var(--line-strong);border-radius:.75rem;font-size:.875rem;color:var(--fg-2);transition:border-color var(--d2)}
.mj-file svg{width:1.375rem;height:1.375rem;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linejoin:round}
.mj-file em{margin-left:auto;font:var(--t-meta);font-style:normal;color:var(--pink-deep)}
.mj-file:hover{border-color:var(--pink-line)}
.mj-exp{font-size:.8125rem;color:var(--faint)}
.mj-text{font-size:.875rem;color:var(--fg-2);white-space:pre-wrap}
.mj-f{display:flex;align-items:center;justify-content:space-between;gap:.75rem;font:var(--t-meta);color:var(--faint)}
.mj-a{display:flex;gap:.125rem}
.mj-a button{height:1.75rem;padding:0 .5rem;border-radius:.4375rem;font:600 .75rem/1 var(--sans);color:var(--muted);transition:background var(--d1),color var(--d1)}
.mj-a button:hover{background:var(--surface-3);color:var(--fg)}
.msg.media{max-width:34rem}

.ch-gal{display:grid;grid-template-columns:repeat(auto-fill,minmax(15rem,1fr));gap:1.25rem;align-items:start}
.ch-gen{position:relative;display:flex;flex-direction:column;gap:.625rem;animation:msg-in var(--d3) var(--ease) both}
.ch-gen.skel{height:17.5rem;border-radius:.875rem}
.ch-gen-i{display:grid;place-items:center;overflow:hidden;border-radius:.875rem;background:var(--surface-2);box-shadow:0 0 0 1px var(--line-2)}
.ch-gen-i img{width:100%;height:100%;object-fit:cover;transition:transform var(--d4) var(--ease)}
a.ch-gen-i:hover img{transform:scale(1.02)}
.ch-gen-i.none span{padding:1rem;font-size:.8125rem;color:var(--muted);text-align:center}
.ch-gen.pending .ch-gen-i{background:linear-gradient(120deg,var(--surface-2),var(--pink-soft),var(--surface-2)) 0 0/300% 100%;animation:skel 2.4s linear infinite}
.ch-gen .glyphs{font-size:.8125rem;letter-spacing:.2em}
.ch-gen figcaption{display:flex;flex-direction:column;gap:.25rem;font-size:.8438rem;line-height:1.45;color:var(--fg-2)}
.ch-gen figcaption span{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.ch-gen figcaption em{font:var(--t-meta);font-style:normal;color:var(--faint)}
.ch-gen-a{position:absolute;top:.5rem;right:.5rem;display:flex;gap:.125rem;padding:.1875rem;border-radius:.75rem;background:rgba(255,255,255,.92);box-shadow:var(--sh1);opacity:0;transition:opacity var(--d2)}
.ch-gen:hover .ch-gen-a,.ch-gen:focus-within .ch-gen-a{opacity:1}
.ch-gen-a .ch-ic{width:1.875rem;height:1.875rem}
.ch-gate-in{padding-top:8vh}
.btn.danger{color:var(--down)}
.modal-f{margin-top:1.125rem}
.modal-f .tsel{width:100%}
.modal-sec{margin-top:1.625rem;padding-top:1.25rem;border-top:1px solid var(--line)}

.ch-home,.ch-site{display:none}
@media (max-width:900px){
  html:has(>body.app-mode){height:100%;overflow:hidden;overscroll-behavior:none}
  body.app-mode{position:fixed;inset:0;width:100%;height:100%;min-height:0;overflow:hidden;overscroll-behavior:none}
  .app-mode #main,.app-mode #view{min-height:0;flex:1 1 auto;overflow:hidden}
  .app-mode .site-head{display:none}
  .app-mode .toasts{top:calc(3.75rem + var(--sa-t))}
  .app-mode #view{padding-top:0}
  .app-mode .chat-page{position:fixed;inset-inline:0;top:var(--vvt,0px);width:100%;height:var(--vvh,100dvh);padding-top:var(--sa-t);overflow:hidden}
  .msg-act{flex-wrap:wrap;row-gap:.25rem;opacity:1}
  .msg-act button{white-space:nowrap}
  .msg-act .msg-use{flex-basis:100%;margin-left:0;padding-left:.75rem}
  .ch-menu{display:inline-grid}
  .ch-home{display:grid;place-items:center;flex:none;width:2.25rem;height:2.25rem}
  .ch-home img{width:1.75rem;height:auto}
  .chat-app{grid-template-columns:1fr;position:relative;border-top:0}
  .ch-side{position:absolute;inset:0 auto 0 0;z-index:6;width:min(20rem,86vw);padding-top:max(.875rem,var(--sa-t));padding-bottom:max(.75rem,var(--sa-b));transform:translateX(-102%);visibility:hidden;transition:transform var(--d3) var(--ease),visibility 0s linear var(--d3);box-shadow:var(--sh2)}
  .chat-app.side-open .ch-side{transform:none;visibility:visible;transition:transform var(--d3) var(--ease)}
  .chat-app.side-open .ch-main::after{content:"";position:absolute;inset:0;z-index:5;background:rgba(22,19,26,.18)}
  .ch-top{height:3.25rem;padding:0 .5rem;gap:.25rem}
  .ch-title{font-size:.9375rem}
  .ch-site{display:flex;flex-wrap:wrap;gap:.25rem 1rem;padding:.75rem .375rem 0;margin-top:.25rem;border-top:1px solid var(--line-2);font-size:.8125rem}
  .ch-site a{min-height:2rem;display:inline-flex;align-items:center;color:var(--muted)}
  .ch-comp{padding-bottom:max(.625rem,var(--sa-b))}
  .ch-starts{grid-template-columns:1fr 1fr}
  .ch-hello{padding-top:4vh}
  .ch-hello .small{display:none}
}
@media (max-width:640px){
  .ch-msgs{padding:1.25rem .875rem}
  .ch-comp{padding:.375rem .5rem max(.625rem,var(--sa-b))}
  .ch-hint{display:none}
  .msg.me{max-width:90%}
  .ch-bar{flex-wrap:nowrap;gap:.125rem}
  .ch-bar>div{min-width:0;flex:0 1 auto}
  #ch-model,.ch-mctl{flex:1 1 auto}
  .ch-bar .tsel-sm{max-width:100%}
  .chat-app:not(.typed) .ch-tplb{display:none}
  .ch-send{margin-left:auto}
  .rz{height:var(--tap);padding:0 .75rem}
  .rz-l{display:none}
  [data-mode="media"] .ch-bar{flex-wrap:wrap}
  [data-mode="media"] .ch-cost{order:10;flex-basis:100%;margin:0;padding:.125rem .5rem 0;text-align:right}
  .ch-mctl>div{min-width:0}
  #mm-model{flex:1 1 auto;min-width:0}
  .gate-row{flex-direction:column}
  .gate-row .input{flex:none}
  .ch-gal{grid-template-columns:1fr 1fr;gap:.75rem}
  .ch-scroll:has(.ch-hello){overflow:hidden}
  .ch-msgs:has(>.ch-hello){height:100%;padding:0 0 .5rem}
  .ch-hello{flex:1;min-height:0;justify-content:center;gap:.5rem;padding:0}
  .ch-hello-m{width:3.25rem;height:3.25rem;margin:auto 0 .25rem;border-radius:1rem}
  .ch-hello .h2{font-size:1.375rem;line-height:1.2;padding:0 1rem}
  .ch-hello-spec{flex-wrap:nowrap;gap:0;margin-top:.125rem;padding-top:0;border-top:0}
  .ch-hello-spec div{display:flex;align-items:baseline;gap:.3125rem;padding:0 .625rem}
  .ch-hello-spec div+div{border-left:1px solid var(--line)}
  .ch-hello-spec dt{font-size:.6875rem;letter-spacing:.04em}
  .ch-hello-spec dd{margin:0;font-size:.8125rem}
  .ch-hello-spec div:nth-child(n+3){display:none}
  .ch-starts{display:flex;flex:none;width:100%;margin-top:auto;padding:1rem .75rem .125rem;gap:.5rem;overflow-x:auto;scrollbar-width:none;overscroll-behavior-x:contain;scroll-snap-type:x proximity;scroll-padding-inline:.75rem}
  .ch-starts::after{content:"";flex:none;width:.25rem}
  .ch-starts::-webkit-scrollbar{display:none}
  .ch-starts button{flex:none;min-height:0;padding:.625rem .875rem;gap:.125rem;border-radius:1rem;scroll-snap-align:start}
  .ch-starts span{white-space:nowrap;font-size:.8438rem}
  .chat-app.kb .ch-hello-spec{display:none}
  .chat-app.kb .ch-hello-m{width:2.5rem;height:2.5rem;border-radius:.75rem}
  .chat-app.kb .ch-hello .h2{font-size:1.125rem}
  .chat-app.typed .ch-starts{visibility:hidden}
}
