:root{--bg: #f9f9fb;--ink: #2e2e38;--muted: #6d6d7c;--line: #e3e3e8;--card: transparent;--accent: #2e2e38;--face: #f3f3f6}*{box-sizing:border-box}html,body{margin:0;padding:0;background:var(--bg);color:var(--ink);font-family:"Source Sans 3",Noto Sans SC,sans-serif;line-height:1.55}button,textarea,input{font:inherit}.page{max-width:980px;margin:0 auto;padding:20px 24px 48px}.top{display:flex;align-items:center;justify-content:space-between;gap:16px}.brand{font-weight:600;letter-spacing:.02em;color:var(--ink);text-decoration:none}nav{display:flex;align-items:center;gap:16px}nav a,.lang{color:var(--muted);text-decoration:none;background:none;border:0;padding:0;cursor:pointer}.lang{color:var(--ink);font-weight:500}.hero{margin:36px 0 20px}.kicker{margin:0 0 10px;color:var(--muted);letter-spacing:0;text-transform:none;font-size:15px}.hero h1,.section-head h2,.abstract h2{font-family:Gilda Display,"Noto Serif SC",serif;font-weight:400;letter-spacing:-.03em}.hero h1{margin:0;font-size:clamp(32px,5vw,64px);line-height:1.05}.authors{margin:16px 0 0;color:var(--muted)}.section-head h2{margin:0;font-size:clamp(28px,3vw,40px);font-weight:400}.demo-tag{margin-left:.45em;font-family:"Source Sans 3",Noto Sans SC,sans-serif;font-size:.42em;font-weight:400;font-style:normal;color:var(--muted)}.muted{margin:6px 0 0;color:var(--muted);font-size:14px}.demo{margin-bottom:40px}.status{font-size:13px;color:var(--muted)}.load-bar{display:flex;align-items:center;gap:10px;margin:8px 0 12px}.load-bar-track{flex:1;height:2px;background:var(--line);border-radius:0;overflow:hidden}.load-bar-fill{height:100%;background:var(--accent);border-radius:0;transition:width .2s ease}.load-bar-pct{min-width:3ch;font-size:13px;font-variant-numeric:tabular-nums;color:var(--muted);text-align:right}.load-bar-hint{font-size:12px;white-space:nowrap}button.linkish{border:none;background:none;padding:0;margin:0;color:var(--accent);text-decoration:underline;cursor:pointer;font:inherit}.status-need-gpu,.status-error{color:#8a2b15}.status-ready{color:#2c5e2e}.demo-grid{display:grid;grid-template-columns:minmax(0,1.4fr) 280px;gap:14px;margin-top:10px;align-items:stretch}.chat-card{display:flex;flex-direction:column}.chat-card,.face-card,.method figure{background:transparent;border:none;border-radius:0}.transcript{min-height:96px;max-height:168px;overflow:auto;padding:12px 14px}.empty{color:var(--muted)}.round{margin-bottom:10px}.bubble{margin:0 0 6px;font-size:14px}.who{display:block;font-size:13px;letter-spacing:0;text-transform:none;color:var(--muted);margin-bottom:2px}.tok{border-bottom:1px dotted var(--muted);cursor:help;position:relative}.tok:hover:after{content:attr(data-tip);position:absolute;left:0;bottom:calc(100% + 6px);background:#2b2b2b;color:#fff;padding:4px 8px;font-size:12px;white-space:nowrap;border-radius:4px;z-index:5}.composer{display:flex;gap:8px;padding:0 14px 12px}.composer textarea{flex:1;resize:none;border:none;border-bottom:1px solid var(--line);border-radius:0;padding:10px 0;background:transparent;color:var(--ink)}.composer button,.examples button{border:none;border-bottom:1px solid currentColor;background:transparent;color:var(--ink);border-radius:0;padding:8px 0;cursor:pointer}.composer button:disabled,.examples button:disabled{opacity:.4;cursor:not-allowed}.examples{display:flex;flex-direction:column;align-items:flex-start;gap:8px;padding:0 0 4px}.examples span{font-size:12px;color:var(--muted)}.examples button{background:transparent;color:var(--muted);border:none;border-bottom:1px solid var(--line);font-size:14px;padding:4px 0;text-align:left;white-space:normal;max-width:100%;height:auto}.face-card{background:var(--face);min-height:0;display:flex;flex-direction:column}.face-canvas{flex:1 1 auto;width:100%;min-width:0;height:280px;min-height:280px}.face-canvas canvas{display:block}.method{text-align:left;margin-bottom:40px}.method .section-head{display:flex;justify-content:flex-start}.method figure{margin:12px auto 0;padding:12px;max-width:760px}.method img{width:100%;display:block}.method figcaption{margin:10px 0 4px;color:var(--muted);font-size:15px;text-align:left}.abstract{text-align:left;margin-bottom:40px}.page.embed{max-width:none;margin:0;padding:0 0 8px}.page.embed .demo{margin:0}.page.embed .demo-grid{margin-top:0}.page.embed .section-head{display:none}.abstract h2{font-size:20px;margin:0 0 12px}.abstract p{color:#333;max-width:68ch;margin:0 auto}footer{margin-top:32px;color:var(--muted);font-size:13px;border-top:1px solid var(--line);padding-top:16px}@media(max-width:800px){.page{padding:14px 16px 40px;overflow-x:clip}.top{align-items:flex-start;flex-wrap:wrap;gap:10px 16px}nav{flex:1 1 auto;min-width:0;flex-wrap:wrap;justify-content:flex-end;gap:10px 14px}.hero{margin:22px 0 14px}.hero h1{font-size:26px;overflow-wrap:anywhere}.demo-grid{grid-template-columns:1fr;gap:12px}.face-card{order:-1;min-height:auto}.face-canvas{flex:none;height:min(78vw,340px);min-height:260px}.composer textarea{min-width:0}.composer button,.examples button{min-height:44px}.composer button{flex-shrink:0}.transcript{max-height:132px}.method figure{padding:8px}}
