pi-roundtable-web 0.24.2 → 0.26.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +48 -0
- package/README.md +195 -16
- package/dist/account-zk4efb87.css +102 -0
- package/dist/chunk-account-hw49gd0d.js +1 -0
- package/dist/chunk-action-menu-rm5cyqkj.js +1 -0
- package/dist/chunk-agent-b017vswv.js +1 -0
- package/dist/chunk-arranged-rooms-q5v3dm1r.js +1 -0
- package/dist/chunk-character-creator-5dxcvd16.js +1 -0
- package/dist/chunk-codeeditor-pyt09fwg.js +2 -0
- package/dist/chunk-confirm-521yqmta.js +1 -0
- package/dist/chunk-connectors-hrm06nx8.js +1 -0
- package/dist/chunk-conversations-e26rrf01.js +1 -0
- package/dist/chunk-drag-v41gx2mc.js +1 -0
- package/dist/chunk-entry-jxxb3ath.js +1 -0
- package/dist/chunk-folder-list-b97xk12b.js +1 -0
- package/dist/chunk-folds-b8q7eags.js +1 -0
- package/dist/chunk-gate-8k61stsc.js +1 -0
- package/dist/chunk-group-scene-dx6wt19m.js +1 -0
- package/dist/chunk-group-table-e4jr8r3a.js +1 -0
- package/dist/chunk-host-state-g7e7c0k5.js +1 -0
- package/dist/chunk-host-ui-x7k6n07v.js +939 -0
- package/dist/chunk-index-014rjv9k.js +2 -0
- package/dist/chunk-index-2d0kg096.js +2 -0
- package/dist/chunk-index-2qd81wbx.js +2 -0
- package/dist/chunk-index-2stynxw6.css +1 -0
- package/dist/chunk-index-459drsft.js +2 -0
- package/dist/chunk-index-4mfj596y.js +2 -0
- package/dist/chunk-index-66nskrdj.js +47 -0
- package/dist/chunk-index-awx6nnta.js +2 -0
- package/dist/chunk-index-bbsytycb.js +2 -0
- package/dist/chunk-index-c07p8k0x.js +4 -0
- package/dist/chunk-index-cq1e9xdz.js +2 -0
- package/dist/chunk-index-d1prgfbp.js +2 -0
- package/dist/chunk-index-dhpt8qr9.js +2 -0
- package/dist/chunk-index-e5sd30xy.js +2 -0
- package/dist/chunk-index-g351921r.js +1 -0
- package/dist/chunk-index-hby0ap91.js +2 -0
- package/dist/chunk-index-hssjbr1k.js +2 -0
- package/dist/chunk-index-k2qq1gdj.js +2 -0
- package/dist/chunk-index-ke9ynm0n.js +2 -0
- package/dist/chunk-index-km40bhsz.js +2 -0
- package/dist/chunk-index-kpscvg85.js +2 -0
- package/dist/chunk-index-m0d100mg.js +2 -0
- package/dist/chunk-index-mb72snk9.js +2 -0
- package/dist/chunk-index-mjqqver5.js +4 -0
- package/dist/chunk-index-nqfkwkfp.js +2 -0
- package/dist/chunk-index-nwqk447w.js +2 -0
- package/dist/chunk-index-pcfhpm8v.js +302 -0
- package/dist/chunk-index-q8h8xzbm.js +2 -0
- package/dist/chunk-index-r5vszgfs.js +2 -0
- package/dist/{chunk-index-mpm90318.js → chunk-index-rhtvcbsq.js} +2 -2
- package/dist/chunk-index-rjv7vrwd.js +13 -0
- package/dist/chunk-index-v23m38p6.js +50 -0
- package/dist/chunk-index-va0g7d88.js +1 -0
- package/dist/{chunk-index-6t68gbex.js → chunk-index-wnjp6wv0.js} +2 -2
- package/dist/chunk-index-xgkd15n3.js +2 -0
- package/dist/chunk-index-y8rnq8zf.js +14 -0
- package/dist/chunk-index-z3k18atc.js +2 -0
- package/dist/chunk-lang-css-6bepqpnx.js +1 -0
- package/dist/{chunk-lang-dockerfile-ey0nvhhm.js → chunk-lang-dockerfile-hrav55t7.js} +1 -1
- package/dist/{chunk-lang-go-403qsw9f.js → chunk-lang-go-x9ahv6e5.js} +3 -3
- package/dist/chunk-lang-html-8jc72zt4.js +1 -0
- package/dist/chunk-lang-javascript-2p2qtbnf.js +1 -0
- package/dist/chunk-lang-json-hsemyd0r.js +1 -0
- package/dist/chunk-lang-markdown-zkwb4c9n.js +6 -0
- package/dist/{chunk-lang-python-9jk5a49y.js → chunk-lang-python-tewx7006.js} +2 -2
- package/dist/chunk-lang-rust-0ydx84s1.js +1 -0
- package/dist/{chunk-lang-shell-cgq6q0kj.js → chunk-lang-shell-gq1tmdz4.js} +1 -1
- package/dist/chunk-lang-sql-xt1qyycg.js +2 -0
- package/dist/{chunk-lang-toml-xh45nm68.js → chunk-lang-toml-0hamc5fc.js} +1 -1
- package/dist/chunk-lang-typescript-82xf7z2e.js +1 -0
- package/dist/{chunk-lang-xml-1mh879j9.js → chunk-lang-xml-wf6h5pt2.js} +1 -1
- package/dist/{chunk-lang-yaml-jac98srt.js → chunk-lang-yaml-7vk521h1.js} +1 -1
- package/dist/chunk-layout-actions-zh7bezk7.js +1 -0
- package/dist/chunk-menu-items-1n9qargb.js +2 -0
- package/dist/chunk-notes-t15bh04m.js +1 -0
- package/dist/chunk-notice-bell-w3y0h0sr.js +1 -0
- package/dist/chunk-notices-fa3g7qze.js +1 -0
- package/dist/chunk-onboarding-34v3nr17.js +1 -0
- package/dist/chunk-overview-km5vq375.js +1 -0
- package/dist/chunk-palette-a8txdgd0.js +1 -0
- package/dist/chunk-placement-items-wgaxsbvs.js +1 -0
- package/dist/chunk-profile-ypxdbsk1.js +1 -0
- package/dist/chunk-prompt-history-wm9dsy6s.js +1 -0
- package/dist/chunk-prompts-7mhhq7zs.js +1 -0
- package/dist/chunk-room-confirms-t11a1gsw.js +1 -0
- package/dist/chunk-room-menu-2tm2xtfx.js +1 -0
- package/dist/chunk-rooms-menu-button-wxnsxjwc.js +1 -0
- package/dist/chunk-schedules-2ft6xxyw.js +1 -0
- package/dist/chunk-seat-menu-d3npdtx1.js +1 -0
- package/dist/chunk-sheet-hosts-vngvp7wv.js +1 -0
- package/dist/chunk-skill-editor-65n2hsq4.js +8 -0
- package/dist/chunk-skills-shkdwes8.js +1 -0
- package/dist/chunk-switcher-list-g6hhmr1t.js +1 -0
- package/dist/chunk-table-1b6bsq2y.js +1 -0
- package/dist/chunk-table-seats-vy1qhdks.js +1 -0
- package/dist/chunk-table2d-n26b7gd0.js +1 -0
- package/dist/chunk-table3d-8aysyf56.js +4220 -0
- package/dist/chunk-transcript-355faceq.js +1 -0
- package/dist/chunk-where-j5qdt8a4.js +1 -0
- package/dist/chunk-workspace-vrbs6zx1.js +1 -0
- package/dist/chunk-zh-tw-zeg600bk.js +1 -0
- package/dist/index.html +1 -1
- package/dist/sw.js +1 -1
- package/package.json +5 -4
- package/src/api-types.ts +515 -6
- package/src/app/api-http.ts +66 -0
- package/src/app/app.ts +214 -33
- package/src/app/card-log.ts +6 -0
- package/src/app/desk.ts +47 -22
- package/src/app/files.ts +73 -7
- package/src/app/layout-routes.ts +239 -0
- package/src/app/layout.ts +133 -0
- package/src/app/presence.ts +2 -2
- package/src/app/prompt-routes.ts +167 -0
- package/src/app/protocol.ts +63 -1
- package/src/app/room-log.ts +148 -14
- package/src/app/rooms.ts +23 -0
- package/src/app/routes.ts +278 -156
- package/src/app/skill-doc-routes.ts +122 -0
- package/src/app/socket.ts +309 -77
- package/src/app/sockets.ts +108 -20
- package/src/app/surface.ts +72 -36
- package/src/app/team-routes.ts +457 -0
- package/src/app/threads.ts +14 -0
- package/src/app/uploads.ts +33 -7
- package/src/auth/authenticator.ts +71 -8
- package/src/auth/next.ts +52 -0
- package/src/auth/oidc-pages.ts +60 -0
- package/src/auth/oidc.ts +611 -0
- package/src/auth/sessions.ts +193 -0
- package/src/authz.ts +172 -0
- package/src/console-api.ts +122 -25
- package/src/console-server.ts +70 -6
- package/src/gate.ts +90 -0
- package/src/host/access.ts +161 -0
- package/src/host/cards.ts +99 -0
- package/src/host/context.ts +141 -0
- package/src/host/forms.ts +237 -0
- package/src/host/frames.ts +342 -0
- package/src/host/host-app.ts +176 -0
- package/src/host/host-context.ts +49 -0
- package/src/host/host-routes.ts +363 -0
- package/src/host/pages.ts +266 -0
- package/src/host/reads.ts +155 -0
- package/src/host/retention.ts +41 -0
- package/src/host/room-views.ts +137 -0
- package/src/host/rooms-service.ts +414 -0
- package/src/host/stored-json.ts +13 -0
- package/src/host/views.ts +103 -0
- package/src/i18n/zh-tw.ts +309 -10
- package/src/layout-order.ts +210 -0
- package/src/notices/api.ts +43 -0
- package/src/notices/mount.ts +292 -0
- package/src/notices/service.ts +294 -0
- package/src/notices/store.ts +298 -0
- package/src/notices/urls.ts +38 -0
- package/src/onboarding/api.ts +32 -0
- package/src/onboarding/service.ts +149 -0
- package/src/onboarding/steps.ts +75 -0
- package/src/onboarding/waivers.ts +40 -0
- package/src/options.ts +498 -34
- package/src/profile/api.ts +175 -0
- package/src/profile/links.ts +162 -0
- package/src/push/api.ts +189 -52
- package/src/push/dispatch.ts +156 -0
- package/src/push/drain.ts +139 -0
- package/src/push/mutes.ts +17 -0
- package/src/push/outbox.ts +218 -0
- package/src/push/prefs.ts +118 -0
- package/src/push/sender.ts +7 -2
- package/src/push/triggers.ts +56 -5
- package/src/push/vapid.ts +19 -0
- package/src/push/web-push-transport.ts +106 -0
- package/src/push-sender/index.ts +14 -0
- package/src/push-sender/run.ts +118 -0
- package/src/push-sender/session.ts +54 -0
- package/src/visitors.ts +94 -6
- package/src/web-app.ts +674 -0
- package/src/web-plugin.ts +293 -26
- package/dist/chunk-action-menu-7v5fce2v.js +0 -1
- package/dist/chunk-agent-2rw4ydw2.js +0 -1
- package/dist/chunk-agent-sheet-2q24dkkf.js +0 -3
- package/dist/chunk-character-creator-8q6ympxj.js +0 -1
- package/dist/chunk-codeeditor-fgmq298t.js +0 -2
- package/dist/chunk-connectors-mr53r7fh.js +0 -1
- package/dist/chunk-conversations-4vy2z6w9.js +0 -1
- package/dist/chunk-entry-jg1eem82.js +0 -1
- package/dist/chunk-group-scene-na95b1te.js +0 -1
- package/dist/chunk-index-11rjg8a8.js +0 -1
- package/dist/chunk-index-1y50d6sj.js +0 -2
- package/dist/chunk-index-5y2r0eaj.js +0 -47
- package/dist/chunk-index-7fphxxzd.js +0 -14
- package/dist/chunk-index-80f1zkp6.css +0 -1
- package/dist/chunk-index-87h45frg.js +0 -2
- package/dist/chunk-index-bnwmssyn.js +0 -2
- package/dist/chunk-index-ckgbszwt.js +0 -51
- package/dist/chunk-index-fmjjekhd.js +0 -2
- package/dist/chunk-index-t1m65yn6.js +0 -13
- package/dist/chunk-index-t711t17m.js +0 -2
- package/dist/chunk-index-txv7qvyy.js +0 -2
- package/dist/chunk-index-wr3dg24d.js +0 -2
- package/dist/chunk-index-yx683d5n.js +0 -2
- package/dist/chunk-lang-css-fkdg3x8x.js +0 -1
- package/dist/chunk-lang-html-v8h9g977.js +0 -1
- package/dist/chunk-lang-javascript-ykb2vhaa.js +0 -1
- package/dist/chunk-lang-json-2rze3rpy.js +0 -1
- package/dist/chunk-lang-markdown-6w2htnfc.js +0 -6
- package/dist/chunk-lang-rust-24fggcqx.js +0 -1
- package/dist/chunk-lang-sql-gjywb9ke.js +0 -2
- package/dist/chunk-lang-typescript-qh6rebyb.js +0 -1
- package/dist/chunk-menu-items-zjpyj51b.js +0 -2
- package/dist/chunk-notes-sjba7kw3.js +0 -1
- package/dist/chunk-overview-26r77kb6.js +0 -1
- package/dist/chunk-room-confirms-851184ep.js +0 -1
- package/dist/chunk-room-menu-8y9c026y.js +0 -1
- package/dist/chunk-skills-56s4hdbn.js +0 -1
- package/dist/chunk-table-qykpvp32.js +0 -1
- package/dist/chunk-table2d-k60ressj.js +0 -1
- package/dist/chunk-table3d-bv2ajk39.js +0 -4220
- package/dist/chunk-transcript-vekz1mh6.js +0 -1
- package/dist/chunk-workspace-hevefd0d.js +0 -1
- package/dist/chunk-zh-tw-5r2wjre0.js +0 -1
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
function Nn(c,a){let o=c.toLowerCase().replace(/\s+/g,"");if(o==="")return 0;let n=a.toLowerCase(),s=0,t=0,r=0;for(let f of o){let e=n.indexOf(f,t);if(e<0)return;let i=e===0||/[\s\-_./:]/.test(n[e-1]??"");r=e===t?r+1:0,s+=1+(i?4:0)+r*2-Math.min(e-t,6)*0.2,t=e+1}return s-n.length*0.02}
|
|
2
|
+
export{Nn};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
var x={bg:"#0a1130",ink:"#0b0f1e",stone:"#3c4a6d",stoneShade:"#2a3555",stoneJoint:"#1d2745",floor:"#2b3756",floorJoint:"#1b2442",rune:"#3fe6cb",runeGlow:0.9,wood:"#5b3a22",woodDark:"#3a2314",woodLight:"#7d5231",gold:"#e3b24b",goldDark:"#9a6c1d",banner:"#1b5160",bannerEdge:"#e3b24b",glass:"#2e53a3",glassLight:"#5f86d6",glassDark:"#1b2f66",sky:"#f6f3da",beam:"#9fb9ff",beamAlpha:0.14,flame:"#ffb23a",flameCore:"#fff0a8",ambient:"#6f86c9",ambientI:1.55,key:"#aebfff",keyI:1.4,plateInk:"#3a2410",paper:"#f4efe3",spot:"#ffe29a",night:!0,additive:!0,css:{bg:"#0a1130",floor:"#2b3756",ring:"#3fe6cb",text:"#f4efe3",plate:"#e3b24b"}},h={bg:"#e8dcc0",ink:"#2a2036",stone:"#b9ae9a",stoneShade:"#938873",stoneJoint:"#756b5a",floor:"#cfc2a6",floorJoint:"#a79a80",rune:"#1c9d8f",runeGlow:0.75,wood:"#8c5a33",woodDark:"#5d3a20",woodLight:"#ab7443",gold:"#e0a92f",goldDark:"#936718",banner:"#2c7283",bannerEdge:"#e0a92f",glass:"#8dbbe6",glassLight:"#c4e0f6",glassDark:"#5d8dc2",sky:"#ffe9a6",beam:"#fff0b4",beamAlpha:0.2,flame:"#ff9a2c",flameCore:"#ffe7a0",ambient:"#fff1d4",ambientI:2.1,key:"#ffe3b0",keyI:1.6,plateInk:"#3a2410",paper:"#fffaf0",spot:"#fff0b0",night:!1,additive:!1,css:{bg:"#e8dcc0",floor:"#cfc2a6",ring:"#1c9d8f",text:"#2a2036",plate:"#e0a92f"}},H={modern:{dark:{banner:x.banner,bannerEdge:x.gold,gold:x.gold,goldDark:x.goldDark},light:{banner:h.banner,bannerEdge:h.gold,gold:h.gold,goldDark:h.goldDark}},camelot:{dark:{banner:"#6b1f3f",bannerEdge:"#f0c35a",gold:"#f0c35a",goldDark:"#a8791f"},light:{banner:"#9b2a45",bannerEdge:"#e6b436",gold:"#e6b436",goldDark:"#9a6b14"}}},fn=(n,e)=>({...e==="dark"?x:h,...H[n][e]}),Ci={done:"#58c878",error:"#ee4b4b"};var z=(n)=>{let e=n.codePointAt(0)??0;return e>=11904&&e<=64255?1:e>=65280&&e<=65519?1:0.6};function M(n,e){if(e(n))return n;let t=Array.from(n);while(t.length>1){t.pop();let r=`${t.join("").trimEnd()}…`;if(e(r))return r}return"…"}function Ai(n,e){let t=(r)=>Array.from(r).reduce((a,o)=>a+z(o),0);return M(n,(r)=>t(r)<=e)}var gt='system-ui, "PingFang TC", "Noto Sans TC", "Microsoft JhengHei", sans-serif',P=(n)=>`700 ${n}px ${gt}`;function L(n,e,t,r){let a=t*0.86,o=Math.round(r*0.56),s=Math.round(r*0.36),l=(i,c)=>(n.font=P(c),n.measureText(i).width);for(let i=o;i>=s;i-=2)if(l(e,i)<=a)return{text:e,px:i,font:P(i)};return{text:M(e,(i)=>l(i,s)<=a),px:s,font:P(s)}}function Rr(n,e,t,r,a){let o=Math.max(3,r*0.07);n.fillStyle=a.ink,n.fillRect(0,0,t,r);let s=n.createLinearGradient?.(0,0,0,r);if(s)s.addColorStop(0,a.gold),s.addColorStop(0.55,a.gold),s.addColorStop(1,a.goldDark),n.fillStyle=s;else n.fillStyle=a.gold;n.fillRect(o,o,t-o*2,r-o*2),n.strokeStyle=a.goldDark,n.lineWidth=Math.max(1,r*0.03),n.beginPath(),n.moveTo(o*2,o*2),n.lineTo(t-o*2,o*2),n.lineTo(t-o*2,r-o*2),n.lineTo(o*2,r-o*2),n.closePath(),n.stroke(),n.fillStyle=a.goldDark;for(let u of[o*3.4,t-o*3.4])n.beginPath(),n.arc(u,r/2,Math.max(1.4,r*0.04),0,Math.PI*2),n.fill();let l=L(n,e,t-o*4,r);return n.font=l.font,n.fillStyle=a.plateInk,n.textAlign="center",n.textBaseline="middle",n.fillText(l.text,t/2,r/2+r*0.03),l}var Et=Math.PI*2;function Vt(n){let e=((n+Math.PI)%Et+Et)%Et-Math.PI;return e===-Math.PI?Math.PI:e}var g=(n,e)=>Vt(e-n);function ti(n){let e=Math.min(Math.max(n,0),12),t=Math.max(n-12,0);return{count:1+e+(t>0?1:0),seated:e,more:t}}var F=0.62,w=(n)=>Math.min(Et/Math.max(n,1),F),Ct=(n,e)=>n===0?0:Vt(Math.PI+(n-e/2)*w(e)),yt=(n)=>Math.max(4.2,2.6/(2*Math.sin(w(n)/2)));function O(n,e){let t=0,r=Number.POSITIVE_INFINITY;for(let a=0;a<e;a+=1){let o=Math.abs(g(n,Ct(a,e)));if(o<r-0.000000001)r=o,t=a}return t}var $i=(n,e)=>Ct(O(n,e),e);function Er(n,e){if(e.seated===0)return;let t=Vt(n+Math.PI),r,a=Number.POSITIVE_INFINITY;for(let o=1;o<=e.seated;o+=1){let s=Math.abs(g(t,Ct(o,e.count)));if(s<a-0.000000001)a=s,r=o}return r}var A=1.65,Y=1.06,G=44,X=390,W=4.8,S=0.07,y=3;function B(n,e,t){let{position:r,target:a}=Ni(n),o=I([a[0]-r[0],a[1]-r[1],a[2]-r[2]]),s=I(E(o,[0,1,0])),l=E(s,o),u=[t[0]-r[0],t[1]-r[1],t[2]-r[2]],i=k(u,o),c=Math.tan(Li(n.fov,e)*Math.PI/360),f=i>0.000001?i:Number.NaN;return{x:k(u,s)/(f*c*e),y:k(u,l)/(f*c),depth:i}}var k=(n,e)=>n[0]*e[0]+n[1]*e[1]+n[2]*e[2],E=(n,e)=>[n[1]*e[2]-n[2]*e[1],n[2]*e[0]-n[0]*e[2],n[0]*e[1]-n[1]*e[0]],I=(n)=>{let e=Math.hypot(n[0],n[1],n[2])||1;return[n[0]/e,n[1]/e,n[2]/e]};function J(n){let e=yt(n),t=[];for(let r=1;r<n;r+=1){let a=Ct(r,n),o=Math.cos(a),s=-Math.sin(a);for(let l of[-1,1])for(let u of[0,W])t.push([Math.sin(a)*e+o*l*A,u,Math.cos(a)*e+s*l*A])}return t}function T(n,e,t,r=S,a=r){let o=1-a,s=1-r;return t.every((l)=>{let u=B(n,e,l);return Math.abs(u.x)<=o&&Math.abs(u.y)<=s})}var tt=2.9,U=0.7,V=0.2,j=0.8;function Cr(n,e,t){let r=t[0]-n[0],a=t[2]-n[2],o=Math.hypot(r,a)||1,s=a/o,l=-r/o,u=tt*U/2,i=tt*e,c=n[1]+i/2-i*V,f=n[1]+i/2-i*j,p=[];for(let m of[-1,1])for(let C of[c,f])p.push([n[0]+s*m*u,C,n[2]+l*m*u]);return p}function K(n){let e=yt(n),t=[];for(let r=1;r<n;r+=1){let a=Ct(r,n);t.push([Math.sin(a)*e,Y,Math.cos(a)*e])}return t}function _(n,e){return{...n,r:n.lookR+(n.r-n.lookR)*e,y:n.lookY+(n.y-n.lookY)*e}}function hn(n,e,t=1.6,r=X){let a=yt(e),o={az:n,r:a+4.4,y:4.4+a*0.1,aim:0,lookR:-1.6,lookY:2.5,roll:0,fov:46};if(!(t>0))return o;let s=J(e),l=K(e),u=S+G/(Math.max(r,1)/2);for(let i=1;i<=y;i+=0.02){let c=_(o,i);if(T(c,t,s)&&T(c,t,l,S,u))return c}return _(o,y)}function Ar(n,e){let t=yt(e),r=0.18;return{az:Vt(n+0.18),r:Math.max(t-3.9,0.5),y:1.8,aim:-0.18,lookR:t+0.1,lookY:1.7,roll:-0.16,fov:58}}var d=(n,e,t)=>n+(e-n)*t;function $r(n,e,t){return{az:Vt(n.az+g(n.az,e.az)*t),r:d(n.r,e.r,t),y:d(n.y,e.y,t),aim:d(n.aim,e.aim,t),lookR:d(n.lookR,e.lookR,t),lookY:d(n.lookY,e.lookY,t),roll:d(n.roll,e.roll,t),fov:d(n.fov,e.fov,t)}}var ni=(n)=>{let e=Math.min(1,Math.max(0,n));return e<0.5?4*e*e*e:1-(-2*e+2)**3/2},v=450,Z=650;function Nr(n,e,t){if(t)return{ms:0,cut:!0};let r=Math.abs(g(n.az,e.az))/Math.PI;return{ms:Math.round(v+(Z-v)*r),cut:!1}}function Ni(n){let e=n.az+n.aim;return{position:[Math.sin(n.az)*n.r,n.y,Math.cos(n.az)*n.r],target:[Math.sin(e)*n.lookR,n.lookY,Math.cos(e)*n.lookR]}}function Lr(n,e){let t=Ct(n,e),r=yt(e);return{x:Math.sin(t)*r,z:Math.cos(t)*r,yaw:t+Math.PI}}var Xr=(n,e)=>-n/Math.max(e,1)*(Math.PI/2),D=32;function zr(n,e,t,r){let a=(o,s,l)=>o-s<D||l-o<D;return a(n,0,r.width)||a(e,0,r.height)||a(n,t.left,t.left+t.width)||a(e,t.top,t.top+t.height)}function Ir(n,e){if(Math.abs(n)<0.000001)return"none";if(n<0)return e?"none":"in";return e?"out":"none"}function Li(n,e){if(!(e>0)||e>=1.2)return n;return Math.min(n*(1+(1.2-e)*0.55),95)}var qt=720,R=260,q=380,N=600,Bt=850,bt=160,Dr=4.2,Q=0.35;function Ln(n,e,t){let r=new Set(n),a=new Set(e),o=n.filter((m)=>!a.has(m)),s=e.filter((m)=>!r.has(m)),l=e.filter((m)=>r.has(m)),u={leaving:o,joining:s,staying:l,swapAt:0,glideEnd:0,riseAt:0,riseEnd:0,total:0};if(o.length===0&&s.length===0)return{mode:"cut",...u};if(t)return{mode:"fade",...u,swapAt:bt,glideEnd:bt,riseAt:bt,riseEnd:bt,total:bt*2};let i=o.length>0?q:0,c=i+N,f=c,p=s.length>0?f+Bt:c;return{mode:"play",...u,swapAt:i,glideEnd:c,riseAt:f,riseEnd:p,total:Math.max(o.length>0?qt:0,c,s.length>0?p:0)}}var b=(n,e=0,t=1)=>Math.min(t,Math.max(e,n));function ii(n){let e=b(n),t=1.70158;return 1+2.70158*(e-1)**3+1.70158*(e-1)**2}function Ur(n){let e=Math.sin(Math.PI*b(n/R));return{scaleX:1+0.08*e,scaleY:1-0.14*e,gone:n>=R,puff:b(n/qt)}}function ri(n){if(n<0)return{shown:!1,depth:1,circle:0,light:0,spin:0,named:!1};let e=b(n/Bt),t=b((e-0.25)/0.6),r=1-ii(t);return{shown:e>=0.25,depth:r,named:e>=0.25&&r<=Q,circle:b(e/0.25)*b((1-e)/0.2),light:Math.sin(Math.PI*b((e-0.2)/0.7)),spin:e*Math.PI*1.5}}var Vr=(n)=>ni(b(n/N)),qr=(n,e,t)=>n+g(n,e)*t;
|
|
2
|
+
export{fn,Ci,Ai,gt,Rr,Et,Vt,ti,Ct,yt,$i,Er,tt,Cr,hn,Ar,$r,ni,Nr,Ni,Lr,Xr,zr,Ir,Li,qt,Bt,bt,Dr,Ln,ii,Ur,ri,Vr,qr};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
var ps=40;class l extends Error{code;constructor(e){super(e);this.code=e;this.name="LayoutError"}}function xn(e,n,r){if(r===n&&e.includes(n))return[...e];let t=e.filter((o)=>o!==n),i=r===null||r===void 0?-1:t.indexOf(r);if(i<0)return[...t,n];return[...t.slice(0,i),n,...t.slice(i)]}function Ue(e,n,r){let t=e.indexOf(n);if(t<0)return;if(r==="up")return t===0?void 0:{before:e[t-1]??null};return t===e.length-1?void 0:{before:e[t+2]??null}}function pr(e){let n=e.trim(),r=Array.from(n).length;if(r<1||r>40||/\p{Cc}/u.test(n))throw new l("bad-name");return n}var c=(e,n)=>e.toLocaleLowerCase()===n.toLocaleLowerCase();function u(e,n){let r=e.folders.findIndex((t)=>t.id===n);if(r<0)throw new l("no-folder");return r}var f=(e,n)=>({pins:e.pins,folders:n});function ms(e,n,r){let t=u(e,n),i=pr(r);if(e.folders.some((o)=>o.id!==n&&c(o.name,i)))throw new l("duplicate");return f(e,e.folders.map((o,s)=>s===t?{...o,name:i}:o))}function Os(e,n,r){let t=u(e,n),i=e.folders[t],o=xn(e.folders.map((s)=>s.id),n,r);return f(e,o.map((s)=>s===n?i:e.folders.find((a)=>a.id===s)))}function gs(e,n){return u(e,n),f(e,e.folders.filter((r)=>r.id!==n))}var d=(e,n)=>({pins:e.pins.filter((r)=>r!==n),folders:e.folders.map((r)=>r.rooms.includes(n)?{...r,rooms:r.rooms.filter((t)=>t!==n)}:r)});function ys(e,n,r,t){if(r!==null)u(e,r);let i=d(e,n);if(r===null)return i;return f(i,i.folders.map((o)=>o.id===r?{...o,rooms:xn(o.rooms,n,t)}:o))}function bs(e,n,r,t){let i=d(e,n);if(!r)return i;return{pins:xn(e.pins.filter((o)=>o!==n),n,t),folders:i.folders}}
|
|
2
|
+
export{ps,xn,Ue,pr,ms,Os,gs,ys,bs};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
:root{--buncss-light:initial;--buncss-dark: ;color-scheme:light dark;--bg:var(--buncss-light,#f5f6f8)var(--buncss-dark,#0f1115);--surface:var(--buncss-light,#fff)var(--buncss-dark,#171a20);--surface-2:var(--buncss-light,#eef0f4)var(--buncss-dark,#1d2128);--surface-3:var(--buncss-light,#e4e7ee)var(--buncss-dark,#262b34);--raised:var(--buncss-light,#fff)var(--buncss-dark,#1c2027);--border:var(--buncss-light,#dfe2e8)var(--buncss-dark,#2a2f39);--border-strong:var(--buncss-light,#c4cad6)var(--buncss-dark,#3b414d);--control-border:var(--buncss-light,#7f8797)var(--buncss-dark,#69717f);--scrim:var(--buncss-light,#0f11156b)var(--buncss-dark,#0000009e);--text:var(--buncss-light,#16181d)var(--buncss-dark,#e9ebf0);--muted:var(--buncss-light,#5a6270)var(--buncss-dark,#a0a7b4);--on-accent:var(--buncss-light,#fff)var(--buncss-dark,#0c1230);--accent:var(--buncss-light,#3a5bd9)var(--buncss-dark,#8ea4ff);--accent-strong:var(--buncss-light,#2f4ac0)var(--buncss-dark,#a9b9ff);--accent-soft:var(--buncss-light,#e8edfd)var(--buncss-dark,#232c52);--accent-ink:var(--buncss-light,#2a47b8)var(--buncss-dark,#b6c4ff);--success:var(--buncss-light,#17703f)var(--buncss-dark,#5fd699);--success-soft:var(--buncss-light,#e3f4ea)var(--buncss-dark,#16301f);--warn:var(--buncss-light,#8a5a00)var(--buncss-dark,#f0b95b);--warn-soft:var(--buncss-light,#fdf1d8)var(--buncss-dark,#33270f);--danger:var(--buncss-light,#b42318)var(--buncss-dark,#ff8f85);--danger-soft:var(--buncss-light,#fde8e6)var(--buncss-dark,#3a1b19);--yolo:var(--buncss-light,#9a4608)var(--buncss-dark,#ffa664);--yolo-soft:var(--buncss-light,#fdebd9)var(--buncss-dark,#382314);--long:var(--buncss-light,#6d3fc0)var(--buncss-dark,#b99cf5);--long-soft:var(--buncss-light,#efe7fb)var(--buncss-dark,#2a2140);--code-bg:var(--buncss-light,#fbfbfd)var(--buncss-dark,#14171c);--code-fg:var(--buncss-light,#1d2129)var(--buncss-dark,#e6e8ee);--code-gutter-bg:var(--buncss-light,#f1f2f6)var(--buncss-dark,#191d23);--code-gutter:var(--buncss-light,#5c6372)var(--buncss-dark,#8b93a1);--code-selection:var(--buncss-light,#cfdcff)var(--buncss-dark,#2b3a66);--code-active-line:var(--buncss-light,#f0f2f8)var(--buncss-dark,#1a1f27);--code-keyword:var(--buncss-light,#a0267a)var(--buncss-dark,#f08bd0);--code-string:var(--buncss-light,#1a6a35)var(--buncss-dark,#7fd69a);--code-number:var(--buncss-light,#9a4a00)var(--buncss-dark,#ffb070);--code-comment:var(--buncss-light,#5f6878)var(--buncss-dark,#8e98aa);--code-type:var(--buncss-light,#0b6a8f)var(--buncss-dark,#6cc7e6);--code-function:var(--buncss-light,#3a4fc0)var(--buncss-dark,#9db2ff);--code-meta:var(--buncss-light,#7a5a00)var(--buncss-dark,#e0c070);--busy:var(--success);--accent-text:var(--on-accent);--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.25rem;--space-6:1.5rem;--space-8:2rem;--space-10:2.5rem;--radius-sm:6px;--radius:10px;--radius-lg:16px;--radius-full:999px;--shadow-1:0 1px 2px var(--buncss-light,#1018280f)var(--buncss-dark,#0006);--shadow-2:0 4px 14px var(--buncss-light,#1018281a)var(--buncss-dark,#00000073);--shadow-3:0 18px 48px var(--buncss-light,#10182833)var(--buncss-dark,#0009);--font:system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",sans-serif;--font-mono:ui-monospace,"SF Mono",Menlo,Consolas,monospace;--text-xs:.75rem;--text-sm:.8125rem;--text-base:.9375rem;--text-md:1rem;--text-lg:1.125rem;--text-xl:1.375rem;--text-2xl:1.75rem;--leading-tight:1.25;--leading:1.5;--weight-medium:500;--weight-bold:650;--dur-fast:.12s;--dur:.2s;--dur-slow:.34s;--ease-out:cubic-bezier(.2,.8,.2,1);--ease-in-out:cubic-bezier(.65,0,.35,1);--ease-spring:cubic-bezier(.34,1.56,.64,1);--rail-width:15rem;--tabbar-height:3.5rem;--touch:2.75rem;--safe-top:env(safe-area-inset-top,0px);--safe-bottom:env(safe-area-inset-bottom,0px);--safe-left:env(safe-area-inset-left,0px);--safe-right:env(safe-area-inset-right,0px);font-family:var(--font);font-size:16px;line-height:var(--leading);-webkit-text-size-adjust:100%;text-size-adjust:100%}@media (prefers-color-scheme:dark){:root{--buncss-light: ;--buncss-dark:initial}}:root[data-theme=light]{--buncss-light:initial;--buncss-dark: ;color-scheme:light}:root[data-theme=dark]{--buncss-light: ;--buncss-dark:initial;color-scheme:dark}@media (prefers-reduced-motion:reduce){:root{--dur-fast:.01ms;--dur:.01ms;--dur-slow:.01ms}*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.01ms!important}}.av{overflow:visible}.av .ov{opacity:0}.av .glow{opacity:.28}.av .ch,.av .prop,.av .eyes,.av .ov{transform-box:view-box}.av .ch{transform-origin:50px 94px}.av .eyes{transform-origin:50px 52px;animation:5.2s infinite av-blink}.av .o-wait,.av .o-done,.av .o-err{transform-origin:17px 19px}.av .o-think{transform-origin:50px 50px}.av [data-prop=staff]{transform-origin:73px 82px}.av [data-prop=shield]{transform-origin:27px 82px}.av [data-prop=scroll]{transform-origin:76px 76px}.av [data-prop=hammer]{transform-origin:79px 84px}.av [data-prop=bow]{transform-origin:78px 70px}.av [data-prop=lute]{transform-origin:75px 70px}.av [data-prop=flask]{transform-origin:73px 66px}.av [data-prop=quill]{transform-origin:72px 82px}.av [data-prop=tome]{transform-origin:78px 76px}.av [data-prop=bell]{transform-origin:76px 62px}.av [data-prop=keys]{transform-origin:78px 62px}.av [data-prop=map]{transform-origin:77px 58px}.av [data-prop=telescope]{transform-origin:76px 74px}.av [data-prop=wrench]{transform-origin:78px 86px}.av [data-prop=spade]{transform-origin:76px 60px}.av [data-prop=ladle]{transform-origin:78px 78px}.av [data-prop=lantern]{transform-origin:76px 62px}.av [data-prop=seal]{transform-origin:76px 66px}.av [data-prop=dagger]{transform-origin:78px 86px}.av [data-prop=beads]{transform-origin:78px 62px}.av [data-prop=bird]{transform-origin:78px 76px}.av [data-prop=anchor]{transform-origin:76px 76px}.av [data-prop=marotte]{transform-origin:76px 62px}.av [data-prop=sword]{transform-origin:76px 82px}:-webkit-any(.av,.av-host)[data-state=idle] .ch{animation:3.8s ease-in-out infinite av-breathe}:-moz-any(.av,.av-host)[data-state=idle] .ch{animation:3.8s ease-in-out infinite av-breathe}:is(.av,.av-host)[data-state=idle] .ch{animation:3.8s ease-in-out infinite av-breathe}:-webkit-any(.av,.av-host)[data-state=thinking] .ch{animation:3.2s ease-in-out infinite av-tilt}:-moz-any(.av,.av-host)[data-state=thinking] .ch{animation:3.2s ease-in-out infinite av-tilt}:is(.av,.av-host)[data-state=thinking] .ch{animation:3.2s ease-in-out infinite av-tilt}:-webkit-any(.av,.av-host)[data-state=thinking] .o-think{opacity:1;animation:2.6s linear infinite av-orbit}:-moz-any(.av,.av-host)[data-state=thinking] .o-think{opacity:1;animation:2.6s linear infinite av-orbit}:is(.av,.av-host)[data-state=thinking] .o-think{opacity:1;animation:2.6s linear infinite av-orbit}:-webkit-any(.av,.av-host)[data-state=working] .ch{animation:.56s ease-in-out infinite av-bob}:-moz-any(.av,.av-host)[data-state=working] .ch{animation:.56s ease-in-out infinite av-bob}:is(.av,.av-host)[data-state=working] .ch{animation:.56s ease-in-out infinite av-bob}:-webkit-any(.av,.av-host)[data-state=working] .prop{animation:.56s ease-in-out infinite alternate av-sweep}:-moz-any(.av,.av-host)[data-state=working] .prop{animation:.56s ease-in-out infinite alternate av-sweep}:is(.av,.av-host)[data-state=working] .prop{animation:.56s ease-in-out infinite alternate av-sweep}:-webkit-any(.av,.av-host)[data-state=working] .glow{animation:.56s ease-in-out infinite alternate av-glow}:-moz-any(.av,.av-host)[data-state=working] .glow{animation:.56s ease-in-out infinite alternate av-glow}:is(.av,.av-host)[data-state=working] .glow{animation:.56s ease-in-out infinite alternate av-glow}:-webkit-any(.av,.av-host)[data-state=waiting] .ch{animation:1.6s ease-in-out infinite av-lean}:-moz-any(.av,.av-host)[data-state=waiting] .ch{animation:1.6s ease-in-out infinite av-lean}:is(.av,.av-host)[data-state=waiting] .ch{animation:1.6s ease-in-out infinite av-lean}:-webkit-any(.av,.av-host)[data-state=waiting] .o-wait{opacity:1;animation:1.2s ease-in-out infinite av-badge}:-moz-any(.av,.av-host)[data-state=waiting] .o-wait{opacity:1;animation:1.2s ease-in-out infinite av-badge}:is(.av,.av-host)[data-state=waiting] .o-wait{opacity:1;animation:1.2s ease-in-out infinite av-badge}:-webkit-any(.av,.av-host)[data-state=waiting] .glow{animation:1.2s ease-in-out infinite alternate av-glow}:-moz-any(.av,.av-host)[data-state=waiting] .glow{animation:1.2s ease-in-out infinite alternate av-glow}:is(.av,.av-host)[data-state=waiting] .glow{animation:1.2s ease-in-out infinite alternate av-glow}:-webkit-any(.av,.av-host)[data-state=done] .ch{animation:.7s cubic-bezier(.3,1.6,.5,1) av-pop}:-moz-any(.av,.av-host)[data-state=done] .ch{animation:.7s cubic-bezier(.3,1.6,.5,1) av-pop}:is(.av,.av-host)[data-state=done] .ch{animation:.7s cubic-bezier(.3,1.6,.5,1) av-pop}:-webkit-any(.av,.av-host)[data-state=done] .o-done{opacity:1;animation:.5s ease-out av-badge-in}:-moz-any(.av,.av-host)[data-state=done] .o-done{opacity:1;animation:.5s ease-out av-badge-in}:is(.av,.av-host)[data-state=done] .o-done{opacity:1;animation:.5s ease-out av-badge-in}:-webkit-any(.av,.av-host)[data-state=done] .glow{opacity:.7}:-moz-any(.av,.av-host)[data-state=done] .glow{opacity:.7}:is(.av,.av-host)[data-state=done] .glow{opacity:.7}:-webkit-any(.av,.av-host)[data-state=error] .ch{animation:.5s ease-in-out 2 av-shake}:-moz-any(.av,.av-host)[data-state=error] .ch{animation:.5s ease-in-out 2 av-shake}:is(.av,.av-host)[data-state=error] .ch{animation:.5s ease-in-out 2 av-shake}:-webkit-any(.av,.av-host)[data-state=error] .o-err{opacity:1;animation:.3s ease-out av-badge-in}:-moz-any(.av,.av-host)[data-state=error] .o-err{opacity:1;animation:.3s ease-out av-badge-in}:is(.av,.av-host)[data-state=error] .o-err{opacity:1;animation:.3s ease-out av-badge-in}:-webkit-any(.av,.av-host)[data-state=error] .ring{stroke:#e5484d}:-moz-any(.av,.av-host)[data-state=error] .ring{stroke:#e5484d}:is(.av,.av-host)[data-state=error] .ring{stroke:#e5484d}:-webkit-any(.av,.av-host)[data-state=error] .glow{opacity:0}:-moz-any(.av,.av-host)[data-state=error] .glow{opacity:0}:is(.av,.av-host)[data-state=error] .glow{opacity:0}:-webkit-any(.av,.av-host)[data-state=sleepy] .ch{animation:6s ease-in-out infinite av-breathe}:-moz-any(.av,.av-host)[data-state=sleepy] .ch{animation:6s ease-in-out infinite av-breathe}:is(.av,.av-host)[data-state=sleepy] .ch{animation:6s ease-in-out infinite av-breathe}:-webkit-any(.av,.av-host)[data-state=sleepy] .o-zz{opacity:1;animation:3s ease-in-out infinite av-float}:-moz-any(.av,.av-host)[data-state=sleepy] .o-zz{opacity:1;animation:3s ease-in-out infinite av-float}:is(.av,.av-host)[data-state=sleepy] .o-zz{opacity:1;animation:3s ease-in-out infinite av-float}:-webkit-any(.av,.av-host)[data-state=sleepy] .glow{opacity:.08}:-moz-any(.av,.av-host)[data-state=sleepy] .glow{opacity:.08}:is(.av,.av-host)[data-state=sleepy] .glow{opacity:.08}@keyframes av-blink{0%,93%,to{transform:scaleY(1)}96%{transform:scaleY(.08)}}@keyframes av-breathe{0%,to{transform:scale(1)}50%{transform:scale(1.012,1.03)}}@keyframes av-tilt{0%,to{transform:rotate(-3deg)}50%{transform:rotate(3deg)}}@keyframes av-orbit{to{transform:rotate(360deg)}}@keyframes av-bob{0%,to{transform:translateY(0)}50%{transform:translateY(-2.4px)}}@keyframes av-sweep{0%{transform:rotate(-9deg)}to{transform:rotate(9deg)}}@keyframes av-glow{0%{opacity:.2}to{opacity:.85}}@keyframes av-lean{0%,to{transform:rotate(-1deg)translateY(0)}50%{transform:rotate(-6deg)translateY(1px)}}@keyframes av-badge{0%,to{transform:scale(1)}50%{transform:scale(1.14)}}@keyframes av-badge-in{0%{transform:scale(.2);opacity:0}to{transform:scale(1);opacity:1}}@keyframes av-pop{0%{transform:scale(1)}40%{transform:scale(1.1,.94)}70%{transform:scale(.97,1.05)}to{transform:scale(1)}}@keyframes av-shake{0%,to{transform:translate(0)}20%{transform:translate(-2.4px)}40%{transform:translate(2.4px)}60%{transform:translate(-1.6px)}80%{transform:translate(1.6px)}}@keyframes av-float{0%,to{transform:translateY(0);opacity:.35}50%{transform:translateY(-4px);opacity:1}}@media (prefers-reduced-motion:reduce){.av *{animation:none!important}.av .o-think{opacity:0!important}}.av.static *{animation:none!important}:root[data-look=camelot]{--bg:var(--buncss-light,#f4ead5)var(--buncss-dark,#0f1726);--surface:var(--buncss-light,#fbf5e6)var(--buncss-dark,#16213a);--surface-2:var(--buncss-light,#eee1c3)var(--buncss-dark,#1c2a47);--surface-3:var(--buncss-light,#e3d2a9)var(--buncss-dark,#243557);--raised:var(--buncss-light,#fffaf0)var(--buncss-dark,#1b2744);--border:var(--buncss-light,#dccb9f)var(--buncss-dark,#2c3c61);--border-strong:var(--buncss-light,#c2ad78)var(--buncss-dark,#41537f);--control-border:var(--buncss-light,#8a7650)var(--buncss-dark,#7e8db2);--scrim:var(--buncss-light,#2b211873)var(--buncss-dark,#03060eb3);--text:var(--buncss-light,#2b2118)var(--buncss-dark,#efe6d2);--muted:var(--buncss-light,#66543c)var(--buncss-dark,#bcb8ab);--on-accent:var(--buncss-light,#fff9ea)var(--buncss-dark,#1a1405);--accent:var(--buncss-light,#7a500a)var(--buncss-dark,#e6b94c);--accent-strong:var(--buncss-light,#5f3e07)var(--buncss-dark,#f2cd6c);--accent-soft:var(--buncss-light,#f0deb0)var(--buncss-dark,#2d3045);--accent-ink:var(--buncss-light,#553705)var(--buncss-dark,#f0cd78);--code-bg:var(--buncss-light,#fffaf0)var(--buncss-dark,#121c33);--code-fg:var(--buncss-light,#2b2118)var(--buncss-dark,#efe6d2);--code-gutter-bg:var(--buncss-light,#f1e5c6)var(--buncss-dark,#16213a);--code-gutter:var(--buncss-light,#66543c)var(--buncss-dark,#bcb8ab);--code-selection:var(--buncss-light,#ecd9a0)var(--buncss-dark,#31446e);--code-active-line:var(--buncss-light,#f6ecd2)var(--buncss-dark,#18243f);--code-keyword:var(--buncss-light,#7a500a)var(--buncss-dark,#e6b94c);--code-string:var(--buncss-light,#8a1c1c)var(--buncss-dark,#ff9a8f);--code-number:var(--buncss-light,#5f3d94)var(--buncss-dark,#c3a7f5);--code-comment:var(--buncss-light,#6a5a42)var(--buncss-dark,#b0ab9d);--code-type:var(--buncss-light,#26602d)var(--buncss-dark,#6fd49b);--code-function:var(--buncss-light,#1f4a80)var(--buncss-dark,#8fb4ff);--code-meta:var(--buncss-light,#764a07)var(--buncss-dark,#f0b95b);--gold:var(--buncss-light,#b98a2c)var(--buncss-dark,#e6b94c);--gold-soft:var(--buncss-light,#e9d29a)var(--buncss-dark,#3b4256);--gold-wash:var(--buncss-light,#f2e4bd)var(--buncss-dark,#222f4d);--success:var(--buncss-light,#26602d)var(--buncss-dark,#6fd49b);--success-soft:var(--buncss-light,#dfe9c9)var(--buncss-dark,#153027);--warn:var(--buncss-light,#764a07)var(--buncss-dark,#f0b95b);--warn-soft:var(--buncss-light,#f6e2b0)var(--buncss-dark,#3a2d12);--danger:var(--buncss-light,#a3281e)var(--buncss-dark,#ff9a8f);--danger-soft:var(--buncss-light,#f3d6cb)var(--buncss-dark,#3d1f2a);--yolo:var(--buncss-light,#96400a)var(--buncss-dark,#ffae72);--yolo-soft:var(--buncss-light,#f3dcc2)var(--buncss-dark,#3b2616);--long:var(--buncss-light,#5f3d94)var(--buncss-dark,#c3a7f5);--long-soft:var(--buncss-light,#e8ddee)var(--buncss-dark,#2c2547);--shadow-1:0 1px 2px var(--buncss-light,#4a340e1a)var(--buncss-dark,#00000073);--shadow-2:0 4px 14px var(--buncss-light,#4a340e24)var(--buncss-dark,#00000080);--shadow-3:0 18px 48px var(--buncss-light,#4a340e42)var(--buncss-dark,#000000a6);--font-heading:"Iowan Old Style",Palatino,"Songti TC","Noto Serif TC",Georgia,serif}[data-look=camelot] h1,[data-look=camelot] h2,[data-look=camelot] h3,[data-look=camelot] .page-bar strong,[data-look=camelot] .prompt-head strong{font-family:var(--font-heading);letter-spacing:0}[data-look=camelot] body{background:radial-gradient(60rem 36rem at 12% -8%,var(--buncss-light,#fffcf08c)var(--buncss-dark,#4660a029),transparent 70%),radial-gradient(48rem 30rem at 96% 108%,var(--buncss-light,#c8a05a33)var(--buncss-dark,#e6b94c0f),transparent 70%),radial-gradient(22rem 14rem at 70% 24%,var(--buncss-light,#b98a2c14)var(--buncss-dark,#788cd20d),transparent 70%),var(--bg)}[data-look=camelot] .topbar,[data-look=camelot] .tabbar{border-color:var(--gold-soft)}[data-look=camelot] .page-head{padding-bottom:var(--space-2);background:linear-gradient(90deg,var(--gold),transparent 70%)bottom/100% 1px no-repeat}[data-look=camelot] .room-head{position:relative;border-bottom-color:var(--gold-soft);box-shadow:0 1px 0 color-mix(in srgb,var(--gold)38%,transparent)}[data-look=camelot] .room-head:before,[data-look=camelot] .room-head:after{content:"";position:absolute;pointer-events:none;background:linear-gradient(var(--gold),var(--gold))bottom/100% 2px no-repeat,linear-gradient(var(--gold),var(--gold))var(--side)/2px 100% no-repeat;width:.75rem;height:.75rem;bottom:-1px}[data-look=camelot] .room-head:before{--side:left;left:0}[data-look=camelot] .room-head:after{--side:right;right:0}[data-look=camelot] .card,[data-look=camelot] .prompt,[data-look=camelot] .progress,[data-look=camelot] .bubble{border-color:color-mix(in srgb,var(--gold)34%,var(--border))}[data-look=camelot] .message[data-mine] .bubble{border-color:#0000}[data-look=camelot] .room-row[data-home],[data-look=camelot] .room-row[aria-current=page],[data-look=camelot] .creator-preview{background:var(--gold-wash)}[data-look=camelot] .prompt{position:relative;--seal-out:.9rem;--seal-in:.6rem}[data-look=camelot] .prompt[data-sealed]{padding-bottom:calc(var(--space-4) + var(--seal-in));margin-bottom:var(--seal-out)}.wax-seal{--seal-size:2.5rem;position:absolute;right:var(--space-4);bottom:calc(var(--seal-out)*-1);width:var(--seal-size);height:var(--seal-size);pointer-events:none;filter:drop-shadow(0 2px 2px #00000047);transform:rotate(-9deg)}.wax-seal[data-stamp]{animation-name:seal-stamp;animation-duration:.45s;animation-timing-function:var(--ease-spring);animation-fill-mode:both}.wax-seal svg{display:block;overflow:visible;width:100%;height:100%}.wax-seal .seal-body{fill:var(--agent-accent,var(--accent))}.wax-seal .seal-ring{fill:none;stroke:color-mix(in srgb,var(--agent-accent,var(--accent))62%,#000);stroke-width:1.6}.wax-seal .seal-mark{fill:none;stroke:color-mix(in srgb,var(--agent-accent,var(--accent))62%,#000);stroke-width:3;stroke-linecap:round;stroke-linejoin:round}@keyframes seal-stamp{0%{opacity:0;transform:rotate(-9deg)scale(1.7)}60%{opacity:1;transform:rotate(-9deg)scale(.92)}to{opacity:1;transform:rotate(-9deg)scale(1)}}[data-look=camelot] .progress-bar{display:none}.candle-runes{display:inline-flex;align-items: center;gap:var(--space-2);flex:none}.candle{overflow:visible;width:.85rem;height:1.55rem}.candle .candle-wax{fill:var(--buncss-light,#f3e3b6)var(--buncss-dark,#d9cdb0);stroke:var(--gold);stroke-width:.6}.candle .candle-wick{stroke:var(--buncss-light,#4a3a28)var(--buncss-dark,#1a1405);stroke-width:.9}.candle .candle-flame{fill:var(--gold);transform-box:fill-box;transform-origin:50% 100%;animation:1.7s ease-in-out infinite candle-flicker}.runes{display:inline-flex;gap:.3rem}.rune{width:.55rem;height:.9rem}.rune path{fill:none;stroke:color-mix(in srgb,var(--gold)80%,var(--text));stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}.rune{animation:2.4s ease-in-out infinite rune-shimmer}.rune[data-rune="1"]{animation-delay:.3s}.rune[data-rune="2"]{animation-delay:.6s}.rune[data-rune="3"]{animation-delay:.9s}.rune[data-rune="4"]{animation-delay:1.2s}.rune[data-rune="5"]{animation-delay:1.5s}@keyframes rune-shimmer{0%,to{opacity:.4}45%{opacity:1}}@keyframes candle-flicker{0%,to{opacity:1;transform:scale(1)rotate(0)}30%{opacity:.82;transform:scale(.92,1.08)rotate(-2deg)}65%{opacity:.94;transform:scale(1.06,.95)rotate(2deg)}}@media (prefers-reduced-motion:reduce){.wax-seal[data-stamp],.candle .candle-flame,.rune{animation-name:none}.rune{opacity:.85}}*{box-sizing:border-box}html{background:var(--bg);height:100%}body{overflow:hidden;background:var(--bg);color:var(--text);font-size:var(--text-base);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;overscroll-behavior:none;height:100%;margin:0}a{color:var(--accent)}h1,h2,h3{font-weight:var(--weight-bold);line-height:var(--leading-tight);letter-spacing:-.01em;margin:0}h1{font-size:var(--text-xl)}h2{font-size:var(--text-md)}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:var(--radius-sm)}.visually-hidden{position:absolute;overflow:hidden;clip-path:inset(50%);white-space:nowrap;width:1px;height:1px}kbd{padding:0 var(--space-2);border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface-2);color:var(--muted);font:inherit;font-size:var(--text-xs)}.app{position:fixed;left:0;right:0;top:var(--app-top,0px);height:var(--app-height,100dvh);display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(0,1fr)auto;background:var(--bg)}.stage{grid-row:1;display:flex;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;padding-left:var(--safe-left);padding-right:var(--safe-right);flex-direction:column;min-width:0;min-height:0}.stage[data-fill]{overflow:hidden}.route{display:flex;flex-direction:column;flex:1;min-height:0}.no-vt .route{animation:route-in var(--dur-slow)var(--ease-out)both}@keyframes route-in{0%{opacity:0;transform:translateY(8px)}}.topbar{position:sticky;z-index:5;display:flex;justify-content:space-between;align-items: center;gap:var(--space-3);padding:calc(var(--space-2) + var(--safe-top))var(--space-4)var(--space-2);background:color-mix(in srgb,var(--bg)88%,transparent);backdrop-filter:blur(14px);border-bottom:1px solid var(--border);top:0}.topbar h1{font-size:var(--text-md)}.brand{display:flex;align-items: center;gap:var(--space-2);min-width:0}.brand-mark{display:grid;border-radius:var(--radius-sm);background:var(--accent);color:var(--on-accent);overflow:hidden;flex:none;place-items: center;width:1.75rem;height:1.75rem}.brand-mark img{object-fit:cover;width:100%;height:100%}.brand h1{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.topbar-end,.rail-foot{display:flex;align-items: center;gap:var(--space-2)}.live-chip{display:inline-flex;align-items: center;gap:var(--space-2);font-size:var(--text-xs);color:var(--muted)}.live-chip:before{content:"";border-radius:var(--radius-full);background:var(--muted);width:.5rem;height:.5rem}.live-chip[data-on]:before{background:var(--success);box-shadow:0 0 0 0 var(--success);animation:pulse 2.4s var(--ease-out)infinite}@keyframes pulse{70%,to{box-shadow:0 0 0 6px #0000}}.rail{display:none}.tabbar{grid-row:2;display:flex;padding-bottom:var(--safe-bottom);padding-left:var(--safe-left);padding-right:var(--safe-right);border-top:1px solid var(--border);background:color-mix(in srgb,var(--surface)92%,transparent);backdrop-filter:blur(14px)}.tab{position:relative;display:flex;min-height:var(--tabbar-height);color:var(--muted);font-size:var(--text-xs);text-decoration:none;transition:color var(--dur)var(--ease-out);flex-direction:column;flex:1;justify-content:center;align-items: center;gap:2px}.tab[aria-current=page]{color:var(--accent)}.tab svg{transition:transform var(--dur)var(--ease-spring)}.tab[aria-current=page] svg{transform:translateY(-1px)scale(1.1)}.tab-badge{position:absolute;border-radius:var(--radius-full);background:var(--warn);color:var(--bg);font-size:.65rem;font-weight:var(--weight-bold);text-align:center;min-width:1.1rem;padding:0 .3rem;line-height:1.1rem;top:.35rem;left:calc(50% + .55rem)}.app[data-fill]{grid-template-rows:minmax(0,1fr)}.app[data-fill] .tabbar,.app[data-fill] .topbar{display:none}@media (min-width:720px){.app{grid-template-columns:var(--rail-width)minmax(0,1fr);grid-template-rows:minmax(0,1fr)}.app[data-fill] .topbar,.topbar,.tabbar,.app[data-fill] .tabbar{display:none}.rail{grid-column:1;display:flex;gap:var(--space-4);padding:calc(var(--space-4) + var(--safe-top))var(--space-3)var(--space-3)calc(var(--space-3) + var(--safe-left));border-right:1px solid var(--border);background:var(--surface);flex-direction:column;min-height:0}.stage{grid-column:2;padding-left:0}.rail-nav{display:flex;gap:var(--space-1);overflow-y:auto;flex-direction:column;flex:1}.rail-link{position:relative;display:flex;align-items: center;gap:var(--space-3);padding:0 var(--space-3);border-radius:var(--radius);color:var(--muted);font-weight:var(--weight-medium);text-decoration:none;transition:background-color var(--dur-fast)var(--ease-out),color var(--dur-fast)var(--ease-out);min-height:2.5rem}.rail-link:hover{background:var(--surface-2);color:var(--text)}.rail-link[aria-current=page]{background:var(--accent-soft);color:var(--accent-ink)}.rail-link .tab-badge{position:static;margin-left:auto}.rail-foot{padding-left:var(--space-3)}}.page{display:flex;gap:var(--space-5);padding:var(--space-4)var(--space-4)calc(var(--space-8) + var(--safe-bottom));flex-direction:column;width:100%;max-width:60rem;margin:0 auto}@media (min-width:720px){.page{padding:var(--space-8)var(--space-8)var(--space-10)}}.page-head{min-height:var(--touch);display:flex;justify-content:space-between;align-items: center;gap:var(--space-3);flex-wrap:wrap}.section-title{font-size:var(--text-xs);color:var(--muted);text-transform:uppercase;letter-spacing:.06em}.stack{display:flex;gap:var(--space-3);flex-direction:column}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:var(--space-3)var(--space-4);box-shadow:var(--shadow-1)}.card-link{display:block;color:inherit;text-decoration:none;transition:border-color var(--dur-fast)var(--ease-out),transform var(--dur)var(--ease-out)}.card-link:hover{border-color:var(--accent)}.card-head{display:flex;justify-content:space-between;align-items: flex-start;gap:var(--space-2);flex-wrap:wrap}.facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(10rem,1fr));gap:var(--space-2)var(--space-4);margin:var(--space-2)0 0}.facts dt{font-size:var(--text-xs);color:var(--muted)}.facts dd{overflow-wrap:anywhere;margin:0}.skill-meta{display:grid;grid-template-columns:max-content minmax(0,1fr);gap:var(--space-2)var(--space-4);margin:0}.skill-meta dt{font-size:var(--text-xs);color:var(--muted);padding-top:.15em}.skill-meta dd{overflow-wrap:anywhere;margin:0}.skill-document{display:flex;gap:var(--space-4);flex-direction:column}.skill-meta{padding-bottom:var(--space-4);border-bottom:1px solid var(--border)}.prose.document{line-height:1.65}.prose.document>:-webkit-any(p,ul,ol,blockquote,h1,h2,h3,h4){max-width:72ch}.prose.document>:-moz-any(p,ul,ol,blockquote,h1,h2,h3,h4){max-width:72ch}.prose.document>:is(p,ul,ol,blockquote,h1,h2,h3,h4){max-width:72ch}.meta,.hint,.empty{font-size:var(--text-sm);color:var(--muted);margin:0}.empty{padding:var(--space-6)var(--space-4);text-align:center;border:1px dashed var(--border-strong);border-radius:var(--radius)}.text{white-space:pre-wrap;overflow-wrap:anywhere;margin:0}.badge{display:inline-flex;padding:0 var(--space-2);border:1px solid var(--border);border-radius:var(--radius-full);background:var(--surface-2);font-size:var(--text-xs);color:var(--muted);white-space:nowrap;align-items: center;gap:.25rem;line-height:1.3rem}.badge-busy{background:var(--success-soft);color:var(--success);border-color:#0000}.badge-warn{background:var(--warn-soft);color:var(--warn);border-color:#0000}.badge-accent{background:var(--accent-soft);color:var(--accent-ink);border-color:#0000}.badge-yolo{background:var(--yolo-soft);color:var(--yolo);border-color:#0000}.badge-long{background:var(--long-soft);color:var(--long);border-color:#0000}.failure{padding:var(--space-3)var(--space-4);border:1px solid var(--danger);border-radius:var(--radius);background:var(--danger-soft);color:var(--danger);margin:0}.skeleton{border-radius:var(--radius);background:linear-gradient(100deg,var(--surface-2)30%,var(--surface-3)50%,var(--surface-2)70%);animation:1.4s linear infinite shimmer;background-size:300% 100%;height:4rem}@keyframes shimmer{0%{background-position:100% 0}to{background-position:0 0}}button,input,select,textarea{font:inherit;color:inherit}button{display:inline-flex;justify-content:center;align-items: center;gap:var(--space-2);padding:0 var(--space-4);border:1px solid var(--accent);border-radius:var(--radius);background:var(--accent);color:var(--on-accent);font-weight:var(--weight-medium);cursor:pointer;touch-action:manipulation;transition:background-color var(--dur-fast)var(--ease-out),border-color var(--dur-fast)var(--ease-out),transform var(--dur-fast)var(--ease-out),opacity var(--dur)var(--ease-out);min-height:2.5rem}button:hover:not(:disabled){background:var(--accent-strong);border-color:var(--accent-strong)}button:active:not(:disabled){transform:scale(.97)}button.secondary,.tabs button{border-color:var(--control-border);color:var(--text);background:0 0}button.secondary:hover:not(:disabled),.tabs button:hover:not(:disabled){background:var(--surface-2);border-color:var(--control-border)}.tabs button[aria-selected=true],.tabs button[aria-pressed=true]{border-color:var(--accent);color:var(--accent)}button.danger{border-color:var(--danger);color:var(--danger);background:0 0}button.danger:hover:not(:disabled){background:var(--danger-soft);border-color:var(--danger)}button:disabled{opacity:.55;cursor:default}.icon-button{display:inline-flex;width:var(--touch);min-width:var(--touch);height:var(--touch);min-height:var(--touch);color:var(--muted);background:0 0;border-color:#0000;justify-content:center;align-items: center;padding:0}.icon-button:hover:not(:disabled){background:var(--surface-2);color:var(--text);border-color:#0000}.link-button{padding:0 var(--space-2);color:var(--accent);background:0 0;border-color:#0000;min-height:2rem}.link-button:hover:not(:disabled){background:var(--accent-soft);border-color:#0000}.danger-icon:hover:not(:disabled){background:var(--danger-soft);color:var(--danger)}input,select,textarea{padding:var(--space-2)var(--space-3);border:1px solid var(--control-border);border-radius:var(--radius);background:var(--surface);transition:border-color var(--dur-fast)var(--ease-out);width:100%;min-height:2.5rem}input:focus-visible{outline:2px solid var(--accent);outline-offset:0;border-color:var(--accent)}select:focus-visible{outline:2px solid var(--accent);outline-offset:0;border-color:var(--accent)}textarea:focus-visible{outline:2px solid var(--accent);outline-offset:0;border-color:var(--accent)}textarea{resize:vertical;line-height:var(--leading)}input[type=radio]:focus-visible{border-radius:50%}input[type=radio],input[type=checkbox]{accent-color:var(--accent);width:1.1rem;height:1.1rem;min-height:0}label{display:flex;gap:var(--space-1);font-size:var(--text-sm);color:var(--muted);flex-direction:column}label.inline{flex-direction:row;align-items: center}label.inline select{width:auto}fieldset{border:0;min-width:0;margin:0;padding:0}legend{margin-bottom:var(--space-2);font-size:var(--text-sm);color:var(--text);font-weight:var(--weight-medium);padding:0}.toolbar{display:flex;gap:var(--space-3);flex-wrap:wrap}.toolbar input{flex:1;width:auto;min-width:12rem}.tabs{display:flex;gap:var(--space-1)}.actions{display:flex;gap:var(--space-2);flex-wrap:wrap;justify-content:flex-end}.form{max-width:40rem}.form-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(14rem,1fr));gap:var(--space-3)}.back{font-size:var(--text-sm);text-decoration:none}.page-bar{display:flex;align-items: center;gap:var(--space-2);margin:calc(var(--space-2)*-1)calc(var(--space-2)*-1)0}.page-bar strong{font-size:var(--text-md)}.crash{display:flex;align-items: center;gap:var(--space-3);margin:var(--space-10)auto 0;padding:var(--space-6);border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);box-shadow:var(--shadow-2);text-align:center;flex-direction:column;max-width:24rem}.crash p{color:var(--muted);margin:0}.crash-icon{display:grid;border-radius:var(--radius-full);background:var(--warn-soft);color:var(--warn);place-items: center;width:2.75rem;height:2.75rem}button.yolo-action{border-color:var(--yolo);background:var(--yolo);color:var(--bg)}button.yolo-action:hover:not(:disabled){border-color:var(--yolo);background:color-mix(in srgb,var(--yolo)88%,var(--text))}.switch{position:relative;border-color:var(--control-border);border-radius:var(--radius-full);background:var(--surface-3);transition:background-color var(--dur)var(--ease-out),border-color var(--dur)var(--ease-out);flex:none;width:2.75rem;min-width:2.75rem;height:1.65rem;min-height:1.65rem;padding:0}.switch:hover:not(:disabled){background:var(--border-strong);border-color:var(--control-border)}.switch-thumb{position:absolute;border-radius:var(--radius-full);background:var(--control-border);box-shadow:var(--shadow-1);transition:transform var(--dur)var(--ease-spring),background-color var(--dur)var(--ease-out);width:1.2rem;height:1.2rem;margin-top:-.6rem;top:50%;left:2px}.switch[aria-checked=true],.switch[aria-checked=true]:hover:not(:disabled){background:var(--accent);border-color:var(--accent)}.switch[aria-checked=true] .switch-thumb{background:var(--on-accent);transform:translate(1.1rem)}.segmented{display:inline-flex;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-2);gap:2px;padding:3px}.segmented-wide{display:flex}.segmented-wide label{flex:1}.segmented label{position:relative;justify-content:center;align-items: center;gap:var(--space-2);padding:0 var(--space-3);border-radius:calc(var(--radius) - 3px);color:var(--muted);font-weight:var(--weight-medium);cursor:pointer;transition:background-color var(--dur)var(--ease-out),color var(--dur)var(--ease-out);flex-direction:row;min-height:2.25rem}.segmented label[data-checked=true]{background:var(--surface);color:var(--text);box-shadow:var(--shadow-1),inset 0 0 0 1px var(--border-strong)}.segmented input{position:absolute;opacity:0;cursor:pointer;width:100%;height:100%;inset:0}.segmented label:has(:focus-visible){outline:2px solid var(--accent)}.look-swatch{display:inline-flex;border:1px solid var(--control-border);border-radius:var(--radius-sm);gap:2px;padding:2px}.look-swatch i{display:block;border-radius:2px;width:.7rem;height:.9rem}.look-swatch[data-swatch=modern] i:first-child{background:var(--buncss-light,#f5f6f8)var(--buncss-dark,#0f1115)}.look-swatch[data-swatch=modern] i:nth-child(2){background:var(--buncss-light,#fff)var(--buncss-dark,#171a20)}.look-swatch[data-swatch=modern] i:nth-child(3){background:var(--buncss-light,#3a5bd9)var(--buncss-dark,#8ea4ff)}.look-swatch[data-swatch=camelot] i:first-child{background:var(--buncss-light,#f4ead5)var(--buncss-dark,#0f1726)}.look-swatch[data-swatch=camelot] i:nth-child(2){background:var(--buncss-light,#fbf5e6)var(--buncss-dark,#16213a)}.look-swatch[data-swatch=camelot] i:nth-child(3){background:var(--buncss-light,#b98a2c)var(--buncss-dark,#e6b94c)}.av-host{display:inline-block;user-select:none;flex:none;width:2.5rem;height:2.5rem;line-height:0}.av-host:empty{border-radius:var(--radius-full);background:var(--surface-3)}.av-host>svg{display:block;width:100%;height:100%}.av-host.static .av *{animation:none!important}.av-stack{position:relative;display:inline-block;flex:none}.av-stack-item{position:absolute;top:0}.toaster{position:fixed;z-index:50;left:0;right:0;bottom:calc(var(--tabbar-height) + var(--safe-bottom) + var(--space-3));display:flex;align-items: center;gap:var(--space-2);pointer-events:none;flex-direction:column}.app[data-fill]~.toaster{bottom:calc(5.5rem + var(--safe-bottom))}@media (min-width:720px){.toaster{bottom:var(--space-6)}}.toast{pointer-events:auto;display:flex;align-items: center;gap:var(--space-2);padding:var(--space-2)var(--space-2)var(--space-2)var(--space-4);border:1px solid var(--border-strong);border-radius:var(--radius);background:var(--raised);box-shadow:var(--shadow-2);font-size:var(--text-sm);animation:toast-in var(--dur-slow)var(--ease-spring)both;max-width:min(28rem,100vw - 2rem)}.toast[data-tone=danger]{border-color:var(--danger)}.toast .icon-button{width:2rem;min-width:2rem;height:2rem;min-height:2rem}@keyframes toast-in{0%{opacity:0;transform:translateY(12px)scale(.96)}}dialog{border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--raised);color:var(--text);box-shadow:var(--shadow-3);padding:0}dialog::backdrop{background:var(--scrim);opacity:var(--sheet-progress,1);transition:opacity var(--dur)var(--ease-out)}dialog.sheet{overflow:hidden;opacity:0;transition:transform var(--dur-slow)var(--ease-out),opacity var(--dur)var(--ease-out);width:min(32rem,100vw - 2rem);max-height:min(85dvh,48rem);margin:auto;transform:translateY(16px)scale(.98)}dialog.sheet[open]{display:flex;flex-direction:column}dialog.sheet[data-state=open]{opacity:1;transform:none}dialog.sheet[data-state=closing]{opacity:0;transition-duration:var(--dur);transform:translateY(16px)scale(.98)}dialog.sheet[data-state=opening]::backdrop{opacity:0}dialog.sheet[data-state=closing]::backdrop{opacity:0}dialog.sheet[data-dragging]{transition:none}.sheet-grab{display:none;padding:var(--space-2)0 var(--space-1);touch-action:none;justify-content:center}.sheet-handle{border-radius:var(--radius-full);background:var(--border-strong);width:2.5rem;height:.3rem}.sheet-body{position:relative;display:flex;gap:var(--space-3);overflow-y:auto;padding:var(--space-5)var(--space-5)calc(var(--space-5) + var(--safe-bottom));overscroll-behavior:contain;flex-direction:column;flex:auto;min-height:0}.sheet-head{display:flex;justify-content:space-between;align-items: center;gap:var(--space-3);padding:var(--space-4)var(--space-4)var(--space-4)var(--space-5);border-bottom:1px solid var(--border);touch-action:none;flex:none}.sheet-head h2{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.sheet-head button{touch-action:manipulation;flex:none}.sheet-head .icon-button{width:2.5rem;min-width:2.5rem;height:2.5rem;min-height:2.5rem}@media (min-width:720px){dialog.sheet.wide{width:min(56rem,100vw - 4rem)}}dialog.sheet.full{border:0;border-radius:0;width:100vw;max-width:none;height:100dvh;max-height:none;margin:0}@media (max-width:719px){dialog.sheet{border-radius:var(--radius-lg)var(--radius-lg)0 0;opacity:1;width:100%;max-width:none;margin:auto 0 0;transform:translateY(100%)}dialog.sheet[data-state=open]{transform:none}dialog.sheet[data-state=closing]{opacity:1;transform:translateY(100%)}.sheet-grab{display:flex}.sheet-head{padding:var(--space-3)var(--space-3)var(--space-3)var(--space-4)}.sheet-body{padding:var(--space-4)var(--space-4)calc(var(--space-4) + var(--safe-bottom))}}.menu{display:flex;list-style:none;flex-direction:column;margin:0;padding:0}.menu-item{display:flex;align-items: center;gap:var(--space-3);padding:var(--space-2)var(--space-1);border-radius:var(--radius);color:var(--text);text-align:left;text-decoration:none;font-weight:inherit;background:0 0;border:0;flex-direction:row;width:100%;min-height:3.5rem}.menu-link:hover,.menu-toggle:hover{background:var(--surface-2)}.menu-toggle{gap:var(--space-3);color:var(--text);font-size:var(--text-base);cursor:pointer;flex-direction:row}.menu-icon{display:grid;border-radius:var(--radius);background:var(--surface-2);color:var(--muted);flex:none;place-items: center;width:2.25rem;height:2.25rem}.menu-icon[data-tone=yolo]{background:var(--yolo-soft);color:var(--yolo)}.menu-icon[data-tone=long]{background:var(--long-soft);color:var(--long)}.menu-icon[data-tone=danger]{background:var(--danger-soft);color:var(--danger)}.menu-text{display:flex;flex-direction:column;flex:1;min-width:0}.menu-text .meta{font-weight:400}.more-list{display:flex;padding:var(--space-2);list-style:none;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);flex-direction:column;margin:0}.prose{overflow-wrap:anywhere}.prose>:first-child{margin-top:0}.prose>:last-child{margin-bottom:0}.prose p,.prose ul,.prose ol,.prose blockquote,.prose .code-block,.prose .table-wrap{margin:0 0 var(--space-3)}.prose ul,.prose ol{padding-left:1.4rem}.prose h1,.prose h2,.prose h3,.prose h4{margin:var(--space-4)0 var(--space-2);font-size:var(--text-md)}.prose blockquote{padding:0 var(--space-3);color:var(--muted);background:var(--surface-2);border-radius:var(--radius-sm)}.prose code{background:var(--surface-3);font-family:var(--font-mono);border-radius:4px;padding:.1em .35em;font-size:.88em}.code-block{position:relative}.code-block pre{padding:var(--space-3);overflow-x:auto;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-2);font-size:var(--text-sm);margin:0}.code-block pre code{font-size:inherit;background:0 0;padding:0}.code-copy{position:absolute;opacity:0;transition:opacity var(--dur)var(--ease-out);width:2rem;min-width:2rem;height:2rem;min-height:2rem;top:.25rem;right:.25rem}.code-block:hover .code-copy{opacity:1}.code-copy:focus-visible{opacity:1}@media (hover:none){.code-copy{opacity:1}}.table-wrap{overflow-x:auto}.prose table{border-collapse:collapse;font-size:var(--text-sm)}.prose th,.prose td{padding:var(--space-1)var(--space-3);border:1px solid var(--border);text-align:left}.transcript{display:flex;gap:var(--space-3);list-style:none;flex-direction:column;margin:0;padding:0}.entry{padding:var(--space-3)var(--space-4);border:1px solid var(--border);border-radius:var(--radius);background:var(--surface)}.entry-user{background:var(--accent-soft)}.entry-compaction{color:var(--muted);border-style:dashed}.entry-tool{padding:var(--space-2)var(--space-4);font-size:var(--text-sm);background:0 0}.entry-tool summary{cursor:pointer;color:var(--muted)}.entry-tool pre{margin:var(--space-2)0 0;overflow:auto;white-space:pre-wrap;overflow-wrap:anywhere;max-height:20rem}.entry-head{display:flex;justify-content:space-between;gap:var(--space-2);margin-bottom:var(--space-1)}.role{font-size:var(--text-xs);font-weight:var(--weight-bold);text-transform:uppercase;letter-spacing:.04em}.call{display:block;margin-top:var(--space-2);font-size:var(--text-xs);color:var(--muted);overflow-wrap:anywhere}.theme-reveal::view-transition-old(root){animation:none;mix-blend-mode:normal}.theme-reveal::view-transition-new(root){animation:none;mix-blend-mode:normal}.theme-fade *,.theme-fade *:before,.theme-fade *:after{transition:background-color .24s var(--ease-out),color .24s var(--ease-out),border-color .24s var(--ease-out)!important}::view-transition-old(root){animation-duration:var(--dur-slow);animation-timing-function:var(--ease-out)}::view-transition-new(root){animation-duration:var(--dur-slow);animation-timing-function:var(--ease-out)}@media (max-width:719px),(pointer:coarse){button,input,select,textarea{min-height:var(--touch)}input[type=radio],input[type=checkbox]{min-height:0}.switch{min-height:1.65rem}.link-button,.segmented label,.to-end,.prompt-details summary,.rail-link{min-height:var(--touch)}.prompt-details summary{display:flex;align-items: center}.code-copy,.toast .icon-button,.attached-chip .icon-button{width:var(--touch);min-width:var(--touch);height:var(--touch);min-height:var(--touch)}.back,.schedule a,.meta a{display:inline-flex;min-height:var(--touch);align-items: center}kbd{display:none}}.search-button{gap:var(--space-3);color:var(--muted)}.search-button span{display:none}@media (min-width:720px){.search-button span{display:inline}}.header-button{color:var(--text);background:0 0;border-color:#0000}.header-button:hover:not(:disabled){background:var(--surface-2);border-color:#0000}.switcher-search .switcher-add{margin-right:calc(var(--space-2)*-1);flex:none}.room-list{display:flex;gap:var(--space-2);list-style:none;flex-direction:column;margin:0;padding:0}.room-row{display:flex;align-items: center;gap:var(--space-3);padding:var(--space-3)var(--space-4);border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);box-shadow:var(--shadow-1);color:inherit;text-decoration:none;transition:transform var(--dur)var(--ease-out),border-color var(--dur-fast)var(--ease-out),box-shadow var(--dur)var(--ease-out);min-height:4.25rem}.room-row:hover{border-color:var(--agent-accent,var(--accent));box-shadow:var(--shadow-2)}.room-row[aria-current=page]{border-color:var(--agent-accent,var(--accent));background:color-mix(in srgb,var(--agent-accent,var(--accent))14%,var(--surface))}.room-row:active{transform:scale(.99)}.room-row[data-home]{padding:var(--space-4);background:color-mix(in srgb,var(--agent-accent,var(--accent))9%,var(--surface))}.room-row-main{display:flex;flex-direction:column;flex:1;gap:2px;min-width:0}.room-row-top{display:flex;align-items: center;gap:var(--space-2)}.room-row-top strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.room-row-time{font-size:var(--text-xs);color:var(--muted);flex:none;margin-left:auto}.room-row-preview{display:flex;align-items: center;gap:var(--space-2);color:var(--muted);font-size:var(--text-sm);min-width:0}.room-row-preview>span:last-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.room-row-badges{display:flex;gap:var(--space-1);empty-cells:hide;flex-wrap:wrap}.room-row-badges:empty{display:none}.room-row-chevron{color:var(--muted);transition:transform var(--dur)var(--ease-out);flex:none}.room-row:hover .room-row-chevron{transform:translate(3px)}.thread-group{display:flex;gap:var(--space-1);margin:var(--space-1)0 var(--space-2)var(--space-5);padding-left:var(--space-3);border-left:2px solid var(--border);flex-direction:column}.thread-list{display:flex;gap:var(--space-1);list-style:none;flex-direction:column;margin:0;padding:0}.thread-row{display:flex;align-items: center;gap:var(--space-2);min-height:var(--touch);padding:var(--space-1)var(--space-3);border-radius:var(--radius);color:inherit;font-size:var(--text-sm);text-decoration:none;transition:background var(--dur-fast)var(--ease-out),border-color var(--dur-fast)var(--ease-out);border:1px solid #0000}.thread-row:hover{background:var(--surface);border-color:var(--border)}.thread-row[aria-current=page]{background:var(--accent-soft);border-color:var(--accent)}.thread-row[data-closed]{color:var(--muted)}.thread-row-icon{color:var(--muted);flex:none}.thread-row-title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0}.thread-closed>summary{display:flex;min-height:var(--touch);padding:0 var(--space-3);color:var(--muted);font-size:var(--text-xs);cursor:pointer;list-style:none;align-items: center}.thread-closed>summary::-webkit-details-marker{display:none}.thread-closed>summary:before{content:"▸";margin-right:var(--space-2)}.thread-closed[open]>summary:before{content:"▾"}.thread-closed>summary:hover{color:var(--text)}.thread-closed[open]>summary{margin-bottom:var(--space-1)}.thread-link{font-weight:600}.line .prose{text-align:center;flex:0 auto}.line .prose p{margin:0}.typing{display:inline-flex;flex:none;gap:3px}.typing i{border-radius:var(--radius-full);background:var(--success);animation:bounce 1.1s var(--ease-in-out)infinite;width:5px;height:5px}.typing i:nth-child(2){animation-delay:.15s}.typing i:nth-child(3){animation-delay:.3s}@keyframes bounce{0%,60%,to{transform:none;opacity:.45}30%{transform:translateY(-4px);opacity:1}}.room{position:relative;display:flex;background:var(--bg);flex-direction:column;flex:1;min-height:0}.room-head{display:flex;align-items: center;gap:var(--space-3);padding:calc(var(--space-2) + var(--safe-top))var(--space-3)var(--space-2)var(--space-2);border-bottom:1px solid var(--border);background:color-mix(in srgb,var(--surface)92%,transparent);backdrop-filter:blur(14px);z-index:4}.room-title{display:flex;flex-direction:column;flex:1;min-width:0}.room-title h1{overflow:hidden;font-size:var(--text-md);text-overflow:ellipsis;white-space:nowrap}.room-status{font-size:var(--text-xs);color:var(--muted)}.room-status[data-working]{color:var(--success)}@media (min-width:720px){.room-back{display:none}.room-head{padding-left:var(--space-4)}}button.room-name{display:inline;border-radius:var(--radius-sm);color:inherit;font:inherit;text-align:left;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;background:0 0;border:0;max-width:100%;min-height:0;padding:0}button.room-name:hover:not(:disabled){text-decoration:underline;text-decoration-color:var(--muted);text-underline-offset:.2em;background:0 0}.room-muted,.muted-mark{margin-left:var(--space-2);vertical-align:-.1em;color:var(--muted);flex:none}button.room-picture{border-radius:var(--radius-full);background:0 0;border:0;flex:none;min-height:0;padding:0}button.room-picture:hover:not(:disabled){background:0 0}.switcher{position:fixed;z-index:30;--switcher-progress:0;visibility:hidden;pointer-events:none;transition:visibility 0s linear var(--dur-slow);inset:0}.switcher[data-state=open]{--switcher-progress:1}.switcher[data-state=open],.switcher[data-state=dragging]{visibility:visible;pointer-events:auto;transition:none}.switcher-scrim{position:absolute;background:var(--scrim);opacity:var(--switcher-progress);transition:opacity var(--dur-slow)var(--ease-out);touch-action:pan-y;inset:0}.switcher-panel{position:absolute;display:flex;padding:var(--safe-top)0 var(--safe-bottom)var(--safe-left);border-right:1px solid var(--border);background:var(--surface);box-shadow:var(--shadow-2);outline:none;transform:translate3d(calc((var(--switcher-progress) - 1)*100%),0,0);transition:transform var(--dur-slow)var(--ease-out);touch-action:pan-y;flex-direction:column;width:min(80vw,360px);inset:0 auto 0 0}.switcher[data-state=dragging] .switcher-scrim,.switcher[data-state=dragging] .switcher-panel{transition:none}.switcher-search{display:flex;align-items: center;gap:var(--space-2);margin:var(--space-3)var(--space-3)var(--space-1);padding:0 var(--space-3);border:1px solid var(--control-border);border-radius:var(--radius-full);background:var(--surface-2);color:var(--muted)}.switcher-search svg{flex:none}.switcher-search input{min-height:var(--touch);color:var(--text);outline:none;background:0 0;border:0;min-width:0;padding:0;font-size:1rem}.switcher-search:focus-within{border-color:var(--accent)}.switcher-scroll{overflow-y:auto;overscroll-behavior:contain;padding:0 var(--space-2)var(--space-3);flex:1;min-height:0}.switcher-heading{margin:var(--space-3)var(--space-2)var(--space-1);color:var(--muted);font-size:var(--text-xs);font-weight:var(--weight-medium)}.switcher-heading[data-waiting]{color:var(--warn)}.switcher-list{display:flex;list-style:none;flex-direction:column;gap:2px;margin:0;padding:0}.switcher-row{display:flex;align-items: center;gap:var(--space-3);padding:var(--space-2)var(--space-3);border-radius:var(--radius);color:inherit;text-decoration:none;min-height:3.5rem}.switcher-row:hover,.switcher-row:active{background:var(--surface-2)}.switcher-row[aria-current=page]{background:color-mix(in srgb,var(--agent-accent,var(--accent))14%,var(--surface))}.switcher-picture{position:relative;display:inline-flex;flex:none}.switcher-dot{position:absolute;border:2px solid var(--surface);border-radius:var(--radius-full);background:var(--warn);width:.7rem;height:.7rem;top:-1px;right:-1px}.switcher-name{display:flex;flex-direction:column;flex:1;min-width:0}.switcher-name strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.switcher-working{display:inline-flex;align-items: center;gap:var(--space-2);color:var(--success);font-size:var(--text-xs)}.switcher-mode{display:inline-flex;flex:none}.switcher-mode[data-mode=yolo]{color:var(--yolo)}.switcher-mode[data-mode=long]{color:var(--long)}.switcher-mode[data-mode=muted]{color:var(--muted)}.mode-banner{display:grid;grid-template-rows:0fr;transition:grid-template-rows var(--dur-slow)var(--ease-out);z-index:3}.mode-banner[data-open=true]{grid-template-rows:1fr}.mode-banner-inner{overflow:hidden;min-height:0}.mode-lines{display:flex;flex-direction:column}.mode-line{display:flex;align-items: center;gap:var(--space-2);padding:0 var(--space-2)0 var(--space-4);font-size:var(--text-sm);font-weight:var(--weight-medium)}.mode-line>span{flex:1}.mode-line[data-mode=yolo]{background:var(--yolo-soft);color:var(--yolo)}.mode-line[data-mode=long]{background:var(--long-soft);color:var(--long)}.mode-line .link-button{color:inherit;text-decoration:underline}.mode-line[data-mode=yolo] svg{animation:flash 2.6s var(--ease-in-out)infinite}@keyframes flash{50%{opacity:.45}}.room-scroll{overflow-anchor:auto;overflow-y:auto;overscroll-behavior:contain;scroll-padding-bottom:var(--space-4);flex:1;min-height:0}.room-content{display:flex;gap:var(--space-3);padding:var(--space-4)var(--space-3);flex-direction:column;justify-content:flex-end;width:100%;max-width:52rem;min-height:100%;margin:0 auto}.older{align-self: center}.messages{display:flex;list-style:none;flex-direction:column;gap:2px;margin:0;padding:0}.message{display:flex;align-items: flex-end;gap:var(--space-2);content-visibility:auto;contain-intrinsic-size:auto 6rem}@supports not (overflow-anchor: auto){.message{content-visibility:visible}}.message[data-header]{margin-top:var(--space-3)}.message[data-mine]{justify-content:flex-end}.message[data-enter],.line[data-enter],.slot[data-enter]{animation:arrive var(--dur-slow)var(--ease-out)both}@keyframes arrive{0%{opacity:0;transform:translateY(10px)scale(.985)}}.message-avatar{flex:none;align-self: flex-start;width:32px}.message-main{display:flex;flex-direction:column;gap:2px;min-width:0;max-width:min(40rem,86%)}.message[data-mine] .message-main{align-items: flex-end}.message-meta{display:flex;align-items:baseline;gap:var(--space-2);padding:0 var(--space-1);font-size:var(--text-xs);color:var(--muted)}.message-meta strong{color:var(--text);font-size:var(--text-sm)}.bubble{padding:var(--space-2)var(--space-3);border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);box-shadow:var(--shadow-1);min-width:0}.message[data-mine] .bubble{background:var(--accent);color:var(--on-accent);border-bottom-right-radius:var(--radius-sm);border-color:#0000}.message[data-mine] .bubble a,.message[data-mine] .bubble code{color:inherit}.message[data-mine] .prose code,.message[data-mine] .prose blockquote{background:#ffffff2e}.message[data-mine] .code-block pre{color:inherit;background:#0003;border-color:#0000}.message:not([data-mine]) .bubble{border-bottom-left-radius:var(--radius-sm)}.message[data-live] .bubble{border-style:dashed}.message[data-pending=sending] .bubble{opacity:.6}.message[data-pending=failed] .bubble{background:var(--danger-soft);border-color:var(--danger);color:var(--danger)}.pending-actions{justify-content:flex-end}.failure-text{color:var(--danger)}.files{display:flex;gap:var(--space-2);margin:var(--space-2)0 0;list-style:none;flex-wrap:wrap;padding:0}.bubble>.files:first-child{margin-top:0}.file-image{display:block;border-radius:var(--radius);object-fit:cover;max-width:min(100%,22rem);max-height:18rem}.file-chip{display:inline-flex;align-items: center;gap:var(--space-2);padding:var(--space-1)var(--space-3);border-radius:var(--radius-full);background:var(--surface-2);color:var(--text);font-size:var(--text-sm);text-decoration:none}.message[data-mine] .file-chip{color:inherit;background:#fff3}.line{display:flex;justify-content:center;align-items: center;gap:var(--space-2);margin:var(--space-2)0;font-size:var(--text-xs);color:var(--muted)}.day{display:flex;margin:var(--space-4)0 var(--space-1);font-size:var(--text-xs);color:var(--muted);justify-content:center}.day span{padding:0 var(--space-3);border-radius:var(--radius-full);background:var(--surface-2);line-height:1.5rem}.slot{list-style:none;margin:var(--space-2)0}.progress{display:flex;gap:var(--space-2);padding:var(--space-3);border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);animation:arrive var(--dur-slow)var(--ease-out)both;flex-direction:column}.progress-head{display:flex;align-items: center;gap:var(--space-3);font-size:var(--text-sm);color:var(--muted)}.progress-label{flex:1}.progress-bar{position:relative;overflow:hidden;border-radius:var(--radius-full);background:var(--surface-3);width:2.5rem;height:.3rem}.progress-bar:after{content:"";position:absolute;border-radius:inherit;background:var(--agent-accent,var(--accent));animation:sweep 1.3s var(--ease-in-out)infinite;width:60%;inset:0}@keyframes sweep{0%{transform:translate(-100%)}to{transform:translate(170%)}}.chips{display:flex;gap:var(--space-1);list-style:none;flex-wrap:wrap;margin:0;padding:0}.chip{display:inline-flex;align-items: center;gap:var(--space-2);padding:0 var(--space-3);border-radius:var(--radius-full);background:var(--surface-2);font-family:var(--font-mono);font-size:var(--text-xs);animation:chip-in var(--dur)var(--ease-spring)both;max-width:100%;line-height:1.6rem}@keyframes chip-in{0%{opacity:0;transform:scale(.85)}}.chip-more-item{display:contents}.chip-more{border:1px dashed var(--border);color:var(--muted);font:inherit;cursor:pointer;background:0 0;min-height:0}.chip-dot{border-radius:var(--radius-full);background:var(--muted);flex:none;width:.45rem;height:.45rem}.chip[data-status=running] .chip-dot{background:var(--accent);animation:pulse-dot 1s var(--ease-in-out)infinite}.chip[data-status=ok] .chip-dot{background:var(--success)}.chip[data-status=failed] .chip-dot,.chip[data-status=refused] .chip-dot{background:var(--danger)}@keyframes pulse-dot{50%{transform:scale(1.5);opacity:.5}}.chip-preview{overflow:hidden;color:var(--muted);text-overflow:ellipsis;white-space:nowrap;max-width:14rem}.progress-flow{display:block;text-align:left}.progress-text{overflow:hidden;color:var(--muted);font-size:var(--text-sm);text-align:left;white-space:pre-wrap;overflow-wrap:anywhere;-webkit-mask-image:linear-gradient(#0000,#000 40%);mask-image:linear-gradient(#0000,#000 40%);display:flex;background:0 0;border:0;flex-direction:column;justify-content:flex-end;width:100%;min-height:0;max-height:4.6em;padding:0;font-weight:400;line-height:1.5}.progress-text:hover:not(:disabled){background:0 0;border:0}.progress-text[data-expanded=true]{overflow-y:auto;-webkit-mask-image:none;mask-image:none;max-height:40dvh}.caret{display:inline-block;vertical-align:text-bottom;background:var(--accent);animation:1s steps(2,start) infinite blink;width:.5ch;height:1.05em;margin-left:2px}@keyframes blink{to{visibility:hidden}}.to-end{position:absolute;right:var(--space-4);z-index:3;padding:0 var(--space-3);border-radius:var(--radius-full);box-shadow:var(--shadow-2);animation:toast-in var(--dur-slow)var(--ease-spring)both;min-height:2.25rem;bottom:5.5rem}.room-note,.offline-note{padding:var(--space-3)var(--space-4);text-align:center;font-size:var(--text-sm);color:var(--muted);background:var(--surface);border-top:1px solid var(--border);margin:0}.offline-banner{display:flex;justify-content:center;align-items: center;gap:var(--space-2);padding:var(--space-2)var(--space-4);background:var(--warn-soft);color:var(--warn);font-size:var(--text-sm);font-weight:var(--weight-medium);animation:banner-in var(--dur-slow)var(--ease-out)both}@keyframes banner-in{0%{opacity:0;transform:translateY(-6px)}}.spinner{border-radius:var(--radius-full);animation:.8s linear infinite spin;border:2px solid;border-right-color:#0000;flex:none;width:.9rem;height:.9rem}@keyframes spin{to{transform:rotate(360deg)}}.pending-note{color:var(--muted)}.composer{display:flex;gap:var(--space-2);padding:var(--space-2)var(--space-3)calc(var(--space-2) + var(--safe-bottom));flex-direction:column;width:100%;max-width:52rem;margin:0 auto}.composer-row{display:flex;align-items: flex-end;gap:var(--space-1);padding:var(--space-1);border:1px solid var(--control-border);background:var(--surface);box-shadow:var(--shadow-1);transition:border-color var(--dur-fast)var(--ease-out),box-shadow var(--dur)var(--ease-out);border-radius:1.5rem}.composer-row:focus-within{border-color:var(--agent-accent,var(--accent));box-shadow:0 0 0 3px color-mix(in srgb,var(--agent-accent,var(--accent))24%,transparent)}.composer textarea{min-height:var(--touch);padding:.7rem var(--space-2);resize:none;background:0 0;border:0;flex:1;max-height:200px;font-size:1rem}.composer textarea:focus-visible{outline:none}.composer-send{width:var(--touch);height:var(--touch);border-radius:var(--radius-full);flex:none;padding:0}.composer-send:disabled{background:var(--surface-3);color:var(--muted);border-color:#0000}.composer-stop{border-radius:var(--radius-full);background:var(--danger-soft);color:var(--danger);flex:none}.composer-stop:hover:not(:disabled){background:var(--danger-soft);color:var(--danger);box-shadow:inset 0 0 0 1px var(--danger)}.attached{display:flex;gap:var(--space-1);list-style:none;flex-wrap:wrap;margin:0;padding:0}.attached-chip{display:inline-flex;align-items: center;gap:var(--space-2);padding:0 0 0 var(--space-3);border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);font-size:var(--text-sm);animation:chip-in var(--dur)var(--ease-spring)both;max-width:100%}.chip-body{display:flex;text-align:left;flex-direction:column;min-width:0}.chip-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:14rem}.chip-body .meta{overflow:hidden;font-size:var(--text-xs);text-overflow:ellipsis;white-space:nowrap;max-width:14rem}.chip-take{display:inline-flex;align-items: center;gap:var(--space-2);padding:var(--space-1)0;color:inherit;background:0 0;border:0;min-height:0;font-weight:400}.chip-take:hover:not(:disabled){color:var(--accent);background:0 0;border:0}.attached-chip[data-state=uploading]{opacity:.6}.attached-chip[data-state=failed]{border-color:var(--danger);color:var(--danger)}.attached-chip .icon-button{width:2rem;min-width:2rem;height:2rem;min-height:2rem}.prompt{display:flex;gap:var(--space-3);padding:var(--space-4);border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);box-shadow:var(--shadow-2);transition:box-shadow var(--dur-slow)var(--ease-out),opacity var(--dur-slow)var(--ease-out);flex-direction:column}.prompt-action{background:linear-gradient(180deg,var(--accent-soft),var(--surface)3.5rem)}.prompt-timeout{background:linear-gradient(180deg,var(--warn-soft),var(--surface)3.5rem)}.prompt-ask{background:linear-gradient(180deg,var(--long-soft),var(--surface)3.5rem)}.prompt[data-ended]{box-shadow:var(--shadow-1);background:var(--surface)}.prompt-head{display:flex;align-items: center;gap:var(--space-2);flex-wrap:wrap}.prompt-icon{display:grid;border-radius:var(--radius);background:var(--accent-soft);color:var(--accent-ink);place-items: center;width:1.9rem;height:1.9rem}.prompt-timeout .prompt-icon{background:var(--warn-soft);color:var(--warn)}.prompt-ask .prompt-icon{background:var(--long-soft);color:var(--long)}.prompt-outcome{display:inline-flex;align-items: center;gap:var(--space-1);padding:0 var(--space-2);border-radius:var(--radius-full);background:var(--surface-2);color:var(--muted);font-size:var(--text-xs);animation:chip-in var(--dur)var(--ease-spring)both;margin-left:auto;line-height:1.4rem}.prompt-outcome[data-outcome=approved],.prompt-outcome[data-outcome=answered]{background:var(--success-soft);color:var(--success)}.prompt-outcome[data-outcome=declined],.prompt-outcome[data-outcome=cancelled]{background:var(--danger-soft);color:var(--danger)}.prompt-meta{color:var(--muted);font-size:var(--text-xs);margin:0}.collapse{display:grid;grid-template-rows:0fr;opacity:0;transition:grid-template-rows var(--dur-slow)var(--ease-out),opacity var(--dur)var(--ease-out)}.collapse[data-open=true]{grid-template-rows:1fr;opacity:1}.collapse-inner{display:flex;gap:var(--space-3);overflow:hidden;flex-direction:column;min-height:0;margin:-3px;padding:3px}.prompt-details{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-2);font-size:var(--text-sm)}.prompt-details summary{padding:var(--space-2)var(--space-3);cursor:pointer;font-weight:var(--weight-medium)}.prompt-details>:not(summary){padding:0 var(--space-3)var(--space-3);margin:0}.prompt-input{overflow:auto;font-family:var(--font-mono);font-size:var(--text-xs);white-space:pre-wrap;overflow-wrap:anywhere;max-height:14rem}.prompt-files{list-style:none}.prompt-files li{display:flex;align-items: center;gap:var(--space-2)}.copy-action{align-self: flex-start}.field,.options{display:flex;gap:var(--space-2);flex-direction:column}.prompt textarea{resize:none}.prompt-answer{padding:var(--space-2)var(--space-3);border-radius:var(--radius);background:var(--surface-2);font-size:var(--text-sm);list-style:none;margin:0}.option{align-items: flex-start;gap:var(--space-3);min-height:var(--touch);padding:var(--space-2)var(--space-3);border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);color:var(--text);font-size:var(--text-base);cursor:pointer;transition:border-color var(--dur-fast)var(--ease-out),background-color var(--dur-fast)var(--ease-out);flex-direction:row}.option:hover{border-color:var(--border-strong)}.option[data-checked=true]{border-color:var(--accent);background:var(--accent-soft)}.option input{margin-top:.15rem}.option span{display:flex;flex-direction:column}.option-preview{padding:var(--space-3);overflow:auto;border-radius:var(--radius);background:var(--surface-2);font-family:var(--font-mono);font-size:var(--text-xs);white-space:pre-wrap;animation:arrive var(--dur)var(--ease-out)both;max-height:12rem;margin:0}dialog.palette{width:min(36rem,100vw - 1.5rem);max-height:min(70dvh,32rem);margin:12vh auto auto}dialog.palette .sheet-body{gap:0;padding:0}@media (max-width:719px){dialog.palette{margin:calc(var(--safe-top) + .5rem)auto auto;border-radius:var(--radius-lg);border-bottom:1px solid var(--border);opacity:0;width:calc(100vw - 1rem);transform:translateY(-12px)scale(.98)}dialog.palette[data-state=open]{opacity:1;transform:none}dialog.palette[data-state=closing]{opacity:0;transform:translateY(-12px)scale(.98)}dialog.palette .sheet-grab{display:none}}.palette-input{display:flex;align-items: center;gap:var(--space-3);padding:0 var(--space-4);border-bottom:1px solid var(--border);color:var(--muted)}.palette-input input{color:var(--text);background:0 0;border:0;min-height:3.25rem;font-size:1rem}.palette-input input:focus-visible{outline:none}.palette-list{padding:var(--space-2);overflow-y:auto;list-style:none;margin:0}.palette-list a{display:flex;align-items: center;gap:var(--space-3);min-height:var(--touch);padding:0 var(--space-3);border-radius:var(--radius);color:var(--text);text-decoration:none}.palette-list li[data-active] a,.palette-list a[aria-current=true]{background:var(--accent-soft);color:var(--accent-ink)}.palette-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1}.palette-icon{display:grid;border-radius:var(--radius-full);background:var(--surface-2);place-items: center;width:28px;height:28px}.palette-empty{padding:var(--space-4);text-align:center;color:var(--muted)}.profile-head{display:flex;align-items: center;gap:var(--space-4)}.profile-head>div{display:flex;gap:var(--space-2);flex-direction:column;align-items: flex-start}.schedule-list{display:flex;gap:var(--space-3);list-style:none;flex-direction:column;margin:0;padding:0}.schedule{display:flex;align-items: flex-start;gap:var(--space-3)}.schedule-main{display:flex;gap:var(--space-1);flex-direction:column;flex:1;min-width:0}.schedule-prompt{overflow:hidden;display:-webkit-box;-webkit-line-clamp:3;color:var(--text);overflow-wrap:anywhere;-webkit-box-orient:vertical;margin:0}.split{display:grid;grid-template-columns:minmax(18rem,22rem)minmax(0,1fr);flex:1;min-height:0}.split-list{overflow-y:auto;border-right:1px solid var(--border);background:var(--bg);min-height:0}.split-list .page[data-column]{padding:var(--space-4);gap:var(--space-4);max-width:none}.split-list .search-button span{display:none}.split-detail{display:flex;min-width:0;min-height:0}.split-detail .room{min-width:0}.agent-sheet .form{max-width:none}.agent-sheet h3{font-size:var(--text-md)}.field-head{display:flex;justify-content:space-between;align-items: center;gap:var(--space-3)}.field-label,.agent-sheet legend{font-size:var(--text-sm);color:var(--muted);font-weight:var(--weight-medium)}button.compact{padding:0 var(--space-3);font-size:var(--text-sm);min-height:2rem}.option-chips{display:flex;gap:var(--space-2);overflow-y:auto;overscroll-behavior:contain;flex-wrap:wrap;max-height:10.5rem}button.option-chip{padding:0 var(--space-3);border-color:var(--control-border);border-radius:var(--radius-full);background:var(--surface);color:var(--text);font-size:var(--text-sm);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%;min-height:2.25rem;font-weight:400}button.option-chip:hover:not(:disabled){border-color:var(--accent);background:var(--surface-2)}button.option-chip[aria-pressed=true],button.option-chip[aria-pressed=true]:hover:not(:disabled){border-color:var(--accent);background:var(--accent);color:var(--on-accent)}textarea.prompt-full{resize:none;font-family:var(--font-mono);font-size:var(--text-sm);flex:1;min-height:12rem}.review-fields{display:flex;gap:var(--space-2);list-style:none;flex-direction:column;margin:0;padding:0}.review-fields li{display:flex;align-items:baseline;gap:var(--space-2);font-size:var(--text-sm);flex-wrap:wrap}.review-before{color:var(--muted);text-decoration:line-through}pre.diff{padding:var(--space-2)0;overflow:auto;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);font-family:var(--font-mono);font-size:var(--text-xs);max-height:18rem;margin:0;line-height:1.5}.diff-line{display:block;padding:0 var(--space-3)0 0;white-space:pre-wrap;overflow-wrap:anywhere}.diff-line[data-kind=add]{background:color-mix(in srgb,var(--success)16%,transparent)}.diff-line[data-kind=del]{background:color-mix(in srgb,var(--danger)16%,transparent)}.diff-mark{display:inline-block;text-align:center;color:var(--muted);user-select:none;width:1.5rem}.field-tools{display:inline-flex;align-items: center;gap:var(--space-2)}.sheet.full .field textarea.prompt-full{min-height:55vh}.sheet.full .sheet-body>.stack,.sheet.full .review,.sheet.full .review>.field{flex:1;min-height:0}.sheet.full .review pre.diff{flex:1;min-height:12rem;max-height:none}.skill-lock{display:flex;align-items: center;gap:var(--space-2)}.history .menu-item[aria-pressed=true]{background:var(--surface-2)}.creator{display:grid;gap:var(--space-5);align-items: start}@media (min-width:720px){.creator{grid-template-columns:13rem minmax(0,1fr)}.creator-preview{position:sticky;top:var(--space-4)}}.creator-preview{display:flex;align-items: center;gap:var(--space-3);padding:var(--space-4);border:1px solid var(--border);border-radius:var(--radius-lg);background:color-mix(in srgb,var(--agent-accent,var(--accent))8%,var(--surface));flex-direction:column}.creator-body{display:flex;gap:var(--space-4);flex-direction:column;min-width:0}.creator-field{display:flex;gap:var(--space-2);flex-direction:column;min-width:0}.creator-field h3{font-size:var(--text-sm);color:var(--muted);font-weight:var(--weight-medium)}dialog.sheet dialog.sheet .creator-field>h3{display:none}.creator-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(4.5rem,1fr));gap:var(--space-2)}.creator-strip{display:flex;gap:var(--space-2);padding:3px 3px var(--space-1);overflow-x:auto;scroll-snap-type:x proximity}.creator-strip[data-more=end]{-webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 2.5rem),#0000);mask-image:linear-gradient(90deg,#000 calc(100% - 2.5rem),#0000)}.creator-strip[data-more=start]{-webkit-mask-image:linear-gradient(270deg,#000 calc(100% - 2.5rem),#0000);mask-image:linear-gradient(270deg,#000 calc(100% - 2.5rem),#0000)}.creator-strip[data-more=both]{-webkit-mask-image:linear-gradient(90deg,#0000,#000 2.5rem calc(100% - 2.5rem),#0000);mask-image:linear-gradient(90deg,#0000,#000 2.5rem calc(100% - 2.5rem),#0000)}.creator-tile{display:flex;padding:var(--space-2)var(--space-1);border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);color:var(--text);font-size:var(--text-xs);scroll-snap-align:start;flex-direction:column;flex:none;align-items: center;gap:2px;min-width:4.25rem}.creator-grid .creator-tile{min-width:0}.creator-tile span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}.creator-tile:hover{border-color:var(--control-border)}.creator-tile[aria-pressed=true],.creator-swatch[aria-pressed=true]{border-color:var(--agent-accent,var(--accent));background:color-mix(in srgb,var(--agent-accent,var(--accent))14%,var(--surface));box-shadow:0 0 0 2px var(--agent-accent,var(--accent))}.creator-swatches{display:flex;align-items: center;gap:var(--space-2);border:0;flex-wrap:wrap;margin:0;padding:0}.creator-swatch{border:2px solid var(--surface);border-radius:var(--radius-full);box-shadow:0 0 0 1px var(--control-border);width:2.25rem;height:2.25rem;min-height:0;padding:0}.creator-custom{display:flex;gap:var(--space-4);flex-wrap:wrap}.creator-custom label{display:flex;align-items: flex-start;gap:var(--space-1);font-size:var(--text-sm);color:var(--muted);flex-direction:column}.creator-custom input[type=color],.creator-swatches input[type=color]{border:1px solid var(--control-border);border-radius:var(--radius-sm);background:0 0;width:2.25rem;height:2.25rem;padding:0}.field-error{color:var(--danger);font-size:var(--text-sm);margin:0}.creator-sections{display:flex;gap:var(--space-2);list-style:none;flex-direction:column;margin:0;padding:0}.creator-section{display:flex;justify-content:space-between;align-items: center;gap:var(--space-3);text-align:left;width:100%}.creator-actions{flex-wrap:wrap}[data-hold]{-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}[data-hold=text] .bubble{-webkit-user-select:text;user-select:text}.message[data-hold]:focus-visible{outline:2px solid var(--focus,var(--accent));outline-offset:2px;border-radius:var(--radius-lg)}.action-popover{position:fixed;z-index:60;display:flex;overflow-y:auto;padding:var(--space-1);border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);box-shadow:var(--shadow-2);outline:none;animation:popover-in var(--dur)var(--ease-out)both;flex-direction:column;min-width:13rem;max-width:min(22rem,100vw - 16px);max-height:calc(100dvh - 16px)}@keyframes popover-in{0%{opacity:0;transform:translateY(-4px)scale(.98)}}.action-popover .menu-item{padding:var(--space-1)var(--space-2);font-size:var(--text-sm);cursor:pointer;min-height:2.5rem}.action-popover .menu-icon{width:1.75rem;height:1.75rem}.action-items .menu-item{cursor:pointer}.action-items .menu-item:hover{background:var(--surface-2)}.action-items .menu-item:focus-visible{background:var(--surface-2)}.action-items .menu-item[data-tone=danger] strong{color:var(--danger)}.action-items .menu-check{color:var(--accent);flex:none;margin-left:auto}.action-popover .menu-item[role]{width:100%}.rt-table{position:relative;display:flex;aspect-ratio:10/11;flex-direction:column;width:100%;min-height:0;max-height:100%}.rt-table[data-variant=full]:not([data-list]){aspect-ratio:auto;flex:1 1 0;min-height:16rem}.rt-table[data-variant=compact]{aspect-ratio:auto;flex:none;height:120px}.rt-table-stage{position:relative;flex:1 1 0;min-height:0}.rt-table[data-list]{aspect-ratio:auto;height:100%}.rt-table[data-list] .rt-table-stage{aspect-ratio:10/11;flex:none;max-height:60%}.rt-table[data-list] .rt-table-stage>ul{display:none}.rt-table-list{overflow:auto;display:grid;grid-template-columns:repeat(auto-fill,minmax(8.5rem,1fr));list-style:none;flex:auto;gap:.4rem;min-height:0;margin:0;padding:.5rem}.rt-table-list button{display:flex;color:inherit;font:inherit;text-align:start;cursor:pointer;background:0 0;border:1px solid;border-radius:.5rem;align-items: center;gap:.5rem;width:100%;min-height:2.75rem;padding:.4rem .6rem}.rt-table-list button:before{content:"";background:var(--seat);border-radius:50%;flex:none;width:.75rem;height:.75rem}.t2d{position:relative;overflow:hidden;user-select:none;-webkit-user-select:none;width:100%;height:100%}.t2d svg{display:block;width:100%;height:100%}.t2d .seat{cursor:pointer;outline:none}.t2d .seat:focus-visible .plate{stroke:currentColor;stroke-width:3}.t2d .seat .lift,.t2d .seat .halo,.t2d .seat .badge,.t2d .seat .orbit,.t2d .seat .beam{transform-box:fill-box;transform-origin:center}.t2d .seat .halo{opacity:0;transition:opacity .35s}.t2d .seat .badge{opacity:0;transition:opacity .25s,transform .35s cubic-bezier(.3,1.6,.5,1);transform:scale(.4)}.t2d .seat .orbit{opacity:0;transition:opacity .3s}.t2d .seat .beam{opacity:0;transition:opacity .35s}.t2d .seat:hover .halo{opacity:.35}.t2d.focus .seat:not([data-focus]) .lift{opacity:.7}.t2d .seat[data-focus] .lift{transform:scale(1.06)}.t2d.dim .seat:not([data-state=speaking]) .lift{opacity:.78}.t2d .seat[data-state=idle] .lift{animation:3.4s ease-in-out infinite t2d-breathe}.t2d .seat[data-state=thinking] .halo{opacity:.25}.t2d .seat[data-state=thinking] .orbit{opacity:1;animation:2.6s linear infinite t2d-spin}.t2d .seat[data-state=working] .halo{opacity:.7;animation:1.1s ease-in-out infinite t2d-pulse}.t2d .seat[data-state=working] .lift{animation:.55s ease-in-out infinite t2d-bob}.t2d .seat[data-state=waiting] .halo{opacity:.8;animation:1.7s ease-in-out infinite t2d-pulse}.t2d .seat[data-state=waiting] .badge{opacity:1;animation:1.6s ease-in-out infinite t2d-wave;transform:scale(1)}.t2d .seat[data-state=waiting] .lift{transform:translateY(2px)}.t2d .seat[data-state=speaking] .halo{opacity:.85}.t2d .seat[data-state=speaking] .beam{opacity:1}.t2d .seat[data-state=speaking] .lift{animation:.5s ease-in-out infinite t2d-talk}.t2d .seat[data-state=done] .badge{opacity:1;transform:scale(1)}.t2d .seat[data-state=done] .lift{animation:.6s ease-out t2d-pop}.t2d .seat[data-state=done] .halo{opacity:.4}.t2d .seat[data-state=error] .badge{opacity:1;transform:scale(1)}.t2d .seat[data-state=error] .lift{animation:.45s linear t2d-shake}.t2d .seat[data-state=error] .halo{opacity:.85;animation:.9s steps(2,end) 2 both t2d-flicker}@keyframes t2d-breathe{50%{transform:scaleY(1.02)}}@keyframes t2d-spin{to{transform:rotate(360deg)}}@keyframes t2d-pulse{50%{opacity:.35;transform:scale(1.08)}}@keyframes t2d-bob{50%{transform:translateY(-3px)}}@keyframes t2d-wave{50%{transform:scale(1.12)rotate(6deg)}}@keyframes t2d-talk{50%{transform:scale(1.025)}}@keyframes t2d-pop{40%{transform:scale(1.14)}}@keyframes t2d-shake{20%{transform:translate(-4px)}40%{transform:translate(4px)}60%{transform:translate(-3px)}80%{transform:translate(2px)}}@keyframes t2d-flicker{50%{opacity:.25}}.t2d.reduced .seat *{animation:none!important;transition:none!important}.t2d .seat-in{animation:.82s ease-out both t2d-in}.t2d .seat-out{pointer-events:none;animation:.64s ease-in both t2d-out}.t2d .seat-ring{fill:none;stroke-width:3;transform-box:fill-box;transform-origin:center;animation:.82s ease-out both t2d-ring}.t2d .seat-out .puff{transform-box:fill-box;transform-origin:center;animation:.72s ease-out both t2d-puff}.t2d.reduced .seat-in,.t2d.reduced .seat-out{animation-duration:.16s}.t2d.reduced .seat-ring,.t2d.reduced .seat-out .puff{display:none}@keyframes t2d-in{0%{opacity:0}}@keyframes t2d-out{40%{opacity:1}to{opacity:0}}@keyframes t2d-ring{0%{opacity:0;transform:scale(.3)}40%{opacity:1}to{opacity:0;transform:scale(1.4)}}@keyframes t2d-puff{0%{opacity:1;transform:scale(.3)}50%{opacity:1}to{opacity:0;transform:translateY(-18px)scale(1.5)}}.t2d.reduced .seat[data-state=waiting] .halo,.t2d.reduced .seat[data-state=working] .halo{opacity:.6}.table-page{display:flex;gap:var(--space-2);padding:var(--space-3)var(--space-3)var(--space-2);flex-direction:column;flex:1;width:100%;min-height:0}@media (min-width:720px){.table-page{padding:var(--space-5)var(--space-6)var(--space-4)}}.table-frame{display:flex;flex-direction:column;flex:1;min-height:0}.table-host{display:flex;flex-direction:column;flex:1;justify-content:flex-start;align-items: center;width:100%;min-height:0}.table-empty{margin:var(--space-8)auto;color:var(--muted)}.table-empty-state{margin:var(--space-8)auto;display:flex;align-items: center;gap:var(--space-2);text-align:center;flex-direction:column;max-width:24rem}.table-empty-state p{margin:0}.table-tools{display:flex;align-items: center;gap:var(--space-2)}.seat-row .menu-text{flex:1;min-width:0}.room-table-slot{flex:none}.group-strip{border-bottom:1px solid var(--border);background:var(--surface)}.group-table-button{gap:var(--space-1);padding-inline:var(--space-2);width:auto}.group-table-label{font-size:var(--text-xs)}.rt-names{position:absolute;overflow:hidden;pointer-events:none;font-family:var(--rt-font,system-ui,sans-serif);inset:0}.rt-name{position:absolute;border:2px solid var(--rt-ink,#0b0f1e);background:linear-gradient(var(--rt-gold,#e3b24b),var(--rt-gold-dark,#9a6c1d));color:var(--rt-plate-ink,#3a2410);font:700 var(--rt-name-size,12px)/1.25 var(--rt-font,system-ui,sans-serif);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer;pointer-events:auto;visibility:hidden;will-change:transform;border-radius:.3em;max-width:12em;min-height:0;padding:.12em .7em .16em;top:0;left:0}.rt-name:focus-visible{outline:3px solid var(--accent,#3a5bd9);outline-offset:2px}.rt-speed{mix-blend-mode:screen}.table-frame{position:relative}.room-scene,.room-scene .table-host{flex:1;min-height:0}.scene-box{position:absolute;inset-inline:var(--space-3);bottom:var(--space-3);display:flex;border:3px solid var(--rt-ink,#0b0f1e);background:color-mix(in srgb,var(--surface)94%,transparent);transform:translateY(calc(100% + var(--space-4)));opacity:0;pointer-events:none;z-index:4;border-radius:1.1rem;flex-direction:column;max-width:46rem;max-height:62%;margin-inline-start:auto;margin-inline-end:auto;transition:transform .36s cubic-bezier(.2,.9,.25,1.05),opacity .2s ease-out;box-shadow:0 .6rem 2rem #00000073}.scene-box[data-open]{opacity:1;pointer-events:auto;transform:none}.scene-tab{display:flex;align-items: center;gap:var(--space-2);margin:-1.1rem var(--space-3)0;padding:.2rem var(--space-2).2rem .3rem;max-width:calc(100% - 2*var(--space-3));border:3px solid var(--rt-ink,#0b0f1e);background:var(--agent-accent,var(--accent));color:#fff;border-radius:.8rem;align-self: flex-start}.scene-chip{display:grid;border:3px solid var(--rt-ink,#0b0f1e);background:var(--surface);overflow:hidden;border-radius:50%;place-items: center;width:2.4rem;height:2.4rem;margin:-.9rem 0 -.3rem}.scene-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:var(--text-md);text-shadow:0 1px #00000059;flex:0 auto;min-width:4ch}.scene-tools{display:flex;flex:none;align-items: center;gap:.15rem;margin-inline-start:var(--space-2)}.scene-tools .icon-button{color:inherit}.scene-log-button{gap:var(--space-1);padding-inline:var(--space-2);font-size:var(--text-xs);flex:none;width:auto}.scene-log-button span{white-space:nowrap}.scene-body{overflow:auto;padding:var(--space-2)var(--space-3)var(--space-1);flex:auto;min-height:0}.scene-line{overflow-wrap:anywhere;min-height:2.6rem;font-size:1.02rem;line-height:1.55}.scene-line[role=button]{cursor:pointer}.scene-line>:first-child{margin-top:0}.scene-from{display:block;color:var(--muted);font-size:var(--text-xs)}.scene-card{margin-top:var(--space-2)}.scene-composer{border-top:1px solid var(--border);flex:none}.scene-box[data-collapsed] .scene-body,.scene-box[data-collapsed] .scene-composer{display:none}.scene-log{overflow:auto;padding:var(--space-2)var(--space-3);max-height:70dvh}@media (max-width:719px){.scene-tools{margin-inline-start:var(--space-1)}.scene-tools .icon-button{width:2.5rem;min-width:2.5rem}.scene-tools .scene-log-button{padding-inline:var(--space-1);width:auto}}@media (max-width:719px) and (orientation:portrait){.table-frame[data-focused]{display:grid;grid-template-rows:55% minmax(0,1fr)}.table-frame[data-focused] .table-host{min-height:0}.table-frame[data-focused] .scene-box{position:relative;border-bottom:0;border-radius:1rem 1rem 0 0;max-width:none;min-height:0;max-height:none;margin:0;inset:auto}}@media (max-width:719px) and (orientation:landscape){.scene-box{inset-inline:var(--space-2);bottom:var(--space-1);max-width:none;max-height:38%}}@media (prefers-reduced-motion:reduce){.scene-box{transition:none}}.ws-page{display:flex;flex-direction:column;flex:1;min-height:0}.ws{height:100%}.ws-head{display:flex;align-items: center;gap:var(--space-2);min-height:var(--touch);padding:var(--space-1)var(--space-3);border-bottom:1px solid var(--border);background:var(--surface)}.ws-root-picker{flex:none;width:auto;min-width:9rem;max-width:14rem;min-height:2.25rem}.ws-crumbs{display:flex;align-items: center;gap:var(--space-1);overflow-x:auto;scrollbar-width:none;white-space:nowrap;font-size:var(--text-sm);-webkit-overflow-scrolling:touch;flex:1;min-width:0}.ws-crumbs::-webkit-scrollbar{display:none}.ws-crumbs a{display:inline-flex;padding:0 var(--space-3);border-radius:var(--radius-full);background:var(--surface-2);color:var(--text);text-decoration:none;overflow:hidden;text-overflow:ellipsis;flex:none;align-items: center;max-width:14rem;min-height:2rem}.ws-crumbs a[aria-current=page]{background:var(--accent-soft);color:var(--accent-ink);font-weight:var(--weight-medium)}.ws-crumbs a:hover{background:var(--surface-3)}.ws-crumbs a+a:before{content:"/";margin-right:var(--space-2);color:var(--muted)}.ws-head-actions{display:flex;flex:none;gap:0}.ws-body{display:flex;flex:1;min-height:0}.ws-main{display:flex;overflow:auto;flex-direction:column;flex:1;min-width:0;min-height:0}.ws-tree{width:var(--ws-tree,280px);overflow:auto;padding:var(--space-2)0;border-right:1px solid var(--border);background:var(--surface);font-size:var(--text-sm);flex:none}.ws-resizer{z-index:1;cursor:col-resize;touch-action:none;flex:none;width:6px;margin-left:-3px;margin-right:-3px}.ws-resizer:hover{background:var(--accent-soft);outline:none}.ws-resizer:focus-visible{background:var(--accent-soft);outline:none}.ws-tree-list{list-style:none;margin:0;padding:0}.ws-tree-row{display:flex;padding-right:var(--space-2);align-items: center;min-height:1.875rem}.ws-tree-row a,.ws-tree-off{display:flex;align-items: center;gap:var(--space-2);padding:0 var(--space-2);border-radius:var(--radius-sm);color:var(--text);text-decoration:none;flex:1;min-width:0;min-height:1.75rem}.ws-tree-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ws-tree-row a:hover{background:var(--surface-2)}.ws-tree-row[data-selected] a{background:var(--accent-soft);color:var(--accent-ink)}.ws-tree-row[data-quiet]{opacity:.6}.ws-tree-off{color:var(--muted);cursor:not-allowed}.ws-tree-note{padding:var(--space-1)var(--space-3);color:var(--muted);font-size:var(--text-xs);margin:0}.ws-twist{display:inline-grid;color:var(--muted);background:0 0;border:none;flex:none;place-items: center;width:1.5rem;min-width:1.5rem;height:1.5rem;min-height:1.5rem;padding:0}.ws-twist svg{transition:transform var(--dur-fast)var(--ease-out)}.ws-twist[aria-expanded=true] svg{transform:rotate(90deg)}.ws-dir{padding:var(--space-2)var(--space-3)calc(var(--space-6) + var(--safe-bottom));display:flex;gap:var(--space-3);flex-direction:column}.ws-rows{list-style:none;display:flex;flex-direction:column;margin:0;padding:0}.ws-row{display:flex;border-bottom:1px solid var(--border);align-items: center}.ws-row[data-quiet]{opacity:.6}.ws-row-link{display:flex;align-items: center;gap:var(--space-3);padding:var(--space-2)var(--space-1);color:var(--text);text-decoration:none;flex:1;min-width:0;min-height:3rem}.ws-row-link[data-off]{color:var(--muted)}a.ws-row-link:hover{background:var(--surface-2)}.ws-row-icon{color:var(--muted);flex:none}.ws-row-main{display:flex;flex-direction:column;min-width:0}.ws-row-main strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:var(--weight-medium)}.ws-file{display:flex;flex-direction:column;flex:1;min-width:0;min-height:0}.ws-file-head{display:flex;align-items: center;gap:var(--space-3);padding:var(--space-2)var(--space-3);border-bottom:1px solid var(--border);background:var(--surface);flex-wrap:wrap;flex:none}.ws-file-title{display:flex;flex-direction:column;flex:1;min-width:8rem}.ws-file-title strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ws-actions{display:flex;align-items: center;gap:var(--space-2);flex:none}.ws-banner{display:flex;align-items: center;gap:var(--space-2);padding:var(--space-2)var(--space-3);background:var(--warn-soft);color:var(--warn);border-bottom:1px solid var(--warn);font-size:var(--text-sm);flex-wrap:wrap;flex:none}.ws-banner-text{flex:1;min-width:10rem}.ws-view,.ws-editor{display:flex;background:var(--code-bg);flex-direction:column;flex:1;min-height:0}.ws-editor .cm-editor{flex:1;min-height:0}.ws-editor{--code-size:16px}@media (min-width:720px){.ws-editor{--code-size:13px}}.ws-plain{padding:var(--space-3);overflow:auto;font-family:var(--font-mono);font-size:var(--code-size);color:var(--code-fg);tab-size:2;flex:1;margin:0;line-height:1.55}.ws-media{display:flex;flex-direction:column;flex:1;min-height:0}.ws-image{display:grid;padding:var(--space-4);overflow:auto;background-color:var(--surface-2);background-image:linear-gradient(45deg,var(--surface-3,var(--border))25%,transparent 25%,transparent 75%,var(--surface-3,var(--border))75%),linear-gradient(45deg,var(--surface-3,var(--border))25%,transparent 25%,transparent 75%,var(--surface-3,var(--border))75%);background-position:0 0,8px 8px;background-size:16px 16px;place-items: center}.ws-image-toggle{display:grid;cursor:zoom-in;background:0 0;border:0;place-items: center;max-width:100%;max-height:100%;padding:0}.ws-image[data-actual] .ws-image-toggle{cursor:zoom-out;max-width:none;max-height:none}.ws-image img{object-fit:contain;max-width:100%;max-height:100%}.ws-image[data-actual] img{max-width:none;max-height:none}.ws-pdf-frame{gap:var(--space-2)}.ws-pdf{background:var(--surface-2);border:0;flex:1;width:100%;min-height:0}.ws-media-actions{display:flex;gap:var(--space-3);padding:var(--space-2)var(--space-4);flex-wrap:wrap}.ws-sound,.ws-film{padding:var(--space-4);background:var(--surface-2);justify-content:center;align-items: center}.ws-sound audio,.ws-film video{width:100%;max-height:100%}.ws-card-icon{color:var(--muted,inherit)}.ws-card{margin:var(--space-4);display:flex;align-items: flex-start;gap:var(--space-3);flex-direction:column}.ws-card p{margin:0}.button-link{display:inline-flex;align-items: center;gap:var(--space-2);padding:0 var(--space-4);border-radius:var(--radius);background:var(--accent);color:var(--on-accent);text-decoration:none;font-weight:var(--weight-medium);min-height:2.5rem}.ws-editbar{display:flex;gap:var(--space-2);overflow-x:auto;padding:var(--space-2)var(--space-3)calc(var(--space-2) + var(--safe-bottom));border-top:1px solid var(--border);background:var(--surface);flex:none}.ws-editbar button{min-height:var(--touch);min-width:var(--touch);flex:none}[data-look=camelot] .ws-head,[data-look=camelot] .ws-file-head{border-bottom-color:var(--gold-soft);box-shadow:0 1px 0 color-mix(in srgb,var(--gold)38%,transparent)}[data-look=camelot] .ws-tree{background:var(--surface);border-right-color:var(--gold-soft)}[data-look=camelot] .ws-tree-row[data-selected] a{background:var(--gold-wash);color:var(--accent-ink)}[data-look=camelot] .ws-tree-row a svg,[data-look=camelot] .ws-row-icon{color:var(--gold)}[data-look=camelot] .ws-view{margin:var(--space-2)var(--space-3)var(--space-3);border:1px solid color-mix(in srgb,var(--gold)34%,var(--border));border-radius:var(--radius);overflow:hidden}[data-look=camelot] .ws-crumbs a[aria-current=page]{background:var(--gold-wash)}@media (prefers-reduced-motion:reduce){.ws-twist svg{transition:none}}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{oi,w}from"./chunk-index-v23m38p6.js";function It(n,o){let s=new Map;for(let e of n.order){let t=n.rooms[e]?.view;if(t)s.set(e,t)}let l=(e)=>{let t=s.get(e);return t!==void 0&&t.kind!=="thread"&&!t.home},i=new Set,g=(e)=>e.filter((t)=>{if(!l(t)||i.has(t))return!1;return i.add(t),!0}),m=g(n.pins),u=n.folders.map((e)=>({id:e.id,name:e.name,rooms:g(e.rooms)})),a=[],y={},r={open:[],closed:[]},d=new Set([...s].filter(([,e])=>e.kind!=="thread").map(([e])=>e)),p=[],f=0;for(let[e,t]of s)if(f+=1,t.kind==="thread"){let h=r;if(t.parent&&d.has(t.parent))h=y[t.parent]??{open:[],closed:[]},y[t.parent]=h;(t.closed?h.closed:h.open).push(e)}else if(t.home)a.push(e);else if(!i.has(e))p.push({key:e,index:f,at:o(e)});p.sort((e,t)=>e.at===t.at?e.index-t.index:t.at-e.at);let c=p.map((e)=>e.key),k=(e)=>s.get(e)?.kind;return{home:a,pinned:m,folders:u,rest:c,restAgents:c.filter((e)=>k(e)==="agent"),restGroups:c.filter((e)=>k(e)==="group"),threads:y,orphans:r}}function ls(n,o,s,l=!1){let i=It(n,o),g=new Map(n.order.map((r,d)=>[r,d])),m=(r)=>[...r].sort((d,p)=>{let f=o(d),c=o(p);return f===c?(g.get(d)??0)-(g.get(p)??0):c-f}),u=m([...i.home,...i.pinned,...i.folders.flatMap((r)=>r.rooms),...i.rest].filter(s)),a=(r)=>r.filter((d)=>!u.includes(d));return[{id:"waiting",keys:u},{id:"home",keys:a(i.home)},{id:"pinned",keys:a(i.pinned)},...i.folders.map((r)=>({id:r.id,title:r.name,keys:a(r.rooms)})),{id:"rest",keys:a(m(i.rest))}].filter((r)=>r.keys.length>0||l&&r.id!=="waiting"&&r.id!=="home")}function wt(n,o){if(n.pinned.includes(o))return{kind:"pinned",siblings:n.pinned};let s=n.folders.find((l)=>l.rooms.includes(o));return s?{kind:"folder",folder:s.id,siblings:s.rooms}:{kind:"rest"}}function Hn(n,o){let s=n.filter(o).length;if(s===0)return"none";return s===n.length?"all":"some"}function _t(n,o){let s=Date.parse(oi(n,o)?.at??"");return Number.isNaN(s)?Number.NEGATIVE_INFINITY:s}var or=()=>{let{pins:n,folders:o}=w.getState();return{pins:n,folders:o}};function an(){let n=w.getState();return It(n,(o)=>_t(n,o))}
|
|
2
|
+
export{It,ls,wt,Hn,_t,or,an};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{xn}from"./chunk-index-2qd81wbx.js";var f=12;function m(r,e){let t=r.find((u)=>e>=u.top&&e<=u.bottom);if(t)return t;let n,o=f+1;for(let u of r){let i=e<u.top?u.top-e:e-u.bottom;if(i<o)n=u,o=i}return n}function d(r,e,t){for(let n of r)if(n.key!==e&&n.top+n.height/2>t)return n.key;return null}function cs(r,e,t){let n=m(r,t);return n?{zone:n,before:d(n.items,e,t)}:void 0}function us(r,e,t){let{zone:n,before:o}=t;if(n.kind==="rest")return r.kind==="rest"?void 0:{kind:"unplace"};if(n.kind==="pinned"&&r.kind==="pinned"||n.kind==="folder"&&r.kind==="folder"&&r.folder===n.folder){let i=r.siblings;if(xn(i,e,o).every((s,l)=>s===i[l]))return}return n.kind==="pinned"?{kind:"pin",before:o}:{kind:"folder",folder:n.folder,before:o}}function ds(r,e,t,n){if(n<e.top-f*3||n>e.bottom+f*3)return;return{before:d(r,t,n)}}function fr(r,e,t,n=0){let o=(r[e]?.height??0)+n;return r.map((u,i)=>{if(i===e)return 0;if(e<t&&i>e&&i<=t)return-o;if(e>t&&i>=t&&i<e)return o;return 0})}function hr(r,e,t){return xn(r,e,t).indexOf(e)}function fs(r,e,t,n=64,o=18){if(r<e+n)return-Math.min(1,(e+n-r)/n)*o;if(r>t-n)return Math.min(1,(r-(t-n))/n)*o;return 0}var hs=600;
|
|
2
|
+
export{cs,us,ds,fr,hr,fs,hs};
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
function oe(e){if(e&&typeof e==="object"&&!Object.isFrozen(e)){Object.freeze(e);for(let r of Object.values(e))oe(r)}return e}var Le=["wizard","knight","scholar","smith","ranger","bard","alchemist","healer","steward","navigator","seer","scribe","engineer","druid","innkeeper","sentinel","envoy","rogue","monk","falconer","shipwright","jester","paladin","archivist"],_=["robe","scholar","armor","plate","apron","chef","cloak","tunic","coat","overalls","vest","habit","surplice","motley","sailor"],N=["none","wizard","helm","mortar","goggcap","hood","beret","goggles","coif","tallcap","tricorn","turban","softcap","hardhat","wreath","toque","kettle","cavalier","cowl","headband","fcap","sailor","jester","winghelm"],D=["staff","shield","scroll","hammer","bow","lute","flask","quill","tome","bell","keys","map","telescope","wrench","spade","ladle","lantern","seal","dagger","beads","bird","anchor","marotte","sword"],z=["none","short","bob","long","bun","curly","ponytail","braid"],pe=["full","mustache","goatee"],Y=[...pe,"none"],fe=["glasses","freckles","scar"],U=[...fe,"none"],P=["slim","regular","stout"],K=[0,1,2,3,4,5],Ji=["neutral","happy","thinking","concerned","apologetic","surprised","proud","amused","curious","sympathetic","playful","determined","sleepy"],Xt=["idle","thinking","working","waiting","done","error","sleepy"],er=oe({idle:"neutral",thinking:"thinking",working:"determined",waiting:"curious",done:"proud",error:"apologetic",sleepy:"sleepy"}),ae={azure:{primary:"#3b6fd8",secondary:"#eef2ff",trim:"#f0c04a"},gules:{primary:"#d8473d",secondary:"#fff1e4",trim:"#f0c04a"},vert:{primary:"#2f9e6b",secondary:"#eefbea",trim:"#f0c04a"},purpure:{primary:"#7d52cc",secondary:"#f1e9ff",trim:"#f0c04a"},amber:{primary:"#e2a02a",secondary:"#fff6dc",trim:"#d5dbe8"},sable:{primary:"#454a5c",secondary:"#e9ecf4",trim:"#f0c04a"},teal:{primary:"#1f9aa6",secondary:"#e6fbfa",trim:"#f0c04a"},rose:{primary:"#d6507f",secondary:"#ffeef3",trim:"#d5dbe8"}},De=["#f7d6b8","#eab98c","#d4a070","#b9784c","#8e5b3c","#5c3a26"],ze=["#2b2233","#6a4a33","#b0562f","#e0b45a","#aeb4c3","#f1f3fa"];function h(e){let{palette:r,...t}=e;return{...t,colors:{...ae[r]},palette:r}}var qe={wizard:{label:"Wizard",jobs:"coordinator, planner, main assistant",keywords:["coordinat","orchestrat","lead","chief","manager","協調","統籌","總管","主管"],preset:h({outfit:"robe",hat:"wizard",prop:"staff",hair:"none",beard:"full",accessory:"none",build:"regular",skin:0,hairColor:"#f1f3fa",palette:"azure"})},knight:{label:"Knight",jobs:"reviewer, QA gate, guardian",keywords:["review","qa","quality","gate","lint","guardian","審查","審核","把關","品質"],preset:h({outfit:"armor",hat:"helm",prop:"shield",hair:"short",beard:"none",accessory:"none",build:"regular",skin:1,hairColor:"#6a4a33",palette:"gules"})},scholar:{label:"Scholar",jobs:"researcher, literature review",keywords:["research","literature","paper","study","survey","academic","研究","文獻","論文","學者"],preset:h({outfit:"scholar",hat:"mortar",prop:"scroll",hair:"bun",beard:"none",accessory:"glasses",build:"slim",skin:2,hairColor:"#2b2233",palette:"purpure"})},smith:{label:"Smith",jobs:"coder, builder, refactorer",keywords:["coder","coding","code","builder","implement","develop","refactor","software","程式","開發","實作","重構"],preset:h({outfit:"apron",hat:"goggcap",prop:"hammer",hair:"short",beard:"none",accessory:"none",build:"stout",skin:3,hairColor:"#7a4a2a",palette:"amber"})},ranger:{label:"Ranger",jobs:"scout, web search, crawler",keywords:["scout","search","crawl","explore","browse","web","搜尋","爬蟲","偵查","探索"],preset:h({outfit:"cloak",hat:"hood",prop:"bow",hair:"none",beard:"none",accessory:"freckles",build:"slim",skin:1,hairColor:"#a8683a",palette:"vert"})},bard:{label:"Bard",jobs:"writer, announcer, copywriter",keywords:["writer","write","copywrit","announce","content","blog","story","poet","寫作","文案","文章","公告"],preset:h({outfit:"tunic",hat:"beret",prop:"lute",hair:"long",beard:"none",accessory:"none",build:"regular",skin:4,hairColor:"#c0453d",palette:"rose"})},alchemist:{label:"Alchemist",jobs:"data analyst, ETL, transformer",keywords:["analyst","data","etl","transform","convert","spreadsheet","資料","數據","轉換","分析師"],preset:h({outfit:"coat",hat:"goggles",prop:"flask",hair:"curly",beard:"none",accessory:"none",build:"regular",skin:5,hairColor:"#2b2233",palette:"teal"})},healer:{label:"Healer",jobs:"debugger, fixer, support",keywords:["debug","fix","doctor","heal","bug","repair","triage","support","醫","修","除錯","診斷"],preset:h({outfit:"surplice",hat:"coif",prop:"bell",hair:"none",beard:"none",accessory:"none",build:"stout",skin:5,hairColor:"#2b2233",palette:"rose"})},steward:{label:"Steward",jobs:"ops, billing, access keys",keywords:["ops","billing","admin","account","access","finance","invoice","procure","帳務","財務","營運","請款","管理"],preset:h({outfit:"vest",hat:"tallcap",prop:"keys",hair:"short",beard:"mustache",accessory:"none",build:"stout",skin:0,hairColor:"#8a8f9c",palette:"sable"})},navigator:{label:"Navigator",jobs:"planner, routing, roadmap",keywords:["planner","planning","roadmap","route","routing","navigat","itinerary","規劃","路線","導航","行程"],preset:h({outfit:"coat",hat:"tricorn",prop:"map",hair:"ponytail",beard:"none",accessory:"none",build:"slim",skin:2,hairColor:"#6a4a33",palette:"azure"})},seer:{label:"Seer",jobs:"forecaster, monitoring, analytics",keywords:["forecast","monitor","predict","analytics","metric","observab","trend","預測","監控","觀測","趨勢"],preset:h({outfit:"habit",hat:"turban",prop:"telescope",hair:"none",beard:"none",accessory:"none",build:"slim",skin:3,hairColor:"#2b2233",palette:"purpure"})},scribe:{label:"Scribe",jobs:"documentation, notes, minutes",keywords:["document","docs","notes","minutes","transcri","changelog","文件","記錄","紀錄","筆記","會議"],preset:h({outfit:"scholar",hat:"softcap",prop:"quill",hair:"short",beard:"none",accessory:"glasses",build:"regular",skin:1,hairColor:"#3a2f45",palette:"sable"})},engineer:{label:"Engineer",jobs:"devops, infra, CI",keywords:["infra","devops","ci","sre","platform","kubernetes","server","cluster","維運","運維","基礎設施","伺服器"],preset:h({outfit:"overalls",hat:"hardhat",prop:"wrench",hair:"braid",beard:"none",accessory:"none",build:"regular",skin:4,hairColor:"#2b2233",palette:"amber"})},druid:{label:"Druid",jobs:"cleanup, data hygiene, maintenance",keywords:["cleanup","clean","hygiene","maintenance","garbage","prune","tidy","清理","整理","維護","保養"],preset:h({outfit:"cloak",hat:"wreath",prop:"spade",hair:"long",beard:"none",accessory:"none",build:"regular",skin:4,hairColor:"#6a4a33",palette:"vert"})},innkeeper:{label:"Innkeeper",jobs:"concierge, onboarding, scheduler",keywords:["concierge","onboard","scheduler","schedule","host","welcome","reception","接待","迎賓","排程","新人"],preset:h({outfit:"chef",hat:"toque",prop:"ladle",hair:"none",beard:"mustache",accessory:"none",build:"stout",skin:2,hairColor:"#2b2233",palette:"gules"})},sentinel:{label:"Sentinel",jobs:"security, on-call, alerts",keywords:["security","alert","incident","oncall","on-call","vulnerab","patrol","資安","安全","告警","警報","值班"],preset:h({outfit:"plate",hat:"kettle",prop:"lantern",hair:"none",beard:"none",accessory:"scar",build:"stout",skin:5,hairColor:"#2b2233",palette:"sable"})},envoy:{label:"Envoy",jobs:"email, partner comms, notifications",keywords:["email","mail","partner","notif","message","outreach","comms","信件","郵件","通知","聯絡"],preset:h({outfit:"tunic",hat:"cavalier",prop:"seal",hair:"bun",beard:"none",accessory:"none",build:"regular",skin:1,hairColor:"#aeb4c3",palette:"purpure"})},rogue:{label:"Rogue",jobs:"pen-tester, auditor, intel",keywords:["pentest","pen-test","penetration","auditor","audit","intel","exploit","osint","滲透","稽核","情報","紅隊"],preset:h({outfit:"cloak",hat:"cowl",prop:"dagger",hair:"none",beard:"none",accessory:"scar",build:"slim",skin:0,hairColor:"#2b2233",palette:"sable"})},monk:{label:"Monk",jobs:"long-running jobs, batch, patience",keywords:["long-running","batch","patient","background","overnight","meditat","cron","長時間","批次","批量","耐心"],preset:h({outfit:"habit",hat:"headband",prop:"beads",hair:"none",beard:"none",accessory:"none",build:"regular",skin:3,hairColor:"#2b2233",palette:"amber"})},falconer:{label:"Falconer",jobs:"retrieval, fetch, RAG lookup",keywords:["retriev","fetch","rag","lookup","vector","embedding","檢索","擷取","抓取","查詢"],preset:h({outfit:"cloak",hat:"fcap",prop:"bird",hair:"short",beard:"goatee",accessory:"none",build:"slim",skin:4,hairColor:"#2b2233",palette:"vert"})},shipwright:{label:"Shipwright",jobs:"release, build pipeline, packaging",keywords:["release","ship","packag","publish","deploy","pipeline","發版","發布","打包","上線","部署"],preset:h({outfit:"sailor",hat:"sailor",prop:"anchor",hair:"short",beard:"goatee",accessory:"none",build:"stout",skin:2,hairColor:"#e0b45a",palette:"azure"})},jester:{label:"Jester",jobs:"brainstorm, ideation, humor",keywords:["brainstorm","ideation","idea","humor","joke","creative","fun","腦力激盪","發想","創意","幽默","點子"],preset:h({outfit:"motley",hat:"jester",prop:"marotte",hair:"none",beard:"none",accessory:"freckles",build:"slim",skin:0,hairColor:"#b0562f",palette:"gules"})},paladin:{label:"Paladin",jobs:"compliance, policy, approvals",keywords:["compliance","policy","approval","approve","govern","legal","ethic","合規","法遵","核准","政策","規範"],preset:h({outfit:"plate",hat:"winghelm",prop:"sword",hair:"none",beard:"none",accessory:"none",build:"regular",skin:5,hairColor:"#2b2233",palette:"amber"})},archivist:{label:"Archivist",jobs:"knowledge base, indexing, memory",keywords:["knowledge","archive","index","memory","wiki","catalog","library","知識","索引","記憶","歸檔","典藏"],preset:h({outfit:"scholar",hat:"none",prop:"tome",hair:"bun",beard:"none",accessory:"glasses",build:"regular",skin:2,hairColor:"#e4e7f0",palette:"teal"})}},B=oe({classes:qe,outfits:_,hats:N,props:D,hair:z,beards:pe,accessories:fe,palettes:ae,skins:De,hairColors:ze}),ut=Object.keys(ae);var se=(e)=>Math.max(0,Math.min(255,Math.round(e))).toString(16).padStart(2,"0");function le(e){let r=(t)=>Number.parseInt(e.slice(t,t+2),16);return[r(1),r(3),r(5)]}function Be([e,r,t]){return`#${se(e)}${se(r)}${se(t)}`}function A(e,r,t){let o=le(e),a=le(r);return Be([o[0]+(a[0]-o[0])*t,o[1]+(a[1]-o[1])*t,o[2]+(a[2]-o[2])*t])}var q=(e,r)=>A(e,"#ffffff",r),j=(e,r)=>A(e,"#1a1330",r);function he(e){let[r,t,o]=le(e).map((a)=>{let i=a/255;return i<=0.03928?i/12.92:((i+0.055)/1.055)**2.4});return 0.2126*r+0.7152*t+0.0722*o}function Fe(e,r){let[t,o]=[he(e),he(r)].sort((a,i)=>i-a);return(t+0.05)/(o+0.05)}var Xe={light:"#ffffff",dark:"#0d1018","modern-light":"#ffffff","modern-dark":"#0d1018","camelot-light":"#e3d2a9","camelot-dark":"#243557"};function ke(e,r){let t=Xe[r],o=r.endsWith("light")?"#1a1330":"#ffffff";for(let a=0;a<=20;a++){let i=a===0?e:A(e,o,a/20);if(Fe(i,t)>=3)return i}return o}class ie extends Error{field;constructor(e,r){super(`${e}: ${r}`);this.name="CharacterError",this.field=e}}var Ge=/^#[0-9a-f]{6}$/;function Q(e,r){if(typeof e!=="string")throw new ie(r,"must be a #rrggbb color");let t=e.toLowerCase();if(!Ge.test(t))throw new ie(r,"must be a #rrggbb color");return t}function n(e,r,t){let o=e.find((a)=>a===r);if(o===void 0)throw new ie(t,`must be one of ${e.map(String).join(", ")}`);return o}function V(e){if(typeof e!=="object"||e===null||Array.isArray(e))return!1;let r=Object.getPrototypeOf(e);return r===Object.prototype||r===null}function F(e){for(let[r,t]of Object.entries(B.palettes))if(t.primary===e.primary&&t.secondary===e.secondary&&t.trim===e.trim)return r;return}function W(e){let r=B.classes[e].preset;return{v:1,class:e,outfit:r.outfit,hat:r.hat,prop:r.prop,hair:r.hair,beard:r.beard,accessory:r.accessory,build:r.build,skin:r.skin,hairColor:r.hairColor,colors:{...r.colors},...r.palette?{palette:r.palette}:{}}}var Ye=new Set(["class","outfit","hat","prop","hair","beard","accessory","build","skin","hairColor","colors","palette"]),ye=["primary","secondary","trim"];function Ue(e,r,t){if(r!==void 0){let a=n(Object.keys(B.palettes),r,"palette");e.colors={...B.palettes[a]}}if(t!==void 0){if(!V(t))throw new ie("colors","must be an object");for(let i of Object.keys(t))if(!ye.includes(i))throw new ie(`colors.${i}`,"is not a known color");let a={...e.colors};for(let i of ye)if(t[i]!==void 0)a[i]=Q(t[i],`colors.${i}`);e.colors=a}let o=F(e.colors);if(o)e.palette=o;else delete e.palette}function Wn(e,r){if(!V(e))throw new ie("character","must be an object");for(let a of Object.keys(e))if(!Ye.has(a))throw new ie(a,"is not a known field");let t=e.class===void 0?r?.class:n(Le,e.class,"class");if(!t)throw new ie("class","is required");let o=r&&r.class===t?{...r,colors:{...r.colors}}:W(t);if(e.outfit!==void 0)o.outfit=n(_,e.outfit,"outfit");if(e.hat!==void 0)o.hat=n(N,e.hat,"hat");if(e.prop!==void 0)o.prop=n(D,e.prop,"prop");if(e.hair!==void 0)o.hair=n(z,e.hair,"hair");if(e.beard!==void 0)o.beard=n(Y,e.beard,"beard");if(e.accessory!==void 0)o.accessory=n(U,e.accessory,"accessory");if(e.build!==void 0)o.build=n(P,e.build,"build");if(e.skin!==void 0)o.skin=n(K,e.skin,"skin");if(e.hairColor!==void 0)o.hairColor=Q(e.hairColor,"hairColor");return Ue(o,e.palette,e.colors),o}var be=new Set(["v","class","outfit","hat","prop","hair","beard","accessory","build","skin","hairColor","colors","palette"]),Ke=[...be].filter((e)=>e!=="palette"),ne=["primary","secondary","trim"];function $e(e,r){if(!Object.hasOwn(e,r))throw new ie(r,"is required")}function tr(e){if(!V(e))throw new ie("character","must be an object");for(let a of Object.keys(e))if(!be.has(a))throw new ie(a,"is not a known field");for(let a of Ke)$e(e,a);if(e.v!==1)throw new ie("v","must be 1");let r=e.colors;if(!V(r))throw new ie("colors","must be an object");for(let a of Object.keys(r))if(!ne.includes(a))throw new ie(`colors.${a}`,"is not a known color");for(let a of ne)$e(r,a);let t={primary:Q(r.primary,"colors.primary"),secondary:Q(r.secondary,"colors.secondary"),trim:Q(r.trim,"colors.trim")},o=F(t);if(e.palette!==void 0){if(n(Object.keys(B.palettes),e.palette,"palette")!==o)throw new ie("palette","does not match the colors")}return{v:1,class:n(Le,e.class,"class"),outfit:n(_,e.outfit,"outfit"),hat:n(N,e.hat,"hat"),prop:n(D,e.prop,"prop"),hair:n(z,e.hair,"hair"),beard:n(Y,e.beard,"beard"),accessory:n(U,e.accessory,"accessory"),build:n(P,e.build,"build"),skin:n(K,e.skin,"skin"),hairColor:Q(e.hairColor,"hairColor"),colors:t,...o?{palette:o}:{}}}function ue(e,r){try{return e()}catch(t){if(t instanceof ie)return r;throw t}}function vs(e){if(!V(e))return;let r=ue(()=>n(Le,e.class,"class"),void 0);if(!r)return;let t=W(r),o=(i,l)=>{let p=Symbol("none"),c=ue(i,p);if(c!==p)l(c)};if(o(()=>n(_,e.outfit,"outfit"),(i)=>{t.outfit=i}),o(()=>n(N,e.hat,"hat"),(i)=>{t.hat=i}),o(()=>n(D,e.prop,"prop"),(i)=>{t.prop=i}),o(()=>n(z,e.hair,"hair"),(i)=>{t.hair=i}),o(()=>n(Y,e.beard,"beard"),(i)=>{t.beard=i}),o(()=>n(U,e.accessory,"accessory"),(i)=>{t.accessory=i}),o(()=>n(P,e.build,"build"),(i)=>{t.build=i}),o(()=>n(K,e.skin,"skin"),(i)=>{t.skin=i}),o(()=>Q(e.hairColor,"hairColor"),(i)=>{t.hairColor=i}),V(e.colors)){let i=e.colors;for(let l of ne)o(()=>Q(i[l],`colors.${l}`),(p)=>{t.colors[l]=p})}let a=F(t.colors);if(a)t.palette=a;else delete t.palette;return t}var We={neutral:{eye:"open",look:[0,0],bl:[0,0],br:[0,0],mouth:"smile",fx:[]},happy:{eye:"sparkle",look:[0,0],bl:[-2,0],br:[-2,0],mouth:"grin",fx:["blush"]},thinking:{eye:"open",look:[2.2,-2.4],bl:[-0.5,0],br:[-4,-8],mouth:"flatR",fx:["dots"]},concerned:{eye:"open",look:[0,0.6],bl:[-1,-13],br:[-1,-13],mouth:"wobble",fx:[]},apologetic:{eye:"soft",look:[0,0],bl:[-1,-20],br:[-1,-20],mouth:"wobble",fx:["sweat","blush"]},surprised:{eye:"wide",look:[0,0],bl:[-4,-4],br:[-4,4],mouth:"o",fx:["burst"]},proud:{eye:"arc",look:[0,0],bl:[-3,0],br:[-3,0],mouth:"smirk",fx:["sparkle"]},amused:{eye:"xd",look:[0,0],bl:[-2,0],br:[-2,0],mouth:"grin",fx:["tear"]},curious:{eye:"open",look:[2.6,-0.4],bl:[-4,-6],br:[0,0],mouth:"tilt",fx:[],big:1},sympathetic:{eye:"soft",look:[0,1],bl:[-1,-10],br:[-1,-10],mouth:"smileS",fx:["blush"]},playful:{eye:"wink",look:[0,0],bl:[-3,-2],br:[1,0],mouth:"tongue",fx:["blush"]},determined:{eye:"narrow",look:[0,0],bl:[1,15],br:[1,15],mouth:"firm",fx:[]},sleepy:{eye:"closed",look:[0,0],bl:[2,6],br:[2,6],mouth:"yawn",fx:[]}},s=(e)=>+e.toFixed(2),re={ex:[39,61],ey:52,rx:5.2,ry:6.4,sw:2.5,msw:2.2,bl:8.6,bw:2.2,bdy:-9.8,mx:50,my:64,ms:1,bx:6.5,by:8,br:4,fx:[76,40],fs:1,hw:28,by0:42},T={badge:[17,19],badgeR:9.5,orbit:[50,50,45],zz:[73,28]},J={eyes:`50px ${re.ey}px`,badge:`${T.badge[0]}px ${T.badge[1]}px`,orbit:`${T.orbit[0]}px ${T.orbit[1]}px`,character:"50px 94px"},v="#2b2440";function Je(e,r,t){let{rx:o,ry:a,sw:i}=re,l=(c=1)=>`<ellipse rx="${s(o*c)}" ry="${s(a*c)}" fill="${t}"/><circle cx="${s(-o*0.3)}" cy="${s(-a*0.36)}" r="${s(o*0.4)}" fill="#fff"/><circle cx="${s(o*0.38)}" cy="${s(a*0.36)}" r="${s(o*0.18)}" fill="#fff"/>`,p=`<path d="M${s(-o*1.05)} ${s(a*0.35)}Q0 ${s(-a*1.15)} ${s(o*1.05)} ${s(a*0.35)}" fill="none" stroke="${t}" stroke-width="${i}" stroke-linecap="round"/>`;switch(e){case"open":return l();case"sparkle":return`${l(1.1)}<circle cx="${s(-o*0.1)}" cy="${s(a*0.5)}" r="${s(o*0.14)}" fill="#fff" opacity=".8"/>`;case"wide":return`<circle r="${s(a*1.12)}" fill="#fff" stroke="${t}" stroke-width="${s(i*0.7)}"/><circle r="${s(a*0.5)}" fill="${t}"/>`;case"arc":return p;case"closed":return`<path d="M${s(-o)} ${s(-a*0.1)}Q0 ${s(a*0.85)} ${s(o)} ${s(-a*0.1)}" fill="none" stroke="${t}" stroke-width="${i}" stroke-linecap="round"/>`;case"soft":return`<path d="M${s(-o)} ${s(-a*0.25)}H${s(o)}A${s(o)} ${s(a*1.05)} 0 0 1 ${s(-o)} ${s(-a*0.25)}Z" fill="${t}"/><circle cx="${s(-o*0.25)}" cy="${s(a*0.25)}" r="${s(o*0.34)}" fill="#fff"/>`;case"narrow":return`<ellipse rx="${s(o*0.98)}" ry="${s(a*0.6)}" fill="${t}"/><circle cx="${s(-o*0.3)}" cy="${s(-a*0.15)}" r="${s(o*0.26)}" fill="#fff"/>`;case"xd":{let c=r?-1:1;return`<path d="M${s(-c*o*0.85)} ${s(-a*0.75)}L${s(c*o*0.6)} 0L${s(-c*o*0.85)} ${s(a*0.75)}" fill="none" stroke="${t}" stroke-width="${i}" stroke-linecap="round" stroke-linejoin="round"/>`}case"wink":return r?p:l()}}function ve(e,r){let t=`fill="none" stroke="${r}" stroke-width="${re.msw}" stroke-linecap="round" stroke-linejoin="round"`;switch(e){case"smile":return`<path d="M-6 0Q0 5 6 0" ${t}/>`;case"smileS":return`<path d="M-4.2 0.4Q0 3.8 4.2 0.4" ${t}/>`;case"grin":return`<path d="M-7 -1Q0 3 7 -1Q5.5 8 0 8Q-5.5 8 -7 -1Z" fill="${r}"/><ellipse cy="6.3" rx="2.9" ry="1.5" fill="#ef7b8a"/>`;case"o":return`<ellipse cy="3" rx="2.9" ry="3.5" fill="${r}"/>`;case"flatR":return`<path d="M-3.5 2.4L4.5 0.4" ${t}/>`;case"firm":return`<path d="M-5 1.2H4.2L5.6 -0.4" ${t}/>`;case"wobble":return`<path d="M-6 3.2q1.5 -3 3 0t3 0t3 0t3 0" ${t}/>`;case"smirk":return`<path d="M-6 2.4Q0 4 6.4 -1.6" ${t}/>`;case"tongue":return`<path d="M-6.5 -0.5Q0 4.5 6.5 -0.5Z" fill="${r}"/><path d="M-2.6 2.2Q0 10 2.8 2.4Z" fill="#ef7b8a"/>`;case"yawn":return`<ellipse cy="3.4" rx="3.4" ry="4.2" fill="${r}"/><ellipse cy="5.6" rx="2" ry="1.4" fill="#ef7b8a"/>`;case"tilt":return`<ellipse cx="3" cy="2" rx="1.9" ry="2.4" fill="${r}"/>`}}var me=(e,r,t,o)=>`<path d="M${e} ${r-t}Q${e+t*0.22} ${r-t*0.22} ${e+t} ${r}Q${e+t*0.22} ${r+t*0.22} ${e} ${r+t}Q${e-t*0.22} ${r+t*0.22} ${e-t} ${r}Q${e-t*0.22} ${r-t*0.22} ${e} ${r-t}Z" fill="${o}"/>`,ge=(e,r,t,o)=>`<path d="M${e} ${r-3.6*t}Q${e+3*t} ${r+0.2*t} ${e} ${r+2.8*t}Q${e-3*t} ${r+0.2*t} ${e} ${r-3.6*t}Z" fill="${o}"/>`;function xe(e,r){let t=re,o=We[r],[a,i]=o.look,l=(f,m)=>{let d=o.big&&!m;return`<g transform="translate(${s(f+a)} ${s(t.ey+i)})${d?" scale(1.12)":""}">${Je(o.eye,m,e.ink)}</g>`},p=`<g class="eyes">${l(t.ex[0],0)}${l(t.ex[1],1)}</g>`,c=(f,[m,d],g)=>`<path d="M${-t.bl/2} 0H${t.bl/2}" transform="translate(${f} ${s(t.ey+t.bdy+m)}) rotate(${g?-d:d})" stroke="${e.brow}" stroke-width="${t.bw}" stroke-linecap="round" fill="none"/>`,S=`<g class="brows">${c(t.ex[0],o.bl,0)}${c(t.ex[1],o.br,1)}</g>`,Z=`<g class="mouth" transform="translate(${t.mx} ${t.my}) scale(${t.ms})">${ve(o.mouth,e.ink)}</g>`,[x,L]=t.fx,M=(f)=>`<ellipse cx="${f}" cy="${t.ey+t.by}" rx="${t.br}" ry="${s(t.br*0.62)}" fill="#ff7a8e" opacity=".5"/>`,u={blush:M(t.ex[0]-t.bx)+M(t.ex[1]+t.bx),sweat:ge(x,L,t.fs,"#7fd0ff"),tear:ge(t.ex[1]+t.rx+1.5,t.ey+t.ry*0.9,t.fs*0.8,"#7fd0ff"),sparkle:me(x,L-1,4.4*t.fs,"#ffd84a")+me(x+5*t.fs,L+5*t.fs,2*t.fs,"#fff1a8"),dots:[1,1.5,2.1].map((f,m)=>`<circle cx="${s(x-1+m*4.2*t.fs)}" cy="${s(L-2-m*3.6*t.fs)}" r="${s(f*t.fs)}" fill="${e.dot}"/>`).join(""),burst:[-1,1].map((f)=>`<path d="M${50+f*(t.hw+1)} ${t.by0-3}l${f*4.5} -3M${50+f*(t.hw+2)} ${t.by0+3}l${f*5.5} 0M${50+f*(t.hw+1)} ${t.by0+9}l${f*4.5} 3" stroke="${e.dot}" stroke-width="1.7" stroke-linecap="round"/>`).join("")};return{eyes:p,brows:S,mouth:Z,fx:`<g class="fx">${o.fx.map((f)=>u[f]).join("")}</g>`}}function we(e,r,t){let[o,a]=T.badge,i=T.badgeR,l=i/8,p=(E,R,O)=>`<g class="ov ${E}"><circle cx="${o}" cy="${a}" r="${i}" fill="${R}" stroke="#fff" stroke-width="1.6"/>${O}</g>`,c=p("o-wait","#f2a81d",`<path d="M${o} ${a-4.2*l}V${a+0.6*l}" stroke="#fff" stroke-width="${s(2.2*l)}" stroke-linecap="round"/><circle cx="${o}" cy="${s(a+3.6*l)}" r="${s(1.25*l)}" fill="#fff"/>`),S=p("o-done","#2fb36b",`<path d="M${s(o-3.6*l)} ${s(a+0.2*l)}L${s(o-1*l)} ${s(a+3*l)}L${s(o+3.8*l)} ${s(a-2.8*l)}" fill="none" stroke="#fff" stroke-width="${s(2.2*l)}" stroke-linecap="round" stroke-linejoin="round"/>`),Z=p("o-err","#e5484d",`<path d="M${s(o-3*l)} ${s(a-3*l)}L${s(o+3*l)} ${s(a+3*l)}M${s(o+3*l)} ${s(a-3*l)}L${s(o-3*l)} ${s(a+3*l)}" stroke="#fff" stroke-width="${s(2.2*l)}" stroke-linecap="round"/>`),[x,L,M]=T.orbit,u=`<g class="ov o-think"><circle cx="${x}" cy="${s(L-M)}" r="3.3" fill="${e}" stroke="#fff" stroke-width="1.3"/></g>`,[f,m]=T.zz,d=(E,R,O,ee)=>`<path d="M${E} ${R}H${E+O}L${E} ${R+O*1.15}H${E+O}" fill="none" stroke="${r}" stroke-width="${ee}" stroke-linecap="round" stroke-linejoin="round"/>`,g=`<g class="ov o-zz">${d(f,m,7,2.2)}${d(f+8,m-9,5,1.8)}</g>`;return`<g class="fg">${t?{thinking:u,waiting:c,done:S,error:Z,sleepy:g}[t]??"":u+c+S+Z+g}</g>`}var Me={none:()=>({back:"",front:""}),short:(e)=>({back:"",front:`<path d="M24 47C23 29 77 29 76 47C70 39 61 35 50 35C39 35 30 39 24 47Z" fill="${e.hr}"/>`}),bob:(e)=>({back:`<path d="M19 46C17 66 23 77 33 77H67C77 77 83 66 81 46C78 26 22 26 19 46Z" fill="${e.hr}"/>`,front:`<path d="M23 50C22 28 78 28 77 50C68 38 58 36 50 41C42 36 32 38 23 50Z" fill="${e.hr}"/>`}),long:(e)=>({back:`<path d="M18 48C14 72 20 92 34 92H66C80 92 86 72 82 48C80 26 20 26 18 48Z" fill="${e.hr}"/>`,front:`<path d="M23 52C22 28 78 28 77 52C70 38 62 36 56 38Q44 44 36 46Q28 48 23 52Z" fill="${e.hr}"/>`}),bun:(e)=>({back:`<circle cx="50" cy="21" r="9.5" fill="${e.hr}"/>`,front:`<path d="M24 47C23 29 77 29 76 47C70 39 61 35 50 35C39 35 30 39 24 47Z" fill="${e.hr}"/>`}),curly:(e)=>({back:"",front:`<g fill="${e.hr}"><circle cx="30" cy="38" r="9"/><circle cx="41" cy="30" r="9.5"/><circle cx="55" cy="29" r="9.5"/><circle cx="68" cy="35" r="9"/><circle cx="23" cy="50" r="6"/><circle cx="77" cy="50" r="6"/></g>`}),ponytail:(e)=>({back:`<path d="M70 40C92 42 94 66 82 76C86 62 80 54 68 52Z" fill="${e.hr}"/>`,front:`<path d="M24 47C23 29 77 29 76 47C70 39 61 35 50 35C39 35 30 39 24 47Z" fill="${e.hr}"/>`}),braid:(e)=>({back:`<path d="M24 46C14 60 20 76 28 90L34 88C28 76 28 62 32 52Z" fill="${e.hr}"/><circle cx="28" cy="90" r="3.6" fill="${e.p}"/>`,front:`<path d="M24 47C23 29 77 29 76 47C70 39 61 35 50 35C39 35 30 39 24 47Z" fill="${e.hr}"/>`})},Ce={full:(e)=>`<path d="M23.4 47C22 59 36 59 50 59.4C64 59 78 59 76.6 47C81 66 66 88 50 91.5C34 88 19 66 23.4 47Z" fill="${e.hr}"/><path d="M50 62V88" stroke="${e.hd}" stroke-width="1.2" opacity=".5"/><path d="M36 60Q50 66 64 60" fill="none" stroke="${e.hd}" stroke-width="1.2" opacity=".5"/>`,mustache:(e)=>`<path d="M38 60C42 54 48 58 50 60C52 58 58 54 62 60C58 62 53 60 50 61.4C47 60 42 62 38 60Z" fill="${e.hr}"/>`,goatee:(e)=>`<path d="M44 68C46 66 54 66 56 68C56 76 52 78 50 78C48 78 44 76 44 68Z" fill="${e.hr}"/>`},Se={glasses:(e)=>`<g fill="none" stroke="${e.ink}" stroke-width="1.7"><circle cx="39" cy="52" r="8.4"/><circle cx="61" cy="52" r="8.4"/><path d="M47.4 51Q50 49 52.6 51M30.6 50L25 47M69.4 50L75 47"/></g><path d="M33 47L37 45M56 47L60 45" stroke="#fff" stroke-width="1.6" stroke-linecap="round" opacity=".7"/>`,freckles:(e)=>`<g fill="${e.kd}"><circle cx="32.5" cy="60" r="1"/><circle cx="36" cy="62" r="1"/><circle cx="39.5" cy="60.4" r="1"/><circle cx="60.5" cy="60.4" r="1"/><circle cx="64" cy="62" r="1"/><circle cx="67.5" cy="60" r="1"/></g>`,scar:(e)=>`<path d="M64 44L70 57M62.4 51H67M65 47.6H69" stroke="${e.kd}" stroke-width="1.5" stroke-linecap="round" opacity=".85"/><path d="M64 44L70 57" stroke="#e9a0a0" stroke-width=".8" opacity=".7"/>`};var k=(e,r,t,o=4.8)=>`<circle cx="${r}" cy="${t}" r="${o}" fill="${e.k}"/>`,C=(e)=>`<path d="M31 94C29 79 35 71 50 71C65 71 71 79 69 94Z" fill="${e}"/>`,w=(e)=>`<ellipse cx="28.5" cy="80" rx="5.2" ry="8" transform="rotate(14 28.5 80)" fill="${e}"/><ellipse cx="71.5" cy="80" rx="5.2" ry="8" transform="rotate(-14 71.5 80)" fill="${e}"/>`,X=(e,r,t)=>`<path d="M${e} ${r-4}l1.5 3.2 3.5.4-2.6 2.4.7 3.5-3.1-1.8-3.1 1.8.7-3.5-2.6-2.4 3.5-.4z" fill="${t}"/>`,Ie={robe:(e)=>w(e.p)+C(e.p)+`<path d="M30 89H70L69.6 94H30.4Z" fill="${e.t}"/><path d="M31 82.6Q50 87 69 82.6" fill="none" stroke="#8b5a33" stroke-width="2.6"/><path d="M50 83.6V92" stroke="#8b5a33" stroke-width="1.8" stroke-linecap="round"/><circle cx="50" cy="93" r="1.8" fill="${e.t}"/>`+X(50,77,e.t)+k(e,27,88,4.4),scholar:(e)=>w(e.pd)+C(e.pd)+`<path d="M39 71.5L50 85L61 71.5Z" fill="${e.s}"/><path d="M50 85V94" stroke="${e.t}" stroke-width="1.6"/><path d="M33 88H67" stroke="${e.p}" stroke-width="2.4" opacity=".7"/>`,armor:(e)=>w("#c7cfdd")+C("#c7cfdd")+`<g fill="none" stroke="#9aa5ba" stroke-width=".9" stroke-linecap="round" opacity=".8"><path d="M24 79q2 1.6 4 0t4 0M23.4 84q2 1.6 4 0t4 0M68 79q2 1.6 4 0t4 0M68.6 84q2 1.6 4 0t4 0"/></g><ellipse cx="50" cy="72.6" rx="12.6" ry="3.6" fill="#9aa5ba"/><path d="M37 73L63 73L66.4 94H33.6Z" fill="${e.p}"/><path d="M36 73.4L38.6 73.4L37 76ZM64 73.4L61.4 73.4L63 76Z" fill="#9aa5ba"/><path d="M33.8 89H66.2L66.4 94H33.6Z" fill="${e.t}"/><path d="M34.6 83.6H65.4" stroke="#8b5a33" stroke-width="2.4"/><rect x="47" y="81.8" width="6" height="3.6" rx="1" fill="${e.t}"/><path d="M50 74.6V80M47.4 77H52.6" stroke="${e.t}" stroke-width="2.2" stroke-linecap="round"/><circle cx="31" cy="76" r="5.6" fill="#9aa5ba"/><circle cx="29.6" cy="74.2" r="1.7" fill="#fff" opacity=".6"/><circle cx="69" cy="76" r="5.6" fill="#9aa5ba"/><circle cx="67.6" cy="74.2" r="1.7" fill="#fff" opacity=".6"/>`,plate:(e)=>w("#e6eaf3")+C("#e6eaf3")+`<path d="M44 71H56L58 94H42Z" fill="${e.s}" stroke="${e.t}" stroke-width="1.6"/><path d="M50 74V92M45 81H55" stroke="${e.p}" stroke-width="3"/><circle cx="31" cy="75.5" r="6.4" fill="${e.t}"/><circle cx="69" cy="75.5" r="6.4" fill="${e.t}"/><circle cx="29.5" cy="73.5" r="2" fill="#fff" opacity=".6"/><circle cx="67.5" cy="73.5" r="2" fill="#fff" opacity=".6"/>`,apron:(e)=>w(e.s)+C(e.s)+'<path d="M38 71H62L66 94H34Z" fill="#a6713f"/><path d="M38 71L42 75M62 71L58 75" stroke="#7a4f27" stroke-width="2"/><rect x="43.5" y="82" width="13" height="8" rx="2" fill="#8d5c30"/><rect x="24" y="85" width="9" height="3" rx="1.5" fill="#8d5c30"/>',chef:(e)=>w("#f6f1e4")+C("#f6f1e4")+`<path d="M33 89H67L68.2 94H31.8Z" fill="${e.s}"/><path d="M42 71.6L50 80L58 71.6" fill="none" stroke="#d6cdb4" stroke-width="1.6"/><path d="M46 74.6L50 78.4L54 74.6" fill="none" stroke="${e.p}" stroke-width="1.4"/><path d="M33 83.4Q50 88 67 83.4" fill="none" stroke="#a6713f" stroke-width="2.6"/><path d="M50 84.4V91.6" stroke="#a6713f" stroke-width="1.8" stroke-linecap="round"/><path d="M24.5 86.4h7M68.5 86.4h7" stroke="#d6cdb4" stroke-width="1.4"/>`,cloak:(e)=>`<path d="M26 79Q50 66 74 79L72 94H28Z" fill="${e.pd}"/>`+w(e.p)+C(e.p)+`<path d="M32 87H68" stroke="#8b5a33" stroke-width="3.2"/><rect x="46" y="84.8" width="8" height="4.4" rx="1.4" fill="${e.t}"/><circle cx="50" cy="72.5" r="2.6" fill="${e.t}"/>`,tunic:(e)=>w(e.p)+C(e.p)+`<path d="M31 83L69 76V82L31 89Z" fill="${e.s}"/><circle cx="44" cy="90" r="1.8" fill="${e.t}"/><circle cx="56" cy="88" r="1.8" fill="${e.t}"/><path d="M37 71.5q3 5 6.3 0t6.4 0t6.3 0t6.3 0V75H37Z" fill="${e.s}"/>`,coat:(e)=>w(e.pd)+C(e.pd)+`<path d="M50 72V94" stroke="${e.ink}" stroke-width="1" opacity=".35"/><path d="M37 71.6Q50 78 63 71.6L64 74.6Q50 81 36 74.6Z" fill="${e.s}"/><circle cx="50" cy="80.4" r="1.7" fill="${e.t}"/><circle cx="50" cy="85.8" r="1.7" fill="${e.t}"/><path d="M32 89.6Q50 93.6 68 89.6" fill="none" stroke="${e.t}" stroke-width="2"/><path d="M24.5 87.4h7M68.5 87.4h7" stroke="${e.t}" stroke-width="1.8"/>`,overalls:(e)=>w("#efe6cf")+C(e.p)+`<path d="M40 71.6L50 76L60 71.6V94H40Z" fill="#efe6cf"/><path d="M50 76V94" stroke="${e.pd}" stroke-width="1" opacity=".6"/><path d="M46.4 78.4h7.2M46.4 83h7.2M46.4 87.6h7.2" stroke="${e.pd}" stroke-width="1.2" stroke-linecap="round"/><path d="M31.4 89Q50 93 68.6 89V94H31.4Z" fill="${e.pd}"/><path d="M33 83.4Q50 87.6 67 83.4" fill="none" stroke="#a6713f" stroke-width="2.4"/><rect x="46.6" y="81.4" width="6.8" height="4.2" rx="1" fill="${e.t}"/>`,vest:(e)=>w(e.s)+C(e.p)+`<path d="M38 71.5L50 94H36ZM62 71.5L50 94H64Z" fill="${e.s}" opacity="0"/><path d="M50 72V94" stroke="${e.ink}" stroke-width="1" opacity=".35"/><path d="M36.6 73.6Q50 80 63.4 73.6" fill="none" stroke="${e.t}" stroke-width="1.4"/><circle cx="50" cy="80.6" r="1.6" fill="${e.t}"/><circle cx="50" cy="86.4" r="1.6" fill="${e.t}"/><path d="M38 72Q35 84 50 90Q65 84 62 72" fill="none" stroke="${e.t}" stroke-width="1.8" stroke-linecap="round"/><circle cx="50" cy="90.4" r="2.4" fill="${e.t}" stroke="${e.td}" stroke-width="1"/>`,habit:(e)=>w(e.p)+`<path d="M29 94C27 78 35 71 50 71C65 71 73 78 71 94Z" fill="${e.p}"/><path d="M40 71.5L50 82L60 71.5" fill="none" stroke="${e.s}" stroke-width="3.2" stroke-linejoin="round"/><path d="M29 87H71" stroke="${e.s}" stroke-width="3"/><circle cx="50" cy="87" r="2" fill="${e.t}"/>`,surplice:(e)=>w(e.s)+C(e.s)+`<path d="M46 74H54V79H59V85H54V93H46V85H41V79H46Z" fill="${e.p}"/><path d="M31 90H69" stroke="${e.sd}" stroke-width="2"/>`,motley:(e)=>w(e.p)+C(e.p)+`<path d="M50 71C65 71 71 79 69 94H50Z" fill="${e.s}"/><path d="M71.5 72A8 8 0 0 1 71.5 88Z" fill="${e.s}" opacity="0"/><path d="M41 82L50 90L59 82L50 74Z" fill="${e.t}" opacity=".9"/><path d="M36 71.5q3 5 6.5 0t7.5 0t7.5 0t6.5 0V75H36Z" fill="${e.t}"/>`,sailor:(e)=>w(e.s)+C(e.s)+`<path d="M40 71.6L50 79L60 71.6" fill="none" stroke="${e.pd}" stroke-width="2.2" stroke-linejoin="round"/><path d="M45 73.6L55 73.6M46.4 76.4L53.6 76.4" stroke="${e.pd}" stroke-width="1.1" stroke-linecap="round"/><path d="M31 83.4Q50 88 69 83.4" fill="none" stroke="#d8c38c" stroke-width="3" stroke-linecap="round" stroke-dasharray="3.4 1.6"/><path d="M50 85V92" stroke="#d8c38c" stroke-width="2.2" stroke-linecap="round"/><path d="M31 89.6Q50 93.6 69 89.6V94H31Z" fill="${e.p}"/><rect x="55.6" y="75.6" width="6" height="5.4" rx="1" fill="${e.p}" opacity=".85"/>`};var ce="#c7cfdd",G="#9aa5ba",Qe={none:()=>"",wizard:(e)=>`<path d="M30 31C32 20 42 11 60 3C57 13 62 22 70 31Z" fill="${e.p}"/><path d="M30 31C32 20 42 11 60 3" fill="none" stroke="#fff" stroke-width="1.6" opacity=".35"/><ellipse cx="50" cy="30" rx="37" ry="7.6" fill="${e.pd}"/><path d="M30.6 27.6Q50 33 69.4 27.6L70 31Q50 36.5 30 31Z" fill="${e.t}"/>`+X(49,16,e.t),helm:(e)=>`<path d="M50 24C42 6 66 -1 80 12C68 9 60 15 57 25Z" fill="${e.p}"/><path d="M23 47C21 23 79 23 77 47L72 39Q50 31 28 39Z" fill="${ce}"/><path d="M26 36Q50 24 74 36" fill="none" stroke="#fff" stroke-width="2" opacity=".55"/><path d="M28 39Q50 31 72 39" fill="none" stroke="${e.t}" stroke-width="3"/><circle cx="50" cy="26.5" r="3.4" fill="${e.t}"/>`,mortar:(e)=>`<path d="M30 29L33 13Q50 8 67 13L70 29Q50 34 30 29Z" fill="${e.p}"/><path d="M41 10.6L39 30.4M50 9.2V32M59 10.6L61 30.4" fill="none" stroke="${e.pd}" stroke-width="2" stroke-linecap="round"/><path d="M27.6 29.4Q50 36 72.4 29.4V36.6Q50 43.4 27.6 36.6Z" fill="${e.pd}"/><path d="M28 33Q50 39.6 72 33" fill="none" stroke="${e.t}" stroke-width="1.6" opacity=".9"/><circle cx="50" cy="8.2" r="3.2" fill="${e.t}" stroke="${e.td}" stroke-width="1"/>`,goggcap:(e)=>`<path d="M22.4 42Q20.4 53 24.4 61Q29 59.6 30 52L30.4 42Z" fill="${e.pd}"/><path d="M77.6 42Q79.6 53 75.6 61Q71 59.6 70 52L69.6 42Z" fill="${e.pd}"/><path d="M24.4 61l-1 4.4M75.6 61l1 4.4" stroke="${e.t}" stroke-width="1.4" stroke-linecap="round"/><path d="M23 42C22 20 78 20 77 42Q50 33 23 42Z" fill="${e.p}"/><path d="M50 25V34.6" fill="none" stroke="${e.pd}" stroke-width="1.6" opacity=".6"/><path d="M22.4 38.5Q50 29.5 77.6 38.5L77 43.5Q50 34.5 23 43.5Z" fill="${e.pd}"/><circle cx="36.5" cy="37.8" r="1.4" fill="${e.t}"/><circle cx="50" cy="36.4" r="1.4" fill="${e.t}"/><circle cx="63.5" cy="37.8" r="1.4" fill="${e.t}"/>`,hood:(e)=>`<path d="M21 53C20 26 80 26 79 53C76 40 66 33.5 50 33.5C34 33.5 24 40 21 53Z" fill="${e.p}"/><path d="M21 53C20 26 80 26 79 53" fill="none" stroke="${e.pd}" stroke-width="2"/><path d="M70 33Q90 24 93 8Q76 12 66 30Z" fill="${e.t}"/><path d="M72 29Q84 20 91 10" fill="none" stroke="${e.td}" stroke-width="1.2"/>`,beret:(e)=>`<path d="M27 36C20 14 56 6 70 16C84 26 80 36 74 40Q50 33 27 36Z" fill="${e.p}"/><path d="M60 12C70 10 76 14 74 18" fill="none" stroke="${e.pd}" stroke-width="1.6" stroke-linecap="round"/><path d="M22 38C22 30 78 30 78 38C78 47 66 43 50 43C34 43 22 47 22 38Z" fill="${e.pd}"/><path d="M26 38.4Q50 33 74 38.4" fill="none" stroke="${e.t}" stroke-width="1.6" stroke-dasharray="2.6 2.2" stroke-linecap="round"/><path d="M71 17C88 22 93 42 88 66L83 64C86 46 80 34 70 26Z" fill="${e.p}" stroke="${e.pd}" stroke-width="1"/><circle cx="85.4" cy="67" r="2.6" fill="${e.t}"/>`,goggles:(e)=>`<path d="M23 42C22 26 40 15 55 12C62 9 66 13 61 17C73 23 78 32 77 42Q50 33 23 42Z" fill="${e.p}"/><path d="M36 30Q50 21 62 24" fill="none" stroke="${e.pd}" stroke-width="1.6" stroke-linecap="round" opacity=".6"/><path d="M22.4 38.5Q50 29.5 77.6 38.5L77 43.5Q50 34.5 23 43.5Z" fill="${e.pl}"/><circle cx="50" cy="36.6" r="1.8" fill="${e.t}"/>`,coif:(e)=>`<path d="M19 55C17 22 83 22 81 55C77 38 65 32 50 32C35 32 23 38 19 55Z" fill="#fff" stroke="#d9deeb" stroke-width="1.2"/><path d="M24 44Q50 30 76 44" fill="none" stroke="${e.t}" stroke-width="2.4"/><path d="M48.4 18H51.6V23H56.4V26H51.6V32H48.4V26H43.6V23H48.4Z" fill="${e.p}" transform="translate(0 4)"/>`,tallcap:(e)=>`<path d="M31 38L36 12Q50 4 64 12L69 38Z" fill="${e.pd}"/><path d="M40 12Q50 8 60 12" fill="none" stroke="#fff" stroke-width="1.6" stroke-linecap="round" opacity=".3"/><path d="M28 39C28 32 72 32 72 39C72 45 28 45 28 39Z" fill="${e.pl}" stroke="${e.p}" stroke-width="1.2"/><path d="M33 38l2.4 2.2 2.6-2.2 2.6 2.2 2.6-2.2 2.6 2.2 2.6-2.2 2.6 2.2 2.6-2.2 2.6 2.2 2.6-2.2 2.6 2.2" fill="none" stroke="${e.p}" stroke-width="1.2" stroke-linecap="round" stroke-linejoin="round" opacity=".7"/><circle cx="62" cy="35" r="2.8" fill="${e.t}" stroke="${e.td}" stroke-width="1"/><path d="M62 33Q74 20 80 8Q77 24 65 36Z" fill="${e.s}" stroke="${e.sd}" stroke-width="1"/>`,tricorn:(e)=>`<path d="M7 38Q50 24 93 38Q50 49 7 38Z" fill="${e.pd}"/><path d="M28 37C26 14 74 14 72 37Q50 31 28 37Z" fill="${e.p}"/><path d="M27.4 34.6Q50 41 72.6 34.6" fill="none" stroke="${e.t}" stroke-width="2.4"/><path d="M50 36C41 36 40 26 42 23.6Q46 21 50 20.4Q54 21 58 23.6C60 26 59 36 50 36Z" fill="${e.t}" stroke="${e.td}" stroke-width="1"/><path d="M50 35V21M45.6 34L43.6 25M54.4 34L56.4 25" fill="none" stroke="${e.td}" stroke-width="1"/>`,turban:(e)=>`<path d="M21 46C19 18 81 18 79 46C70 34 30 34 21 46Z" fill="${e.pl}"/><path d="M26 38Q50 22 74 38M23 44Q50 28 77 44" fill="none" stroke="${e.p}" stroke-width="2.4"/><path d="M50 22l2.6 4 4.6.6-3.4 3.2.9 4.6-4.7-2.4-4.7 2.4.9-4.6-3.4-3.2 4.6-.6z" fill="${e.t}" stroke="${e.td}" stroke-width="1"/>`,softcap:(e)=>`<path d="M25 38C14 24 28 12 50 12C72 12 86 24 75 38Z" fill="${e.pl}"/><path d="M33 22Q50 14 67 22" fill="none" stroke="${e.p}" stroke-width="1.6" stroke-linecap="round" opacity=".55"/><path d="M22 37Q50 27 78 37V44Q50 34 22 44Z" fill="${e.p}"/><path d="M25 38.6Q50 29.6 75 38.6" fill="none" stroke="${e.t}" stroke-width="1.4" stroke-dasharray="2.4 2" stroke-linecap="round"/><circle cx="50" cy="12.4" r="2.4" fill="${e.p}"/>`,hardhat:(e)=>`<path d="M25 40C23 10 77 10 75 40Z" fill="${ce}" stroke="${G}" stroke-width="1.4"/><path d="M50 12V37" fill="none" stroke="${G}" stroke-width="2.4"/><path d="M30 25Q36 17 44 15" fill="none" stroke="#fff" stroke-width="2" stroke-linecap="round" opacity=".7"/><rect x="21.6" y="34.4" width="56.8" height="6" rx="3" fill="${e.t}" stroke="${e.td}" stroke-width="1"/><circle cx="34" cy="37.4" r="1.3" fill="${G}"/><circle cx="50" cy="37.4" r="1.3" fill="${G}"/><circle cx="66" cy="37.4" r="1.3" fill="${G}"/>`,wreath:(e)=>`<g fill="#4fae6c"><ellipse cx="28" cy="40" rx="6" ry="3.2" transform="rotate(60 28 40)"/><ellipse cx="31" cy="31" rx="6" ry="3.2" transform="rotate(30 31 31)"/><ellipse cx="40" cy="26" rx="6" ry="3.2" transform="rotate(8 40 26)"/><ellipse cx="50" cy="24" rx="6" ry="3.2"/><ellipse cx="60" cy="26" rx="6" ry="3.2" transform="rotate(-8 60 26)"/><ellipse cx="69" cy="31" rx="6" ry="3.2" transform="rotate(-30 69 31)"/><ellipse cx="72" cy="40" rx="6" ry="3.2" transform="rotate(-60 72 40)"/></g><g fill="#2f8a50"><ellipse cx="36" cy="28" rx="5" ry="2.6" transform="rotate(-20 36 28)"/><ellipse cx="64" cy="28" rx="5" ry="2.6" transform="rotate(20 64 28)"/></g><circle cx="50" cy="24" r="2.6" fill="${e.p}"/><circle cx="31" cy="32" r="2.2" fill="${e.t}"/><circle cx="69" cy="32" r="2.2" fill="${e.t}"/>`,toque:(e)=>`<path d="M26 40C22 26 34 17 50 17C66 17 78 26 74 40Z" fill="#fff" stroke="#d9deeb" stroke-width="1.2"/><path d="M36 22Q50 16 64 22M31 31Q50 24 69 31" fill="none" stroke="#e1e5f0" stroke-width="1.4" stroke-linecap="round"/><path d="M23 38Q50 29 77 38Q79 44 73 44Q50 36 27 44Q21 44 23 38Z" fill="#f3f5fb" stroke="#d9deeb" stroke-width="1.2"/><path d="M74 38Q86 38 88 48M75 41Q82 50 79 58" fill="none" stroke="#d9deeb" stroke-width="2.2" stroke-linecap="round"/><circle cx="50" cy="17.4" r="1.8" fill="${e.p}"/>`,kettle:(e)=>`<path d="M28 33C28 8 72 8 72 33Z" fill="${ce}"/><ellipse cx="50" cy="33" rx="38" ry="6.4" fill="${G}"/><path d="M34 22Q50 12 66 22" fill="none" stroke="#fff" stroke-width="2" opacity=".5"/><circle cx="50" cy="17" r="2.4" fill="${e.t}"/><path d="M28 27H72" stroke="${e.p}" stroke-width="3"/>`,cavalier:(e)=>`<path d="M63 18Q82 2 94 6Q91 26 72 30Z" fill="${e.s}" stroke="${e.t}" stroke-width="1.4"/><path d="M66 21Q80 10 92 7" fill="none" stroke="${e.t}" stroke-width="1"/><path d="M31 36C28 12 72 12 69 36Z" fill="${e.p}"/><path d="M21 38Q23 29 31 33Q50 40 69 33Q77 29 79 38Q50 47 21 38Z" fill="${e.pd}"/><path d="M30.4 32.4Q50 38.4 69.6 32.4" fill="none" stroke="${e.t}" stroke-width="2.2"/><circle cx="62" cy="33" r="2.6" fill="${e.t}" stroke="${e.td}" stroke-width="1"/>`,cowl:(e)=>`<path d="M19 54C16 30 38 14 58 3C58 18 82 32 81 54C75 41 63 34 50 34C37 34 25 41 19 54Z" fill="${e.pd}"/><path d="M26 44Q50 30 74 44" fill="none" stroke="${e.ink}" stroke-width="2" opacity=".3"/>`,headband:(e)=>`<path d="M22 39Q50 29 78 39V44.5Q50 34.5 22 44.5Z" fill="${e.p}"/><path d="M76 40Q86 38 90 46M76 42Q88 46 88 56" fill="none" stroke="${e.p}" stroke-width="3.2" stroke-linecap="round"/><circle cx="50" cy="31.5" r="2.4" fill="${e.t}"/>`,fcap:(e)=>`<path d="M28 37C27 15 71 11 73 36Z" fill="${e.pd}"/><path d="M60 24Q78 22 94 8Q87 29 70 35Z" fill="${e.s}" stroke="${e.td}" stroke-width="1.2"/><path d="M62 27Q79 22 92 10" fill="none" stroke="${e.td}" stroke-width="1"/><path d="M14 33Q50 26 86 33Q76 42 50 41Q24 42 14 33Z" fill="${e.p}"/><path d="M28 33Q50 38 72 33" fill="none" stroke="${e.t}" stroke-width="1.8"/>`,sailor:(e)=>`<path d="M9 37Q50 26 91 37Q50 49 9 37Z" fill="#e8d194" stroke="#c9a867" stroke-width="1.2"/><path d="M29 36C27 15 73 15 71 36Q50 31 29 36Z" fill="#f2e0a8"/><path d="M29.4 33.2Q50 38.4 70.6 33.2" fill="none" stroke="${e.p}" stroke-width="3.4"/><path d="M36 22Q50 17 64 22M33 28Q50 22 67 28" fill="none" stroke="#d9c07a" stroke-width="1.2" stroke-linecap="round"/><path d="M14 37.6Q50 44 86 37.6" fill="none" stroke="#c9a867" stroke-width="1" opacity=".7"/>`,jester:(e)=>`<path d="M26 40C14 30 12 14 18 6C28 16 32 26 42 33Z" fill="${e.p}"/><path d="M74 40C86 30 88 14 82 6C72 16 68 26 58 33Z" fill="${e.s}" stroke="${e.sd}" stroke-width="1"/><path d="M26 40C26 28 74 28 74 40Q50 34 26 40Z" fill="${e.pd}"/><circle cx="18" cy="6" r="4" fill="${e.t}" stroke="${e.td}" stroke-width="1"/><circle cx="82" cy="6" r="4" fill="${e.t}" stroke="${e.td}" stroke-width="1"/><circle cx="50" cy="31" r="3.4" fill="${e.t}"/>`,winghelm:(e)=>`<path d="M24 36Q6 31 3 14Q18 14 30 27Z" fill="${e.s}" stroke="${e.t}" stroke-width="1.6"/><path d="M76 36Q94 31 97 14Q82 14 70 27Z" fill="${e.s}" stroke="${e.t}" stroke-width="1.6"/><path d="M23 47C21 23 79 23 77 47L72 39Q50 31 28 39Z" fill="#e6eaf3"/><path d="M28 39Q50 31 72 39" fill="none" stroke="${e.t}" stroke-width="3"/><path d="M26 36Q50 24 74 36" fill="none" stroke="#fff" stroke-width="2" opacity=".7"/><path d="M50 26l2.4 4.4 4.8.8-3.4 3.4.8 4.8-4.6-2.2-4.6 2.2.8-4.8-3.4-3.4 4.8-.8z" fill="${e.t}" transform="translate(0 -1)"/>`};var I="#8b5a33",et="#a6713f",y=(e)=>e,He={staff:"73px 82px",shield:"27px 82px",scroll:"76px 76px",hammer:"79px 84px",bow:"78px 70px",lute:"75px 70px",flask:"73px 66px",quill:"72px 82px",tome:"78px 76px",bell:"76px 62px",keys:"78px 62px",map:"77px 58px",telescope:"76px 74px",wrench:"78px 86px",spade:"76px 60px",ladle:"78px 78px",lantern:"76px 62px",seal:"76px 66px",dagger:"78px 86px",beads:"78px 62px",bird:"78px 76px",anchor:"76px 76px",marotte:"76px 62px",sword:"76px 82px"},Ee={staff:(e)=>y(`<circle class="glow" cx="73" cy="15" r="13" fill="${e.gl}"/><path d="M73 15V92" stroke="${I}" stroke-width="4.2" stroke-linecap="round"/><circle cx="73" cy="14" r="6.4" fill="${e.gl}" stroke="${e.t}" stroke-width="2"/><circle cx="71" cy="12" r="1.8" fill="#fff" opacity=".85"/>${k(e,73,82)}`),shield:(e)=>y(`<path class="glow" d="M17 70H37V80Q37 89 27 93.5Q17 89 17 80Z" fill="none" stroke="${e.gl}" stroke-width="6"/><path d="M17 70H37V80Q37 89 27 93.5Q17 89 17 80Z" fill="${e.s}" stroke="${e.t}" stroke-width="2"/><path d="M17 70H27V93.5Q17 89 17 80Z" fill="${e.p}"/>`+X(27,79,e.t)),scroll:(e)=>y(`<g transform="rotate(-16 76 74)"><path class="glow" d="M76 38l2.4 5.4 5.7.6-4.3 3.9 1.2 5.7-5-2.9-5 2.9 1.2-5.7-4.3-3.9 5.7-.6z" fill="${e.t}"/><rect x="69.5" y="56" width="13" height="30" rx="2" fill="#fbefd0" stroke="#c9a867" stroke-width="1.2"/><ellipse cx="76" cy="56" rx="7.4" ry="2.8" fill="#f1d99b" stroke="#c9a867" stroke-width="1.2"/><ellipse cx="76" cy="86" rx="7.4" ry="2.8" fill="#f1d99b" stroke="#c9a867" stroke-width="1.2"/><path d="M72.5 63H79.5M72.5 68H79.5M72.5 73H77" stroke="${e.p}" stroke-width="1.6" stroke-linecap="round"/></g>${k(e,75.5,74,4.6)}`),hammer:(e)=>y(`<path class="glow" d="M89 49l1.8 4 4.2.4-3.2 2.9.9 4.2-3.7-2.2-3.7 2.2.9-4.2-3.2-2.9 4.2-.4z" fill="${e.t}"/><path d="M78 95L82 70" stroke="${I}" stroke-width="4.4" stroke-linecap="round"/><g transform="rotate(8 81 66)"><rect x="68" y="59" width="26" height="14" rx="3.4" fill="#aab3c5" stroke="#7d879b" stroke-width="1.4"/><rect x="68" y="59" width="7" height="14" rx="3" fill="#8b95a9"/><path d="M73 61.4H90" stroke="#fff" stroke-width="1.6" stroke-linecap="round" opacity=".6"/></g>${k(e,79.4,85)}`),bow:(e)=>y(`<circle class="glow" cx="94" cy="70" r="8" fill="${e.gl}"/><path d="M74 40Q98 68 74 96" fill="none" stroke="${I}" stroke-width="4.2" stroke-linecap="round"/><path d="M74 40V96" stroke="#9aa5ba" stroke-width="1" opacity=".9"/><path d="M66 70H94" stroke="${I}" stroke-width="1.8" stroke-linecap="round"/><path d="M93 66.5L99 70L93 73.5Z" fill="${e.t}"/><path d="M66 70l-3.4-3M66 70l-3.4 3" stroke="${e.p}" stroke-width="1.8" stroke-linecap="round"/>${k(e,78,70)}`),lute:(e)=>y(`<g transform="rotate(18 76 80)"><path d="M74.2 70V44" stroke="${I}" stroke-width="3.8"/><rect x="72.6" y="38" width="6.4" height="8" rx="1.6" fill="#6d4426"/><ellipse cx="76" cy="82" rx="11.4" ry="12.6" fill="#cd8b4a" stroke="#9a5f2c" stroke-width="1.6"/><circle cx="76" cy="82" r="3.6" fill="${e.ink}"/><path d="M74.8 46V88M77.2 46V88" stroke="#fff" stroke-width=".8" opacity=".85"/></g><g class="glow"><circle cx="89" cy="54" r="2.8" fill="${e.gl}"/><path d="M91.5 54V41q4.2 1 4.4 6" fill="none" stroke="${e.gl}" stroke-width="2" stroke-linecap="round"/></g>${k(e,75,68,4.6)}`),flask:(e)=>y(`<circle class="glow" cx="73.5" cy="78" r="17" fill="${e.gl}"/><rect x="70" y="56" width="7" height="12" fill="#eaf7fb" stroke="#9fc9d8" stroke-width="1.4"/><rect x="69" y="51.5" width="9" height="5.6" rx="1.6" fill="#b7773f"/><circle cx="73.5" cy="78" r="12.4" fill="#eaf7fb" stroke="#9fc9d8" stroke-width="1.6"/><path d="M61.4 77Q73.5 72.6 85.6 77A12.2 12.2 0 0 1 61.4 77Z" fill="${e.gl}"/><circle cx="70" cy="80" r="1.8" fill="#fff" opacity=".8"/><circle cx="76.5" cy="83.5" r="1.2" fill="#fff" opacity=".8"/>${k(e,73.5,64)}`),quill:(e)=>y(`<circle class="glow" cx="92" cy="30" r="8" fill="${e.t}"/><path d="M70 88C70 62 80 40 92 30C95 50 86 72 70 88Z" fill="${e.s}" stroke="${e.td}" stroke-width="1.3"/><path d="M70 88Q80 58 92 30" fill="none" stroke="${e.td}" stroke-width="1.5"/><path d="M80 52Q86 54 89 48M77 62Q84 63 88 57" fill="none" stroke="${e.sd}" stroke-width="1.3"/><path d="M70 88l-3 5" stroke="${e.ink}" stroke-width="2" stroke-linecap="round"/>${k(e,72.4,80)}`),tome:(e)=>y(`<circle class="glow" cx="80" cy="60" r="9" fill="${e.t}"/><g transform="rotate(-12 78 76)"><rect x="65" y="63" width="25" height="24" rx="2.4" fill="${e.pd}" stroke="${e.ink}" stroke-width="1" stroke-opacity=".3"/><rect x="67.4" y="65.4" width="20" height="19" rx="1.4" fill="none" stroke="${e.t}" stroke-width="1.2"/><path d="M90 66V84" stroke="#f8efd6" stroke-width="3"/><rect x="72" y="71" width="9" height="7" rx="1.4" fill="${e.t}"/></g>${k(e,66,80,4.4)}`),bell:(e)=>y(`<g class="glow"><path d="M90 66q4 6 0 12M94 62q7 10 0 20" fill="none" stroke="${e.gl}" stroke-width="2" stroke-linecap="round"/></g><path d="M66 85C70 83 69 68 76 66C83 68 82 83 86 85Z" fill="${e.t}" stroke="${e.td}" stroke-width="1.4" stroke-linejoin="round"/><circle cx="76" cy="87.6" r="2.4" fill="${e.td}"/><rect x="73.4" y="60" width="5.2" height="6.4" rx="1.6" fill="${I}"/>${k(e,76,60,4.4)}`),keys:(e)=>y(`<circle class="glow" cx="79" cy="80" r="14" fill="${e.t}"/><circle cx="78" cy="62" r="5.6" fill="none" stroke="${e.t}" stroke-width="2.6"/><path d="M82 66L90 88M90 88L93 87M87 82L90 81" fill="none" stroke="${e.t}" stroke-width="2.6" stroke-linecap="round"/><path d="M74 66L70 84M70 84L73 85M71 78L74 78" fill="none" stroke="${e.td}" stroke-width="2.6" stroke-linecap="round"/>${k(e,78,62,4.4)}`),map:(e)=>y(`<circle class="glow" cx="81" cy="76" r="8" fill="${e.p}"/><rect x="66" y="58" width="24" height="29" rx="2" fill="#f3e2b5" stroke="#c9a867" stroke-width="1.3"/><path d="M70 66Q78 62 82 70T86 80M70 82L74 76" fill="none" stroke="#8ec7d8" stroke-width="2" stroke-linecap="round" stroke-dasharray="3 2.4"/><path d="M81 71.4l1.4 3.6 3.6 1.4-3.6 1.4-1.4 3.6-1.4-3.6-3.6-1.4 3.6-1.4z" fill="${e.p}"/>${k(e,78,58,4.4)}`),telescope:(e)=>y(`<circle class="glow" cx="76" cy="72" r="17" fill="${e.gl}"/><circle cx="76" cy="54.6" r="3.6" fill="none" stroke="${e.td}" stroke-width="2"/><path d="M73 57.4Q76 60 79 57.4" fill="none" stroke="${e.t}" stroke-width="2.4"/><circle cx="76" cy="72" r="13.4" fill="${e.t}" stroke="${e.td}" stroke-width="1.6"/><circle cx="76" cy="72" r="10" fill="#fbefd0" stroke="${e.td}" stroke-width="1"/><path d="M66 72H86M76 62V82" stroke="${e.td}" stroke-width="1.2"/><circle cx="76" cy="72" r="5.6" fill="none" stroke="${e.td}" stroke-width="1"/><path d="M70 66.6L82 77.4" stroke="${e.p}" stroke-width="1.6" stroke-linecap="round"/><circle cx="82" cy="65.6" r="1.8" fill="${e.p}"/>${k(e,76,57,4.4)}`),wrench:(e)=>y(`<path class="glow" d="M90 52l1.6 3.6 3.8.4-2.8 2.6.8 3.8-3.4-2-3.4 2 .8-3.8-2.8-2.6 3.8-.4z" fill="${e.t}"/><path d="M79 60L71 93M79 60L87 91" stroke="#aab3c5" stroke-width="3.4" stroke-linecap="round"/><path d="M79 60L71 93M79 60L87 91" stroke="#fff" stroke-width="1" stroke-linecap="round" opacity=".5"/><path d="M71 93l-.8 2.2M87 91l.8 2.2" stroke="#7d879b" stroke-width="1.6" stroke-linecap="round"/><path d="M73.4 81Q79 85 84.6 81" fill="none" stroke="#7d879b" stroke-width="1.6" stroke-linecap="round"/><circle cx="79" cy="60" r="3.4" fill="${e.t}" stroke="${e.td}" stroke-width="1.2"/>${k(e,79,63.4,4.4)}`),spade:(e)=>y(`<g class="glow"><ellipse cx="88" cy="62" rx="4.4" ry="2.4" transform="rotate(-30 88 62)" fill="#4fae6c"/><ellipse cx="91" cy="70" rx="4" ry="2.2" transform="rotate(20 91 70)" fill="#4fae6c"/></g><path d="M76 92V56" stroke="${I}" stroke-width="4" stroke-linecap="round"/><path d="M70 56H82" stroke="${I}" stroke-width="3.4" stroke-linecap="round"/><path d="M69.5 78H82.5V88Q76 97 69.5 88Z" fill="#aab3c5" stroke="#7d879b" stroke-width="1.3" stroke-linejoin="round"/>${k(e,76,59)}`),ladle:(e)=>y(`<g class="glow"><path d="M88 48q-3-4 0-8M93 50q-3-4 0-8" fill="none" stroke="#fff" stroke-width="2" stroke-linecap="round"/></g><path d="M74 94L82 62" stroke="${I}" stroke-width="4" stroke-linecap="round"/><path d="M73 58H93A10 8 0 0 1 73 58Z" fill="#aab3c5" stroke="#7d879b" stroke-width="1.3" stroke-linejoin="round" transform="rotate(-14 83 58)"/><ellipse cx="83" cy="57" rx="8" ry="2" fill="#c97b3a" transform="rotate(-14 83 57)"/>${k(e,76.4,82)}`),lantern:(e)=>y(`<circle class="glow" cx="77" cy="78" r="20" fill="#ffd84a"/><path d="M69 66Q77 52 85 66" fill="none" stroke="${e.td}" stroke-width="2.2"/><rect x="69" y="66" width="16" height="4" rx="1.6" fill="${e.t}"/><rect x="70.4" y="70" width="13.2" height="16" fill="#fff3c2" stroke="${e.td}" stroke-width="1.4"/><path d="M77 73Q81 78 77 83Q73 78 77 73Z" fill="#ffa63a"/><rect x="69" y="86" width="16" height="4" rx="1.6" fill="${e.t}"/>${k(e,77,60,4.4)}`),seal:(e)=>y(`<circle class="glow" cx="79" cy="78" r="9" fill="${e.p}"/><g transform="rotate(-10 78 74)"><rect x="66" y="64" width="26" height="18" rx="2" fill="#fff7e6" stroke="#d3bd8e" stroke-width="1.2"/><path d="M66 65L79 75L92 65" fill="none" stroke="#d3bd8e" stroke-width="1.2"/><circle cx="79" cy="75" r="4.6" fill="${e.p}" stroke="${e.pd}" stroke-width="1"/>${X(79,75,e.t).replace('d="M','transform="scale(.6) translate(52 50)" d="M')}</g>${k(e,70,82,4.4)}`),dagger:(e)=>y(`<path class="glow" d="M78 50V80" stroke="#fff" stroke-width="5" stroke-linecap="round"/><path d="M78 52L82.4 78H73.6Z" fill="#dfe5f0" stroke="#9aa5ba" stroke-width="1.2" stroke-linejoin="round"/><path d="M78 56V76" stroke="#fff" stroke-width="1.2" opacity=".7"/><rect x="71" y="78" width="14" height="3.4" rx="1.6" fill="${e.t}"/><rect x="76.4" y="81" width="3.2" height="8" fill="${I}"/>${k(e,78,86)}`),beads:(e)=>y(`<g class="glow"><circle cx="78" cy="78" r="12" fill="${e.t}"/></g><g fill="${e.t}" stroke="${e.td}" stroke-width="1"><circle cx="78" cy="66" r="2.4"/><circle cx="84.4" cy="68.4" r="2.4"/><circle cx="87" cy="75" r="2.4"/><circle cx="85.6" cy="82" r="2.4"/><circle cx="80.4" cy="86.6" r="2.4"/><circle cx="73.6" cy="86.6" r="2.4"/><circle cx="68.4" cy="82" r="2.4"/><circle cx="67" cy="75" r="2.4"/><circle cx="71.6" cy="68.4" r="2.4"/></g>${k(e,78,62,4.4)}`),bird:(e)=>y(`<circle class="glow" cx="88" cy="55" r="8" fill="${e.t}"/><ellipse cx="80" cy="64" rx="9" ry="6.4" transform="rotate(-24 80 64)" fill="#8a6a4a"/><path d="M72 70L66 76L76 70Z" fill="#6f5338"/><path d="M76 66Q82 64 86 66Q82 70 78 70Z" fill="#f1e2c4"/><circle cx="87" cy="56" r="5" fill="#8a6a4a"/><path d="M91 55L96 57L91 59Z" fill="${e.t}"/><circle cx="88" cy="55" r="1.3" fill="${e.ink}"/><path d="M78 70V75" stroke="${e.t}" stroke-width="2"/><circle cx="78" cy="79" r="6.2" fill="${et}" stroke="#7a4f27" stroke-width="1.2"/>`),anchor:(e)=>y(`<path class="glow" d="M76 54l2 4.4 4.8.5-3.6 3.2 1 4.7-4.2-2.4-4.2 2.4 1-4.7-3.6-3.2 4.8-.5z" fill="${e.t}" transform="translate(11 -4)"/><circle cx="76" cy="58" r="3.4" fill="none" stroke="#aab3c5" stroke-width="2.4"/><path d="M76 61.4V90M69.6 66H82.4M65 82Q76 98 87 82" fill="none" stroke="#aab3c5" stroke-width="3.4" stroke-linecap="round"/><path d="M65 82L63 86M87 82L89 86" stroke="#aab3c5" stroke-width="3.4" stroke-linecap="round"/>${k(e,76,74)}`),marotte:(e)=>y(`<g class="glow"><circle cx="66" cy="40" r="3" fill="${e.t}"/><circle cx="86" cy="40" r="3" fill="${e.t}"/></g><path d="M76 94V52" stroke="${I}" stroke-width="4" stroke-linecap="round"/><circle cx="76" cy="46" r="7" fill="${e.k}" stroke="${e.kd}" stroke-width="1"/><path d="M70 42Q64 36 66 40Q68 42 71 44ZM82 42Q88 36 86 40Q84 42 81 44Z" fill="${e.p}"/><path d="M69 42C64 38 62 36 66 40ZM83 42C88 38 90 36 86 40Z" fill="none"/><circle cx="74" cy="46" r="1" fill="${e.ink}"/><circle cx="78" cy="46" r="1" fill="${e.ink}"/><path d="M73.4 49Q76 51.4 78.6 49" fill="none" stroke="${e.ink}" stroke-width="1" stroke-linecap="round"/>${k(e,76,62,4.4)}`),sword:(e)=>y(`<path class="glow" d="M76 20V76" stroke="#fff" stroke-width="8" stroke-linecap="round"/><path d="M76 17L80.4 24V76H71.6V24Z" fill="#e1e7f2" stroke="#9aa5ba" stroke-width="1.2" stroke-linejoin="round"/><path d="M76 24V74" stroke="#fff" stroke-width="1.4" opacity=".8"/><rect x="67" y="76" width="18" height="4" rx="2" fill="${e.t}"/><rect x="74.4" y="80" width="3.6" height="8" fill="${I}"/><circle cx="76.2" cy="90" r="2.4" fill="${e.t}"/>${k(e,76.2,83)}`)};var Oe=6,xs=Object.freeze(["#fbebe0","#f8e1d2","#f5d8c5","#f1cfb8","#edc6ac","#e9bf9f"]);function nr(e,r="skins"){if(!Array.isArray(e)||e.length!==Oe)throw new ie(r,`must be a list of exactly ${Oe} #rrggbb colors`);return Object.freeze(Array.from(e,(t,o)=>Q(t,`${r}[${o}]`)))}var tt=["modern-light","modern-dark","camelot-light","camelot-dark"],rt=["disc","shield"],ot=/^[a-z0-9]{1,16}$/,Ae=200,Ze=4096,at={"modern-light":{bg:(e)=>q(e,0.8),ring:(e)=>e,width:3,line:null},"modern-dark":{bg:(e)=>A(e,"#0d1018",0.68),ring:(e)=>q(e,0.15),width:3,line:null},"camelot-light":{bg:(e)=>A("#f2e6c6",e,0.1),ring:()=>"#b98a2c",width:4.2,line:"#8a5f12"},"camelot-dark":{bg:(e)=>A("#16224c",e,0.16),ring:()=>"#e6b94c",width:4.2,line:"#ffe08a"}},Re="M12 14H88V50Q88 78 50 97Q12 78 12 50Z",st="#e5484d";function it(e){return e.replace(/[&<>"'=()]/g,(r)=>`&#${r.charCodeAt(0)};`).replace(/href/gi,(r)=>`${r[0]}&#${r.charCodeAt(1)};${r.slice(2)}`)}function lt(e,r,t,o){let{primary:a,secondary:i,trim:l}=e.colors,p=o[e.skin];return{tones:{p:a,pd:j(a,0.3),pl:q(a,0.35),pll:q(a,0.65),s:i,sd:j(i,0.16),t:l,td:j(l,0.3),k:p,kd:j(p,0.12),hr:e.hairColor,hd:j(e.hairColor,0.2),ink:v,gl:q(a,0.5)},bg:r.bg(a),ring:t?st:r.ring(a)}}function H(e,r,t=""){return r?`<g class="${e}" data-part="${e}"${t}>${r}</g>`:""}function Ss(e,r={}){let t=tr(e),o=r.state===void 0?void 0:n(Xt,r.state,"state"),a=n(Ji,r.expr??er[o??"idle"],"expr"),i=n(tt,r.look??"modern-light","look"),l=n(rt,r.frame??"disc","frame"),p=r.uid??"a";if(typeof p!=="string"||!ot.test(p))throw new ie("uid","must match /^[a-z0-9]{1,16}$/");let{size:c,label:S}=r;if(c!==void 0&&!(Number.isInteger(c)&&c>=1&&c<=Ze))throw new ie("size",`must be an integer up to ${Ze}`);if(S!==void 0&&(typeof S!=="string"||S.length>Ae))throw new ie("label",`must be text of at most ${Ae} characters`);let Z=r.skins===void 0?B.skins:nr(r.skins,"skins"),x=r.bare===!0,L=r.still===!0,M=at[i],{tones:u,bg:f,ring:m}=lt(t,M,o==="error",Z),d=xe({ink:v,brow:A(t.hairColor,v,0.5),dot:A(u.p,v,0.1)},a),g=Me[t.hair](u),de=t.hat==="hood"?`<path d="M17 62C12 22 88 22 83 62C81 72 72 77 66 78H34C28 77 19 72 17 62Z" fill="${u.pd}"/>`:"",E=Ie[t.outfit](u),R={slim:0.8,regular:1,stout:1.3}[t.build],O=R===1?E:`<g transform="translate(${+(50-50*R).toFixed(2)} 0) scale(${R} 1)">${E}</g>`,ee=O;if(!x)ee=l==="shield"?`<g clip-path="url(#as${p})">${O}</g>`:`<clipPath id="ad${p}"><circle cx="50" cy="50" r="44.6"/></clipPath><g clip-path="url(#ad${p})">${O}</g>`;let te=M.line,Ve=l==="shield"?`<clipPath id="as${p}"><path d="${Re}"/></clipPath><path d="${Re}" fill="${f}" stroke="${m}" stroke-width="${M.width}" stroke-linejoin="round" class="ring"/>${te?`<path d="M16.5 18.5H83.5V50Q83.5 74 50 91.6Q16.5 74 16.5 50Z" fill="none" stroke="${te}" stroke-width=".9" opacity=".55"/>`:""}`:`<circle cx="50" cy="50" r="46.4" fill="${f}" stroke="${m}" stroke-width="${M.width}" class="ring"/>${te?`<circle cx="50" cy="50" r="40.6" fill="none" stroke="${te}" stroke-width=".9" opacity=".55"/>`:""}<ellipse cx="50" cy="93" rx="19" ry="2.6" fill="#000" opacity=".12"/>`,_e=`<circle cx="22.6" cy="54" r="4.2" fill="${u.k}"/><circle cx="77.4" cy="54" r="4.2" fill="${u.k}"/><ellipse cx="50" cy="51" rx="28" ry="26" fill="${u.k}"/><path d="M23 58Q50 88 77 58Q77 76 50 77Q23 76 23 58Z" fill="${u.kd}" opacity=".3"/><ellipse cx="50" cy="58.4" rx="1.7" ry="1.2" fill="${u.kd}"/>`+g.front+(t.beard==="none"?"":Ce[t.beard](u)),Ne=(x?"":H("frame",Ve))+'<g class="ch">'+H("back",g.back+de)+H("body",ee)+H("head",_e)+H("hat",Qe[t.hat](u))+H("eyes-brows",d.eyes+d.brows)+H("mouth",d.mouth)+H("fx",d.fx)+H("acc",t.accessory==="none"?"":Se[t.accessory](u))+H("prop",Ee[t.prop](u),` data-prop="${t.prop}"`)+"</g>"+H("state",we(u.p,j(u.p,0.1),L?o??"idle":null));return`<svg ${['xmlns="http://www.w3.org/2000/svg"','viewBox="0 0 100 100"',c===void 0?"":`width="${c}" height="${c}"`,`class="${L?"av static":"av"}"`,o===void 0&&!L?"":`data-state="${o??"idle"}"`,`data-expr="${a}"`,S===void 0?'aria-hidden="true"':`role="img" aria-label="${it(S)}"`].filter(Boolean).join(" ")}>${Ne}</svg>`.replace(/class="glow"/g,'class="glow" opacity=".3"')}function ws(e,r){return ke(e.colors.primary,r)}var b=(e)=>`:is(.av,.av-host)[data-state=${e}]`;function _s(){let e=Object.entries(He).map(([r,t])=>`.av [data-prop=${r}]{transform-origin:${t}}`).join(`
|
|
2
|
+
`);return`/* Generated from src/characters/css.ts by scripts/build-character-css.ts; do not edit. */
|
|
3
|
+
/* State motion for composed characters. Put data-state on the <svg class="av"> or on an .av-host around it. */
|
|
4
|
+
.av{overflow:visible}
|
|
5
|
+
.av .ov{opacity:0}
|
|
6
|
+
.av .glow{opacity:.28}
|
|
7
|
+
.av .ch,.av .prop,.av .eyes,.av .ov{transform-box:view-box}
|
|
8
|
+
.av .ch{transform-origin:${J.character}}
|
|
9
|
+
.av .eyes{transform-origin:${J.eyes};animation:av-blink 5.2s infinite}
|
|
10
|
+
.av .o-wait,.av .o-done,.av .o-err{transform-origin:${J.badge}}
|
|
11
|
+
.av .o-think{transform-origin:${J.orbit}}
|
|
12
|
+
${e}
|
|
13
|
+
${b("idle")} .ch{animation:av-breathe 3.8s ease-in-out infinite}
|
|
14
|
+
${b("thinking")} .ch{animation:av-tilt 3.2s ease-in-out infinite}
|
|
15
|
+
${b("thinking")} .o-think{opacity:1;animation:av-orbit 2.6s linear infinite}
|
|
16
|
+
${b("working")} .ch{animation:av-bob .56s ease-in-out infinite}
|
|
17
|
+
${b("working")} .prop{animation:av-sweep .56s ease-in-out infinite alternate}
|
|
18
|
+
${b("working")} .glow{animation:av-glow .56s ease-in-out infinite alternate}
|
|
19
|
+
${b("waiting")} .ch{animation:av-lean 1.6s ease-in-out infinite}
|
|
20
|
+
${b("waiting")} .o-wait{opacity:1;animation:av-badge 1.2s ease-in-out infinite}
|
|
21
|
+
${b("waiting")} .glow{animation:av-glow 1.2s ease-in-out infinite alternate}
|
|
22
|
+
${b("done")} .ch{animation:av-pop .7s cubic-bezier(.3,1.6,.5,1) 1}
|
|
23
|
+
${b("done")} .o-done{opacity:1;animation:av-badge-in .5s ease-out 1}
|
|
24
|
+
${b("done")} .glow{opacity:.7}
|
|
25
|
+
${b("error")} .ch{animation:av-shake .5s ease-in-out 2}
|
|
26
|
+
${b("error")} .o-err{opacity:1;animation:av-badge-in .3s ease-out 1}
|
|
27
|
+
${b("error")} .ring{stroke:#e5484d}
|
|
28
|
+
${b("error")} .glow{opacity:0}
|
|
29
|
+
${b("sleepy")} .ch{animation:av-breathe 6s ease-in-out infinite}
|
|
30
|
+
${b("sleepy")} .o-zz{opacity:1;animation:av-float 3s ease-in-out infinite}
|
|
31
|
+
${b("sleepy")} .glow{opacity:.08}
|
|
32
|
+
@keyframes av-blink{0%,93%,100%{transform:scaleY(1)}96%{transform:scaleY(.08)}}
|
|
33
|
+
@keyframes av-breathe{0%,100%{transform:scale(1,1)}50%{transform:scale(1.012,1.03)}}
|
|
34
|
+
@keyframes av-tilt{0%,100%{transform:rotate(-3deg)}50%{transform:rotate(3deg)}}
|
|
35
|
+
@keyframes av-orbit{to{transform:rotate(360deg)}}
|
|
36
|
+
@keyframes av-bob{0%,100%{transform:translateY(0)}50%{transform:translateY(-2.4px)}}
|
|
37
|
+
@keyframes av-sweep{from{transform:rotate(-9deg)}to{transform:rotate(9deg)}}
|
|
38
|
+
@keyframes av-glow{from{opacity:.2}to{opacity:.85}}
|
|
39
|
+
@keyframes av-lean{0%,100%{transform:rotate(-1deg) translateY(0)}50%{transform:rotate(-6deg) translateY(1px)}}
|
|
40
|
+
@keyframes av-badge{0%,100%{transform:scale(1)}50%{transform:scale(1.14)}}
|
|
41
|
+
@keyframes av-badge-in{from{transform:scale(.2);opacity:0}to{transform:scale(1);opacity:1}}
|
|
42
|
+
@keyframes av-pop{0%{transform:scale(1)}40%{transform:scale(1.1,.94)}70%{transform:scale(.97,1.05)}100%{transform:scale(1)}}
|
|
43
|
+
@keyframes av-shake{0%,100%{transform:translateX(0)}20%{transform:translateX(-2.4px)}40%{transform:translateX(2.4px)}60%{transform:translateX(-1.6px)}80%{transform:translateX(1.6px)}}
|
|
44
|
+
@keyframes av-float{0%,100%{transform:translateY(0);opacity:.35}50%{transform:translateY(-4px);opacity:1}}
|
|
45
|
+
@media (prefers-reduced-motion:reduce){.av *{animation:none!important}.av .o-think{opacity:0!important}}
|
|
46
|
+
.av.static *{animation:none!important}
|
|
47
|
+
`}var Te=3,nt=1,ct=600,dt=/^[ -~]+$/,pt=3;function Pe(e){let r=2166136261;for(let t=0;t<e.length;t++)r^=e.charCodeAt(t),r=Math.imul(r,16777619)>>>0;return r>>>0}var ft=(e)=>e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");function ht(e){let r=e.toLowerCase();if(!dt.test(r))return(o)=>o.includes(r);let t=new RegExp(`(?<![a-z0-9])${ft(r)}${r.length<=pt?"(?![a-z0-9])":""}`);return(o)=>t.test(o)}var kt=Object.fromEntries(Le.map((e)=>[e,B.classes[e].keywords.map(ht)]));function yt(e,r){let t=0;for(let o of kt[e])for(let[a,i]of r)if(o(a))t+=i;return t}var je=(e,r)=>e%r;function sn(e,r=[]){let t=Pe(e.name),o=[[e.displayName.toLowerCase(),Te],[e.name.toLowerCase(),Te],[e.prompt.slice(0,ct).toLowerCase(),nt]],a=0,i=[];for(let d of Le){let g=yt(d,o);if(g>a)a=g,i=[d];else if(g===a&&g>0)i.push(d)}let l=a>0?i:[...Le],p=new Set(r.map((d)=>d.class)),c=l.filter((d)=>!p.has(d)),S=c.length>0?c:l,Z=S[je(t,S.length)],x=W(Z);x.skin=t%6,x.build=P[Pe(`build:${e.name}`)%3];let L=Object.keys(B.palettes),M=new Map(L.map((d)=>[d,0]));for(let d of r){let g=d.palette??F(d.colors);if(g)M.set(g,(M.get(g)??0)+1)}let u=Math.min(...M.values()),f=L.filter((d)=>M.get(d)===u),m=f[je(t,f.length)];return x.colors={...B.palettes[m]},x.palette=m,x}export{Le,Ji,Xt,er,B,ie,Wn,tr,vs,xs,nr,Ss,ws,_s,sn};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{X,a,o,t,e,n,s,rt}from"./chunk-index-v23m38p6.js";var C=96,S=0.6,T=220,N=()=>typeof matchMedia==="function"&&matchMedia("(max-width: 719px)").matches;function I(i){let u=o(null),g=o(void 0),{open:h,onClose:P}=i,E=o(i.restoreFocus);E.current=i.restoreFocus;let m=o(!1),p=o(!1),M=X(()=>{let r=u.current;if(r?.open)r.close();if(E.current?.()?.focus(),m.current=!1,p.current)p.current=!1;else P()},[P]),d=X(()=>{let r=u.current;if(!r||m.current)return;if(m.current=!0,rt()){M();return}r.dataset.state="closing",r.style.removeProperty("transform"),setTimeout(M,T)},[M]);a(()=>{let r=u.current;if(!r)return;if(h&&!r.open)r.dataset.state="opening",r.showModal(),requestAnimationFrame(()=>requestAnimationFrame(()=>{r.dataset.state="open"}));if(!h&&r.open&&!m.current)p.current=!0,d()},[h,d]);let b=(r)=>{if(!N())return;if(r.target instanceof Element&&r.target.closest("button, a"))return;g.current={y:r.clientY,at:r.timeStamp,dy:0},r.currentTarget.setPointerCapture(r.pointerId);let c=u.current;if(c)c.dataset.dragging="true"},v=(r)=>{let c=g.current,l=u.current;if(!c||!l)return;let f=Math.max(0,r.clientY-c.y);c.dy=f,l.style.transform=`translate3d(0, ${f}px, 0)`,l.style.setProperty("--sheet-progress",String(1-Math.min(1,f/400)))},y=(r)=>{let c=g.current,l=u.current;if(g.current=void 0,!c||!l)return;delete l.dataset.dragging;let f=c.dy/Math.max(1,r.timeStamp-c.at);if(c.dy>C||f>S){d();return}l.style.removeProperty("transform"),l.style.removeProperty("--sheet-progress")};return n("dialog",{ref:u,className:i.variant==="palette"?"sheet palette":i.size==="wide"?"sheet wide":i.size==="full"?"sheet full":"sheet","aria-label":i.title,onCancel:(r)=>{if(r.target!==r.currentTarget)return;r.preventDefault(),d()},onClick:(r)=>{if(r.target===r.currentTarget)d()},onClose:(r)=>{if(r.target!==r.currentTarget)return;if(!m.current)P()},children:[e("div",{className:"sheet-grab",onPointerDown:b,onPointerMove:v,onPointerUp:y,onPointerCancel:y,children:e("span",{className:"sheet-handle"})}),i.variant==="palette"?null:n("div",{className:"sheet-head",onPointerDown:b,onPointerMove:v,onPointerUp:y,onPointerCancel:y,children:[e("h2",{title:i.title,children:i.title}),e("button",{type:"button",className:"icon-button","aria-label":t("Close"),onClick:d,children:e(s,{name:"close"})})]}),e("div",{className:"sheet-body",children:h?i.children:null})]})}
|
|
2
|
+
export{I};
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import{A,t,e,n,f}from"./chunk-index-v23m38p6.js";var u=(i,s,r)=>f(i,{method:s,...r===void 0?{}:{body:JSON.stringify(r)}}),g=(i)=>encodeURIComponent(i),Qe={agentPromptHistory:(i)=>f(`agents/${g(i)}/prompt-history`),prompts:()=>f("prompts"),prompt:(i)=>f(`prompts/${g(i)}`),savePrompt:(i,s)=>u(`prompts/${g(i)}`,"PUT",s),revertPrompt:(i,s)=>u(`prompts/${g(i)}/revert`,"POST",s),promptHistory:(i)=>f(`prompts/${g(i)}/history`),skillDocument:(i)=>f(`skill-docs/${g(i)}`),saveSkillDocument:(i,s)=>u(`skill-docs/${g(i)}`,"PUT",s),createSkillDocument:(i)=>u("skill-docs","POST",i),skillHistory:(i)=>f(`skill-docs/${g(i)}/history`)};function h(i,s){let r=i.split(`
|
|
2
|
+
`),m=s.split(`
|
|
3
|
+
`),o=0;while(o<r.length&&o<m.length&&r[o]===m[o])o++;let d=0;while(d<r.length-o&&d<m.length-o&&r[r.length-1-d]===m[m.length-1-d])d++;let k=r.slice(o,r.length-d),p=m.slice(o,m.length-d),a=r.slice(0,o).map((l)=>({kind:"same",text:l}));return a.push(...v(k,p)),a.push(...r.slice(r.length-d).map((l)=>({kind:"same",text:l}))),a}function v(i,s){let r=(l)=>l.map((c)=>({kind:"del",text:c})),m=(l)=>l.map((c)=>({kind:"add",text:c}));if(i.length===0)return m(s);if(s.length===0)return r(i);if(i.length*s.length>4000000)return[...r(i),...m(s)];let o=s.length+1,d=new Uint32Array((i.length+1)*o);for(let l=i.length-1;l>=0;l--)for(let c=s.length-1;c>=0;c--)d[l*o+c]=i[l]===s[c]?(d[(l+1)*o+c+1]??0)+1:Math.max(d[(l+1)*o+c]??0,d[l*o+c+1]??0);let k=[],p=0,a=0;while(p<i.length&&a<s.length)if(i[p]===s[a])k.push({kind:"same",text:i[p]}),p++,a++;else if((d[(p+1)*o+a]??0)>=(d[p*o+a+1]??0))k.push({kind:"del",text:i[p]}),p++;else k.push({kind:"add",text:s[a]}),a++;return k.push(...r(i.slice(p)),...m(s.slice(a))),k}function D(i){return{added:i.filter((s)=>s.kind==="add").length,removed:i.filter((s)=>s.kind==="del").length}}var y={same:" ",add:"+",del:"−"};function w({lines:i}){return e("pre",{className:"diff",children:i.map((s,r)=>n("span",{className:"diff-line","data-kind":s.kind,children:[e("span",{className:"diff-mark","aria-hidden":"true",children:y[s.kind]}),s.kind==="add"||s.kind==="del"?n("span",{className:"visually-hidden",children:[s.kind==="add"?t("Added"):t("Removed"),":"," "]}):null,s.text||" "]},r))})}function et(i){let s=A(()=>h(i.before,i.after),[i.before,i.after]),r=D(s);return n("div",{className:"field",children:[n("span",{className:"field-label",children:[i.label," ·"," ",t("Lines: {added} added, {removed} removed",{added:r.added,removed:r.removed})]}),e(w,{lines:s})]})}
|
|
4
|
+
export{Qe,et};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{Te}from"./chunk-index-nwqk447w.js";import{t,ge,ss,Gn}from"./chunk-index-v23m38p6.js";function En(e){let n=e.getBoundingClientRect(),o=ss();ge({title:t("Rooms"),items:[{id:"new-folder",label:t("Add a folder"),icon:"plus",run:()=>Te({kind:"new"})},{id:"arrange",label:o?t("Done"):t("Arrange"),icon:o?"check":"list",run:()=>Gn(!o)}],at:{x:n.left,y:n.bottom},via:"key",source:e})}
|
|
2
|
+
export{En};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{a,In,o,r,t,p,e,n,s,rt,d,k,xt,Ht,jt,de,gn,ze,at,di,fi,hi,nn,Ie}from"./chunk-index-v23m38p6.js";import{I}from"./chunk-index-awx6nnta.js";function K(i,l,c,m){if(!i)return;let u=i.pending.at(-1);if(u&&!u.failed)return{id:`p${u.id}`,who:"owner",author:l,text:u.text,files:[],live:!1,pending:!0};if(i.typing&&i.progress.text!==""){let h=i.agent??m;return{id:`s${i.messages.at(-1)?.id??0}`,who:"agent",agent:h,author:c(h),text:i.progress.text,files:[],live:!0,pending:!1}}let g=i.live.at(-1);if(g)return{id:`l${g.live??g.id}`,who:"agent",agent:g.agent,author:g.author,text:g.text,files:g.files,live:!0,pending:!1};for(let h=i.messages.length-1;h>=0;h-=1){let f=i.messages[h];if(!f||f.kind==="system")continue;return{id:`m${f.id}`,who:f.kind==="owner"?"owner":"agent",agent:f.agent,author:f.author,text:f.text,files:f.files,live:!1,pending:!1}}return}function B(i,l,c){return i.cardOrder.map((u)=>({id:u,card:i.cards[u]})).filter((u)=>u.card?.room===l).filter((u)=>u.card.outcome===void 0||c===void 0||u.card.after>=c)}var Z=90;function j(i,l,c,m={}){if(m.instant)return l;let u=i+c/1000*(m.cps??Z);return Math.min(l,Math.max(i,u))}function O(){let i,l="",c=0,m=0;return{get shown(){return Math.floor(m)},get done(){return Math.floor(m)>=c},feed(u,g){if(u!==i){let h=l!==""&&(g.startsWith(l)||l.startsWith(g));if(i=u,!h)m=0}if(l=g,c=Array.from(g).length,m>c)m=c},step(u,g){m=j(m,c,u,{instant:g})},finish(){m=c}}}var F=(i,l)=>Array.from(i).slice(0,l).join("");function Br(i,l){if(!i)return null;let c=l.find((m)=>m.name===i||m.key===i);return c?c.name:null}function Fr(i,l){if(!i||i.who!=="agent"||i.agent===void 0)return null;return l.includes(i.agent)?i.agent:null}function Gr(i,l,c){return c&&c.lineId===l?c.member:i}function z(i){let l=o(O()),[,c]=In((h)=>h+1,0),m=rt();l.current.feed(i?.id??"",i?.text??"");let u=i?.text??"",g=i?.id;return a(()=>{let h=l.current;if(m||u===""||g===void 0){h.finish(),c();return}let f=performance.now(),v=0,w=()=>{let x=performance.now();if(h.step(x-f,!1),f=x,c(),!h.done)v=requestAnimationFrame(w)};if(!h.done)v=requestAnimationFrame(w);return()=>cancelAnimationFrame(v)},[m,g,u]),{shown:l.current.shown,done:l.current.done,finish(){l.current.finish(),c()}}}function Xi(i){let l=d((f)=>f.rooms[i]),c=d((f)=>f.principal?.name)??t("You"),m=d((f)=>{let v={};for(let w of Object.values(f.rooms))if(w.view?.kind==="agent")v[w.view.name]=w.view.displayName;return v}),u=l?.view,h=K(l,c,(f)=>(f===void 0?void 0:m[f])??f??u?.displayName??i,u?.kind==="agent"?u.name:void 0);return{room:l,view:u,line:h}}function Y(i){let{loaded:l,error:c}=i,m=d((f)=>f.rooms[i.roomKey]),[u,g]=r(!1),h=o(null);return a(()=>{if(i.open&&l)h.current?.scrollTo({top:h.current.scrollHeight})},[i.open,l]),e(I,{open:i.open,title:`${i.name} · ${t("Log")}`,onClose:i.onClose,children:n("div",{className:"scene-log",ref:h,children:[c?e("p",{className:"failure-text",children:c}):null,m?.more?e("button",{type:"button",className:"secondary older",disabled:u,onClick:async()=>{g(!0),await hi(i.roomKey),g(!1)},children:u?t("Loading…"):t("Load earlier messages")}):null,e(nn,{roomKey:i.roomKey,enterAfter:void 0,quotable:!0})]})})}function Xn(i){let{roomKey:l}=i,c=Ie(),m=k(),u=fi(l),g=i.streams!==!1;a(()=>{if(!g)return;return c.focus(l),()=>c.focus(void 0)},[c,l,g]);let h=d((y)=>y.limits),f=d((y)=>B(y,l,y.rooms[l]?.messages.at(-1)?.id)),v=at(),{room:w,view:x,line:b}=Xi(l),C=x?.kind==="agent"?x:void 0,N=C?C.name:b?.who==="agent"?b.agent:void 0,E=ze(N?v[N]:void 0),S=C?C.displayName:b?b.author:x?.displayName??l,{shown:D,done:M,finish:P}=z(b),[T,A]=r(!1),[R,H]=r(!1),q=b?.who==="owner"&&!C?{["--agent-accent"]:"var(--accent)"}:E,V=Boolean(w?.typing)&&(!b||b.who==="owner"),W=b?F(b.text,D):"";return n("section",{className:"scene-box","data-open":i.open||void 0,"data-collapsed":R||void 0,"data-who":b?.who,style:q,"aria-label":t("Log"),children:[n("header",{className:"scene-tab",children:[C||b?.who==="agent"?e("span",{className:"scene-chip",children:e(de,{spec:N?v[N]:void 0,name:N??S,size:34,live:!1})}):null,e("strong",{className:"scene-name",children:S}),n("span",{className:"scene-tools",children:[i.onBack?e("button",{type:"button",className:"icon-button","aria-label":t("Back to the whole table"),onClick:i.onBack,children:e(s,{name:"back"})}):null,i.onMenu?e("button",{type:"button",className:"icon-button scene-more","aria-label":t("More"),"aria-haspopup":"menu",onClick:(y)=>i.onMenu?.(y.currentTarget),children:e(s,{name:"more"})}):null,n("button",{type:"button",className:"icon-button scene-log-button","aria-label":t("Log"),"aria-haspopup":"dialog",onClick:()=>A(!0),children:[e(s,{name:"conversations"}),e("span",{children:t("Log")})]}),e("button",{type:"button",className:"icon-button scene-collapse","aria-label":R?t("Show the message box"):t("Hide the message box"),"aria-expanded":!R,onClick:()=>H((y)=>!y),children:e(s,{name:"menu"})})]})]}),n("div",{className:"scene-body",children:[e("div",{className:"scene-line","data-live":b?.live||void 0,"aria-live":"polite",...M?{}:{role:"button",tabIndex:0,title:t("Tap to show the whole message"),onClick:P,onKeyDown:(y)=>{if(y.key==="Enter"||y.key===" ")y.preventDefault(),P()}},children:b?n(p,{children:[C&&b.who==="owner"?e("span",{className:"scene-from",children:b.author}):null,e(xt,{source:W}),M?e(gn,{files:b.files}):null]}):null}),V&&w?e(jt,{name:S,progress:w.progress}):null,f.map(({id:y,card:L})=>e("div",{className:"scene-card",children:e(di,{card:L,timeZone:m.timeZone})},y))]}),x?.readOnly?null:e("div",{className:"scene-composer",children:e(Ht,{draftKey:l,name:x?.displayName??l,limits:h,stoppable:Boolean(w?.stoppable),onSend:(y,L)=>c.say(l,y,L),onStop:()=>c.send({type:"stop",room:l})},l)}),e(Y,{roomKey:l,open:T,loaded:u.loaded,error:u.error,name:x?.displayName??l,onClose:()=>A(!1)})]})}
|
|
2
|
+
export{Br,Fr,Gr,Xi,Xn};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{Ui}from"./chunk-index-v23m38p6.js";function un(){if(Ui()!==void 0)return new URLSearchParams(window.location.search);let n=window.location.hash,t=n.indexOf("?");return new URLSearchParams(t<0?"":n.slice(t+1))}function Ri(n){if(n.origin!==window.location.origin)return!1;let t=Ui();if(t){if(n.pathname!==t&&!n.pathname.startsWith(`${t}/`))return!1;return window.history.pushState(null,"",n),window.dispatchEvent(new PopStateEvent("popstate")),!0}if(n.pathname!==window.location.pathname)return!1;return window.location.hash=n.hash,!0}
|
|
2
|
+
export{un,Ri};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{r,t,e,n,u,h}from"./chunk-index-v23m38p6.js";import{I}from"./chunk-index-awx6nnta.js";function H(o){let[a,l]=r(!1),[s,i]=r(),c=()=>{if(a)return;i(void 0),o.onClose()};return e(I,{open:o.open,title:o.title,onClose:c,...o.restoreFocus?{restoreFocus:o.restoreFocus}:{},children:n("div",{className:"stack",children:[e("div",{className:"prose",children:o.children}),s?e(h,{message:s}):null,n("div",{className:"actions",children:[e("button",{type:"button",className:"secondary",disabled:a,onClick:c,children:o.cancelLabel??t("Cancel")}),e("button",{type:"button",className:o.tone==="danger"?"danger":o.tone==="yolo"?"yolo-action":"",disabled:a,onClick:async()=>{l(!0),i(void 0);try{await o.onConfirm(),o.onClose()}catch(d){i(u(d))}finally{l(!1)}},children:o.confirmLabel})]})]})})}
|
|
2
|
+
export{H};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{Le,Ji,Xt,er,B,ie,Wn,tr,vs,xs,nr,Ss,ws,_s,sn}from"./chunk-index-66nskrdj.js";export{Xt as AVATAR_STATES,B as CATALOG,Le as CLASS_IDS,ie as CharacterError,xs as EAST_ASIAN_SKINS,Ji as EXPRESSIONS,er as STATE_EXPRESSION,ws as accentOf,_s as characterCss,nr as checkSkins,Ss as composeSvg,tr as parseCharacter,vs as readCharacter,Wn as resolveCharacter,sn as suggestCharacter};
|