:root{font:16px/1.6 "Noto Sans CJK SC","Microsoft YaHei",system-ui,sans-serif;color:#393b36;background:#292e35;color-scheme:light;--muted:#77766c;--line:#b9b6a844}*{box-sizing:border-box}[hidden]{display:none!important}body{margin:0}button,input,textarea,select{font:inherit}button,a{-webkit-tap-highlight-color:transparent;touch-action:manipulation}button{cursor:pointer}button:disabled{opacity:.3;cursor:default}a{color:#746547;text-decoration:none}:focus-visible{outline:2px solid #8d794b;outline-offset:4px}main{max-width:860px;margin:auto}#workspace{height:100dvh;display:flex;flex-direction:column;position:relative;overflow:hidden;background:radial-gradient(ellipse at 90% 0,#f7f5ed88,transparent 65%),#deded9;box-shadow:0 0 100px #0003}.chat-header{display:flex;align-items:center;gap:14px;padding:calc(18px + env(safe-area-inset-top)) 24px 17px;background:#efeee8cc;border-bottom:1px solid #fff9;flex-shrink:0}.partner{flex:1}.partner h1{font-size:22px;letter-spacing:1px;margin:0;font-weight:600}.partner>span{font-size:12px;color:var(--muted);letter-spacing:2px}.avatar{width:42px;height:42px;flex:none;position:relative;padding:3px;background:url('/chat-assets/avatar.png') center/100% 100%;border-radius:50%}.avatar img{display:block;width:100%;height:100%;object-fit:cover;border-radius:50%}.avatar:after{content:'';position:absolute;inset:0;background:url('/chat-assets/avatar_rim.png') center/100% 100%;pointer-events:none}.header-avatar{width:52px;height:52px}.icon-button{width:44px;height:44px;display:grid;place-items:center;flex:none;background:transparent;border:0;padding:10px;color:#686350}.icon-button img{width:24px;height:24px;object-fit:contain}.icon-button:hover:not(:disabled){background:#b4a47b22;border-radius:50%}.more{letter-spacing:3px;font-size:18px}.conversation-heading{display:flex;align-items:center;gap:12px;padding:15px 26px 0;color:#85857b;font-size:10px;letter-spacing:3px;flex-shrink:0}.conversation-heading i{height:1px;background:var(--line);flex:1}#timeline{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#b2b0a2 transparent;padding:25px 24px 32px;scroll-behavior:auto}#timeline:empty:after{content:'想说的话，就从这里开始。';display:block;text-align:center;color:#85857b;font-size:13px;padding-top:15vh}.entry{display:flex;align-items:flex-start;gap:12px;margin:0 0 25px;position:relative}.entry.user{flex-direction:row-reverse}.message-body{max-width:calc(100% - 72px);min-width:0}.speaker{font-size:11px;color:#74766d;margin:0 0 5px 8px}.user .speaker{text-align:right;margin-right:8px}.bubble{position:relative;border:12px solid transparent;border-image:url('/chat-assets/bubble_ivory.png') 12 fill stretch;padding:0 5px;color:#393b36;overflow-wrap:anywhere;min-width:40px;white-space:pre-wrap;line-height:1.65;filter:drop-shadow(0 2px 2px #605d4310)}.user .bubble{border-image-source:url('/chat-assets/bubble_gold.png')}.bubble:before{content:'';position:absolute;left:-20px;top:0;width:12px;height:16px;background:url('/chat-assets/tail_ivory.png') center/100% 100%}.user .bubble:before{left:auto;right:-20px;background-image:url('/chat-assets/tail_gold.png')}.bubble p{margin:0}.bubble p+p{margin-top:10px}.bubble pre{overflow-x:auto;max-width:100%;font-size:12px}.bubble code{white-space:pre-wrap}.bubble ul,.bubble ol{padding-left:20px;margin:5px 0}.bubble blockquote{margin:6px 0;border-left:2px solid #baa66d;padding-left:10px}.bubble table{display:block;max-width:100%;overflow:auto;white-space:normal;font-size:13px}.bubble th,.bubble td{padding:5px;border-bottom:1px solid var(--line)}.bubble.markdown{white-space:normal}.task-mark{display:block;width:16px;height:16px;margin:7px 6px 0 auto;background:center/contain no-repeat}.task-mark[data-state=running],.task-mark[data-state=queued]{background-image:url('/chat-assets/progress0.png');animation:spin 1.8s linear infinite}.task-mark[data-state=completed]{background-image:url('/chat-assets/check.png')}.task-mark[data-state=cancelled],.task-mark[data-state=paused]{background-image:url('/chat-assets/stop.png')}.task-mark[data-state=failed],.task-mark[data-state=uncertain]{background-image:url('/chat-assets/warning.png')}@keyframes spin{to{transform:rotate(360deg)}}.composer{flex-shrink:0;padding:8px 20px calc(20px + env(safe-area-inset-bottom));background:linear-gradient(#e3e3dd88,#e8e7df);border-top:1px solid #fff6}#status{font-size:11px;color:var(--muted);min-height:23px;padding:0 8px 6px}#chat{display:flex;align-items:flex-end;gap:8px;margin:0}.input-shell{display:flex;align-items:flex-end;flex:1;min-width:0;border:12px solid transparent;border-image:url('/chat-assets/input.png') 12 fill stretch;padding:0 0 0 3px}.input-shell textarea{resize:none;flex:1;min-width:0;border:0;outline:0;background:transparent;color:#393b36;margin:0;padding:7px 0;min-height:40px;max-height:120px;line-height:26px;font-size:16px;overflow-y:auto}.input-shell textarea::placeholder{color:#9d9b8c}.send{width:38px;height:40px;padding:8px}.stop{margin-bottom:9px;background:#eeece3;border:1px solid #bbb69f80;border-radius:50%}#latest{position:absolute;bottom:125px;left:50%;transform:translateX(-50%);border:1px solid #c4baa2;border-radius:20px;background:#f7f3e6;padding:7px 16px;color:#746547;box-shadow:0 3px 15px #0001;font-size:12px}#settings{position:absolute;right:16px;top:calc(92px + env(safe-area-inset-top));z-index:5;background:#f7f4eb;border:1px solid #c9c0a8;box-shadow:0 12px 40px #393b3620;border-radius:12px;padding:20px;width:min(320px,calc(100% - 32px));font-size:13px}#settings>a,#settings>details{display:block;margin-top:18px}#settings button,.auth-card button{background:#eee3bf;border:1px solid #ccbf91;border-radius:7px;padding:8px 12px;color:#4f4d40}#settings select{width:100%;margin-top:6px}#game-logins{overflow-wrap:anywhere}.auth-card{margin:8vh auto;background:#f3f1e8;padding:28px;border-radius:16px;max-width:440px}.auth-card label{display:block;margin:12px 0}.auth-card input{max-width:100%;padding:8px;border:1px solid #c6c1af;border-radius:5px}.auth-card input:not([type=checkbox]){display:block;width:100%}.auth-card details{margin-top:20px}.auth-card p{font-size:12px;color:#777}.auth-card h2{margin:0}.auth-card summary{cursor:pointer}body:has(#login-panel:not([hidden])){background:#deded9}@media(min-width:900px){main{padding:28px 0}#workspace{height:calc(100dvh - 56px);border:1px solid #aaa58f;border-radius:18px}#timeline{padding:30px 42px}.chat-header{padding-left:34px;padding-right:34px}.composer{padding-left:34px;padding-right:34px}.message-body{max-width:75%}}@media(max-width:380px){#timeline{padding-left:14px;padding-right:14px}.entry{gap:9px}.composer{padding-left:12px;padding-right:12px}.avatar{width:36px;height:36px}.message-body{max-width:calc(100% - 56px)}}@media(prefers-reduced-motion:reduce){.task-mark{animation:none!important}}

/* 世界画面沿用聊天页的米白与浅金，竖屏不遮挡消息输入。 */
.view-open{border:1px solid #b5a57b66;border-radius:20px;background:#e7ddb8;padding:7px 14px;font-size:13px;color:#60583e}#viewing{position:relative;flex:none;margin:12px 16px 0;border-radius:16px;overflow:hidden;background:#242922}#world-video{display:block;width:100%;max-height:34dvh;aspect-ratio:16/9;object-fit:contain}#view-loading{position:absolute;inset:0;display:flex;justify-content:center;align-items:center;gap:12px;background:#28302566;color:#fff9e8;font-size:13px;pointer-events:none}#view-loading i{width:23px;height:23px;border:2px solid #fff5;border-top-color:#ead9a5;border-radius:50%;animation:view-spin 1s linear infinite}.view-toolbar{position:absolute;left:10px;right:10px;bottom:10px;display:flex;gap:6px;align-items:center}.view-toolbar button{color:#faf5e3;background:#242820b8;border:1px solid #e9dab344;border-radius:18px;padding:5px 10px;font-size:11px;white-space:nowrap}.view-toolbar button[aria-pressed=true]{background:#e7d6a4;color:#514c3d}.view-cameras{display:flex;gap:4px;flex:1}#view-bubbles{display:none}#view-message{position:absolute;left:14px;top:8px;right:14px;margin:0;color:#fff9e9;font-size:12px;text-shadow:0 1px 3px #000}#view-close{font-size:18px;padding:0 9px}.controls-hidden .view-toolbar{display:none}@keyframes view-spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){#view-loading i{animation:none}}
@media(orientation:landscape){main:has(.watching){max-width:none}.watching #viewing{position:absolute;inset:0;margin:0;border-radius:0}.watching #world-video{width:100%;height:100%;max-height:none}.watching .chat-header{position:relative;z-index:2;padding:8px 16px;background:linear-gradient(#1d231dc9,transparent);color:#fff9e9;min-height:60px;pointer-events:none}.watching .chat-header button{pointer-events:auto}.watching .partner>span{color:#e2ddcb}.watching .header-avatar{width:36px;height:36px}.watching .conversation-heading{display:none}.watching #timeline{position:relative;z-index:1;width:min(500px,60vw);padding-top:40px;pointer-events:none}.watching #timeline .entry{pointer-events:auto}.watching .composer{position:relative;z-index:2;width:min(560px,70vw);background:transparent;border:0;padding-top:0}.watching #status{color:#fffae8;text-shadow:0 1px 3px #000}.watching .view-toolbar{z-index:3;top:70px;bottom:auto;left:16px;right:16px}.watching .view-cameras{flex:0}.watching #view-bubbles{display:block}.watching #view-message{top:auto;bottom:12px;text-align:right}.watching.hide-bubbles #timeline{visibility:hidden}.watching.hide-bubbles.controls-hidden .composer,.watching.controls-hidden .chat-header{visibility:hidden}.watching #latest{z-index:3}.watching #settings{z-index:4}.watching #view-loading{z-index:1}}

#world-video{touch-action:none}.view-toolbar{flex-wrap:wrap}#view-reset{margin-left:auto}

#view-quality-menu{position:static;color:#faf5e3;font-size:11px}#view-quality-menu summary{list-style:none;cursor:pointer;background:#242820b8;border:1px solid #e9dab344;border-radius:18px;padding:5px 10px;white-space:nowrap}#view-quality-menu summary::-webkit-details-marker{display:none}.quality-options{position:absolute;right:0;bottom:calc(100% + 4px);display:grid;grid-template-columns:1fr 1fr;gap:4px;width:208px;padding:7px;background:#242820f2;border:1px solid #e9dab366;border-radius:12px;box-shadow:0 5px 18px #0004}.quality-options button{border-color:transparent;min-height:30px}#view-quality-menu:not([open]) .quality-options{display:none}@media(orientation:landscape){.watching .quality-options{top:calc(100% + 8px);bottom:auto}}
