@openloaf/openspeech-frontend 0.2.34 → 0.2.36

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.
@@ -1,43 +0,0 @@
1
- import{d as Y,i as Ae,u as ee,h as Ce,r as d,M as Ee,k as _e,l as ze,n as Re,o as se,j as e,m,A as T,X as ue,S as Le,K as Te,f as Oe,b as Pe}from"./proxy-C8trGop7.js";import{u as ne,a as U,L as De,b as $e}from"./lenis-BmCCtsAn.js";import{h as Fe,g as Be,l as We,o as oe,C as He,L as Ve,a as qe,S as Ge,b as Ke,P as Xe,B as Ye,M as Ue,W as Qe,G as Ze,T as Je,c as et,d as tt,e as at,f as st,i as ie,F as nt,k as it,n as rt,m as lt,j as ct,A as ot,D as dt,p as xt}from"./index-CpFdKgxj.js";const mt=[["path",{d:"M12 6.528V3a1 1 0 0 1 1-1h0",key:"11qiee"}],["path",{d:"M18.237 21A15 15 0 0 0 22 11a6 6 0 0 0-10-4.472A6 6 0 0 0 2 11a15.1 15.1 0 0 0 3.763 10 3 3 0 0 0 3.648.648 5.5 5.5 0 0 1 5.178 0A3 3 0 0 0 18.237 21",key:"110c12"}]],pt=Y("apple",mt);const ft=[["path",{d:"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",key:"1oefj6"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}],["path",{d:"M10 9H8",key:"b1mrlr"}],["path",{d:"M16 13H8",key:"t4e002"}],["path",{d:"M16 17H8",key:"z1uh3a"}]],gt=Y("file-text",ft);const ht=[["path",{d:"M2.992 16.342a2 2 0 0 1 .094 1.167l-1.065 3.29a1 1 0 0 0 1.236 1.168l3.413-.998a2 2 0 0 1 1.099.092 10 10 0 1 0-4.777-4.719",key:"1sd12s"}]],ut=Y("message-circle",ht);const yt=[["path",{d:"M11 21.73a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73z",key:"1a0edw"}],["path",{d:"M12 22V12",key:"d0xqtd"}],["polyline",{points:"3.29 7 12 12 20.71 7",key:"ousv84"}],["path",{d:"m7.5 4.27 9 5.15",key:"1c824w"}]],bt=Y("package",yt);const jt=[["path",{d:"M12 19h8",key:"baeox8"}],["path",{d:"m4 17 6-6-6-6",key:"1yngyt"}]],vt=Y("terminal",jt);function Nt(...t){const s=!Array.isArray(t[0]),a=s?0:-1,n=t[0+a],r=t[1+a],l=t[2+a],i=t[3+a],x=Ae(r,l,i);return s?x(n):x}function wt(t){const s=ee(()=>Ce(t)),{isStatic:a}=d.useContext(Ee);if(a){const[,n]=d.useState(t);d.useEffect(()=>s.on("change",n),[])}return s}function ye(t,s){const a=wt(s()),n=()=>a.set(s());return n(),_e(()=>{const r=()=>Re.preRender(n,!1,!0),l=t.map(i=>i.on("change",r));return()=>{l.forEach(i=>i()),ze(n)}}),a}function kt(t){se.current=[],t();const s=ye(se.current,t);return se.current=void 0,s}function B(t,s,a,n){if(typeof t=="function")return kt(t);if(a!==void 0&&!Array.isArray(a)&&typeof s!="function")return St(t,s,a,n);const i=typeof s=="function"?s:Nt(s,a,n),x=Array.isArray(t)?de(t,i):de([t],([c])=>i(c)),o=Array.isArray(t)?void 0:t.accelerate;return o&&!o.isTransformed&&typeof s!="function"&&Array.isArray(a)&&n?.clamp!==!1&&(x.accelerate={...o,times:s,keyframes:a,isTransformed:!0}),x}function de(t,s){const a=ee(()=>[]);return ye(t,()=>{a.length=0;const n=t.length;for(let r=0;r<n;r++)a[r]=t[r].get();return s(a)})}function St(t,s,a,n){const r=ee(()=>Object.keys(a)),l=ee(()=>({}));for(const i of r)l[i]=B(t,s,a[i],n);return l}function E(...t){return t.filter(Boolean).join(" ")}function Mt(){const[t,s]=d.useState(!1);return d.useEffect(()=>{const a=()=>s(window.scrollY>32);return a(),window.addEventListener("scroll",a,{passive:!0}),()=>window.removeEventListener("scroll",a)},[]),e.jsxs("header",{className:E("fixed inset-x-0 top-0 z-40 flex items-center justify-between px-6 py-4 transition-all duration-300 lg:px-12",t?"border-b border-te-gray/30 bg-te-bg/80 backdrop-blur-xl":"border-b border-transparent bg-transparent"),children:[e.jsxs("a",{href:"#hero",className:"flex items-center gap-2.5",children:[e.jsx("img",{src:"/logo-no-bg.png",alt:"OpenSpeech",className:"h-7 w-7 select-none",draggable:!1}),e.jsx("span",{className:"font-mono text-[14px] font-bold tracking-[-0.01em] text-te-fg",children:"OpenSpeech"})]}),e.jsx("nav",{className:"hidden items-center gap-8 md:flex",children:[{id:"accuracy",label:"润色"},{id:"dictionary",label:"词典"},{id:"meeting",label:"会议"}].map(a=>e.jsx("a",{href:`#${a.id}`,className:"text-[13px] tracking-normal text-te-light-gray transition-colors hover:text-te-accent",children:a.label},a.id))}),e.jsx("a",{href:"#download",className:"border border-te-accent/40 bg-te-accent/10 px-4 py-1.5 text-[13px] text-te-accent transition-all hover:bg-te-accent hover:text-te-accent-fg",children:"下载"})]})}function It({sections:t}){const[s,a]=d.useState(t[0]?.id??"");return d.useEffect(()=>{const n=[],r=new Map;return t.forEach(l=>{const i=document.getElementById(l.id);if(!i)return;const x=new IntersectionObserver(o=>{for(const p of o)r.set(l.id,p.intersectionRatio);let c=s,f=-1;for(const[p,y]of r)y>f&&(f=y,c=p);f>.2&&a(c)},{threshold:[0,.25,.5,.75,1]});x.observe(i),n.push(x)}),()=>n.forEach(l=>l.disconnect())},[t]),e.jsx("nav",{"aria-label":"Sections",className:"pointer-events-auto fixed right-6 top-1/2 z-50 hidden -translate-y-1/2 flex-col gap-3 md:flex",children:t.map(n=>{const r=n.id===s;return e.jsxs("a",{href:`#${n.id}`,className:"group relative flex items-center justify-end gap-3",children:[e.jsx("span",{className:E("text-[12px] tracking-normal transition-all duration-300",r?"translate-x-0 text-te-accent opacity-100":"translate-x-2 text-te-light-gray opacity-0 group-hover:translate-x-0 group-hover:opacity-80"),children:n.label}),e.jsx("span",{className:E("block size-2 rounded-full border transition-all duration-300",r?"scale-125 border-te-accent bg-te-accent te-dot-glow":"border-te-gray bg-transparent group-hover:border-te-light-gray")})]},n.id)})})}function At({className:t=""}){const s=d.useRef(null),a=d.useRef({x:-1,y:-1}),[n,r]=d.useState(!1);return d.useEffect(()=>{const l=s.current;if(!l)return;const i=l.getContext("2d");if(!i)return;let x=0,o=0,c=[],f=new Float32Array(0),p=new Float32Array(0),y=null,j=0;const v=44,g=v*1.55;let h=null,w=0,b=0;const N=()=>{const M=l.parentElement;if(!M)return;const R=M.getBoundingClientRect(),O=Math.min(window.devicePixelRatio||1,2);x=R.width,o=R.height,l.width=x*O,l.height=o*O,l.style.width=`${x}px`,l.style.height=`${o}px`,i.scale(O,O),c=[];for(let I=0;I<=x;I+=v)for(let P=0;P<=o;P+=v)c.push({x:I+v/2,y:P+v/2});f=new Float32Array(c.length),p=new Float32Array(c.length),w=Math.ceil(x/g)+1,b=Math.ceil(o/g)+1,h=Array.from({length:w*b},()=>[]);for(let I=0;I<c.length;I++){const P=Math.floor(c[I].x/g),ae=Math.floor(c[I].y/g);h[P*b+ae].push(I)}r(!0)},z=()=>{i.clearRect(0,0,x,o);const M=j*.005,R=x*.5+Math.sin(M*1.3)*x*.28,O=o*.5+Math.cos(M*.71)*o*.22,I=a.current.x>=0,P=I?a.current.x:R,ae=I?a.current.y:O,G=c.length;for(let u=0;u<G;u++){const A=c[u].x,C=c[u].y,k=Math.sin(Math.hypot(A-P,C-ae)*.021-j*.037),L=Math.sin(Math.hypot(A-R,C-O)*.017-j*.028)*.3,_=Math.max(k,L);f[u]=Math.max(0,_*.82),p[u]=.8+Math.max(0,_)*1.6}if(!h)return;i.lineWidth=.9,i.strokeStyle="rgba(255,204,0,0.08)",i.beginPath();for(let u=0;u<G;u++){if(f[u]<.12)continue;const A=c[u].x,C=c[u].y,k=Math.floor(A/g),L=Math.floor(C/g);for(let _=-1;_<=1;_++){const D=k+_;if(!(D<0||D>=w))for(let $=-1;$<=1;$++){const F=L+$;if(!(F<0||F>=b))for(const S of h[D*b+F])S<=u||f[S]<.12||Math.hypot(A-c[S].x,C-c[S].y)>g||Math.min(f[u],f[S])<.2||(i.moveTo(A,C),i.lineTo(c[S].x,c[S].y))}}}i.stroke(),i.strokeStyle="rgba(255,204,0,0.4)",i.beginPath();for(let u=0;u<G;u++){if(f[u]<.55)continue;const A=c[u].x,C=c[u].y,k=Math.floor(A/g),L=Math.floor(C/g);for(let _=-1;_<=1;_++){const D=k+_;if(!(D<0||D>=w))for(let $=-1;$<=1;$++){const F=L+$;if(!(F<0||F>=b))for(const S of h[D*b+F])S<=u||f[S]<.55||Math.hypot(A-c[S].x,C-c[S].y)>g||(i.moveTo(A,C),i.lineTo(c[S].x,c[S].y))}}}i.stroke(),i.fillStyle="rgba(255,255,255,0.04)",i.beginPath();for(let u=0;u<G;u++)f[u]>.05||(i.moveTo(c[u].x+.5,c[u].y),i.arc(c[u].x,c[u].y,.5,0,Math.PI*2));i.fill();const Me=[{minOp:.05,maxOp:.35,style:"rgba(255,204,0,0.08)"},{minOp:.35,maxOp:.65,style:"rgba(255,204,0,0.22)"},{minOp:.65,maxOp:1,style:"rgba(255,204,0,0.4)"}];for(const{minOp:u,maxOp:A,style:C}of Me){i.fillStyle=C,i.beginPath();for(let k=0;k<G;k++){const L=f[k];L<=u||L>A||(i.moveTo(c[k].x+p[k],c[k].y),i.arc(c[k].x,c[k].y,p[k],0,Math.PI*2))}i.fill()}const K=j*.28%(o+80)-40;if(K>-40&&K<o){const u=i.createLinearGradient(0,K-30,0,K+5);u.addColorStop(0,"rgba(255,204,0,0)"),u.addColorStop(.6,"rgba(255,204,0,0.012)"),u.addColorStop(1,"rgba(255,204,0,0.04)"),i.fillStyle=u,i.fillRect(0,Math.max(0,K-30),x,35)}j++,y=requestAnimationFrame(z)},W=M=>{const R=l.getBoundingClientRect();a.current={x:M.clientX-R.left,y:M.clientY-R.top}},H=M=>{M.relatedTarget||(a.current={x:-1,y:-1})};return N(),z(),window.addEventListener("resize",N),window.addEventListener("mousemove",W),document.addEventListener("mouseleave",H),()=>{window.removeEventListener("resize",N),window.removeEventListener("mousemove",W),document.removeEventListener("mouseleave",H),y&&cancelAnimationFrame(y)}},[]),e.jsx("canvas",{ref:s,className:`absolute inset-0 h-full w-full ${t}`,style:{opacity:n?1:0,transition:"opacity 1.2s ease-in"}})}const xe=[{id:"meeting",raw:"嗯就是会议改到下午三点,麻烦同步一下大家",zh:"会议改到下午 3 点,麻烦同步给大家。",en:"The meeting is moved to 3 PM. Please sync everyone."},{id:"client",raw:"跟客户说一下,新版方案下周一之前给到",zh:"新版方案我下周一之前发给您。",en:"I'll send the revised proposal by next Monday."},{id:"weekend",raw:"周末要加班,那个聚会下周再约吧",zh:"周末要加班,下周再约吧。",en:"I have to work this weekend. Let's plan for next week."}],be={idle:1300,recording:2800,transcribing:700,output:5500,hold:1700},Ct={idle:"recording",recording:"transcribing",transcribing:"output",output:"hold",hold:"idle"};function Et(t,s){const[a,n]=d.useState("idle"),r=ne();return d.useEffect(()=>{if(!t||r)return;const l=setTimeout(()=>{const i=Ct[a];n(i),i==="idle"&&s?.()},be[a]);return()=>clearTimeout(l)},[a,t,r,s]),d.useEffect(()=>{r&&n("output")},[r]),a}function _t({active:t}){const[s,a]=d.useState(0),r=Et(t,()=>a(i=>(i+1)%xe.length)),l=xe[s];return e.jsx("div",{className:"flex w-full justify-center",children:e.jsx(zt,{stage:r,demo:l})})}function zt({stage:t,demo:s}){const a=ne(),n=t==="recording",r=n;return e.jsxs("div",{className:"relative w-full max-w-[880px]",style:{perspective:"2400px"},children:[e.jsx(m.div,{"aria-hidden":!0,animate:{opacity:n?.95:.55,scale:n?1.18:1},transition:{duration:1.1,ease:[.22,1,.36,1]},className:"pointer-events-none absolute -inset-x-10 -bottom-14 h-44 rounded-[50%] bg-te-accent/22 blur-[80px]"}),e.jsx(m.div,{initial:{opacity:0,y:32,scale:.95},animate:a?{opacity:1,y:0,scale:1}:{opacity:1,y:[0,-3,0],scale:1},transition:{opacity:{duration:.9,ease:[.16,1,.3,1]},scale:{duration:.9,ease:[.16,1,.3,1]},y:a?{duration:.9,ease:[.16,1,.3,1]}:{duration:5,repeat:1/0,ease:"easeInOut"}},children:e.jsxs(m.div,{animate:{rotateX:n?4:8,rotateY:-3,scale:n?1.018:1},transition:{duration:1,ease:[.22,1,.36,1]},style:{transformStyle:"preserve-3d",boxShadow:"0 90px 140px -40px rgba(0,0,0,0.88), 0 60px 90px -30px rgba(244,209,57,0.22), 0 0 0 1px rgba(255,255,255,0.04), inset 0 1px 0 0 rgba(255,255,255,0.07)"},className:"relative overflow-hidden rounded-[28px] border border-te-gray/40 bg-te-surface",children:[e.jsx("div",{"aria-hidden":!0,className:"pointer-events-none absolute inset-0 z-20 rounded-[28px]",style:{background:"linear-gradient(135deg, rgba(255,255,255,0.07) 0%, rgba(255,255,255,0) 32%, rgba(255,255,255,0) 68%, rgba(255,255,255,0.04) 100%)"}}),e.jsx(T,{children:n&&e.jsx(m.div,{"aria-hidden":!0,initial:{opacity:0},animate:{opacity:1},exit:{opacity:0},transition:{duration:.4},className:"pointer-events-none absolute inset-0 z-20 rounded-[28px] ring-1 ring-te-accent/30"})}),e.jsxs("div",{className:"relative z-10 flex items-center justify-between gap-3 border-b border-te-gray/30 px-7 py-4",children:[e.jsxs("div",{className:"flex min-w-0 items-center gap-3",children:[e.jsxs("span",{className:"font-mono text-[12.5px] font-bold tracking-[0.2em]",children:[e.jsx("span",{className:"text-te-fg",children:"OPEN"}),e.jsx("span",{className:"text-te-accent",children:"·SPEECH"})]}),e.jsx("span",{"aria-hidden":!0,className:"h-3 w-px bg-te-gray/50"}),e.jsxs("span",{className:"inline-flex items-center gap-1.5 text-[12.5px] tracking-normal text-te-light-gray",children:[e.jsx("span",{className:"size-1.5 rounded-full bg-te-accent"}),"听写 + 翻译"]})]}),e.jsx("button",{type:"button",tabIndex:-1,"aria-label":"close",className:"grid size-5 place-items-center text-te-light-gray/60",children:e.jsx(ue,{className:"size-3.5",strokeWidth:2.2})})]}),e.jsx("div",{className:"relative z-10 min-h-[340px] px-8 py-8",children:e.jsxs(T,{mode:"wait",children:[t==="idle"&&e.jsxs(m.div,{initial:{opacity:0,scale:.96},animate:{opacity:1,scale:1},exit:{opacity:0,scale:.96},transition:{type:"spring",stiffness:280,damping:30},className:"absolute inset-0 flex flex-col items-center justify-center gap-3.5",children:[e.jsx(m.div,{animate:{scale:[1,1.08,1]},transition:{duration:2.2,repeat:1/0,ease:"easeInOut"},children:e.jsx(Fe,{className:"size-11 text-te-light-gray/35",strokeWidth:1.4})}),e.jsx("span",{className:"text-[13.5px] tracking-normal text-te-light-gray/55",children:"等待开口…"})]},"idle"),t==="recording"&&e.jsxs(m.div,{initial:{opacity:0,scale:.96},animate:{opacity:1,scale:1},exit:{opacity:0,scale:.96},transition:{type:"spring",stiffness:280,damping:30},className:"absolute inset-0 flex flex-col items-center justify-center gap-5 px-2",children:[e.jsxs("span",{className:"flex items-center gap-2 text-[13px] tracking-normal text-te-accent",children:[e.jsx(m.span,{className:"size-1.5 rounded-full bg-te-accent",animate:{opacity:[1,.3,1]},transition:{duration:1,repeat:1/0,ease:"easeInOut"}}),e.jsx("span",{className:"font-mono text-[11px] uppercase tracking-[0.25em]",children:"REC"}),e.jsx("span",{className:"opacity-60",children:"·"}),e.jsx("span",{children:"正在听"})]}),e.jsx("div",{className:"w-full",children:e.jsx(Rt,{active:!0,height:140})})]},"recording"),t==="transcribing"&&e.jsxs(m.div,{initial:{opacity:0,scale:.96},animate:{opacity:1,scale:1},exit:{opacity:0,scale:.96},transition:{type:"spring",stiffness:280,damping:30},className:"absolute inset-0 flex flex-col items-center justify-center gap-3",children:[e.jsx("span",{className:"text-[13.5px] tracking-normal text-te-light-gray/75",children:"整理 + 翻译中…"}),e.jsx("div",{className:"w-[260px]",children:e.jsx(Lt,{})})]},"transcribing"),(t==="output"||t==="hold")&&e.jsxs(m.div,{initial:{opacity:0,scale:.97},animate:{opacity:1,scale:1},exit:{opacity:0,scale:.97},transition:{type:"spring",stiffness:260,damping:30},className:"flex flex-col gap-3.5",children:[e.jsxs(m.div,{initial:{opacity:0,x:-10,scale:.96},animate:{opacity:1,x:0,scale:1},transition:{type:"spring",stiffness:280,damping:26},className:"flex max-w-[78%] items-start gap-3 self-start",children:[e.jsx("div",{className:"flex size-10 shrink-0 items-center justify-center rounded-full border border-te-gray/40 bg-te-gray/30 text-[14px] font-medium text-te-light-gray",children:"你"}),e.jsxs("div",{className:"flex flex-col gap-0.5 rounded-2xl rounded-tl-sm bg-te-gray/30 px-4 py-2.5",children:[e.jsx("div",{className:"text-[11px] tracking-normal text-te-light-gray/55",children:"你说"}),e.jsxs("span",{className:"text-[14.5px] leading-snug text-te-light-gray",children:["「",s.raw,"」"]})]})]}),e.jsxs(m.div,{initial:{opacity:0,x:10,scale:.96},animate:{opacity:1,x:0,scale:1},transition:{type:"spring",stiffness:260,damping:26,delay:.45},className:"flex max-w-[88%] items-start gap-3 self-end",children:[e.jsxs("div",{className:"flex flex-col gap-1 rounded-2xl rounded-tr-sm border border-te-accent/40 bg-te-accent/[0.08] px-4 py-3 shadow-[0_8px_30px_-12px_rgba(244,209,57,0.35)]",children:[e.jsx("div",{className:"flex items-center gap-1.5 text-[11px] tracking-normal text-te-accent",children:e.jsx("span",{children:"OpenSpeech · 整理 + 翻译"})}),e.jsx(Tt,{zh:s.zh,en:s.en,startDelay:500})]}),e.jsx("div",{className:"flex size-10 shrink-0 items-center justify-center rounded-full border border-te-accent/45 bg-te-accent/15 text-[16px] font-bold text-te-accent",children:"✦"})]})]},`output-${s.id}`)]})}),e.jsx("div",{className:"relative z-10 border-t border-te-gray/30 bg-te-bg/50 px-7 py-4",children:e.jsxs("div",{className:"flex items-center justify-between gap-4",children:[e.jsxs("div",{className:"flex items-center gap-3.5",children:[e.jsxs("div",{className:"flex items-center gap-1.5",children:[e.jsx(me,{pressed:r,label:"Fn"}),e.jsx("span",{className:"font-mono text-[13px] text-te-light-gray/50",children:"+"}),e.jsx(me,{pressed:r,glyph:"⌃",label:"Ctrl"})]}),e.jsx("span",{className:"text-[12.5px] tracking-normal text-te-light-gray/65",children:"按住开始说话"})]}),e.jsxs("div",{className:"flex items-center gap-2.5 text-[11.5px] tracking-normal text-te-light-gray/50",children:[e.jsxs("span",{className:"flex items-center gap-1",children:[e.jsx("span",{className:"font-mono text-te-light-gray/70",children:"⏎"}),"写入光标"]}),e.jsx("span",{className:"opacity-50",children:"·"}),e.jsxs("span",{className:"flex items-center gap-1",children:[e.jsx("span",{className:"font-mono tracking-[0.05em] text-te-light-gray/70",children:"Esc"}),"关闭"]})]})]})}),e.jsx(T,{children:t==="hold"&&e.jsxs(m.div,{initial:{opacity:0,y:-8,scale:.88},animate:{opacity:1,y:0,scale:1},exit:{opacity:0,scale:.92},transition:{type:"spring",stiffness:320,damping:24},className:"absolute right-5 bottom-[88px] z-30 bg-te-accent px-3 py-1.5 text-[11.5px] font-medium tracking-normal text-te-accent-fg shadow-[0_10px_30px_-8px_rgba(244,209,57,0.5)]",children:[e.jsx("span",{className:"mr-0.5 font-mono",children:"✓"}),"已写入光标"]})})]})})]})}function me({pressed:t,glyph:s,label:a}){return e.jsxs(m.span,{animate:{y:t?1.5:0,scale:t?.96:1},transition:{duration:.14,ease:[.22,1,.36,1]},className:"inline-flex h-9 min-w-[44px] items-center justify-center gap-1 rounded-md border px-2.5 font-mono text-[12px] uppercase tracking-[0.1em] transition-colors "+(t?"border-te-accent bg-te-accent/15 text-te-accent shadow-[inset_0_-2px_0_0_var(--te-accent),0_0_20px_-4px_rgba(244,209,57,0.5)]":"border-te-gray/55 bg-te-bg text-te-fg shadow-[inset_0_-2px_0_0_rgba(255,255,255,0.05),0_2px_0_0_rgba(0,0,0,0.4)]"),children:[s&&e.jsx("span",{className:"opacity-80",children:s}),e.jsx("span",{children:a})]})}function Rt({active:t,height:s=88}){const[n,r]=d.useState(()=>Array(68).fill(.06)),l=d.useRef(null);d.useEffect(()=>{if(!t)return;const o=()=>{const c=performance.now()/1e3,f=Array.from({length:68},(p,y)=>{const j=Math.sin(y/67*Math.PI),v=.32*Math.sin(c*5.6+y*.32)+.18*Math.sin(c*12.3+y*.71)+.1*Math.sin(c*21.7+y*1.31)+(Math.random()-.5)*.1;return Math.max(.06,Math.min(1,j*(.55+v)))});r(f),l.current=requestAnimationFrame(o)};return l.current=requestAnimationFrame(o),()=>{l.current!==null&&cancelAnimationFrame(l.current)}},[t]);const i=272,x=67/2;return e.jsx("svg",{width:"100%",height:s,viewBox:`0 0 ${i} ${s}`,preserveAspectRatio:"none","aria-hidden":!0,children:n.map((o,c)=>{const f=c*4+2,p=o*(s/2-4),y=s/2,v=1-Math.abs(c-x)/x*.55;return e.jsx("line",{x1:f,y1:y-p,x2:f,y2:y+p,stroke:"var(--te-accent)",strokeWidth:1.5,strokeLinecap:"round",opacity:v,style:{transition:"all 80ms ease-out"}},c)})})}function Lt(){return e.jsx("div",{className:"relative h-[3px] w-full overflow-hidden bg-te-accent/30",children:e.jsx(m.span,{className:"absolute inset-y-0 w-1/3 bg-te-accent",initial:{left:"-33%"},animate:{left:"100%"},transition:{duration:.6,ease:"easeInOut"}})})}function Tt({zh:t,en:s,startDelay:a=0}){const[n,r]=d.useState(0),[l,i]=d.useState(0),x=ne();d.useEffect(()=>{if(x){r(t.length),i(s.length);return}r(0),i(0);const f=t.length+s.length,p=Math.max(800,be.output-a-700),y=Math.max(28,Math.floor(p/f)),j=Math.ceil(280/y);let v=0,g=0,h="zh",w=0,b=null;const N=setTimeout(()=>{b=setInterval(()=>{h==="zh"?v<t.length?(v+=1,r(v)):h="gap":h==="gap"?(w+=1,w>=j&&(h="en")):h==="en"?g<s.length?(g+=1,i(g)):h="done":b&&clearInterval(b)},y)},a);return()=>{clearTimeout(N),b&&clearInterval(b)}},[t,s,x,a]);const o=n>=t.length,c=l>0;return e.jsxs("div",{className:"flex w-full flex-col gap-1.5 leading-snug",children:[e.jsxs("span",{className:"text-[16px] text-te-fg",children:[t.slice(0,n),!o&&e.jsx(pe,{size:"sm"})]}),(o||c)&&e.jsxs("span",{className:"text-[13.5px] italic text-te-light-gray/70",children:[s.slice(0,l),o&&l<s.length&&e.jsx(pe,{size:"sm"})]})]})}function pe({size:t="md"}){return e.jsx(m.span,{className:"ml-0.5 inline-block w-[2px] translate-y-[0.15em] bg-te-accent "+(t==="sm"?"h-[0.9em]":"h-[1em]"),animate:{opacity:[1,.2,1]},transition:{duration:.9,repeat:1/0,ease:"easeInOut"}})}function q(t=.4,s){const a=s?.sticky??!1,n=d.useRef(null),[r,l]=d.useState(!1);return d.useEffect(()=>{const i=n.current;if(!i)return;const x=new IntersectionObserver(o=>{for(const c of o)c.isIntersecting&&c.intersectionRatio>=t?l(!0):!a&&c.intersectionRatio<t*.4&&l(!1)},{threshold:[0,t*.4,t,.7,1]});return x.observe(i),()=>x.disconnect()},[t,a]),{ref:n,active:r}}const fe="说出来,".split(""),Ot="写下来。".split("");function ge({chars:t,baseDelay:s=0,step:a=.05,className:n}){return e.jsx("span",{className:n,children:t.map((r,l)=>e.jsx(m.span,{initial:{opacity:0,y:24,filter:"blur(10px)"},animate:{opacity:1,y:0,filter:"blur(0px)"},transition:{duration:.85,delay:s+l*a,ease:[.16,1,.3,1]},className:"inline-block",children:r},`${r}-${l}`))})}function Pt(){const t=d.useRef(null),{ref:s,active:a}=q(.3),{scrollYProgress:n}=U({target:t,offset:["start start","end start"]}),r=B(n,[0,.5],[1,0]),l=B(n,[0,1],[0,-80]),i=B(n,[0,.6],[.35,0]);return e.jsxs("section",{ref:t,id:"hero",className:"landing-section relative flex min-h-screen flex-col items-center justify-center overflow-hidden pt-24 pb-20",children:[e.jsxs(m.div,{"aria-hidden":!0,style:{opacity:i},className:"pointer-events-none absolute inset-0 -z-20",children:[e.jsx(At,{}),e.jsx("div",{className:"absolute inset-x-0 top-0 h-32 bg-gradient-to-b from-te-bg to-transparent"}),e.jsx("div",{className:"absolute inset-x-0 bottom-0 h-48 bg-gradient-to-t from-te-bg to-transparent"}),e.jsx("div",{className:"absolute inset-0",style:{background:"radial-gradient(ellipse 70% 60% at 50% 50%, rgba(10,10,10,0.78) 0%, rgba(10,10,10,0.35) 45%, rgba(10,10,10,0) 80%)"}})]}),e.jsx("div",{"aria-hidden":!0,className:"pointer-events-none absolute inset-0 -z-10",children:e.jsx("div",{className:"absolute left-1/2 top-1/3 h-[640px] w-[640px] -translate-x-1/2 -translate-y-1/2 rounded-full bg-te-accent/8 blur-[140px]"})}),e.jsxs(m.div,{style:{opacity:r},className:"relative z-10 mx-auto flex w-full max-w-5xl flex-col items-center gap-6 px-6 text-center",children:[e.jsxs("h1",{style:{letterSpacing:"-0.025em"},className:"font-sans text-[clamp(2.8rem,7.2vw,6.4rem)] font-bold leading-[1.02]",children:[e.jsx(ge,{chars:fe,className:"text-te-fg"}),e.jsxs("span",{className:"relative inline-block align-baseline",children:[e.jsx(ge,{chars:Ot,baseDelay:fe.length*.05+.05,step:.06,className:"text-te-accent"}),e.jsx(m.span,{"aria-hidden":!0,initial:{scaleX:0,opacity:0},animate:{scaleX:1,opacity:1},transition:{duration:.9,delay:.85,ease:[.16,1,.3,1]},style:{originX:0},className:"absolute inset-x-2 -bottom-1 h-[2px] bg-gradient-to-r from-transparent via-te-accent/65 to-transparent"}),e.jsx("span",{"aria-hidden":!0,className:"absolute -inset-4 -z-10 rounded-full bg-te-accent/22 blur-3xl"})]})]}),e.jsxs(m.p,{initial:{opacity:0,y:12,filter:"blur(6px)"},animate:{opacity:1,y:0,filter:"blur(0px)"},transition:{duration:.9,delay:.95,ease:[.16,1,.3,1]},className:"text-[15px] tracking-normal text-te-light-gray md:text-[17px]",children:["中译英、改邮件、写报告 ——",e.jsx("span",{className:"text-te-fg",children:" 一个键"}),"。"]}),e.jsxs(m.div,{initial:{opacity:0,y:14},animate:{opacity:1,y:0},transition:{duration:.9,delay:1.15,ease:[.16,1,.3,1]},className:"flex flex-wrap items-center justify-center gap-3",children:[e.jsx(m.a,{href:"#download",whileHover:{scale:1.04,y:-1},whileTap:{scale:.97},transition:{duration:.2,ease:[.22,1,.36,1]},className:"inline-flex items-center gap-2 bg-te-accent px-7 py-3 text-[14px] font-medium text-te-accent-fg shadow-[0_10px_30px_-8px_rgba(244,209,57,0.4)] transition-[filter,box-shadow] hover:brightness-110 hover:shadow-[0_14px_40px_-8px_rgba(244,209,57,0.55)]",children:"免费下载"}),e.jsxs(m.a,{href:"#hero-demo",whileHover:{scale:1.04,y:-1},whileTap:{scale:.97},transition:{duration:.2,ease:[.22,1,.36,1]},className:"inline-flex items-center gap-2 border border-te-gray/60 px-7 py-3 text-[14px] text-te-light-gray transition-colors hover:border-te-accent hover:text-te-accent",children:["看 30 秒演示 ",e.jsx("span",{className:"ml-0.5 opacity-70",children:"↓"})]})]})]}),e.jsx(m.div,{ref:s,id:"hero-demo",style:{y:l},className:"relative z-10 mx-auto mt-10 w-full max-w-4xl px-4 md:mt-14",children:e.jsx(_t,{active:a})}),e.jsx(m.a,{href:"#why-not-ime","aria-label":"scroll down",animate:{y:[0,6,0]},transition:{duration:1.8,repeat:1/0,ease:"easeInOut"},className:"absolute bottom-5 left-1/2 -translate-x-1/2 text-base text-te-light-gray/45 hover:text-te-accent",children:"↓"})]})}const Dt=[{who:"系统听写",limit:"仅限自家 App"},{who:"拼音输入法",limit:"还得自己打字"},{who:"OpenSpeech",limit:"按住说就行",accent:!0}];function $t(){const{ref:t,active:s}=q(.4);return e.jsx("section",{id:"why-not-ime",className:"relative w-full border-y border-te-gray/30 bg-te-surface/30 py-14",children:e.jsxs("div",{ref:t,className:"mx-auto flex max-w-6xl flex-col gap-8 px-6 lg:flex-row lg:items-center lg:justify-between lg:gap-12 lg:px-12",children:[e.jsxs(m.div,{initial:{opacity:0,x:-20},animate:s?{opacity:1,x:0}:{opacity:0,x:-20},transition:{duration:.7},className:"flex flex-col gap-3 lg:max-w-md",children:[e.jsx("h2",{className:"font-mono text-2xl font-bold leading-tight tracking-tighter text-te-fg md:text-3xl",children:"不是又一个语音输入法。"}),e.jsxs("p",{className:"text-sm leading-relaxed text-te-light-gray md:text-base",children:["系统自带听写只在备忘录能用,搜狗讯飞是拼音输入工具——OpenSpeech 按住快捷键,在你",e.jsx("span",{className:"text-te-fg",children:" 此刻光标所在的任何输入框 "}),"直接出字,并用 AI 顺手整理。"]})]}),e.jsx("div",{className:"flex flex-col gap-2 lg:flex-row lg:items-center lg:gap-3",children:Dt.map((a,n)=>e.jsxs(m.div,{initial:{opacity:0,y:12},animate:s?{opacity:1,y:0}:{opacity:0,y:12},transition:{duration:.5,delay:.1+n*.1},className:"flex items-center justify-between gap-3 border px-4 py-3 font-mono text-xs uppercase tracking-[0.15em] transition-colors lg:flex-col lg:items-start lg:gap-1.5 lg:px-5 "+(a.accent?"border-te-accent bg-te-accent/10 text-te-accent":"border-te-gray/50 bg-te-bg text-te-light-gray line-through decoration-te-light-gray/40"),children:[e.jsx("span",{className:"text-[11px]",children:a.who}),e.jsx("span",{className:a.accent?"text-te-fg":"text-te-light-gray/70",children:a.limit})]},a.who))})]})})}const Q=[{id:"email",label:"邮件",icon:Be,badge:"Email · 正式 · 中文",raw:[{text:"嗨,",kind:"filler"},{text:"那个",kind:"filler"},{text:"我看了你昨天发的方案,",kind:"keep"},{text:"嗯,",kind:"filler"},{text:"整体没啥大问题,",kind:"keep"},{text:"就是",kind:"filler"},{text:"表格里第三列那个数据,",kind:"keep"},{text:"能不能",kind:"filler"},{text:"再核对一下,",kind:"keep"},{text:"然后",kind:"filler"},{text:"周五前给我一份新的,谢谢啦。",kind:"keep"}],refinedKind:"paragraph",refined:"你好,方案我看过了,整体没问题。麻烦再核对一下表格第三列的数据,周五前发我一份更新版即可。谢谢。"},{id:"chat",label:"微信",icon:ut,badge:"Chat · 口语 · 自然",raw:[{text:"啊",kind:"filler"},{text:"对了,",kind:"keep"},{text:"那个",kind:"filler"},{text:"周末聚餐的事,",kind:"keep"},{text:"嗯",kind:"filler"},{text:"我看大家定的是海底捞,",kind:"keep"},{text:"几点啊",kind:"keep"},{text:",我可能要",kind:"keep"},{text:"晚一点到",kind:"keep"},{text:",大概",kind:"filler"},{text:"七点半左右。",kind:"keep"}],refinedKind:"paragraph",refined:"对了周末聚餐定海底捞了吗?几点开始?我可能晚一点,大约 7:30 到。"},{id:"translate",label:"翻译",icon:We,badge:"ZH → EN · 商务",raw:[{text:"我们",kind:"filler"},{text:"下周三下午三点",kind:"keep"},{text:"开个会,",kind:"keep"},{text:"把",kind:"filler"},{text:"这个季度的 KPI 复盘一下,",kind:"keep"},{text:"顺便",kind:"filler"},{text:"聊一下下个季度的目标。",kind:"keep"}],refinedKind:"paragraph",refined:"Let's set up a meeting next Wednesday at 3pm to review this quarter's KPIs and align on next quarter's goals."},{id:"doc",label:"文档",icon:gt,badge:"Doc · 结构化 · 列表",raw:[{text:"嗯,",kind:"filler"},{text:"我们这周要做三件事",kind:"keep"},{text:"啊",kind:"filler"},{text:"。第一个,",kind:"keep"},{text:"呃,",kind:"filler"},{text:"把",kind:"keep"},{text:"那个",kind:"filler"},{text:"登录页面…不对不对,是",kind:"correction"},{text:"注册页面修一下",kind:"keep"},{text:"。然后",kind:"keep"},{text:"呢",kind:"filler"},{text:",把数据库迁移搞完",kind:"keep"},{text:"。最后,把测试覆盖率提到 80% 以上。",kind:"keep"}],refinedKind:"list",refinedHeader:"本周任务 · 共 3 项",refinedList:["修改注册页面","完成数据库迁移","测试覆盖率提升至 80% 以上"],refined:""}],Ft=5500;function Bt(){const t=d.useRef(null),{ref:s,active:a}=q(.35),[n,r]=d.useState(0),[l,i]=d.useState(!1);d.useEffect(()=>{if(!a||l)return;const p=setInterval(()=>r(y=>(y+1)%Q.length),Ft);return()=>clearInterval(p)},[a,l]),d.useEffect(()=>{if(!l)return;const p=setTimeout(()=>i(!1),8e3);return()=>clearTimeout(p)},[l]);const x=p=>{r(p),i(!0)},o=Q[n],{scrollYProgress:c}=U({target:t,offset:["start end","end start"]}),f=B(c,[0,1],["-10%","10%"]);return e.jsxs("section",{ref:t,id:"accuracy",className:"landing-section relative flex min-h-screen items-center overflow-hidden py-24",children:[e.jsxs(m.div,{"aria-hidden":!0,style:{y:f},className:"pointer-events-none absolute inset-0 -z-10",children:[e.jsx("div",{className:"absolute left-[-200px] top-1/4 h-[500px] w-[500px] rounded-full bg-te-accent/8 blur-[140px]"}),e.jsx("div",{className:"absolute right-[-150px] bottom-1/4 h-[400px] w-[400px] rounded-full bg-te-accent/6 blur-[120px]"})]}),e.jsxs("div",{ref:s,className:"relative mx-auto flex w-full max-w-7xl flex-col items-center gap-12 px-6 lg:px-12",children:[e.jsxs(m.div,{initial:{opacity:0,y:40},animate:a?{opacity:1,y:0}:{opacity:0,y:40},transition:{duration:.9,ease:[.22,1,.36,1]},className:"flex flex-col items-center gap-4 text-center",children:[e.jsx("span",{className:"te-eyebrow",children:"02 · From Voice to Polished Text"}),e.jsxs("h2",{className:"font-mono text-[clamp(2rem,4.6vw,3.6rem)] font-bold leading-[1.05] tracking-tighter text-te-fg",children:[e.jsx("span",{children:"口语化的话,"}),e.jsx("span",{className:"bg-gradient-to-r from-te-accent to-te-accent/80 bg-clip-text text-transparent",children:"按场景给你重写"})]}),e.jsx("p",{className:"max-w-2xl text-balance text-base leading-relaxed text-te-light-gray md:text-lg",children:"邮件、微信、翻译、文档 — 同一段口述,AI 按你想要的格式重排,去掉嗯啊呃。"})]}),e.jsx(m.div,{initial:{opacity:0,y:20},animate:a?{opacity:1,y:0}:{opacity:0,y:20},transition:{duration:.7,delay:.15},className:"flex flex-wrap items-center justify-center gap-2",children:Q.map((p,y)=>{const j=p.icon,v=y===n;return e.jsxs("button",{type:"button",onClick:()=>x(y),className:E("inline-flex items-center gap-2 border px-4 py-2 font-mono text-[11px] uppercase tracking-[0.2em] transition-colors",v?"border-te-accent bg-te-accent text-te-bg":"border-te-gray/60 bg-te-bg text-te-light-gray hover:border-te-accent hover:text-te-accent"),children:[e.jsx(j,{className:"size-3.5"}),p.label]},p.id)})}),e.jsxs(m.div,{initial:{opacity:0,y:40},animate:a?{opacity:1,y:0}:{opacity:0,y:40},transition:{duration:1,delay:.3,ease:[.22,1,.36,1]},className:"grid w-full max-w-6xl grid-cols-1 gap-px border border-te-gray/40 bg-te-gray/40 lg:grid-cols-2",children:[e.jsxs("div",{className:"flex min-h-[420px] flex-col bg-te-surface",children:[e.jsxs("div",{className:"flex items-center justify-between gap-3 border-b border-te-gray/30 px-5 py-3",children:[e.jsxs("div",{className:"flex items-center gap-2 font-mono text-[11px] uppercase tracking-[0.25em] text-te-light-gray/70",children:[e.jsx("span",{className:"text-te-accent",children:"▍"}),e.jsx("span",{children:"raw transcript"})]}),e.jsx("span",{className:"font-mono text-[10px] uppercase tracking-[0.25em] text-te-light-gray/50",children:"// 你说的原话"})]}),e.jsx("div",{className:"flex flex-1 items-start px-8 py-8 md:px-10 md:py-10",children:e.jsx(T,{mode:"wait",children:e.jsx(m.p,{initial:{opacity:0,y:6},animate:{opacity:1,y:0},exit:{opacity:0,y:-6},transition:{duration:.45},className:"text-lg leading-relaxed text-te-fg md:text-xl",children:o.raw.map((p,y)=>p.kind==="filler"?e.jsx("span",{className:"text-te-light-gray/55 line-through decoration-te-light-gray/40",children:p.text},y):p.kind==="correction"?e.jsx("span",{className:"text-te-accent/70 line-through decoration-te-accent/40",children:p.text},y):e.jsx("span",{children:p.text},y))},`raw-${o.id}`)})})]}),e.jsxs("div",{className:"flex min-h-[420px] flex-col bg-te-surface",children:[e.jsxs("div",{className:"flex items-center justify-between gap-3 border-b border-te-gray/30 px-5 py-3",children:[e.jsxs("div",{className:"flex items-center gap-2 font-mono text-[11px] uppercase tracking-[0.25em] text-te-accent",children:[e.jsx("span",{children:"▍"}),e.jsx("span",{children:"refined output"})]}),e.jsx(T,{mode:"wait",children:e.jsx(m.span,{initial:{opacity:0,y:-4},animate:{opacity:1,y:0},exit:{opacity:0,y:4},transition:{duration:.25},className:"border border-te-accent/40 bg-te-accent/10 px-2.5 py-0.5 font-mono text-[10px] uppercase tracking-[0.2em] text-te-accent",children:o.badge},`badge-${o.id}`)})]}),e.jsx("div",{className:"flex flex-1 items-start px-8 py-8 md:px-10 md:py-10",children:e.jsx(T,{mode:"wait",children:o.refinedKind==="paragraph"?e.jsx(m.p,{initial:{opacity:0,y:6},animate:{opacity:1,y:0},exit:{opacity:0,y:-6},transition:{duration:.5,delay:.1},className:"text-lg leading-relaxed text-te-fg md:text-xl",children:o.refined},`refined-${o.id}`):e.jsxs(m.div,{initial:{opacity:0,y:6},animate:{opacity:1,y:0},exit:{opacity:0,y:-6},transition:{duration:.5,delay:.1},className:"flex flex-col gap-3 text-lg leading-relaxed text-te-fg md:text-xl",children:[e.jsx("div",{className:"font-mono text-base text-te-accent md:text-lg",children:o.refinedHeader}),e.jsx("ol",{className:"flex flex-col gap-2",children:o.refinedList?.map((p,y)=>e.jsxs(m.li,{className:"flex items-baseline gap-3",initial:{opacity:0,x:-6},animate:{opacity:1,x:0},transition:{duration:.35,delay:.2+y*.08},children:[e.jsxs("span",{className:"font-mono text-base text-te-accent md:text-lg",children:[y+1,"."]}),e.jsx("span",{children:p})]},p))})]},`refined-${o.id}`)})})]})]}),e.jsx("p",{className:"font-mono text-[10px] uppercase tracking-[0.3em] text-te-light-gray/50",children:l?"// 已暂停轮播 · 8s 后自动继续":`// ${n+1} / ${Q.length} · 自动轮播中`})]})]})}function je({title:t="OpenSpeech",subtitle:s,className:a,bodyClassName:n,children:r}){return e.jsxs("div",{className:E("relative overflow-hidden rounded-2xl border border-te-gray/40 bg-te-surface te-window-shadow",a),children:[e.jsxs("div",{className:"flex items-center gap-2 border-b border-te-gray/30 bg-te-surface-hover px-4 py-3",children:[e.jsxs("div",{className:"flex gap-1.5",children:[e.jsx("span",{className:"size-3 rounded-full bg-[#ff5f57]"}),e.jsx("span",{className:"size-3 rounded-full bg-[#febc2e]"}),e.jsx("span",{className:"size-3 rounded-full bg-[#28c840]"})]}),e.jsxs("div",{className:"ml-3 flex flex-col leading-tight",children:[e.jsx("span",{className:"font-mono text-[11px] uppercase tracking-[0.2em] text-te-fg",children:t}),s&&e.jsx("span",{className:"font-mono text-[10px] tracking-wider text-te-light-gray",children:s})]}),e.jsx("div",{className:"ml-auto h-2 w-24 rounded-full bg-te-gray/60"})]}),e.jsx("div",{className:E("relative",n),children:r})]})}const Wt=["programming","ai_ml","cybersecurity","design","film_production","photography","marketing","finance","law","academic","medicine","tcm","psychology","engineering","automotive"],ve={programming:st,ai_ml:at,medicine:tt,law:et,finance:Je,academic:Ze,engineering:Qe,marketing:Ue,psychology:Ye,design:Xe,film_production:Ke,cybersecurity:Ge,photography:qe,tcm:Ve,automotive:He},re={programming:"软件开发",ai_ml:"AI / 机器学习",cybersecurity:"网络安全",design:"设计创意",film_production:"影视制作",photography:"摄影",marketing:"营销增长",finance:"金融投资",law:"法律",academic:"学术科研",medicine:"医学健康",tcm:"中医",psychology:"心理学",engineering:"工程制造",automotive:"汽车"},J=3,Ht=[{id:"e1",term:"Baidu",aliases:["百度","白度"]},{id:"e2",term:"Anthropic",aliases:["安特罗皮","安瑟罗皮克"]},{id:"e3",term:"OpenAI",aliases:["欧本爱"]},{id:"e4",term:"ByteDance",aliases:["字节跳动","拜登舞"]},{id:"e5",term:"Claude",aliases:["克劳德","克拉乌德"]},{id:"e6",term:"Cursor",aliases:["可瑟","光标"]},{id:"e7",term:"Tauri",aliases:["塔乌里"]},{id:"e8",term:"K8s",aliases:["Kubernetes","k 八"]},{id:"e9",term:"Notion",aliases:["闹神"]},{id:"e10",term:"LeAngelo",aliases:["莱安杰罗","李昂哥"]},{id:"e11",term:"Benedict",aliases:["本尼迪克特"]},{id:"e12",term:"肝郁气滞",aliases:["gan yu qi zhi"]},{id:"e13",term:"举证责任倒置",aliases:["反向举证"]},{id:"e14",term:"幂等键",aliases:["idempotency key","幂等 key"]}],Vt=["all","domains","manual"],qt={all:"全部",domains:"常见领域",manual:"手动添加"};function Gt(){const[t,s]=d.useState("all"),[a,n]=d.useState(""),[r,l]=d.useState(["programming","ai_ml","design"]),[i,x]=d.useState(Ht),[o,c]=d.useState(!1),f=d.useMemo(()=>{const g=a.trim().toLowerCase();return i.filter(h=>!g||h.term.toLowerCase().includes(g)?!0:h.aliases.some(w=>w.toLowerCase().includes(g)))},[i,a]),p=d.useMemo(()=>{const g=a.trim().toLowerCase();return g?r.filter(h=>re[h].toLowerCase().includes(g)):r},[r,a]),y=g=>{x(h=>h.filter(w=>w.id!==g))},j=g=>{l(h=>h.includes(g)?h.filter(w=>w!==g):h.length>=J?h:[...h,g])},v=g=>{const h=g.trim().replace(/\s+/g," ");return!h||i.some(w=>w.term.toLowerCase()===h.toLowerCase())?!1:(x(w=>[{id:`e-${Date.now()}`,term:h,aliases:[]},...w]),!0)};return e.jsxs("section",{className:"relative flex h-[640px] flex-col overflow-hidden bg-te-bg",children:[e.jsx("div",{className:"shrink-0 border-b border-te-gray/30 bg-te-bg",children:e.jsx("div",{className:"mx-auto max-w-5xl px-[4vw] pt-3 pb-[clamp(1rem,2vw,2rem)]",children:e.jsxs(m.div,{className:"flex items-start justify-between gap-4",initial:{opacity:0,y:12},animate:{opacity:1,y:0},transition:{duration:.4},children:[e.jsxs("div",{children:[e.jsx("h1",{className:"font-mono text-3xl font-bold tracking-tighter text-te-fg",children:"词典"}),e.jsx("p",{className:"mt-3 font-mono text-xs uppercase tracking-[0.2em] text-te-light-gray",children:"自定义词汇 · 最多 2,000 条"})]}),e.jsx("button",{type:"button",onClick:()=>c(!0),className:"shrink-0 bg-te-accent px-4 py-2 font-mono text-xs uppercase tracking-wider text-te-accent-fg transition-[filter] hover:brightness-110",children:"+ 新词"})]})})}),e.jsx("div",{className:"shrink-0 border-b border-te-gray/40 bg-te-bg",children:e.jsxs("div",{className:"mx-auto flex max-w-5xl flex-wrap items-center justify-between gap-4 px-[4vw] py-2",children:[e.jsx("div",{className:"flex items-center gap-1",children:Vt.map(g=>{const h=t===g;return e.jsxs("button",{type:"button",onClick:()=>s(g),className:`relative flex items-center gap-1.5 px-3 py-2 font-mono text-xs uppercase tracking-[0.15em] transition-colors ${h?"text-te-accent":"text-te-light-gray hover:text-te-fg"}`,children:[e.jsx("span",{children:qt[g]}),h?e.jsx(m.span,{layoutId:"dict-filter-underline",className:"absolute inset-x-0 -bottom-[9px] h-[2px] bg-te-accent"}):null]},g)})}),e.jsx(Kt,{value:a,onChange:n})]})}),e.jsx("div",{className:"min-h-0 flex-1 overflow-y-auto",children:e.jsx("div",{className:"mx-auto max-w-5xl px-[4vw] py-[clamp(1rem,2vw,2rem)]",children:t==="domains"?e.jsx(Xt,{selected:r,onToggle:j}):e.jsx(Yt,{filter:t,entries:f,selectedDomains:p,onDeleteEntry:y,onRemoveDomain:j})})}),e.jsx(Ut,{open:o,onOpenChange:c,onAdd:v,existingTerms:i.map(g=>g.term.toLowerCase())})]})}function Kt({value:t,onChange:s,width:a=224}){const[n,r]=d.useState(!1),l=d.useRef(null);d.useEffect(()=>{n&&l.current?.focus()},[n]);const i=()=>{s(""),r(!1)},x=()=>{t||r(!1)};return e.jsx("div",{className:"relative flex items-center",children:e.jsx(T,{initial:!1,mode:"wait",children:n?e.jsxs(m.div,{className:"relative flex items-center",initial:{width:28,opacity:0},animate:{width:a,opacity:1},exit:{width:28,opacity:0},transition:{duration:.18},children:[e.jsx(oe,{className:"pointer-events-none absolute left-2.5 size-3.5 text-te-light-gray"}),e.jsx("input",{ref:l,type:"text",value:t,onChange:o=>s(o.target.value),onBlur:x,onKeyDown:o=>{o.key==="Escape"&&i()},placeholder:"搜索词条...",className:"h-8 w-full border border-te-gray/40 bg-te-surface pr-7 pl-8 font-mono text-xs tracking-wider text-te-fg uppercase placeholder:text-te-light-gray focus:border-te-accent focus:outline-none"}),t&&e.jsx("button",{type:"button",onClick:i,className:"absolute right-1.5 inline-flex size-5 items-center justify-center text-te-light-gray transition-colors hover:text-te-accent","aria-label":"清空搜索",children:e.jsx(ue,{className:"size-3"})})]},"input"):e.jsx(m.button,{type:"button",onClick:()=>r(!0),className:"inline-flex size-8 items-center justify-center border border-te-gray/40 text-te-light-gray transition-colors hover:border-te-accent hover:text-te-accent",initial:{opacity:0},animate:{opacity:1},exit:{opacity:0},transition:{duration:.15},"aria-label":"搜索",title:"搜索",children:e.jsx(oe,{className:"size-3.5"})},"btn")})})}function Xt({selected:t,onToggle:s}){const a=d.useMemo(()=>new Set(t),[t]),n=t.length>=J;return e.jsxs("div",{className:"flex flex-col gap-4",children:[e.jsxs("div",{className:"flex flex-wrap items-baseline justify-between gap-2 font-mono text-[11px] uppercase tracking-[0.18em] text-te-light-gray",children:[e.jsx("span",{children:"勾选你常聊的领域,AI 会优先按这些场景调整术语和措辞"}),e.jsxs("span",{children:["已选 ",t.length," / ",J]})]}),e.jsx("div",{className:"grid grid-cols-1 gap-4 sm:grid-cols-2 md:grid-cols-3",children:Wt.map((r,l)=>{const i=ve[r],x=a.has(r),o=!x&&n;return e.jsxs(m.button,{type:"button",onClick:()=>s(r),disabled:o,title:o?`最多选 ${J} 个`:void 0,initial:{opacity:0,y:6},animate:{opacity:1,y:0},transition:{duration:.25,delay:Math.min(l*.02,.2)},className:`group flex items-center gap-3 border px-3 py-2.5 transition-colors ${x?"border-te-accent bg-te-accent/10 text-te-accent":o?"cursor-not-allowed border-te-gray/30 bg-te-surface/40 text-te-light-gray/40":"border-te-gray/40 bg-te-surface text-te-fg hover:border-te-accent hover:text-te-accent"}`,children:[e.jsx(i,{className:"size-3.5 shrink-0"}),e.jsx("span",{className:"min-w-0 flex-1 truncate text-left font-mono text-sm font-bold tracking-tight",children:re[r]})]},r)})})]})}function Yt({filter:t,entries:s,selectedDomains:a,onDeleteEntry:n,onRemoveDomain:r}){const l=t==="all"&&a.length>0,i=s.length+(l?a.length:0);if(i===0)return e.jsx(m.div,{className:"mt-16 text-center font-mono text-sm uppercase tracking-[0.3em] text-te-light-gray",initial:{opacity:0},animate:{opacity:1},transition:{duration:.4},children:"// 暂无词条 //"});const x=l&&s.length>0;return e.jsxs(e.Fragment,{children:[l?e.jsx("div",{className:"grid grid-cols-1 gap-4 sm:grid-cols-2 md:grid-cols-3",children:a.map((o,c)=>e.jsx(Qt,{id:o,index:c,onRemove:()=>r(o)},`domain-${o}`))}):null,x?e.jsxs("div",{className:"my-6 flex items-center gap-3 font-mono text-[10px] uppercase tracking-[0.3em] text-te-light-gray/60",children:[e.jsx("span",{className:"h-px flex-1 bg-te-gray/40"}),e.jsx("span",{children:"自定义词条"}),e.jsx("span",{className:"h-px flex-1 bg-te-gray/40"})]}):null,e.jsx("div",{className:"grid grid-cols-1 gap-4 sm:grid-cols-2 md:grid-cols-3",children:s.map((o,c)=>e.jsx(Zt,{entry:o,index:c,onDelete:()=>n(o.id)},o.id))}),e.jsxs("div",{className:"mt-10 text-center font-mono text-[10px] uppercase tracking-[0.3em] text-te-light-gray/60",children:["// 共 ",String(i).padStart(3,"0")," 条 //"]})]})}function Ut({open:t,onOpenChange:s,onAdd:a,existingTerms:n}){const[r,l]=d.useState(""),[i,x]=d.useState(null);d.useEffect(()=>{t||(l(""),x(null))},[t]);const o=()=>{const c=r.trim().replace(/\s+/g," ");if(!c){x("term 不能为空");return}if(n.includes(c.toLowerCase())){x("该词条已存在");return}a(c)&&s(!1)};return e.jsx(T,{children:t&&e.jsxs(e.Fragment,{children:[e.jsx(m.div,{className:"absolute inset-0 z-30 bg-black/60 backdrop-blur-[2px]",initial:{opacity:0},animate:{opacity:1},exit:{opacity:0},transition:{duration:.15},onClick:()=>s(!1)},"overlay"),e.jsx(m.div,{className:"absolute inset-0 z-40 flex items-center justify-center px-6",initial:{opacity:0,scale:.96},animate:{opacity:1,scale:1},exit:{opacity:0,scale:.96},transition:{duration:.18,ease:[.22,1,.36,1]},children:e.jsxs("div",{className:"!gap-0 w-full max-w-md border border-te-gray bg-te-bg p-0 shadow-2xl",children:[e.jsx("div",{className:"border-b border-te-gray/40 bg-te-surface-hover px-4 py-3",children:e.jsx("h3",{className:"font-mono text-sm font-bold tracking-tighter text-te-fg uppercase",children:"新词"})}),e.jsxs("div",{className:"flex flex-col gap-4 px-4 py-5",children:[e.jsxs("label",{className:"flex flex-col gap-1.5",children:[e.jsxs("span",{className:"font-mono text-[10px] uppercase tracking-[0.2em] text-te-light-gray",children:["term ",e.jsx("span",{className:"text-te-accent",children:"*"})]}),e.jsx("input",{autoFocus:!0,type:"text",value:r,onChange:c=>{l(c.target.value),i&&x(null)},onKeyDown:c=>{c.key==="Enter"&&o(),c.key==="Escape"&&s(!1)},placeholder:"例如 OpenSpeech",className:"border border-te-gray/40 bg-te-surface px-3 py-2 font-mono text-sm text-te-fg placeholder:text-te-light-gray focus:border-te-accent focus:outline-none"})]}),i&&e.jsx("div",{className:"font-mono text-[11px] uppercase tracking-wider text-[#ff4d4d]",children:i})]}),e.jsxs("div",{className:"flex flex-row justify-end gap-2 border-t border-te-gray/40 bg-te-surface-hover px-4 py-3",children:[e.jsx("button",{type:"button",onClick:()=>s(!1),className:"border border-te-gray/60 px-3 py-1.5 font-mono text-xs uppercase tracking-wider text-te-fg transition-colors hover:border-te-accent hover:text-te-accent",children:"取消"}),e.jsx("button",{type:"button",onClick:o,className:"bg-te-accent px-4 py-1.5 font-mono text-xs uppercase tracking-wider text-te-accent-fg transition-[filter] hover:brightness-110",children:"添加"})]})]})},"dialog")]})})}function Qt({id:t,index:s,onRemove:a}){const n=ve[t];return e.jsxs(m.article,{className:"group flex items-center gap-3 border border-te-accent/60 bg-te-accent/10 px-3 py-2.5 text-te-accent transition-colors hover:border-te-accent",initial:{opacity:0,y:8},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{duration:.3,delay:Math.min(s*.02,.2)},children:[e.jsx("span",{className:"shrink-0",title:"常用领域",children:e.jsx(n,{className:"size-3.5"})}),e.jsx("h3",{className:"min-w-0 flex-1 truncate font-mono text-sm font-bold tracking-tight",children:re[t]}),e.jsx("div",{className:"flex shrink-0 items-center gap-1 opacity-0 transition-opacity group-hover:opacity-100",children:e.jsx("button",{type:"button","aria-label":"删除",title:"删除",onClick:a,className:"inline-flex size-6 items-center justify-center transition-colors hover:text-te-fg",children:e.jsx(ie,{className:"size-3.5"})})})]})}function Zt({entry:t,index:s,onDelete:a}){const n=t.aliases.length?`${t.term} · ${t.aliases.join(" · ")}`:t.term;return e.jsxs(m.article,{className:"group flex items-center gap-3 border border-te-gray/40 bg-te-surface px-3 py-2.5 transition-colors hover:border-te-accent",initial:{opacity:0,y:8},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{duration:.3,delay:Math.min(s*.02,.2)},children:[e.jsx("span",{className:"shrink-0 text-te-light-gray",title:"手动添加",children:e.jsx(nt,{className:"size-3.5"})}),e.jsx("h3",{title:n,className:"min-w-0 flex-1 truncate font-mono text-sm font-bold tracking-tight text-te-fg",children:t.term}),e.jsxs("div",{className:"flex shrink-0 items-center gap-1 opacity-0 transition-opacity group-hover:opacity-100",children:[e.jsx("button",{type:"button","aria-label":"编辑",title:"编辑",className:"inline-flex size-6 items-center justify-center text-te-light-gray transition-colors hover:text-te-accent",children:e.jsx(it,{className:"size-3.5"})}),e.jsx("button",{type:"button","aria-label":"删除",title:"删除",onClick:a,className:"inline-flex size-6 items-center justify-center text-te-light-gray transition-colors hover:text-te-accent",children:e.jsx(ie,{className:"size-3.5"})})]})]})}function Jt(){const t=d.useRef(null),{ref:s,active:a}=q(.35),{scrollYProgress:n}=U({target:t,offset:["start end","end start"]}),r=B(n,[0,1],[6,-6]);return e.jsxs("section",{ref:t,id:"dictionary",className:"landing-section relative flex min-h-screen items-center overflow-hidden py-24",children:[e.jsxs("div",{"aria-hidden":!0,className:"pointer-events-none absolute inset-0 -z-10",children:[e.jsx("div",{className:"absolute right-0 top-0 h-[500px] w-[500px] rounded-full bg-te-accent/10 blur-[140px]"}),e.jsx("div",{className:"absolute bottom-0 left-0 h-[400px] w-[400px] rounded-full bg-te-accent/8 blur-[120px]"})]}),e.jsxs("div",{ref:s,className:"relative mx-auto flex w-full max-w-7xl flex-col gap-14 px-6 lg:px-12",children:[e.jsxs(m.div,{initial:{opacity:0,y:40},animate:a?{opacity:1,y:0}:{opacity:0,y:40},transition:{duration:.9},className:"flex flex-col items-center gap-4 text-center",children:[e.jsx("span",{className:"te-eyebrow",children:"04 · Custom Dictionary"}),e.jsxs("h2",{className:"font-mono text-[clamp(2rem,4.6vw,3.6rem)] font-bold leading-[1.05] tracking-tighter text-te-fg",children:[e.jsx("span",{children:"同事的英文名,"}),e.jsx("span",{className:"bg-gradient-to-r from-te-accent to-te-accent/80 bg-clip-text text-transparent",children:"再也不会写错"})]}),e.jsx("p",{className:"max-w-2xl text-balance text-base leading-relaxed text-te-light-gray md:text-lg",children:"把人名、品牌、术语写进词典;勾你的领域,AI 不再瞎改专有词。"})]}),e.jsx("div",{className:"relative w-full",style:{perspective:1800},children:e.jsxs(m.div,{initial:{opacity:0,y:60,rotateX:14},animate:a?{opacity:1,y:0,rotateX:0}:{opacity:0,y:60,rotateX:14},transition:{duration:1,ease:[.22,1,.36,1]},style:{transformStyle:"preserve-3d",rotateX:r,transformOrigin:"50% 100%"},className:"relative",children:[e.jsx("div",{"aria-hidden":!0,className:"pointer-events-none absolute inset-x-20 -bottom-12 h-32 rounded-full bg-te-accent/25 opacity-60 blur-3xl"}),e.jsx(je,{title:"OpenSpeech",subtitle:"Dictionary · 14 条 · 3 领域",bodyClassName:"relative",children:e.jsx(Gt,{})})]})})]})]})}const he=["text-te-accent","text-emerald-400","text-sky-400","text-violet-400","text-rose-400","text-amber-400"];function ea(t){return t<0?"text-te-light-gray":he[t%he.length]}function te(t){const s=Math.floor(t/1e3),a=Math.floor(s/3600),n=Math.floor(s%3600/60),r=s%60;return`${String(a).padStart(2,"0")}:${String(n).padStart(2,"0")}:${String(r).padStart(2,"0")}`}function Ne({speakerId:t}){const s=t<0?"待识别":`说话人 ${String.fromCharCode(65+t%26)}`;return e.jsx("span",{className:E("font-mono text-xs",ea(t)),children:s})}const X=[{speakerId:0,text:"我们先把 Q3 的目标过一遍。",startMs:1200},{speakerId:1,text:"好的,重点是新用户激活和付费转化。",startMs:5400},{speakerId:0,text:"激活率上个月做到 32%,目标是 40%。",startMs:11800},{speakerId:1,text:"需要落地一个 onboarding 实验,design 周三前出方案。",startMs:16500},{speakerId:0,text:"OK,付费这边我下周给数据分析报告。",startMs:23200},{speakerId:1,text:"纪要直接生成到群里就行,关键决策一定要有时间戳。",startMs:29800},{speakerId:0,text:"成交,散会。",startMs:35200}],ta=`## 决策
2
- - Q3 双目标:新用户激活、付费转化。
3
- - Onboarding 实验由 Design 团队主导,周三前出方案。
4
-
5
- ## 待办
6
- - [ ] @Design:周三前提交 onboarding 实验方案
7
- - [ ] @PM:下周提交付费转化数据分析报告
8
-
9
- ## 关键时刻
10
- - 03:12 — 确认激活率目标 32% → 40%
11
- - 08:45 — 决定 onboarding 实验由 Design 主导
12
- `,le=2,ce=2,aa=le+ce;function we(t){const[s,a]=d.useState(96);return d.useEffect(()=>{const n=t.current;if(!n)return;const r=new ResizeObserver(l=>{const i=l[0]?.contentRect.width??0,x=Math.max(24,Math.floor(i/aa));a(x)});return r.observe(n),()=>r.disconnect()},[t]),s}function sa({active:t,height:s=56}){const a=d.useRef(null),n=we(a),[r,l]=d.useState(()=>Array(96).fill(0));return d.useEffect(()=>{l(i=>i.length===n?i:i.length>n?i.slice(i.length-n):Array(n-i.length).fill(0).concat(i))},[n]),d.useEffect(()=>{if(!t)return;let i=0;const x=()=>{const o=performance.now()/1e3,c=Math.max(0,Math.min(1,.45+Math.sin(o*4.7)*.2+Math.sin(o*11)*.12+Math.sin(o*23)*.07+(Math.random()-.5)*.18));l(f=>{if(f.length===0)return f;const p=f.slice(1);return p.push(c),p}),i=requestAnimationFrame(x)};return i=requestAnimationFrame(x),()=>cancelAnimationFrame(i)},[t]),e.jsx("div",{ref:a,className:"flex w-full items-center justify-between",style:{height:s,gap:`${ce}px`},children:r.map((i,x)=>{const o=Math.pow(i,.55),c=Math.max(2,o*s);return e.jsx("span",{className:E("shrink-0 rounded-[1px] bg-te-accent transition-[height] duration-75 ease-out",!t&&"opacity-30"),style:{width:`${le}px`,height:`${c}px`}},x)})})}function na({progress:t,height:s=56}){const a=d.useRef(null),n=we(a),r=d.useMemo(()=>Array.from({length:n},(i,x)=>{const o=Math.sin(x*.31)*.5+.5,c=Math.sin(x*.97+1.3)*.5+.5,f=Math.sin(x*1.9+2.6)*.5+.5,p=.55+.45*Math.sin(x/Math.max(1,n-1)*Math.PI);return Math.max(.1,(o*.5+c*.3+f*.2)*p)}),[n]),l=Math.floor(t*n);return e.jsx("div",{ref:a,className:"flex w-full items-center justify-between",style:{height:s,gap:`${ce}px`},children:r.map((i,x)=>{const o=Math.pow(i,.55),c=Math.max(2,o*s),f=x<=l;return e.jsx("span",{className:E("shrink-0 rounded-[1px]",f?"bg-te-accent":"bg-te-light-gray/40"),style:{width:`${le}px`,height:`${c}px`}},x)})})}function ia({seg:t}){return e.jsxs("div",{className:"flex flex-col gap-2",children:[e.jsxs("div",{className:"flex items-baseline gap-3",children:[e.jsx(Ne,{speakerId:t.speakerId}),e.jsx("span",{className:"font-mono text-[10px] tabular-nums text-te-light-gray/60",children:te(t.startMs)})]}),e.jsxs("p",{className:E("text-sm leading-relaxed",t.isFinal?"text-te-fg":"text-te-light-gray"),children:[t.text,t.isFinal?null:e.jsx("span",{className:"ml-0.5 inline-block animate-pulse",children:"▌"})]})]})}const ra=`
13
- .lp-prose-meeting h2 {
14
- font-family: "Space Mono", ui-monospace, monospace;
15
- font-weight: 700;
16
- font-size: 0.9rem;
17
- margin: 1.1rem 0 0.4rem;
18
- text-transform: uppercase;
19
- letter-spacing: 0.08em;
20
- color: var(--te-accent);
21
- }
22
- .lp-prose-meeting h2:first-child { margin-top: 0; }
23
- .lp-prose-meeting h3 {
24
- font-family: "Space Mono", ui-monospace, monospace;
25
- font-size: 0.82rem;
26
- margin: 0.9rem 0 0.3rem;
27
- color: var(--te-light-gray);
28
- }
29
- .lp-prose-meeting p { margin: 0.4rem 0; }
30
- .lp-prose-meeting ul,
31
- .lp-prose-meeting ol { margin: 0.3rem 0 0.6rem; padding-left: 1.2rem; }
32
- .lp-prose-meeting ul { list-style: disc; }
33
- .lp-prose-meeting ol { list-style: decimal; }
34
- .lp-prose-meeting li { margin: 0.25rem 0; }
35
- .lp-prose-meeting li input[type="checkbox"] {
36
- margin-right: 0.45rem;
37
- vertical-align: middle;
38
- accent-color: var(--te-accent);
39
- }
40
- .lp-prose-meeting strong { font-weight: 700; color: var(--te-fg); }
41
- .lp-prose-meeting em { font-style: italic; color: var(--te-light-gray); }
42
- .lp-prose-meeting a { color: var(--te-accent); text-decoration: underline; }
43
- `;function la({active:t,view:s,onViewChange:a}){const[n,r]=d.useState("live"),l=s??n,[i,x]=d.useState(!1),[o,c]=d.useState(0),[f,p]=d.useState(0),[y,j]=d.useState(0),v=d.useRef(null),g=d.useRef(null),h=d.useMemo(()=>{const b=l==="review"?X.length:f;return X.slice(0,b).map((N,z)=>({sentenceId:`seg-${z}`,speakerId:N.speakerId,text:N.text,startMs:N.startMs,endMs:N.startMs+2400,isFinal:!0}))},[f,l]),w=d.useMemo(()=>{const b=new Set;return h.forEach(N=>{N.speakerId>=0&&b.add(N.speakerId)}),b.size||2},[h]);return d.useEffect(()=>{if(s!=null)return;if(!t){r("live"),x(!1),c(0),p(0),j(0);return}const b=performance.now();let N=0;const z=setInterval(()=>{i||c(performance.now()-b)},200),W=setInterval(()=>{p(M=>Math.min(X.length,M+1))},1200),H=setTimeout(()=>{N=performance.now()-b,c(N),p(X.length),r("review")},9600);return()=>{clearInterval(z),clearInterval(W),clearTimeout(H)}},[t,s,i]),d.useEffect(()=>{a?.(l)},[l,a]),d.useEffect(()=>{if(s!=null||!t||l!=="review")return;j(0);const b=performance.now(),N=6e3,z=setInterval(()=>{const H=Math.min(1,(performance.now()-b)/N);j(H)},80),W=setTimeout(()=>{c(0),p(0),j(0),r("live")},N);return()=>{clearInterval(z),clearTimeout(W)}},[t,l,s]),d.useEffect(()=>{const b=v.current;if(!b)return;b.scrollHeight-b.scrollTop-b.clientHeight<80&&(b.scrollTop=b.scrollHeight)},[h.length]),e.jsxs("section",{className:"relative flex h-[560px] flex-col overflow-hidden border border-te-gray/40 bg-te-bg",children:[e.jsx("style",{children:ra}),l==="live"?e.jsx(ca,{paused:i,active:t,elapsedMs:o,segments:h,onPauseToggle:()=>x(b=>!b),scrollerRef:v}):e.jsx(oa,{elapsedMs:o||754e3,speakerCount:w,segmentCount:X.length,segments:h,progress:y,scrollerRef:g})]})}function ca({paused:t,active:s,elapsedMs:a,segments:n,onPauseToggle:r,scrollerRef:l}){return e.jsxs(m.div,{initial:{opacity:0},animate:{opacity:1},transition:{duration:.35},className:"flex h-full min-h-0 flex-col",children:[e.jsx("div",{className:"shrink-0 border-b border-te-gray/30 bg-te-bg",children:e.jsx("div",{className:"mx-auto max-w-5xl px-[4vw] pt-3 pb-3",children:e.jsxs("div",{className:"flex items-start justify-between gap-4",children:[e.jsxs("div",{children:[e.jsx("h1",{className:"font-mono text-2xl font-bold tracking-tighter text-te-fg",children:"会议录制"}),e.jsx("p",{className:"mt-2 font-mono text-[10px] uppercase tracking-[0.2em] text-te-light-gray",children:"实时转写 · 说话人分离 · AI 摘要"})]}),e.jsxs("div",{className:"flex shrink-0 items-center gap-3",children:[e.jsx("span",{className:E("size-2.5 rounded-full",t?"bg-te-light-gray":"animate-pulse bg-[#ff4d4d]")}),e.jsx("span",{className:"font-mono text-2xl font-bold tabular-nums text-te-fg",children:te(a)})]})]})})}),e.jsx("div",{className:"border-b border-te-gray/40 bg-te-surface",children:e.jsxs("div",{className:"mx-auto flex max-w-5xl flex-col gap-3 px-[4vw] py-4",children:[e.jsxs("div",{className:"flex items-center justify-between gap-4",children:[e.jsx("span",{className:"font-mono text-[10px] uppercase tracking-[0.3em] text-te-light-gray",children:t?"已暂停":"录制中"}),e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsxs("button",{type:"button",onClick:r,className:"flex items-center gap-2 border border-te-gray/40 bg-te-bg px-4 py-2 font-mono text-xs uppercase tracking-[0.2em] text-te-fg transition hover:border-te-accent hover:text-te-accent",children:[t?e.jsx(rt,{className:"size-3.5"}):e.jsx(lt,{className:"size-3.5"}),t?"继续":"暂停"]}),e.jsxs("button",{type:"button",className:"flex items-center gap-2 border border-[#ff4d4d] bg-[#ff4d4d] px-4 py-2 font-mono text-xs uppercase tracking-[0.2em] text-white transition hover:bg-[#ff6b6b]",children:[e.jsx(ct,{className:"size-3.5"}),"结束"]})]})]}),e.jsx(sa,{active:!t&&s,height:56})]})}),e.jsx("div",{ref:l,className:"min-h-0 flex-1 overflow-y-auto",children:e.jsxs("div",{className:"mx-auto flex max-w-5xl flex-col gap-5 px-[4vw] py-[clamp(1rem,2vw,2rem)]",children:[n.map(i=>e.jsx(ia,{seg:i},i.sentenceId)),!t&&n.length===0?e.jsx("div",{className:"font-mono text-[10px] uppercase tracking-[0.3em] text-te-light-gray/60",children:"正在聆听…"}):null]})})]},"live")}function oa({elapsedMs:t,speakerCount:s,segmentCount:a,segments:n,progress:r,scrollerRef:l}){const i=`会议录制 · ${new Date().toLocaleDateString("zh-CN",{month:"2-digit",day:"2-digit"})}`,x=Math.min(n.length-1,Math.floor(r*n.length));return e.jsxs(m.div,{initial:{opacity:0},animate:{opacity:1},transition:{duration:.4},className:"flex h-full min-h-0 flex-col",children:[e.jsx("div",{className:"border-b border-te-gray/40 bg-te-bg",children:e.jsxs("div",{className:"mx-auto flex max-w-5xl items-center justify-between gap-4 px-5 py-2",children:[e.jsxs("div",{className:"flex min-w-0 items-center gap-3",children:[e.jsxs("button",{type:"button",className:"flex shrink-0 items-center gap-2 font-mono text-xs uppercase tracking-[0.2em] text-te-accent transition hover:brightness-110",children:[e.jsx(ot,{className:"size-3.5"}),"返回"]}),e.jsx("span",{className:"truncate font-mono text-sm text-te-fg",children:i}),e.jsxs("span",{className:"shrink-0 font-mono text-[10px] uppercase tracking-[0.2em] tabular-nums text-te-light-gray",children:[te(t)," · ",s," 人 · ",a," 段"]})]}),e.jsxs("div",{className:"flex shrink-0 items-center gap-2",children:[e.jsxs("button",{type:"button",className:"flex items-center gap-2 border border-te-gray/40 px-3 py-1.5 font-mono text-[10px] uppercase tracking-[0.2em] text-te-light-gray transition hover:border-te-accent hover:text-te-accent",children:[e.jsx(dt,{className:"size-3"}),"导出"]}),e.jsxs("button",{type:"button",className:"flex items-center gap-2 border border-te-gray/40 px-3 py-1.5 font-mono text-[10px] uppercase tracking-[0.2em] text-te-light-gray transition hover:border-[#ff4d4d] hover:text-[#ff4d4d]",children:[e.jsx(ie,{className:"size-3"}),"删除"]})]})]})}),e.jsx("div",{className:"border-b border-te-gray/40 bg-te-surface px-[4vw] py-3",children:e.jsx("div",{className:"mx-auto max-w-5xl",children:e.jsx(na,{progress:r,height:48})})}),e.jsx("div",{className:"min-h-0 flex-1 overflow-hidden",children:e.jsxs("div",{className:"mx-auto grid h-full max-w-5xl grid-cols-2 divide-x divide-te-gray/40 px-[4vw]",children:[e.jsxs("div",{className:"flex min-h-0 flex-col pr-4",children:[e.jsx("div",{className:"flex shrink-0 items-center justify-between border-b border-te-gray/40 py-3",children:e.jsx("span",{className:"font-mono text-xs uppercase tracking-[0.25em] text-te-fg",children:"转写"})}),e.jsx("div",{ref:l,className:"flex-1 overflow-y-auto py-4",children:e.jsx("div",{className:"flex flex-col gap-4",children:n.map((o,c)=>{const f=c===x;return e.jsxs("div",{className:E("flex w-full flex-col gap-2 border-l-2 px-3 py-1 transition",f?"border-te-accent bg-te-surface-hover/40":"border-transparent"),children:[e.jsxs("div",{className:"flex items-baseline gap-3",children:[e.jsx(Ne,{speakerId:o.speakerId}),e.jsx("span",{className:"ml-auto font-mono text-[10px] tabular-nums text-te-light-gray/60",children:te(o.startMs)})]}),e.jsx("p",{className:"text-sm leading-relaxed text-te-fg",children:o.text})]},o.sentenceId)})})})]}),e.jsxs("div",{className:"flex min-h-0 flex-col pl-4",children:[e.jsxs("div",{className:"flex shrink-0 items-center justify-between border-b border-te-gray/40 py-3",children:[e.jsx("span",{className:"font-mono text-xs uppercase tracking-[0.25em] text-te-fg",children:"AI 纪要"}),e.jsxs("span",{className:"flex items-center gap-2 border border-te-accent/60 px-3 py-1 font-mono text-[10px] uppercase tracking-[0.2em] text-te-accent",children:[e.jsx(Le,{className:"size-3"}),"已生成"]})]}),e.jsx("div",{className:"flex-1 overflow-y-auto py-4",children:e.jsx("article",{className:"lp-prose-meeting font-sans text-sm leading-relaxed text-te-fg",children:e.jsx(xt,{children:ta})})})]})]})})]},"review")}function da(){const t=d.useRef(null),{ref:s,active:a}=q(.25,{sticky:!0}),[n,r]=d.useState("live"),{scrollYProgress:l}=U({target:t,offset:["start end","end start"]}),i=B(l,[0,1],[4,-4]),x=n==="live"?"会议录制中… 12:34":"会议纪要 · 12:34";return e.jsxs("section",{ref:t,id:"meeting",className:"landing-section relative flex min-h-screen items-center overflow-hidden py-24",children:[e.jsx("div",{"aria-hidden":!0,className:"pointer-events-none absolute inset-0 -z-10",children:e.jsx("div",{className:"absolute left-1/2 top-1/2 h-[700px] w-[700px] -translate-x-1/2 -translate-y-1/2 rounded-full bg-te-accent/8 blur-[160px]"})}),e.jsxs("div",{ref:s,className:"relative mx-auto flex w-full max-w-7xl flex-col gap-14 px-6 lg:px-12",children:[e.jsxs(m.div,{initial:{opacity:0,y:16},animate:a?{opacity:1,y:0}:{opacity:0,y:16},transition:{duration:.7},className:"flex flex-col items-center gap-4 text-center",children:[e.jsx("span",{className:"te-eyebrow",children:"03 · Meeting Recorder"}),e.jsxs("h2",{className:"font-mono text-[clamp(2rem,4.6vw,3.6rem)] font-bold leading-[1.05] tracking-tighter text-te-fg",children:[e.jsx("span",{children:"开会的时候,"}),e.jsx("span",{className:"bg-gradient-to-r from-te-accent to-te-accent/80 bg-clip-text text-transparent",children:"它在记笔记"})]}),e.jsx("p",{className:"max-w-2xl text-balance text-base leading-relaxed text-te-light-gray md:text-lg",children:"实时转写、说话人区分、AI 自动生成 Markdown 纪要 — 散会即拿到结构化决策与待办。"})]}),e.jsx("div",{className:"relative w-full",style:{perspective:1800},children:e.jsxs(m.div,{initial:{opacity:0,y:32},animate:a?{opacity:1,y:0}:{opacity:0,y:32},transition:{duration:.8,ease:[.22,1,.36,1]},style:{transformStyle:"preserve-3d",rotateX:i,transformOrigin:"50% 100%"},className:"relative mx-auto w-full max-w-5xl",children:[e.jsx("div",{"aria-hidden":!0,className:"pointer-events-none absolute inset-x-20 -bottom-12 h-32 rounded-full bg-te-accent/25 opacity-60 blur-3xl"}),e.jsx(je,{title:"OpenSpeech",subtitle:x,bodyClassName:"bg-te-bg",children:e.jsx(la,{active:a,onViewChange:r})})]})})]})]})}const xa=[{id:"macos",icon:pt,name:"macOS",formats:"DMG · Apple Silicon + Intel",href:"#"},{id:"windows",icon:ua,name:"Windows",formats:"MSI · EXE · 10/11",href:"#"},{id:"linux",icon:vt,name:"Linux",formats:"AppImage · deb · rpm",href:"#"}],ma=[{icon:De,title:"录音只在你电脑上",body:"不上传一帧音频,麦克风权限可随时撤销。"},{icon:Te,title:"API key 在系统钥匙串",body:"存在 macOS Keychain / Windows 凭据管理器,我们看不到。"},{icon:bt,title:"PolyForm Noncommercial 开源",body:"完整源码托管 GitHub,编译产物可逐行审计。"}];function pa(){const{ref:t,active:s}=q(.15,{sticky:!0});return e.jsxs("section",{id:"download",className:"landing-section relative flex min-h-screen items-center justify-center overflow-hidden py-24",children:[e.jsxs("div",{"aria-hidden":!0,className:"pointer-events-none absolute inset-0 -z-10",children:[e.jsx("div",{className:"absolute left-1/2 top-1/3 h-[600px] w-[600px] -translate-x-1/2 -translate-y-1/2 rounded-full bg-te-accent/12 blur-[160px]"}),e.jsx("div",{className:"absolute right-[-160px] bottom-[10%] h-[420px] w-[420px] rounded-full bg-te-accent/8 blur-[120px]"})]}),e.jsxs("div",{ref:t,className:"relative mx-auto flex w-full max-w-6xl flex-col gap-24 px-6 lg:px-12",children:[e.jsxs("div",{className:"flex flex-col items-center gap-12",children:[e.jsxs(m.div,{initial:{opacity:0,y:8},animate:s?{opacity:1,y:0}:{opacity:0,y:8},transition:{duration:.55},className:"flex flex-col items-center gap-4 text-center",children:[e.jsx("span",{className:"te-eyebrow",children:"05 · Privacy first"}),e.jsxs("h2",{className:"font-mono text-[clamp(1.7rem,3.6vw,2.8rem)] font-bold leading-[1.1] tracking-tighter text-te-fg",children:["你说的话,",e.jsx("span",{className:"bg-gradient-to-r from-te-accent to-te-accent/80 bg-clip-text text-transparent",children:"不经过我们"}),"。"]}),e.jsx("p",{className:"max-w-xl text-balance text-sm leading-relaxed text-te-light-gray md:text-base",children:"录音从你的麦克风直接送到你自己配置的语音识别服务,OpenSpeech 不在链路中间。"})]}),e.jsx(m.div,{initial:{opacity:0,y:8},animate:s?{opacity:1,y:0}:{opacity:0,y:8},transition:{duration:.65,delay:.08},className:"w-full",children:e.jsx(fa,{})}),e.jsx("div",{className:"grid w-full grid-cols-1 gap-4 md:grid-cols-3",children:ma.map((a,n)=>{const r=a.icon;return e.jsxs(m.div,{initial:{opacity:0,y:8},animate:s?{opacity:1,y:0}:{opacity:0,y:8},transition:{duration:.5,delay:.15+n*.05},className:"flex flex-col gap-3 border border-te-gray/40 bg-te-surface/40 p-5",children:[e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx("span",{className:"flex h-9 w-9 items-center justify-center border border-te-accent/40 bg-te-accent/10 text-te-accent",children:e.jsx(r,{className:"h-4 w-4",strokeWidth:1.8})}),e.jsx("span",{className:"font-mono text-[13px] font-bold uppercase tracking-[0.12em] text-te-fg",children:a.title})]}),e.jsx("p",{className:"text-sm leading-relaxed text-te-light-gray",children:a.body})]},a.title)})})]}),e.jsxs("div",{className:"flex flex-col items-center gap-10",children:[e.jsxs(m.div,{initial:{opacity:0,y:8},animate:s?{opacity:1,y:0}:{opacity:0,y:8},transition:{duration:.55,delay:.2},className:"flex flex-col items-center gap-4 text-center",children:[e.jsx("span",{className:"te-eyebrow",children:"Get OpenSpeech"}),e.jsxs("h2",{className:"font-mono text-[clamp(2.2rem,5.2vw,4.2rem)] font-bold leading-[1.02] tracking-tighter text-te-fg",children:[e.jsx("span",{className:"bg-gradient-to-b from-te-fg to-te-fg/70 bg-clip-text text-transparent",children:"按下快捷键,"}),e.jsx("br",{}),e.jsx("span",{className:"bg-gradient-to-r from-te-accent to-te-accent/80 bg-clip-text text-transparent",children:"开始用嘴打字。"})]}),e.jsx("p",{className:"max-w-xl text-balance text-base text-te-light-gray md:text-lg",children:"macOS · Windows · Linux 全平台支持,免费下载即用。"})]}),e.jsx(m.div,{initial:{opacity:0,y:8},animate:s?{opacity:1,y:0}:{opacity:0,y:8},transition:{duration:.6,delay:.28},className:"grid w-full grid-cols-1 gap-4 md:grid-cols-3",children:xa.map(a=>{const n=a.icon;return e.jsxs("a",{href:a.href,className:"group flex items-center justify-between border border-te-gray/50 bg-te-surface/30 px-5 py-5 transition-colors hover:border-te-accent hover:bg-te-accent/8",children:[e.jsxs("div",{className:"flex items-center gap-4",children:[e.jsx(n,{className:"h-7 w-7 text-te-fg transition-colors group-hover:text-te-accent",strokeWidth:1.5}),e.jsxs("div",{className:"flex flex-col items-start gap-1",children:[e.jsx("span",{className:"font-mono text-sm font-bold uppercase tracking-[0.14em] text-te-fg",children:a.name}),e.jsx("span",{className:"text-[11px] text-te-light-gray",children:a.formats})]})]}),e.jsx("span",{className:"font-mono text-xs uppercase tracking-[0.18em] text-te-light-gray transition-colors group-hover:text-te-accent",children:"下载 →"})]},a.id)})}),e.jsxs(m.div,{initial:{opacity:0,y:6},animate:s?{opacity:1,y:0}:{opacity:0,y:6},transition:{duration:.55,delay:.34},className:"flex flex-col items-center gap-3 text-center",children:[e.jsx("p",{className:"max-w-2xl text-sm text-te-light-gray",children:"想用自己的 OpenAI / 腾讯云 / 阿里云 key?设置里填 endpoint 即可,全程走你自己的账号。"}),e.jsx("a",{href:"#",className:"inline-flex items-center gap-2 font-mono text-[11px] uppercase tracking-[0.22em] text-te-light-gray transition-colors hover:text-te-accent",children:"在 GitHub 查看源码 →"})]})]})]})]})}function fa(){return e.jsxs("div",{className:"relative w-full border border-te-gray/40 bg-te-surface/30 p-6 md:p-8",children:[e.jsx("span",{className:"absolute -top-3 left-6 bg-te-bg px-2 font-mono text-[10px] uppercase tracking-[0.22em] text-te-light-gray",children:"Data flow"}),e.jsxs("div",{className:"hidden md:grid md:grid-cols-[1fr_auto_1.2fr_auto_1fr] md:items-center md:gap-4",children:[e.jsx(V,{icon:"mic",title:"你的麦克风",subtitle:"本机硬件"}),e.jsx(Z,{label:"原始音频"}),e.jsx(V,{icon:"app",title:"OpenSpeech App",subtitle:"录音 · 字典 · 历史 都在本机",highlighted:!0}),e.jsx(Z,{label:"HTTPS 直连"}),e.jsx(V,{icon:"cloud",title:"你配置的 ASR 服务",subtitle:"OpenAI · 腾讯云 · 阿里云 · 自建 兼容"})]}),e.jsxs("div",{className:"flex flex-col gap-3 md:hidden",children:[e.jsx(V,{icon:"mic",title:"你的麦克风",subtitle:"本机硬件"}),e.jsx(Z,{label:"原始音频",vertical:!0}),e.jsx(V,{icon:"app",title:"OpenSpeech App",subtitle:"录音 · 字典 · 历史 都在本机",highlighted:!0}),e.jsx(Z,{label:"HTTPS 直连",vertical:!0}),e.jsx(V,{icon:"cloud",title:"你配置的 ASR 服务",subtitle:"OpenAI · 腾讯云 · 阿里云 · 自建"})]}),e.jsxs("div",{className:"mt-6 flex flex-col items-center gap-2 border-t border-dashed border-te-gray/40 pt-5",children:[e.jsx("span",{className:"font-mono text-[10px] uppercase tracking-[0.22em] text-te-light-gray/70",children:"不在链路中"}),e.jsxs("div",{className:"relative inline-flex items-center gap-3 border border-dashed border-te-gray/50 px-4 py-2 text-te-light-gray/60",children:[e.jsx(ha,{}),e.jsx("span",{className:"font-mono text-xs uppercase tracking-[0.14em] line-through decoration-te-light-gray/70",children:"OpenSpeech 自家服务器"}),e.jsx("span",{"aria-hidden":!0,className:"absolute inset-0 flex items-center justify-center",children:e.jsx("span",{className:"block h-px w-[110%] -rotate-6 bg-te-light-gray/40"})})]})]})]})}function V({icon:t,title:s,subtitle:a,highlighted:n}){return e.jsxs("div",{className:["flex flex-col items-center gap-2 border px-4 py-4 text-center",n?"border-te-accent/60 bg-te-accent/8":"border-te-gray/50 bg-te-bg/40"].join(" "),children:[e.jsx("span",{className:["flex h-10 w-10 items-center justify-center border",n?"border-te-accent/70 text-te-accent":"border-te-gray/60 text-te-fg"].join(" "),children:e.jsx(ga,{kind:t})}),e.jsx("span",{className:["font-mono text-[12px] font-bold uppercase tracking-[0.1em]","text-te-fg"].join(" "),children:s}),e.jsx("span",{className:"text-[11px] leading-snug text-te-light-gray",children:a})]})}function Z({label:t,vertical:s}){return s?e.jsxs("div",{className:"flex flex-col items-center gap-1 py-1",children:[e.jsx("span",{className:"font-mono text-[10px] uppercase tracking-[0.18em] text-te-accent",children:t}),e.jsxs("svg",{width:"16",height:"28",viewBox:"0 0 16 28","aria-hidden":!0,children:[e.jsx("line",{x1:"8",y1:"0",x2:"8",y2:"22",stroke:"currentColor",strokeWidth:"1.5",className:"text-te-accent"}),e.jsx("polyline",{points:"3,20 8,27 13,20",fill:"none",stroke:"currentColor",strokeWidth:"1.5",className:"text-te-accent"})]})]}):e.jsxs("div",{className:"flex flex-col items-center gap-1 px-1",children:[e.jsx("span",{className:"font-mono text-[10px] uppercase tracking-[0.18em] text-te-accent",children:t}),e.jsxs("svg",{width:"64",height:"16",viewBox:"0 0 64 16","aria-hidden":!0,children:[e.jsx("line",{x1:"0",y1:"8",x2:"58",y2:"8",stroke:"currentColor",strokeWidth:"1.5",className:"text-te-accent"}),e.jsx("polyline",{points:"52,3 62,8 52,13",fill:"none",stroke:"currentColor",strokeWidth:"1.5",className:"text-te-accent"})]})]})}function ga({kind:t}){return t==="mic"?e.jsxs("svg",{width:"20",height:"20",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.7",strokeLinecap:"square","aria-hidden":!0,children:[e.jsx("rect",{x:"9",y:"3",width:"6",height:"12",rx:"3"}),e.jsx("path",{d:"M5 11a7 7 0 0 0 14 0"}),e.jsx("line",{x1:"12",y1:"18",x2:"12",y2:"22"})]}):t==="app"?e.jsxs("svg",{width:"20",height:"20",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.7",strokeLinecap:"square","aria-hidden":!0,children:[e.jsx("rect",{x:"3",y:"4",width:"18",height:"14",rx:"1"}),e.jsx("line",{x1:"3",y1:"8",x2:"21",y2:"8"}),e.jsx("circle",{cx:"6",cy:"6",r:"0.6",fill:"currentColor"}),e.jsx("circle",{cx:"8.4",cy:"6",r:"0.6",fill:"currentColor"})]}):e.jsx("svg",{width:"20",height:"20",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.7",strokeLinecap:"square","aria-hidden":!0,children:e.jsx("path",{d:"M7 18a5 5 0 0 1-1-9.9 6 6 0 0 1 11.6 1.4A4 4 0 0 1 17 18Z"})})}function ha(){return e.jsxs("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.6",strokeLinecap:"square","aria-hidden":!0,children:[e.jsx("rect",{x:"3",y:"4",width:"18",height:"6",rx:"1"}),e.jsx("rect",{x:"3",y:"14",width:"18",height:"6",rx:"1"}),e.jsx("line",{x1:"7",y1:"7",x2:"7",y2:"7"}),e.jsx("line",{x1:"7",y1:"17",x2:"7",y2:"17"})]})}function ua({className:t,strokeWidth:s}){return e.jsxs("svg",{viewBox:"0 0 24 24",fill:"currentColor","aria-hidden":!0,className:t,children:[e.jsx("rect",{x:"3",y:"3",width:"8.5",height:"8.5"}),e.jsx("rect",{x:"12.5",y:"3",width:"8.5",height:"8.5"}),e.jsx("rect",{x:"3",y:"12.5",width:"8.5",height:"8.5"}),e.jsx("rect",{x:"12.5",y:"12.5",width:"8.5",height:"8.5"})]})}const ya=[{id:"hero",label:"首页"},{id:"accuracy",label:"润色"},{id:"dictionary",label:"词典"},{id:"meeting",label:"会议"},{id:"download",label:"下载"}];function ba(){const{scrollYProgress:t}=U();return e.jsxs("div",{className:"relative w-full bg-te-bg text-te-fg",children:[e.jsx(m.div,{style:{scaleX:t},className:"fixed inset-x-0 top-0 z-50 h-[2px] origin-left bg-te-accent"}),e.jsx(Mt,{}),e.jsx(It,{sections:ya}),e.jsxs("main",{className:"relative",children:[e.jsx(Pt,{}),e.jsx($t,{}),e.jsx(Bt,{}),e.jsx(Jt,{}),e.jsx(da,{}),e.jsx(pa,{})]}),e.jsx("footer",{className:"relative border-t border-te-gray/30 bg-te-bg py-10 text-center",children:e.jsx("p",{className:"font-mono text-[10px] uppercase tracking-[0.3em] text-te-light-gray",children:"OpenSpeech © 2026 · Voice Typing for Every App"})})]})}document.documentElement.classList.add("dark");document.documentElement.style.userSelect="none";document.documentElement.style.setProperty("-webkit-user-select","none");const ke=new $e({duration:1.4,easing:t=>Math.min(1,1.001-Math.pow(2,-10*t)),smoothWheel:!0,wheelMultiplier:1}),Se=t=>{ke.raf(t),requestAnimationFrame(Se)};requestAnimationFrame(Se);document.addEventListener("click",t=>{const a=t.target?.closest("a[href^='#']");if(!a)return;const n=a.getAttribute("href");if(!n||n==="#")return;const r=n.slice(1),l=document.getElementById(r);l&&(t.preventDefault(),ke.scrollTo(l,{offset:0,duration:1.6}))});Oe.createRoot(document.getElementById("root")).render(e.jsx(Pe.StrictMode,{children:e.jsx(ba,{})}));
@@ -1 +0,0 @@
1
- @layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-scale-x:1;--tw-scale-y:1;--tw-scale-z:1;--tw-divide-x-reverse:0;--tw-border-style:solid;--tw-gradient-position:initial;--tw-gradient-from:#0000;--tw-gradient-via:#0000;--tw-gradient-to:#0000;--tw-gradient-stops:initial;--tw-gradient-via-stops:initial;--tw-gradient-from-position:0%;--tw-gradient-via-position:50%;--tw-gradient-to-position:100%;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial;--tw-duration:initial;--tw-ease:initial;--tw-animation-delay:0s;--tw-animation-direction:normal;--tw-animation-duration:initial;--tw-animation-fill-mode:none;--tw-animation-iteration-count:1;--tw-enter-blur:0;--tw-enter-opacity:1;--tw-enter-rotate:0;--tw-enter-scale:1;--tw-enter-translate-x:0;--tw-enter-translate-y:0;--tw-exit-blur:0;--tw-exit-opacity:1;--tw-exit-rotate:0;--tw-exit-scale:1;--tw-exit-translate-x:0;--tw-exit-translate-y:0}}}@layer theme{:root,:host{--font-sans:"Inter Variable", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", ui-sans-serif, system-ui, sans-serif;--font-mono:"Space Mono", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", ui-monospace, monospace;--color-red-500:oklch(63.7% .237 25.331);--color-red-700:oklch(50.5% .213 27.518);--color-amber-400:oklch(82.8% .189 84.429);--color-emerald-400:oklch(76.5% .177 163.223);--color-sky-400:oklch(74.6% .16 232.661);--color-violet-400:oklch(70.2% .183 293.541);--color-rose-400:oklch(71.2% .194 13.428);--color-black:#000;--color-white:#fff;--spacing:.25rem;--container-md:28rem;--container-xl:36rem;--container-2xl:42rem;--container-4xl:56rem;--container-5xl:64rem;--container-6xl:72rem;--container-7xl:80rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--text-base:1rem;--text-base--line-height: 1.5 ;--text-lg:1.125rem;--text-lg--line-height:calc(1.75 / 1.125);--text-xl:1.25rem;--text-xl--line-height:calc(1.75 / 1.25);--text-2xl:1.5rem;--text-2xl--line-height:calc(2 / 1.5);--text-3xl:1.875rem;--text-3xl--line-height: 1.2 ;--font-weight-medium:500;--font-weight-bold:700;--tracking-tighter:-.05em;--tracking-tight:-.025em;--tracking-normal:0em;--tracking-wider:.05em;--tracking-widest:.1em;--leading-tight:1.25;--leading-snug:1.375;--leading-relaxed:1.625;--radius-sm:.25rem;--radius-md:.375rem;--radius-2xl:1rem;--ease-in:cubic-bezier(.4, 0, 1, 1);--ease-out:cubic-bezier(0, 0, .2, 1);--animate-pulse:pulse 2s cubic-bezier(.4, 0, .6, 1) infinite;--blur-xl:24px;--blur-3xl:64px;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:"Inter Variable", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", ui-sans-serif, system-ui, sans-serif;--default-mono-font-family:"Space Mono", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", ui-monospace, monospace}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.\[container-type\:inline-size\]{container-type:inline-size}.pointer-events-auto{pointer-events:auto}.pointer-events-none{pointer-events:none}.collapse{visibility:collapse}.visible{visibility:visible}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.sticky{position:sticky}.-inset-4{inset:calc(var(--spacing) * -4)}.inset-0{inset:calc(var(--spacing) * 0)}.-inset-x-10{inset-inline:calc(var(--spacing) * -10)}.inset-x-0{inset-inline:calc(var(--spacing) * 0)}.inset-x-2{inset-inline:calc(var(--spacing) * 2)}.inset-x-20{inset-inline:calc(var(--spacing) * 20)}.inset-y-0{inset-block:calc(var(--spacing) * 0)}.start{inset-inline-start:var(--spacing)}.end{inset-inline-end:var(--spacing)}.-top-3{top:calc(var(--spacing) * -3)}.top-0{top:calc(var(--spacing) * 0)}.top-1\/2{top:50%}.top-1\/3{top:33.3333%}.top-1\/4{top:25%}.right-0{right:calc(var(--spacing) * 0)}.right-1\.5{right:calc(var(--spacing) * 1.5)}.right-5{right:calc(var(--spacing) * 5)}.right-6{right:calc(var(--spacing) * 6)}.right-\[-150px\]{right:-150px}.right-\[-160px\]{right:-160px}.-bottom-1{bottom:calc(var(--spacing) * -1)}.-bottom-12{bottom:calc(var(--spacing) * -12)}.-bottom-14{bottom:calc(var(--spacing) * -14)}.-bottom-\[9px\]{bottom:-9px}.bottom-0{bottom:calc(var(--spacing) * 0)}.bottom-1\/4{bottom:25%}.bottom-5{bottom:calc(var(--spacing) * 5)}.bottom-\[10\%\]{bottom:10%}.bottom-\[88px\]{bottom:88px}.left-0{left:calc(var(--spacing) * 0)}.left-1\/2{left:50%}.left-2\.5{left:calc(var(--spacing) * 2.5)}.left-6{left:calc(var(--spacing) * 6)}.left-\[-200px\]{left:-200px}.-z-10{z-index:-10}.-z-20{z-index:-20}.z-10{z-index:10}.z-20{z-index:20}.z-30{z-index:30}.z-40{z-index:40}.z-50{z-index:50}.container{width:100%}@media(min-width:40rem){.container{max-width:40rem}}@media(min-width:48rem){.container{max-width:48rem}}@media(min-width:64rem){.container{max-width:64rem}}@media(min-width:80rem){.container{max-width:80rem}}@media(min-width:96rem){.container{max-width:96rem}}.mx-1{margin-inline:calc(var(--spacing) * 1)}.mx-auto{margin-inline:auto}.my-6{margin-block:calc(var(--spacing) * 6)}.mt-2{margin-top:calc(var(--spacing) * 2)}.mt-3{margin-top:calc(var(--spacing) * 3)}.mt-6{margin-top:calc(var(--spacing) * 6)}.mt-10{margin-top:calc(var(--spacing) * 10)}.mt-16{margin-top:calc(var(--spacing) * 16)}.mr-0\.5{margin-right:calc(var(--spacing) * .5)}.mr-1{margin-right:calc(var(--spacing) * 1)}.mr-1\.5{margin-right:calc(var(--spacing) * 1.5)}.mb-2{margin-bottom:calc(var(--spacing) * 2)}.ml-0\.5{margin-left:calc(var(--spacing) * .5)}.ml-3{margin-left:calc(var(--spacing) * 3)}.ml-auto{margin-left:auto}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.size-1\.5{width:calc(var(--spacing) * 1.5);height:calc(var(--spacing) * 1.5)}.size-2{width:calc(var(--spacing) * 2);height:calc(var(--spacing) * 2)}.size-2\.5{width:calc(var(--spacing) * 2.5);height:calc(var(--spacing) * 2.5)}.size-3{width:calc(var(--spacing) * 3);height:calc(var(--spacing) * 3)}.size-3\.5{width:calc(var(--spacing) * 3.5);height:calc(var(--spacing) * 3.5)}.size-4{width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}.size-5{width:calc(var(--spacing) * 5);height:calc(var(--spacing) * 5)}.size-6{width:calc(var(--spacing) * 6);height:calc(var(--spacing) * 6)}.size-8{width:calc(var(--spacing) * 8);height:calc(var(--spacing) * 8)}.size-10{width:calc(var(--spacing) * 10);height:calc(var(--spacing) * 10)}.size-11{width:calc(var(--spacing) * 11);height:calc(var(--spacing) * 11)}.h-2{height:calc(var(--spacing) * 2)}.h-3{height:calc(var(--spacing) * 3)}.h-4{height:calc(var(--spacing) * 4)}.h-7{height:calc(var(--spacing) * 7)}.h-8{height:calc(var(--spacing) * 8)}.h-9{height:calc(var(--spacing) * 9)}.h-10{height:calc(var(--spacing) * 10)}.h-32{height:calc(var(--spacing) * 32)}.h-44{height:calc(var(--spacing) * 44)}.h-48{height:calc(var(--spacing) * 48)}.h-\[0\.9em\]{height:.9em}.h-\[1em\]{height:1em}.h-\[2px\]{height:2px}.h-\[3px\]{height:3px}.h-\[400px\]{height:400px}.h-\[420px\]{height:420px}.h-\[500px\]{height:500px}.h-\[560px\]{height:560px}.h-\[600px\]{height:600px}.h-\[640px\]{height:640px}.h-\[700px\]{height:700px}.h-full{height:100%}.h-px{height:1px}.min-h-0{min-height:calc(var(--spacing) * 0)}.min-h-\[340px\]{min-height:340px}.min-h-\[420px\]{min-height:420px}.min-h-screen{min-height:100vh}.w-1\/3{width:33.3333%}.w-4{width:calc(var(--spacing) * 4)}.w-7{width:calc(var(--spacing) * 7)}.w-9{width:calc(var(--spacing) * 9)}.w-10{width:calc(var(--spacing) * 10)}.w-24{width:calc(var(--spacing) * 24)}.w-\[2px\]{width:2px}.w-\[110\%\]{width:110%}.w-\[260px\]{width:260px}.w-\[400px\]{width:400px}.w-\[420px\]{width:420px}.w-\[500px\]{width:500px}.w-\[600px\]{width:600px}.w-\[640px\]{width:640px}.w-\[700px\]{width:700px}.w-full{width:100%}.w-px{width:1px}.max-w-2xl{max-width:var(--container-2xl)}.max-w-4xl{max-width:var(--container-4xl)}.max-w-5xl{max-width:var(--container-5xl)}.max-w-6xl{max-width:var(--container-6xl)}.max-w-7xl{max-width:var(--container-7xl)}.max-w-\[78\%\]{max-width:78%}.max-w-\[88\%\]{max-width:88%}.max-w-\[880px\]{max-width:880px}.max-w-md{max-width:var(--container-md)}.max-w-xl{max-width:var(--container-xl)}.min-w-0{min-width:calc(var(--spacing) * 0)}.min-w-\[44px\]{min-width:44px}.flex-1{flex:1}.shrink-0{flex-shrink:0}.origin-left{transform-origin:0}.-translate-x-1\/2{--tw-translate-x: -50% ;translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-x-0{--tw-translate-x:calc(var(--spacing) * 0);translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-x-2{--tw-translate-x:calc(var(--spacing) * 2);translate:var(--tw-translate-x) var(--tw-translate-y)}.-translate-y-1\/2{--tw-translate-y: -50% ;translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-y-\[0\.15em\]{--tw-translate-y:.15em;translate:var(--tw-translate-x) var(--tw-translate-y)}.scale-125{--tw-scale-x:125%;--tw-scale-y:125%;--tw-scale-z:125%;scale:var(--tw-scale-x) var(--tw-scale-y)}.-rotate-6{rotate:-6deg}.animate-pulse{animation:var(--animate-pulse)}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.resize{resize:both}.appearance-none{appearance:none}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-row{flex-direction:row}.flex-wrap{flex-wrap:wrap}.place-items-center{place-items:center}.items-baseline{align-items:baseline}.items-center{align-items:center}.items-end{align-items:flex-end}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.\!gap-0{gap:calc(var(--spacing) * 0)!important}.gap-0\.5{gap:calc(var(--spacing) * .5)}.gap-1{gap:calc(var(--spacing) * 1)}.gap-1\.5{gap:calc(var(--spacing) * 1.5)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-2\.5{gap:calc(var(--spacing) * 2.5)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-3\.5{gap:calc(var(--spacing) * 3.5)}.gap-4{gap:calc(var(--spacing) * 4)}.gap-5{gap:calc(var(--spacing) * 5)}.gap-6{gap:calc(var(--spacing) * 6)}.gap-8{gap:calc(var(--spacing) * 8)}.gap-10{gap:calc(var(--spacing) * 10)}.gap-12{gap:calc(var(--spacing) * 12)}.gap-14{gap:calc(var(--spacing) * 14)}.gap-24{gap:calc(var(--spacing) * 24)}.gap-\[clamp\(0\.5rem\,2cqw\,1\.25rem\)\]{gap:clamp(.5rem,2cqw,1.25rem)}.gap-px{gap:1px}:where(.divide-x>:not(:last-child)){--tw-divide-x-reverse:0;border-inline-style:var(--tw-border-style);border-inline-start-width:calc(1px * var(--tw-divide-x-reverse));border-inline-end-width:calc(1px * calc(1 - var(--tw-divide-x-reverse)))}:where(.divide-te-gray\/40>:not(:last-child)){border-color:var(--te-gray)}@supports (color:color-mix(in lab,red,red)){:where(.divide-te-gray\/40>:not(:last-child)){border-color:color-mix(in oklab,var(--te-gray) 40%,transparent)}}.self-end{align-self:flex-end}.self-start{align-self:flex-start}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-hidden{overflow:hidden}.overflow-y-auto{overflow-y:auto}.rounded-2xl{border-radius:var(--radius-2xl)}.rounded-\[1px\]{border-radius:1px}.rounded-\[28px\]{border-radius:28px}.rounded-\[50\%\]{border-radius:50%}.rounded-full{border-radius:3.40282e38px}.rounded-md{border-radius:var(--radius-md)}.rounded-none{border-radius:0}.rounded-sm{border-radius:var(--radius-sm)}.rounded-tl-sm{border-top-left-radius:var(--radius-sm)}.rounded-tr-sm{border-top-right-radius:var(--radius-sm)}.border{border-style:var(--tw-border-style);border-width:1px}.border-y{border-block-style:var(--tw-border-style);border-block-width:1px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-l-2{border-left-style:var(--tw-border-style);border-left-width:2px}.border-dashed{--tw-border-style:dashed;border-style:dashed}.border-\[\#ff4d4d\]{border-color:#ff4d4d}.border-red-700\/70{border-color:#bf000fb3}@supports (color:color-mix(in lab,red,red)){.border-red-700\/70{border-color:color-mix(in oklab,var(--color-red-700) 70%,transparent)}}.border-te-accent,.border-te-accent\/40{border-color:var(--te-accent)}@supports (color:color-mix(in lab,red,red)){.border-te-accent\/40{border-color:color-mix(in oklab,var(--te-accent) 40%,transparent)}}.border-te-accent\/45{border-color:var(--te-accent)}@supports (color:color-mix(in lab,red,red)){.border-te-accent\/45{border-color:color-mix(in oklab,var(--te-accent) 45%,transparent)}}.border-te-accent\/60{border-color:var(--te-accent)}@supports (color:color-mix(in lab,red,red)){.border-te-accent\/60{border-color:color-mix(in oklab,var(--te-accent) 60%,transparent)}}.border-te-accent\/70{border-color:var(--te-accent)}@supports (color:color-mix(in lab,red,red)){.border-te-accent\/70{border-color:color-mix(in oklab,var(--te-accent) 70%,transparent)}}.border-te-accent\/80{border-color:var(--te-accent)}@supports (color:color-mix(in lab,red,red)){.border-te-accent\/80{border-color:color-mix(in oklab,var(--te-accent) 80%,transparent)}}.border-te-gray,.border-te-gray\/30{border-color:var(--te-gray)}@supports (color:color-mix(in lab,red,red)){.border-te-gray\/30{border-color:color-mix(in oklab,var(--te-gray) 30%,transparent)}}.border-te-gray\/40{border-color:var(--te-gray)}@supports (color:color-mix(in lab,red,red)){.border-te-gray\/40{border-color:color-mix(in oklab,var(--te-gray) 40%,transparent)}}.border-te-gray\/50{border-color:var(--te-gray)}@supports (color:color-mix(in lab,red,red)){.border-te-gray\/50{border-color:color-mix(in oklab,var(--te-gray) 50%,transparent)}}.border-te-gray\/55{border-color:var(--te-gray)}@supports (color:color-mix(in lab,red,red)){.border-te-gray\/55{border-color:color-mix(in oklab,var(--te-gray) 55%,transparent)}}.border-te-gray\/60{border-color:var(--te-gray)}@supports (color:color-mix(in lab,red,red)){.border-te-gray\/60{border-color:color-mix(in oklab,var(--te-gray) 60%,transparent)}}.border-transparent{border-color:#0000}.bg-\[\#28c840\]{background-color:#28c840}.bg-\[\#febc2e\]{background-color:#febc2e}.bg-\[\#ff4d4d\]{background-color:#ff4d4d}.bg-\[\#ff5f57\]{background-color:#ff5f57}.bg-black{background-color:var(--color-black)}.bg-black\/60{background-color:#0009}@supports (color:color-mix(in lab,red,red)){.bg-black\/60{background-color:color-mix(in oklab,var(--color-black) 60%,transparent)}}.bg-te-accent,.bg-te-accent\/6{background-color:var(--te-accent)}@supports (color:color-mix(in lab,red,red)){.bg-te-accent\/6{background-color:color-mix(in oklab,var(--te-accent) 6%,transparent)}}.bg-te-accent\/8{background-color:var(--te-accent)}@supports (color:color-mix(in lab,red,red)){.bg-te-accent\/8{background-color:color-mix(in oklab,var(--te-accent) 8%,transparent)}}.bg-te-accent\/10{background-color:var(--te-accent)}@supports (color:color-mix(in lab,red,red)){.bg-te-accent\/10{background-color:color-mix(in oklab,var(--te-accent) 10%,transparent)}}.bg-te-accent\/12{background-color:var(--te-accent)}@supports (color:color-mix(in lab,red,red)){.bg-te-accent\/12{background-color:color-mix(in oklab,var(--te-accent) 12%,transparent)}}.bg-te-accent\/15{background-color:var(--te-accent)}@supports (color:color-mix(in lab,red,red)){.bg-te-accent\/15{background-color:color-mix(in oklab,var(--te-accent) 15%,transparent)}}.bg-te-accent\/22{background-color:var(--te-accent)}@supports (color:color-mix(in lab,red,red)){.bg-te-accent\/22{background-color:color-mix(in oklab,var(--te-accent) 22%,transparent)}}.bg-te-accent\/25{background-color:var(--te-accent)}@supports (color:color-mix(in lab,red,red)){.bg-te-accent\/25{background-color:color-mix(in oklab,var(--te-accent) 25%,transparent)}}.bg-te-accent\/30{background-color:var(--te-accent)}@supports (color:color-mix(in lab,red,red)){.bg-te-accent\/30{background-color:color-mix(in oklab,var(--te-accent) 30%,transparent)}}.bg-te-accent\/\[0\.08\]{background-color:var(--te-accent)}@supports (color:color-mix(in lab,red,red)){.bg-te-accent\/\[0\.08\]{background-color:color-mix(in oklab,var(--te-accent) 8%,transparent)}}.bg-te-bg,.bg-te-bg\/40{background-color:var(--te-bg)}@supports (color:color-mix(in lab,red,red)){.bg-te-bg\/40{background-color:color-mix(in oklab,var(--te-bg) 40%,transparent)}}.bg-te-bg\/50{background-color:var(--te-bg)}@supports (color:color-mix(in lab,red,red)){.bg-te-bg\/50{background-color:color-mix(in oklab,var(--te-bg) 50%,transparent)}}.bg-te-bg\/80{background-color:var(--te-bg)}@supports (color:color-mix(in lab,red,red)){.bg-te-bg\/80{background-color:color-mix(in oklab,var(--te-bg) 80%,transparent)}}.bg-te-gray,.bg-te-gray\/30{background-color:var(--te-gray)}@supports (color:color-mix(in lab,red,red)){.bg-te-gray\/30{background-color:color-mix(in oklab,var(--te-gray) 30%,transparent)}}.bg-te-gray\/40{background-color:var(--te-gray)}@supports (color:color-mix(in lab,red,red)){.bg-te-gray\/40{background-color:color-mix(in oklab,var(--te-gray) 40%,transparent)}}.bg-te-gray\/50{background-color:var(--te-gray)}@supports (color:color-mix(in lab,red,red)){.bg-te-gray\/50{background-color:color-mix(in oklab,var(--te-gray) 50%,transparent)}}.bg-te-gray\/60{background-color:var(--te-gray)}@supports (color:color-mix(in lab,red,red)){.bg-te-gray\/60{background-color:color-mix(in oklab,var(--te-gray) 60%,transparent)}}.bg-te-light-gray,.bg-te-light-gray\/40{background-color:var(--te-light-gray)}@supports (color:color-mix(in lab,red,red)){.bg-te-light-gray\/40{background-color:color-mix(in oklab,var(--te-light-gray) 40%,transparent)}}.bg-te-surface{background-color:var(--te-surface)}.bg-te-surface-hover,.bg-te-surface-hover\/40{background-color:var(--te-surface-hover)}@supports (color:color-mix(in lab,red,red)){.bg-te-surface-hover\/40{background-color:color-mix(in oklab,var(--te-surface-hover) 40%,transparent)}}.bg-te-surface\/30{background-color:var(--te-surface)}@supports (color:color-mix(in lab,red,red)){.bg-te-surface\/30{background-color:color-mix(in oklab,var(--te-surface) 30%,transparent)}}.bg-te-surface\/40{background-color:var(--te-surface)}@supports (color:color-mix(in lab,red,red)){.bg-te-surface\/40{background-color:color-mix(in oklab,var(--te-surface) 40%,transparent)}}.bg-transparent{background-color:#0000}.bg-white{background-color:var(--color-white)}.bg-gradient-to-b{--tw-gradient-position:to bottom in oklab;background-image:linear-gradient(var(--tw-gradient-stops))}.bg-gradient-to-r{--tw-gradient-position:to right in oklab;background-image:linear-gradient(var(--tw-gradient-stops))}.bg-gradient-to-t{--tw-gradient-position:to top in oklab;background-image:linear-gradient(var(--tw-gradient-stops))}.from-te-accent{--tw-gradient-from:var(--te-accent);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.from-te-bg{--tw-gradient-from:var(--te-bg);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.from-te-fg{--tw-gradient-from:var(--te-fg);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.from-transparent{--tw-gradient-from:transparent;--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.via-te-accent\/65{--tw-gradient-via:var(--te-accent)}@supports (color:color-mix(in lab,red,red)){.via-te-accent\/65{--tw-gradient-via:color-mix(in oklab, var(--te-accent) 65%, transparent)}}.via-te-accent\/65{--tw-gradient-via-stops:var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-via) var(--tw-gradient-via-position), var(--tw-gradient-to) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-via-stops)}.to-te-accent\/80{--tw-gradient-to:var(--te-accent)}@supports (color:color-mix(in lab,red,red)){.to-te-accent\/80{--tw-gradient-to:color-mix(in oklab, var(--te-accent) 80%, transparent)}}.to-te-accent\/80{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.to-te-fg\/70{--tw-gradient-to:var(--te-fg)}@supports (color:color-mix(in lab,red,red)){.to-te-fg\/70{--tw-gradient-to:color-mix(in oklab, var(--te-fg) 70%, transparent)}}.to-te-fg\/70{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.to-transparent{--tw-gradient-to:transparent;--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.bg-clip-text{-webkit-background-clip:text;background-clip:text}.p-0{padding:calc(var(--spacing) * 0)}.p-3{padding:calc(var(--spacing) * 3)}.p-4{padding:calc(var(--spacing) * 4)}.p-5{padding:calc(var(--spacing) * 5)}.p-6{padding:calc(var(--spacing) * 6)}.px-1{padding-inline:calc(var(--spacing) * 1)}.px-2{padding-inline:calc(var(--spacing) * 2)}.px-2\.5{padding-inline:calc(var(--spacing) * 2.5)}.px-3{padding-inline:calc(var(--spacing) * 3)}.px-4{padding-inline:calc(var(--spacing) * 4)}.px-5{padding-inline:calc(var(--spacing) * 5)}.px-6{padding-inline:calc(var(--spacing) * 6)}.px-7{padding-inline:calc(var(--spacing) * 7)}.px-8{padding-inline:calc(var(--spacing) * 8)}.px-\[4vw\]{padding-inline:4vw}.px-\[clamp\(0\.75rem\,2\.5cqw\,1\.5rem\)\]{padding-inline:clamp(.75rem,2.5cqw,1.5rem)}.py-0\.5{padding-block:calc(var(--spacing) * .5)}.py-1{padding-block:calc(var(--spacing) * 1)}.py-1\.5{padding-block:calc(var(--spacing) * 1.5)}.py-2{padding-block:calc(var(--spacing) * 2)}.py-2\.5{padding-block:calc(var(--spacing) * 2.5)}.py-3{padding-block:calc(var(--spacing) * 3)}.py-4{padding-block:calc(var(--spacing) * 4)}.py-5{padding-block:calc(var(--spacing) * 5)}.py-8{padding-block:calc(var(--spacing) * 8)}.py-10{padding-block:calc(var(--spacing) * 10)}.py-14{padding-block:calc(var(--spacing) * 14)}.py-24{padding-block:calc(var(--spacing) * 24)}.py-\[clamp\(0\.4rem\,1\.6cqw\,1rem\)\]{padding-block:clamp(.4rem,1.6cqw,1rem)}.py-\[clamp\(1rem\,2vw\,2rem\)\]{padding-block:clamp(1rem,2vw,2rem)}.pt-3{padding-top:calc(var(--spacing) * 3)}.pt-5{padding-top:calc(var(--spacing) * 5)}.pt-24{padding-top:calc(var(--spacing) * 24)}.pr-4{padding-right:calc(var(--spacing) * 4)}.pr-6{padding-right:calc(var(--spacing) * 6)}.pr-7{padding-right:calc(var(--spacing) * 7)}.pb-3{padding-bottom:calc(var(--spacing) * 3)}.pb-20{padding-bottom:calc(var(--spacing) * 20)}.pb-\[clamp\(1rem\,2vw\,2rem\)\]{padding-bottom:clamp(1rem,2vw,2rem)}.pl-2{padding-left:calc(var(--spacing) * 2)}.pl-4{padding-left:calc(var(--spacing) * 4)}.pl-8{padding-left:calc(var(--spacing) * 8)}.text-center{text-align:center}.text-left{text-align:left}.align-baseline{vertical-align:baseline}.font-mono{font-family:Space Mono,PingFang SC,Hiragino Sans GB,Microsoft YaHei,ui-monospace,monospace}.font-sans{font-family:Inter Variable,PingFang SC,Hiragino Sans GB,Microsoft YaHei,ui-sans-serif,system-ui,sans-serif}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.text-3xl{font-size:var(--text-3xl);line-height:var(--tw-leading,var(--text-3xl--line-height))}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.text-\[0\.7em\]{font-size:.7em}.text-\[10px\]{font-size:10px}.text-\[11\.5px\]{font-size:11.5px}.text-\[11px\]{font-size:11px}.text-\[12\.5px\]{font-size:12.5px}.text-\[12px\]{font-size:12px}.text-\[13\.5px\]{font-size:13.5px}.text-\[13px\]{font-size:13px}.text-\[14\.5px\]{font-size:14.5px}.text-\[14px\]{font-size:14px}.text-\[15px\]{font-size:15px}.text-\[16px\]{font-size:16px}.text-\[clamp\(0\.875rem\,3cqw\,1\.75rem\)\]{font-size:clamp(.875rem,3cqw,1.75rem)}.text-\[clamp\(1\.7rem\,3\.6vw\,2\.8rem\)\]{font-size:clamp(1.7rem,3.6vw,2.8rem)}.text-\[clamp\(1rem\,3cqw\,2rem\)\]{font-size:clamp(1rem,3cqw,2rem)}.text-\[clamp\(2\.2rem\,5\.2vw\,4\.2rem\)\]{font-size:clamp(2.2rem,5.2vw,4.2rem)}.text-\[clamp\(2\.8rem\,7\.2vw\,6\.4rem\)\]{font-size:clamp(2.8rem,7.2vw,6.4rem)}.text-\[clamp\(2rem\,4\.6vw\,3\.6rem\)\]{font-size:clamp(2rem,4.6vw,3.6rem)}.leading-\[1\.1\]{--tw-leading:1.1;line-height:1.1}.leading-\[1\.02\]{--tw-leading:1.02;line-height:1.02}.leading-\[1\.05\]{--tw-leading:1.05;line-height:1.05}.leading-relaxed{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.leading-snug{--tw-leading:var(--leading-snug);line-height:var(--leading-snug)}.leading-tight{--tw-leading:var(--leading-tight);line-height:var(--leading-tight)}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.tracking-\[-0\.01em\]{--tw-tracking:-.01em;letter-spacing:-.01em}.tracking-\[0\.1em\]{--tw-tracking:.1em;letter-spacing:.1em}.tracking-\[0\.2em\]{--tw-tracking:.2em;letter-spacing:.2em}.tracking-\[0\.3em\]{--tw-tracking:.3em;letter-spacing:.3em}.tracking-\[0\.05em\]{--tw-tracking:.05em;letter-spacing:.05em}.tracking-\[0\.12em\]{--tw-tracking:.12em;letter-spacing:.12em}.tracking-\[0\.14em\]{--tw-tracking:.14em;letter-spacing:.14em}.tracking-\[0\.15em\]{--tw-tracking:.15em;letter-spacing:.15em}.tracking-\[0\.18em\]{--tw-tracking:.18em;letter-spacing:.18em}.tracking-\[0\.22em\]{--tw-tracking:.22em;letter-spacing:.22em}.tracking-\[0\.25em\]{--tw-tracking:.25em;letter-spacing:.25em}.tracking-normal{--tw-tracking:var(--tracking-normal);letter-spacing:var(--tracking-normal)}.tracking-tight{--tw-tracking:var(--tracking-tight);letter-spacing:var(--tracking-tight)}.tracking-tighter{--tw-tracking:var(--tracking-tighter);letter-spacing:var(--tracking-tighter)}.tracking-wider{--tw-tracking:var(--tracking-wider);letter-spacing:var(--tracking-wider)}.tracking-widest{--tw-tracking:var(--tracking-widest);letter-spacing:var(--tracking-widest)}.text-balance{text-wrap:balance}.text-\[\#ff4d4d\]{color:#ff4d4d}.text-amber-400{color:var(--color-amber-400)}.text-black{color:var(--color-black)}.text-emerald-400{color:var(--color-emerald-400)}.text-red-500\/80{color:#fb2c36cc}@supports (color:color-mix(in lab,red,red)){.text-red-500\/80{color:color-mix(in oklab,var(--color-red-500) 80%,transparent)}}.text-rose-400{color:var(--color-rose-400)}.text-sky-400{color:var(--color-sky-400)}.text-te-accent{color:var(--te-accent)}.text-te-accent-fg{color:var(--te-accent-fg)}.text-te-accent\/70{color:var(--te-accent)}@supports (color:color-mix(in lab,red,red)){.text-te-accent\/70{color:color-mix(in oklab,var(--te-accent) 70%,transparent)}}.text-te-bg{color:var(--te-bg)}.text-te-fg{color:var(--te-fg)}.text-te-light-gray,.text-te-light-gray\/35{color:var(--te-light-gray)}@supports (color:color-mix(in lab,red,red)){.text-te-light-gray\/35{color:color-mix(in oklab,var(--te-light-gray) 35%,transparent)}}.text-te-light-gray\/40{color:var(--te-light-gray)}@supports (color:color-mix(in lab,red,red)){.text-te-light-gray\/40{color:color-mix(in oklab,var(--te-light-gray) 40%,transparent)}}.text-te-light-gray\/45{color:var(--te-light-gray)}@supports (color:color-mix(in lab,red,red)){.text-te-light-gray\/45{color:color-mix(in oklab,var(--te-light-gray) 45%,transparent)}}.text-te-light-gray\/50{color:var(--te-light-gray)}@supports (color:color-mix(in lab,red,red)){.text-te-light-gray\/50{color:color-mix(in oklab,var(--te-light-gray) 50%,transparent)}}.text-te-light-gray\/55{color:var(--te-light-gray)}@supports (color:color-mix(in lab,red,red)){.text-te-light-gray\/55{color:color-mix(in oklab,var(--te-light-gray) 55%,transparent)}}.text-te-light-gray\/60{color:var(--te-light-gray)}@supports (color:color-mix(in lab,red,red)){.text-te-light-gray\/60{color:color-mix(in oklab,var(--te-light-gray) 60%,transparent)}}.text-te-light-gray\/65{color:var(--te-light-gray)}@supports (color:color-mix(in lab,red,red)){.text-te-light-gray\/65{color:color-mix(in oklab,var(--te-light-gray) 65%,transparent)}}.text-te-light-gray\/70{color:var(--te-light-gray)}@supports (color:color-mix(in lab,red,red)){.text-te-light-gray\/70{color:color-mix(in oklab,var(--te-light-gray) 70%,transparent)}}.text-te-light-gray\/75{color:var(--te-light-gray)}@supports (color:color-mix(in lab,red,red)){.text-te-light-gray\/75{color:color-mix(in oklab,var(--te-light-gray) 75%,transparent)}}.text-transparent{color:#0000}.text-violet-400{color:var(--color-violet-400)}.text-white{color:var(--color-white)}.lowercase{text-transform:lowercase}.uppercase{text-transform:uppercase}.italic{font-style:italic}.tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.line-through{text-decoration-line:line-through}.decoration-te-accent\/40{-webkit-text-decoration-color:var(--te-accent);text-decoration-color:var(--te-accent)}@supports (color:color-mix(in lab,red,red)){.decoration-te-accent\/40{-webkit-text-decoration-color:color-mix(in oklab,var(--te-accent) 40%,transparent);text-decoration-color:color-mix(in oklab,var(--te-accent) 40%,transparent)}}.decoration-te-light-gray\/40{-webkit-text-decoration-color:var(--te-light-gray);text-decoration-color:var(--te-light-gray)}@supports (color:color-mix(in lab,red,red)){.decoration-te-light-gray\/40{-webkit-text-decoration-color:color-mix(in oklab,var(--te-light-gray) 40%,transparent);text-decoration-color:color-mix(in oklab,var(--te-light-gray) 40%,transparent)}}.decoration-te-light-gray\/70{-webkit-text-decoration-color:var(--te-light-gray);text-decoration-color:var(--te-light-gray)}@supports (color:color-mix(in lab,red,red)){.decoration-te-light-gray\/70{-webkit-text-decoration-color:color-mix(in oklab,var(--te-light-gray) 70%,transparent);text-decoration-color:color-mix(in oklab,var(--te-light-gray) 70%,transparent)}}.opacity-0{opacity:0}.opacity-30{opacity:.3}.opacity-50{opacity:.5}.opacity-60{opacity:.6}.opacity-70{opacity:.7}.opacity-80{opacity:.8}.opacity-100{opacity:1}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-2xl{--tw-shadow:0 25px 50px -12px var(--tw-shadow-color,#00000040);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[0_8px_30px_-12px_rgba\(244\,209\,57\,0\.35\)\]{--tw-shadow:0 8px 30px -12px var(--tw-shadow-color,#f4d13959);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[0_10px_30px_-8px_rgba\(244\,209\,57\,0\.4\)\]{--tw-shadow:0 10px 30px -8px var(--tw-shadow-color,#f4d13966);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[0_10px_30px_-8px_rgba\(244\,209\,57\,0\.5\)\]{--tw-shadow:0 10px 30px -8px var(--tw-shadow-color,#f4d13980);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[inset_0_-2px_0_0_\#b91c1c\]{--tw-shadow:inset 0 -2px 0 0 var(--tw-shadow-color,#b91c1c);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[inset_0_-2px_0_0_rgba\(255\,255\,255\,0\.05\)\,0_2px_0_0_rgba\(0\,0\,0\,0\.4\)\]{--tw-shadow:inset 0 -2px 0 0 var(--tw-shadow-color,#ffffff0d), 0 2px 0 0 var(--tw-shadow-color,#0006);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[inset_0_-2px_0_0_var\(--te-accent\)\,0_0_20px_-4px_rgba\(244\,209\,57\,0\.5\)\]{--tw-shadow:inset 0 -2px 0 0 var(--tw-shadow-color,var(--te-accent)), 0 0 20px -4px var(--tw-shadow-color,#f4d13980);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[inset_0_-2px_0_0_var\(--te-accent\)\]{--tw-shadow:inset 0 -2px 0 0 var(--tw-shadow-color,var(--te-accent));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[inset_0_-2px_0_0_var\(--te-gray\)\]{--tw-shadow:inset 0 -2px 0 0 var(--tw-shadow-color,var(--te-gray));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring,.ring-1{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring-te-accent\/30{--tw-ring-color:var(--te-accent)}@supports (color:color-mix(in lab,red,red)){.ring-te-accent\/30{--tw-ring-color:color-mix(in oklab, var(--te-accent) 30%, transparent)}}.blur{--tw-blur:blur(8px);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.blur-3xl{--tw-blur:blur(var(--blur-3xl));filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.blur-\[80px\]{--tw-blur:blur(80px);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.blur-\[120px\]{--tw-blur:blur(120px);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.blur-\[140px\]{--tw-blur:blur(140px);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.blur-\[160px\]{--tw-blur:blur(160px);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.backdrop-blur-\[2px\]{--tw-backdrop-blur:blur(2px);-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.backdrop-blur-xl{--tw-backdrop-blur:blur(var(--blur-xl));-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[filter\,box-shadow\]{transition-property:filter,box-shadow;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[filter\]{transition-property:filter;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[height\]{transition-property:height;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.duration-75{--tw-duration:75ms;transition-duration:75ms}.duration-300{--tw-duration:.3s;transition-duration:.3s}.ease-in{--tw-ease:var(--ease-in);transition-timing-function:var(--ease-in)}.ease-out{--tw-ease:var(--ease-out);transition-timing-function:var(--ease-out)}.select-none{-webkit-user-select:none;user-select:none}.paused{animation-play-state:paused}.running{animation-play-state:running}@media(hover:hover){.group-hover\:translate-x-0:is(:where(.group):hover *){--tw-translate-x:calc(var(--spacing) * 0);translate:var(--tw-translate-x) var(--tw-translate-y)}.group-hover\:border-te-light-gray:is(:where(.group):hover *){border-color:var(--te-light-gray)}.group-hover\:text-te-accent:is(:where(.group):hover *){color:var(--te-accent)}.group-hover\:opacity-80:is(:where(.group):hover *){opacity:.8}.group-hover\:opacity-100:is(:where(.group):hover *){opacity:1}}.placeholder\:text-te-light-gray::placeholder{color:var(--te-light-gray)}.focus-within\:border-te-accent:focus-within{border-color:var(--te-accent)}@media(hover:hover){.hover\:border-\[\#ff4d4d\]:hover{border-color:#ff4d4d}.hover\:border-te-accent:hover{border-color:var(--te-accent)}.hover\:bg-\[\#ff6b6b\]:hover{background-color:#ff6b6b}.hover\:bg-te-accent:hover,.hover\:bg-te-accent\/8:hover{background-color:var(--te-accent)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-te-accent\/8:hover{background-color:color-mix(in oklab,var(--te-accent) 8%,transparent)}}.hover\:text-\[\#ff4d4d\]:hover{color:#ff4d4d}.hover\:text-te-accent:hover{color:var(--te-accent)}.hover\:text-te-accent-fg:hover{color:var(--te-accent-fg)}.hover\:text-te-fg:hover{color:var(--te-fg)}.hover\:shadow-\[0_14px_40px_-8px_rgba\(244\,209\,57\,0\.55\)\]:hover{--tw-shadow:0 14px 40px -8px var(--tw-shadow-color,#f4d1398c);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.hover\:brightness-110:hover{--tw-brightness:brightness(110%);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}}.focus\:border-te-accent:focus{border-color:var(--te-accent)}.focus\:outline-none:focus{--tw-outline-style:none;outline-style:none}.focus-visible\:border-te-accent:focus-visible{border-color:var(--te-accent)}@media(min-width:40rem){.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(min-width:48rem){.md\:mt-14{margin-top:calc(var(--spacing) * 14)}.md\:mb-3{margin-bottom:calc(var(--spacing) * 3)}.md\:flex{display:flex}.md\:grid{display:grid}.md\:hidden{display:none}.md\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.md\:grid-cols-\[1fr_auto_1\.2fr_auto_1fr\]{grid-template-columns:1fr auto 1.2fr auto 1fr}.md\:flex-row{flex-direction:row}.md\:items-center{align-items:center}.md\:justify-between{justify-content:space-between}.md\:gap-4{gap:calc(var(--spacing) * 4)}.md\:p-5{padding:calc(var(--spacing) * 5)}.md\:p-8{padding:calc(var(--spacing) * 8)}.md\:px-10{padding-inline:calc(var(--spacing) * 10)}.md\:py-10{padding-block:calc(var(--spacing) * 10)}.md\:text-3xl{font-size:var(--text-3xl);line-height:var(--tw-leading,var(--text-3xl--line-height))}.md\:text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.md\:text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.md\:text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.md\:text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}.md\:text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.md\:text-\[17px\]{font-size:17px}}@media(min-width:64rem){.lg\:max-w-md{max-width:var(--container-md)}.lg\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.lg\:flex-col{flex-direction:column}.lg\:flex-row{flex-direction:row}.lg\:items-center{align-items:center}.lg\:items-start{align-items:flex-start}.lg\:justify-between{justify-content:space-between}.lg\:gap-1\.5{gap:calc(var(--spacing) * 1.5)}.lg\:gap-3{gap:calc(var(--spacing) * 3)}.lg\:gap-12{gap:calc(var(--spacing) * 12)}.lg\:px-5{padding-inline:calc(var(--spacing) * 5)}.lg\:px-12{padding-inline:calc(var(--spacing) * 12)}}}@property --tw-animation-delay{syntax:"*";inherits:false;initial-value:0s}@property --tw-animation-direction{syntax:"*";inherits:false;initial-value:normal}@property --tw-animation-duration{syntax:"*";inherits:false}@property --tw-animation-fill-mode{syntax:"*";inherits:false;initial-value:none}@property --tw-animation-iteration-count{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-blur{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-opacity{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-rotate{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-scale{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-blur{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-opacity{syntax:"*";inherits:false;initial-value:1}@property --tw-exit-rotate{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-scale{syntax:"*";inherits:false;initial-value:1}@property --tw-exit-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-translate-y{syntax:"*";inherits:false;initial-value:0}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-cyrillic-wght-normal-CHSlOQsW.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-latin-ext-wght-normal-DMtmJ5ZE.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-latin-wght-normal-Dm3htQBi.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-cyrillic-ext-wght-normal-BOeWTOD4.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-cyrillic-wght-normal-DqGufNeO.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-greek-ext-wght-normal-DlzME5K_.woff2)format("woff2-variations");unicode-range:U+1F??}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-greek-wght-normal-CkhJZR-_.woff2)format("woff2-variations");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-vietnamese-wght-normal-CBcvBZtf.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-latin-ext-wght-normal-DO1Apj_S.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-latin-wght-normal-Dx4kXJAl.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Space Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/space-mono-vietnamese-400-normal-BNOj0Qhp.woff2)format("woff2"),url(/assets/space-mono-vietnamese-400-normal-B0PMp_xB.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Space Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/space-mono-latin-ext-400-normal-DTLbW2xa.woff2)format("woff2"),url(/assets/space-mono-latin-ext-400-normal-D4cJI_B-.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Space Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/space-mono-latin-400-normal-Rg4St2Dn.woff2)format("woff2"),url(/assets/space-mono-latin-400-normal-_3DlpgIW.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Space Mono;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/space-mono-vietnamese-700-normal-DWQgDHuA.woff2)format("woff2"),url(/assets/space-mono-vietnamese-700-normal-D-KrLuLr.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Space Mono;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/space-mono-latin-ext-700-normal-B2s3bDs2.woff2)format("woff2"),url(/assets/space-mono-latin-ext-700-normal-B_E7P90g.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Space Mono;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/space-mono-latin-700-normal-mWgeinG7.woff2)format("woff2"),url(/assets/space-mono-latin-700-normal-D7A851RN.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--te-bg:#fff;--te-fg:#0a0a0a;--te-accent:#c49600;--te-accent-fg:#fff;--te-gray:#c9c9c9;--te-light-gray:#555;--te-surface:#f0f0f0;--te-surface-hover:#e4e4e4;--te-dialog-bg:#fafafa;--te-dialog-border:#999;--te-overlay:#0009;--te-bg-rgb:255 255 255;--te-fg-rgb:10 10 10;--te-accent-rgb:196 150 0;--te-gray-rgb:201 201 201;--te-light-gray-rgb:85 85 85;--te-surface-rgb:240 240 240;--te-dialog-bg-rgb:250 250 250;--te-dialog-border-rgb:153 153 153}.dark{--te-bg:#000;--te-fg:#fff;--te-accent:#fc0;--te-accent-fg:#000;--te-gray:#3a3a3a;--te-light-gray:#b5b5b5;--te-surface:#141414;--te-surface-hover:#222;--te-dialog-bg:#1a1a1a;--te-dialog-border:#5a5a5a;--te-overlay:#000000d9;--te-bg-rgb:0 0 0;--te-fg-rgb:255 255 255;--te-accent-rgb:255 204 0;--te-gray-rgb:58 58 58;--te-light-gray-rgb:181 181 181;--te-surface-rgb:20 20 20;--te-dialog-bg-rgb:26 26 26;--te-dialog-border-rgb:90 90 90}html,body,#root{background:var(--te-bg);color:var(--te-fg);margin:0;padding:0}html{font-family:var(--font-sans);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility;scroll-behavior:auto}body{background:radial-gradient(1100px 700px at 80% -10%,var(--te-accent),transparent 60%),radial-gradient(900px 700px at -10% 110%,var(--te-accent),transparent 60%),var(--te-bg);min-height:100vh;overflow-x:hidden}@supports (color:color-mix(in lab,red,red)){body{background:radial-gradient(1100px 700px at 80% -10%,color-mix(in oklab,var(--te-accent) 10%,transparent),transparent 60%),radial-gradient(900px 700px at -10% 110%,color-mix(in oklab,var(--te-accent) 6%,transparent),transparent 60%),var(--te-bg)}}::selection{background:var(--te-accent);color:var(--te-accent-fg)}@supports not (background:color-mix(in oklab,red 50%,transparent)){.bg-te-accent\/5{background-color:rgb(var(--te-accent-rgb) / 5%)}.bg-te-accent\/8{background-color:rgb(var(--te-accent-rgb) / 8%)}.bg-te-accent\/10{background-color:rgb(var(--te-accent-rgb) / 10%)}.bg-te-accent\/15{background-color:rgb(var(--te-accent-rgb) / 15%)}.bg-te-accent\/30{background-color:rgb(var(--te-accent-rgb) / 30%)}.bg-te-accent\/70{background-color:rgb(var(--te-accent-rgb) / 70%)}.bg-te-accent\/85{background-color:rgb(var(--te-accent-rgb) / 85%)}.bg-te-accent\/90{background-color:rgb(var(--te-accent-rgb) / 90%)}.bg-te-bg\/30{background-color:rgb(var(--te-bg-rgb) / 30%)}.bg-te-bg\/40{background-color:rgb(var(--te-bg-rgb) / 40%)}.bg-te-bg\/60{background-color:rgb(var(--te-bg-rgb) / 60%)}.bg-te-bg\/80{background-color:rgb(var(--te-bg-rgb) / 80%)}.bg-te-gray\/30{background-color:rgb(var(--te-gray-rgb) / 30%)}.bg-te-gray\/40{background-color:rgb(var(--te-gray-rgb) / 40%)}.bg-te-gray\/60{background-color:rgb(var(--te-gray-rgb) / 60%)}.bg-te-light-gray\/25{background-color:rgb(var(--te-light-gray-rgb) / 25%)}.bg-te-light-gray\/50{background-color:rgb(var(--te-light-gray-rgb) / 50%)}.bg-te-surface\/30{background-color:rgb(var(--te-surface-rgb) / 30%)}.bg-te-surface\/40{background-color:rgb(var(--te-surface-rgb) / 40%)}.bg-te-surface\/50{background-color:rgb(var(--te-surface-rgb) / 50%)}.bg-te-surface\/60{background-color:rgb(var(--te-surface-rgb) / 60%)}.border-te-accent\/30{border-color:rgb(var(--te-accent-rgb) / 30%)}.border-te-accent\/40{border-color:rgb(var(--te-accent-rgb) / 40%)}.border-te-accent\/50{border-color:rgb(var(--te-accent-rgb) / 50%)}.border-te-accent\/60{border-color:rgb(var(--te-accent-rgb) / 60%)}.border-te-accent\/70{border-color:rgb(var(--te-accent-rgb) / 70%)}.border-te-fg\/50{border-color:rgb(var(--te-fg-rgb) / 50%)}.border-te-gray\/20{border-color:rgb(var(--te-gray-rgb) / 20%)}.border-te-gray\/30{border-color:rgb(var(--te-gray-rgb) / 30%)}.border-te-gray\/40{border-color:rgb(var(--te-gray-rgb) / 40%)}.border-te-gray\/50{border-color:rgb(var(--te-gray-rgb) / 50%)}.border-te-gray\/60{border-color:rgb(var(--te-gray-rgb) / 60%)}.text-te-accent\/70{color:rgb(var(--te-accent-rgb) / 70%)}.text-te-accent\/80{color:rgb(var(--te-accent-rgb) / 80%)}.text-te-accent\/90{color:rgb(var(--te-accent-rgb) / 90%)}.text-te-fg\/40{color:rgb(var(--te-fg-rgb) / 40%)}.text-te-fg\/70{color:rgb(var(--te-fg-rgb) / 70%)}.text-te-fg\/80{color:rgb(var(--te-fg-rgb) / 80%)}.text-te-light-gray\/40{color:rgb(var(--te-light-gray-rgb) / 40%)}.text-te-light-gray\/50{color:rgb(var(--te-light-gray-rgb) / 50%)}.text-te-light-gray\/60{color:rgb(var(--te-light-gray-rgb) / 60%)}.text-te-light-gray\/70{color:rgb(var(--te-light-gray-rgb) / 70%)}}.te-window-shadow{box-shadow:0 1px rgb(var(--te-fg-rgb) / .06) inset,0 30px 80px -20px #000000b3,0 80px 200px -40px rgb(var(--te-accent-rgb) / .18)}.te-dot-glow{box-shadow:0 0 18px rgb(var(--te-accent-rgb) / .55)}.te-eyebrow{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.3em;color:var(--te-accent);font-size:11px}::-webkit-scrollbar{background:0 0;width:8px;height:8px}::-webkit-scrollbar-thumb{background:var(--te-gray);background-clip:padding-box;border:2px solid #0000;border-radius:0}::-webkit-scrollbar-thumb:hover{background:var(--te-light-gray);background-clip:padding-box}.cn-tight{letter-spacing:.02em}.cn-normal{letter-spacing:0}html.lenis,html.lenis body{height:auto}.lenis.lenis-smooth{scroll-behavior:auto!important}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-scale-x{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-y{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-z{syntax:"*";inherits:false;initial-value:1}@property --tw-divide-x-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-gradient-position{syntax:"*";inherits:false}@property --tw-gradient-from{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-via{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-to{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-stops{syntax:"*";inherits:false}@property --tw-gradient-via-stops{syntax:"*";inherits:false}@property --tw-gradient-from-position{syntax:"<length-percentage>";inherits:false;initial-value:0%}@property --tw-gradient-via-position{syntax:"<length-percentage>";inherits:false;initial-value:50%}@property --tw-gradient-to-position{syntax:"<length-percentage>";inherits:false;initial-value:100%}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-ordinal{syntax:"*";inherits:false}@property --tw-slashed-zero{syntax:"*";inherits:false}@property --tw-numeric-figure{syntax:"*";inherits:false}@property --tw-numeric-spacing{syntax:"*";inherits:false}@property --tw-numeric-fraction{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-backdrop-blur{syntax:"*";inherits:false}@property --tw-backdrop-brightness{syntax:"*";inherits:false}@property --tw-backdrop-contrast{syntax:"*";inherits:false}@property --tw-backdrop-grayscale{syntax:"*";inherits:false}@property --tw-backdrop-hue-rotate{syntax:"*";inherits:false}@property --tw-backdrop-invert{syntax:"*";inherits:false}@property --tw-backdrop-opacity{syntax:"*";inherits:false}@property --tw-backdrop-saturate{syntax:"*";inherits:false}@property --tw-backdrop-sepia{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}@keyframes pulse{50%{opacity:.5}}
@@ -1 +0,0 @@
1
- import{d as ht,n as z,l as k,s as K,p as J,q as at,v as ct,t as ut,i as ft,w as dt,x as pt,y as Q,z as mt,B as gt,u as vt,r as x,k as wt,C,h as O,D as St,E as yt,F as Et}from"./proxy-C8trGop7.js";const Tt=[["rect",{width:"18",height:"11",x:"3",y:"11",rx:"2",ry:"2",key:"1w4ew1"}],["path",{d:"M7 11V7a5 5 0 0 1 10 0v4",key:"fwvmzm"}]],Zt=ht("lock",Tt);function Z(t,e){let i;const s=()=>{const{currentTime:o}=e,n=(o===null?0:o.value)/100;i!==n&&t(n),i=n};return z.preUpdate(s,!0),()=>k(s)}function M(t){return typeof window>"u"?!1:t?K():J()}const Lt=50,A=()=>({current:0,offset:[],progress:0,scrollLength:0,targetOffset:0,targetLength:0,containerLength:0,velocity:0}),bt=()=>({time:0,x:A(),y:A()}),zt={x:{length:"Width",position:"Left"},y:{length:"Height",position:"Top"}};function D(t,e,i,s){const o=i[e],{length:r,position:n}=zt[e],h=o.current,a=i.time;o.current=Math.abs(t[`scroll${n}`]),o.scrollLength=t[`scroll${r}`]-t[`client${r}`],o.offset.length=0,o.offset[0]=0,o.offset[1]=o.scrollLength,o.progress=at(0,o.scrollLength,o.current);const c=s-a;o.velocity=c>Lt?0:ct(o.current-h,c)}function xt(t,e,i){D(t,"x",e,i),D(t,"y",e,i),e.time=i}function Nt(t,e){const i={x:0,y:0};let s=t;for(;s&&s!==e;)if(ut(s))i.x+=s.offsetLeft,i.y+=s.offsetTop,s=s.offsetParent;else if(s.tagName==="svg"){const o=s.getBoundingClientRect();s=s.parentElement;const r=s.getBoundingClientRect();i.x+=o.left-r.left,i.y+=o.top-r.top}else if(s instanceof SVGGraphicsElement){const{x:o,y:r}=s.getBBox();i.x+=o,i.y+=r;let n=null,h=s.parentNode;for(;!n;)h.tagName==="svg"&&(n=h),h=s.parentNode;s=n}else break;return i}const P={start:0,center:.5,end:1};function B(t,e,i=0){let s=0;if(t in P&&(t=P[t]),typeof t=="string"){const o=parseFloat(t);t.endsWith("px")?s=o:t.endsWith("%")?t=o/100:t.endsWith("vw")?s=o/100*document.documentElement.clientWidth:t.endsWith("vh")?s=o/100*document.documentElement.clientHeight:t=o}return typeof t=="number"&&(s=e*t),i+s}const Ot=[0,0];function Wt(t,e,i,s){let o=Array.isArray(t)?t:Ot,r=0,n=0;return typeof t=="number"?o=[t,t]:typeof t=="string"&&(t=t.trim(),t.includes(" ")?o=t.split(" "):o=[t,P[t]?t:"0"]),r=B(o[0],i,s),n=B(o[1],e),r-n}const N={Enter:[[0,1],[1,1]],Exit:[[0,0],[1,0]],Any:[[1,0],[0,1]],All:[[0,0],[1,1]]},Ht={x:0,y:0};function Mt(t){return"getBBox"in t&&t.tagName!=="svg"?t.getBBox():{width:t.clientWidth,height:t.clientHeight}}function Rt(t,e,i){const{offset:s=N.All}=i,{target:o=t,axis:r="y"}=i,n=r==="y"?"height":"width",h=o!==t?Nt(o,t):Ht,a=o===t?{width:t.scrollWidth,height:t.scrollHeight}:Mt(o),c={width:t.clientWidth,height:t.clientHeight};e[r].offset.length=0;let f=!e[r].interpolate;const d=s.length;for(let l=0;l<d;l++){const p=Wt(s[l],c[n],a[n],h[r]);!f&&p!==e[r].interpolatorOffsets[l]&&(f=!0),e[r].offset[l]=p}f&&(e[r].interpolate=ft(e[r].offset,dt(s),{clamp:!1}),e[r].interpolatorOffsets=[...e[r].offset]),e[r].progress=pt(0,1,e[r].interpolate(e[r].current))}function kt(t,e=t,i){if(i.x.targetOffset=0,i.y.targetOffset=0,e!==t){let s=e;for(;s&&s!==t;)i.x.targetOffset+=s.offsetLeft,i.y.targetOffset+=s.offsetTop,s=s.offsetParent}i.x.targetLength=e===t?e.scrollWidth:e.clientWidth,i.y.targetLength=e===t?e.scrollHeight:e.clientHeight,i.x.containerLength=t.clientWidth,i.y.containerLength=t.clientHeight}function Pt(t,e,i,s={}){return{measure:o=>{kt(t,s.target,i),xt(t,i,o),(s.offset||s.target)&&Rt(t,i,s)},notify:()=>e(i)}}const L=new WeakMap,X=new WeakMap,R=new WeakMap,Y=new WeakMap,W=new WeakMap,I=t=>t===document.scrollingElement?window:t;function tt(t,{container:e=document.scrollingElement,trackContentSize:i=!1,...s}={}){if(!e)return Q;let o=R.get(e);o||(o=new Set,R.set(e,o));const r=bt(),n=Pt(e,t,r,s);if(o.add(n),!L.has(e)){const a=()=>{for(const l of o)l.measure(gt.timestamp);z.preUpdate(c)},c=()=>{for(const l of o)l.notify()},f=()=>z.read(a);L.set(e,f);const d=I(e);window.addEventListener("resize",f),e!==document.documentElement&&X.set(e,mt(e,f)),d.addEventListener("scroll",f),f()}if(i&&!W.has(e)){const a=L.get(e),c={width:e.scrollWidth,height:e.scrollHeight};Y.set(e,c);const f=()=>{const l=e.scrollWidth,p=e.scrollHeight;(c.width!==l||c.height!==p)&&(a(),c.width=l,c.height=p)},d=z.read(f,!0);W.set(e,d)}const h=L.get(e);return z.read(h,!1,!0),()=>{k(h);const a=R.get(e);if(!a||(a.delete(n),a.size))return;const c=L.get(e);L.delete(e),c&&(I(e).removeEventListener("scroll",c),X.get(e)?.(),window.removeEventListener("resize",c));const f=W.get(e);f&&(k(f),W.delete(e)),Y.delete(e)}}const _t=[[N.Enter,"entry"],[N.Exit,"exit"],[N.Any,"cover"],[N.All,"contain"]],V={start:0,end:1};function Ct(t){const e=t.trim().split(/\s+/);if(e.length!==2)return;const i=V[e[0]],s=V[e[1]];if(!(i===void 0||s===void 0))return[i,s]}function At(t){if(t.length!==2)return;const e=[];for(const i of t)if(Array.isArray(i))e.push(i);else if(typeof i=="string"){const s=Ct(i);if(!s)return;e.push(s)}else return;return e}function Dt(t,e){const i=At(t);if(!i)return!1;for(let s=0;s<2;s++){const o=i[s],r=e[s];if(o[0]!==r[0]||o[1]!==r[1])return!1}return!0}function _(t){if(!t)return{rangeStart:"contain 0%",rangeEnd:"contain 100%"};for(const[e,i]of _t)if(Dt(t,e))return{rangeStart:`${i} 0%`,rangeEnd:`${i} 100%`}}const F=new Map;function U(t){const e={value:0},i=tt(s=>{e.value=s[t.axis].progress*100},t);return{currentTime:e,cancel:i}}function et({source:t,container:e,...i}){const{axis:s}=i;t&&(e=t);let o=F.get(e);o||(o=new Map,F.set(e,o));const r=i.target??"self";let n=o.get(r);n||(n={},o.set(r,n));const h=s+(i.offset??[]).join(",");return n[h]||(i.target&&M(i.target)?_(i.offset)?n[h]=new ViewTimeline({subject:i.target,axis:s}):n[h]=U({container:e,...i}):M()?n[h]=new ScrollTimeline({source:e,axis:s}):n[h]=U({container:e,...i})),n[h]}function Bt(t,e){const i=et(e),s=e.target?_(e.offset):void 0,o=e.target?M(e.target)&&!!s:M();return t.attachTimeline({timeline:o?i:void 0,...s&&o&&{rangeStart:s.rangeStart,rangeEnd:s.rangeEnd},observe:r=>(r.pause(),Z(n=>{r.time=r.iterationDuration*n},i))})}function Xt(t){return t.length===2}function Yt(t,e){return Xt(t)?tt(i=>{t(i[e.axis].progress,i)},e):Z(t,et(e))}function it(t,{axis:e="y",container:i=document.scrollingElement,...s}={}){if(!i)return Q;const o={axis:e,container:i,...s};return typeof t=="function"?Yt(t,o):Bt(t,o)}const It=()=>({scrollX:O(0),scrollY:O(0),scrollXProgress:O(0),scrollYProgress:O(0)}),H=t=>t?!t.current:!1;function $(t,e,i,s){return{factory:o=>it(o,{...e,axis:t,container:i?.current||void 0,target:s?.current||void 0}),times:[0,1],keyframes:[0,1],ease:o=>o,duration:1}}function Vt(t,e){return typeof window>"u"?!1:t?K()&&!!_(e):J()}function te({container:t,target:e,...i}={}){const s=vt(It);Vt(e,i.offset)&&(s.scrollXProgress.accelerate=$("x",i,t,e),s.scrollYProgress.accelerate=$("y",i,t,e));const o=x.useRef(null),r=x.useRef(!1),n=x.useCallback(()=>(o.current=it((h,{x:a,y:c})=>{s.scrollX.set(a.current),s.scrollXProgress.set(a.progress),s.scrollY.set(c.current),s.scrollYProgress.set(c.progress)},{...i,container:t?.current||void 0,target:e?.current||void 0}),()=>{o.current?.()}),[t,e,JSON.stringify(i.offset)]);return wt(()=>{if(r.current=!1,H(t)||H(e)){r.current=!0;return}else return n()},[n]),x.useEffect(()=>{if(r.current)return C(!H(t)),C(!H(e)),n()},[n]),s}function ee(){!St.current&&yt();const[t]=x.useState(Et.current);return t}var q="1.3.23";function st(t,e,i){return Math.max(t,Math.min(e,i))}function Ft(t,e,i){return(1-i)*t+i*e}function Ut(t,e,i,s){return Ft(t,e,1-Math.exp(-i*s))}function $t(t,e){return(t%e+e)%e}var qt=class{isRunning=!1;value=0;from=0;to=0;currentTime=0;lerp;duration;easing;onUpdate;advance(t){if(!this.isRunning)return;let e=!1;if(this.duration&&this.easing){this.currentTime+=t;const i=st(0,this.currentTime/this.duration,1);e=i>=1;const s=e?1:this.easing(i);this.value=this.from+(this.to-this.from)*s}else this.lerp?(this.value=Ut(this.value,this.to,this.lerp*60,t),Math.round(this.value)===Math.round(this.to)&&(this.value=this.to,e=!0)):(this.value=this.to,e=!0);e&&this.stop(),this.onUpdate?.(this.value,e)}stop(){this.isRunning=!1}fromTo(t,e,{lerp:i,duration:s,easing:o,onStart:r,onUpdate:n}){this.from=this.value=t,this.to=e,this.lerp=i,this.duration=s,this.easing=o,this.currentTime=0,this.isRunning=!0,r?.(),this.onUpdate=n}};function jt(t,e){let i;return function(...s){clearTimeout(i),i=setTimeout(()=>{i=void 0,t.apply(this,s)},e)}}var Gt=class{width=0;height=0;scrollHeight=0;scrollWidth=0;debouncedResize;wrapperResizeObserver;contentResizeObserver;constructor(t,e,{autoResize:i=!0,debounce:s=250}={}){this.wrapper=t,this.content=e,i&&(this.debouncedResize=jt(this.resize,s),this.wrapper instanceof Window?window.addEventListener("resize",this.debouncedResize):(this.wrapperResizeObserver=new ResizeObserver(this.debouncedResize),this.wrapperResizeObserver.observe(this.wrapper)),this.contentResizeObserver=new ResizeObserver(this.debouncedResize),this.contentResizeObserver.observe(this.content)),this.resize()}destroy(){this.wrapperResizeObserver?.disconnect(),this.contentResizeObserver?.disconnect(),this.wrapper===window&&this.debouncedResize&&window.removeEventListener("resize",this.debouncedResize)}resize=()=>{this.onWrapperResize(),this.onContentResize()};onWrapperResize=()=>{this.wrapper instanceof Window?(this.width=window.innerWidth,this.height=window.innerHeight):(this.width=this.wrapper.clientWidth,this.height=this.wrapper.clientHeight)};onContentResize=()=>{this.wrapper instanceof Window?(this.scrollHeight=this.content.scrollHeight,this.scrollWidth=this.content.scrollWidth):(this.scrollHeight=this.wrapper.scrollHeight,this.scrollWidth=this.wrapper.scrollWidth)};get limit(){return{x:this.scrollWidth-this.width,y:this.scrollHeight-this.height}}},ot=class{events={};emit(t,...e){const i=this.events[t]||[];for(let s=0,o=i.length;s<o;s++)i[s]?.(...e)}on(t,e){return this.events[t]?this.events[t].push(e):this.events[t]=[e],()=>{this.events[t]=this.events[t]?.filter(i=>e!==i)}}off(t,e){this.events[t]=this.events[t]?.filter(i=>e!==i)}destroy(){this.events={}}};const Kt=100/6,E={passive:!1};function j(t,e){return t===1?Kt:t===2?e:1}var Jt=class{touchStart={x:0,y:0};lastDelta={x:0,y:0};window={width:0,height:0};emitter=new ot;constructor(t,e={wheelMultiplier:1,touchMultiplier:1}){this.element=t,this.options=e,window.addEventListener("resize",this.onWindowResize),this.onWindowResize(),this.element.addEventListener("wheel",this.onWheel,E),this.element.addEventListener("touchstart",this.onTouchStart,E),this.element.addEventListener("touchmove",this.onTouchMove,E),this.element.addEventListener("touchend",this.onTouchEnd,E)}on(t,e){return this.emitter.on(t,e)}destroy(){this.emitter.destroy(),window.removeEventListener("resize",this.onWindowResize),this.element.removeEventListener("wheel",this.onWheel,E),this.element.removeEventListener("touchstart",this.onTouchStart,E),this.element.removeEventListener("touchmove",this.onTouchMove,E),this.element.removeEventListener("touchend",this.onTouchEnd,E)}onTouchStart=t=>{const{clientX:e,clientY:i}=t.targetTouches?t.targetTouches[0]:t;this.touchStart.x=e,this.touchStart.y=i,this.lastDelta={x:0,y:0},this.emitter.emit("scroll",{deltaX:0,deltaY:0,event:t})};onTouchMove=t=>{const{clientX:e,clientY:i}=t.targetTouches?t.targetTouches[0]:t,s=-(e-this.touchStart.x)*this.options.touchMultiplier,o=-(i-this.touchStart.y)*this.options.touchMultiplier;this.touchStart.x=e,this.touchStart.y=i,this.lastDelta={x:s,y:o},this.emitter.emit("scroll",{deltaX:s,deltaY:o,event:t})};onTouchEnd=t=>{this.emitter.emit("scroll",{deltaX:this.lastDelta.x,deltaY:this.lastDelta.y,event:t})};onWheel=t=>{let{deltaX:e,deltaY:i,deltaMode:s}=t;const o=j(s,this.window.width),r=j(s,this.window.height);e*=o,i*=r,e*=this.options.wheelMultiplier,i*=this.options.wheelMultiplier,this.emitter.emit("scroll",{deltaX:e,deltaY:i,event:t})};onWindowResize=()=>{this.window={width:window.innerWidth,height:window.innerHeight}}};const G=t=>Math.min(1,1.001-2**(-10*t));var ie=class{_isScrolling=!1;_isStopped=!1;_isLocked=!1;_preventNextNativeScrollEvent=!1;_resetVelocityTimeout=null;_rafId=null;isTouching;time=0;userData={};lastVelocity=0;velocity=0;direction=0;options;targetScroll;animatedScroll;animate=new qt;emitter=new ot;dimensions;virtualScroll;constructor({wrapper:t=window,content:e=document.documentElement,eventsTarget:i=t,smoothWheel:s=!0,syncTouch:o=!1,syncTouchLerp:r=.075,touchInertiaExponent:n=1.7,duration:h,easing:a,lerp:c=.1,infinite:f=!1,orientation:d="vertical",gestureOrientation:l=d==="horizontal"?"both":"vertical",touchMultiplier:p=1,wheelMultiplier:u=1,autoResize:m=!0,prevent:g,virtualScroll:v,overscroll:w=!0,autoRaf:S=!1,anchors:y=!1,autoToggle:b=!1,allowNestedScroll:T=!1,__experimental__naiveDimensions:rt=!1,naiveDimensions:nt=rt,stopInertiaOnNavigate:lt=!1}={}){window.lenisVersion=q,window.lenis||(window.lenis={}),window.lenis.version=q,d==="horizontal"&&(window.lenis.horizontal=!0),o===!0&&(window.lenis.touch=!0),(!t||t===document.documentElement)&&(t=window),typeof h=="number"&&typeof a!="function"?a=G:typeof a=="function"&&typeof h!="number"&&(h=1),this.options={wrapper:t,content:e,eventsTarget:i,smoothWheel:s,syncTouch:o,syncTouchLerp:r,touchInertiaExponent:n,duration:h,easing:a,lerp:c,infinite:f,gestureOrientation:l,orientation:d,touchMultiplier:p,wheelMultiplier:u,autoResize:m,prevent:g,virtualScroll:v,overscroll:w,autoRaf:S,anchors:y,autoToggle:b,allowNestedScroll:T,naiveDimensions:nt,stopInertiaOnNavigate:lt},this.dimensions=new Gt(t,e,{autoResize:m}),this.updateClassName(),this.targetScroll=this.animatedScroll=this.actualScroll,this.options.wrapper.addEventListener("scroll",this.onNativeScroll),this.options.wrapper.addEventListener("scrollend",this.onScrollEnd,{capture:!0}),(this.options.anchors||this.options.stopInertiaOnNavigate)&&this.options.wrapper.addEventListener("click",this.onClick),this.options.wrapper.addEventListener("pointerdown",this.onPointerDown),this.virtualScroll=new Jt(i,{touchMultiplier:p,wheelMultiplier:u}),this.virtualScroll.on("scroll",this.onVirtualScroll),this.options.autoToggle&&(this.checkOverflow(),this.rootElement.addEventListener("transitionend",this.onTransitionEnd)),this.options.autoRaf&&(this._rafId=requestAnimationFrame(this.raf))}destroy(){this.emitter.destroy(),this.options.wrapper.removeEventListener("scroll",this.onNativeScroll),this.options.wrapper.removeEventListener("scrollend",this.onScrollEnd,{capture:!0}),this.options.wrapper.removeEventListener("pointerdown",this.onPointerDown),(this.options.anchors||this.options.stopInertiaOnNavigate)&&this.options.wrapper.removeEventListener("click",this.onClick),this.virtualScroll.destroy(),this.dimensions.destroy(),this.cleanUpClassName(),this._rafId&&cancelAnimationFrame(this._rafId)}on(t,e){return this.emitter.on(t,e)}off(t,e){return this.emitter.off(t,e)}onScrollEnd=t=>{t instanceof CustomEvent||(this.isScrolling==="smooth"||this.isScrolling===!1)&&t.stopPropagation()};dispatchScrollendEvent=()=>{this.options.wrapper.dispatchEvent(new CustomEvent("scrollend",{bubbles:this.options.wrapper===window,detail:{lenisScrollEnd:!0}}))};get overflow(){const t=this.isHorizontal?"overflow-x":"overflow-y";return getComputedStyle(this.rootElement)[t]}checkOverflow(){["hidden","clip"].includes(this.overflow)?this.internalStop():this.internalStart()}onTransitionEnd=t=>{t.propertyName?.includes("overflow")&&t.target===this.rootElement&&this.checkOverflow()};setScroll(t){this.isHorizontal?this.options.wrapper.scrollTo({left:t,behavior:"instant"}):this.options.wrapper.scrollTo({top:t,behavior:"instant"})}onClick=t=>{const e=t.composedPath().filter(s=>s instanceof HTMLAnchorElement&&s.href).map(s=>new URL(s.href)),i=new URL(window.location.href);if(this.options.anchors){const s=e.find(o=>i.host===o.host&&i.pathname===o.pathname&&o.hash);if(s){const o=typeof this.options.anchors=="object"&&this.options.anchors?this.options.anchors:void 0,r=`#${s.hash.split("#")[1]}`;this.scrollTo(r,o);return}}if(this.options.stopInertiaOnNavigate&&e.some(s=>i.host===s.host&&i.pathname!==s.pathname)){this.reset();return}};onPointerDown=t=>{t.button===1&&this.reset()};onVirtualScroll=t=>{if(typeof this.options.virtualScroll=="function"&&this.options.virtualScroll(t)===!1)return;const{deltaX:e,deltaY:i,event:s}=t;if(this.emitter.emit("virtual-scroll",{deltaX:e,deltaY:i,event:s}),s.ctrlKey||s.lenisStopPropagation)return;const o=s.type.includes("touch"),r=s.type.includes("wheel");this.isTouching=s.type==="touchstart"||s.type==="touchmove";const n=e===0&&i===0;if(this.options.syncTouch&&o&&s.type==="touchstart"&&n&&!this.isStopped&&!this.isLocked){this.reset();return}const h=this.options.gestureOrientation==="vertical"&&i===0||this.options.gestureOrientation==="horizontal"&&e===0;if(n||h)return;let a=s.composedPath();a=a.slice(0,a.indexOf(this.rootElement));const c=this.options.prevent,f=Math.abs(e)>=Math.abs(i)?"horizontal":"vertical";if(a.find(u=>u instanceof HTMLElement&&(typeof c=="function"&&c?.(u)||u.hasAttribute?.("data-lenis-prevent")||f==="vertical"&&u.hasAttribute?.("data-lenis-prevent-vertical")||f==="horizontal"&&u.hasAttribute?.("data-lenis-prevent-horizontal")||o&&u.hasAttribute?.("data-lenis-prevent-touch")||r&&u.hasAttribute?.("data-lenis-prevent-wheel")||this.options.allowNestedScroll&&this.hasNestedScroll(u,{deltaX:e,deltaY:i}))))return;if(this.isStopped||this.isLocked){s.cancelable&&s.preventDefault();return}if(!(this.options.syncTouch&&o||this.options.smoothWheel&&r)){this.isScrolling="native",this.animate.stop(),s.lenisStopPropagation=!0;return}let d=i;this.options.gestureOrientation==="both"?d=Math.abs(i)>Math.abs(e)?i:e:this.options.gestureOrientation==="horizontal"&&(d=e),(!this.options.overscroll||this.options.infinite||this.options.wrapper!==window&&this.limit>0&&(this.animatedScroll>0&&this.animatedScroll<this.limit||this.animatedScroll===0&&i>0||this.animatedScroll===this.limit&&i<0))&&(s.lenisStopPropagation=!0),s.cancelable&&s.preventDefault();const l=o&&this.options.syncTouch,p=o&&s.type==="touchend";p&&(d=Math.sign(d)*Math.abs(this.velocity)**this.options.touchInertiaExponent),this.scrollTo(this.targetScroll+d,{programmatic:!1,...l?{lerp:p?this.options.syncTouchLerp:1}:{lerp:this.options.lerp,duration:this.options.duration,easing:this.options.easing}})};resize(){this.dimensions.resize(),this.animatedScroll=this.targetScroll=this.actualScroll,this.emit()}emit(){this.emitter.emit("scroll",this)}onNativeScroll=()=>{if(this._resetVelocityTimeout!==null&&(clearTimeout(this._resetVelocityTimeout),this._resetVelocityTimeout=null),this._preventNextNativeScrollEvent){this._preventNextNativeScrollEvent=!1;return}if(this.isScrolling===!1||this.isScrolling==="native"){const t=this.animatedScroll;this.animatedScroll=this.targetScroll=this.actualScroll,this.lastVelocity=this.velocity,this.velocity=this.animatedScroll-t,this.direction=Math.sign(this.animatedScroll-t),this.isStopped||(this.isScrolling="native"),this.emit(),this.velocity!==0&&(this._resetVelocityTimeout=setTimeout(()=>{this.lastVelocity=this.velocity,this.velocity=0,this.isScrolling=!1,this.emit()},400))}};reset(){this.isLocked=!1,this.isScrolling=!1,this.animatedScroll=this.targetScroll=this.actualScroll,this.lastVelocity=this.velocity=0,this.animate.stop()}start(){if(this.isStopped){if(this.options.autoToggle){this.rootElement.style.removeProperty("overflow");return}this.internalStart()}}internalStart(){this.isStopped&&(this.reset(),this.isStopped=!1,this.emit())}stop(){if(!this.isStopped){if(this.options.autoToggle){this.rootElement.style.setProperty("overflow","clip");return}this.internalStop()}}internalStop(){this.isStopped||(this.reset(),this.isStopped=!0,this.emit())}raf=t=>{const e=t-(this.time||t);this.time=t,this.animate.advance(e*.001),this.options.autoRaf&&(this._rafId=requestAnimationFrame(this.raf))};scrollTo(t,{offset:e=0,immediate:i=!1,lock:s=!1,programmatic:o=!0,lerp:r=o?this.options.lerp:void 0,duration:n=o?this.options.duration:void 0,easing:h=o?this.options.easing:void 0,onStart:a,onComplete:c,force:f=!1,userData:d}={}){if((this.isStopped||this.isLocked)&&!f)return;let l=t,p=e;if(typeof l=="string"&&["top","left","start","#"].includes(l))l=0;else if(typeof l=="string"&&["bottom","right","end"].includes(l))l=this.limit;else{let u=null;if(typeof l=="string"?(u=document.querySelector(l),u||(l==="#top"?l=0:console.warn("Lenis: Target not found",l))):l instanceof HTMLElement&&l?.nodeType&&(u=l),u){if(this.options.wrapper!==window){const y=this.rootElement.getBoundingClientRect();p-=this.isHorizontal?y.left:y.top}const m=u.getBoundingClientRect(),g=getComputedStyle(u),v=this.isHorizontal?Number.parseFloat(g.scrollMarginLeft):Number.parseFloat(g.scrollMarginTop),w=getComputedStyle(this.rootElement),S=this.isHorizontal?Number.parseFloat(w.scrollPaddingLeft):Number.parseFloat(w.scrollPaddingTop);l=(this.isHorizontal?m.left:m.top)+this.animatedScroll-(Number.isNaN(v)?0:v)-(Number.isNaN(S)?0:S)}}if(typeof l=="number"){if(l+=p,this.options.infinite){if(o){this.targetScroll=this.animatedScroll=this.scroll;const u=l-this.animatedScroll;u>this.limit/2?l-=this.limit:u<-this.limit/2&&(l+=this.limit)}}else l=st(0,l,this.limit);if(l===this.targetScroll){a?.(this),c?.(this);return}if(this.userData=d??{},i){this.animatedScroll=this.targetScroll=l,this.setScroll(this.scroll),this.reset(),this.preventNextNativeScrollEvent(),this.emit(),c?.(this),this.userData={},requestAnimationFrame(()=>{this.dispatchScrollendEvent()});return}o||(this.targetScroll=l),typeof n=="number"&&typeof h!="function"?h=G:typeof h=="function"&&typeof n!="number"&&(n=1),this.animate.fromTo(this.animatedScroll,l,{duration:n,easing:h,lerp:r,onStart:()=>{s&&(this.isLocked=!0),this.isScrolling="smooth",a?.(this)},onUpdate:(u,m)=>{this.isScrolling="smooth",this.lastVelocity=this.velocity,this.velocity=u-this.animatedScroll,this.direction=Math.sign(this.velocity),this.animatedScroll=u,this.setScroll(this.scroll),o&&(this.targetScroll=u),m||this.emit(),m&&(this.reset(),this.emit(),c?.(this),this.userData={},requestAnimationFrame(()=>{this.dispatchScrollendEvent()}),this.preventNextNativeScrollEvent())}})}}preventNextNativeScrollEvent(){this._preventNextNativeScrollEvent=!0,requestAnimationFrame(()=>{this._preventNextNativeScrollEvent=!1})}hasNestedScroll(t,{deltaX:e,deltaY:i}){const s=Date.now();t._lenis||(t._lenis={});const o=t._lenis;let r,n,h,a,c,f,d,l,p,u;if(s-(o.time??0)>2e3){o.time=Date.now();const T=window.getComputedStyle(t);if(o.computedStyle=T,r=["auto","overlay","scroll"].includes(T.overflowX),n=["auto","overlay","scroll"].includes(T.overflowY),c=["auto"].includes(T.overscrollBehaviorX),f=["auto"].includes(T.overscrollBehaviorY),o.hasOverflowX=r,o.hasOverflowY=n,!(r||n))return!1;d=t.scrollWidth,l=t.scrollHeight,p=t.clientWidth,u=t.clientHeight,h=d>p,a=l>u,o.isScrollableX=h,o.isScrollableY=a,o.scrollWidth=d,o.scrollHeight=l,o.clientWidth=p,o.clientHeight=u,o.hasOverscrollBehaviorX=c,o.hasOverscrollBehaviorY=f}else h=o.isScrollableX,a=o.isScrollableY,r=o.hasOverflowX,n=o.hasOverflowY,d=o.scrollWidth,l=o.scrollHeight,p=o.clientWidth,u=o.clientHeight,c=o.hasOverscrollBehaviorX,f=o.hasOverscrollBehaviorY;if(!(r&&h||n&&a))return!1;const m=Math.abs(e)>=Math.abs(i)?"horizontal":"vertical";let g,v,w,S,y,b;if(m==="horizontal")g=Math.round(t.scrollLeft),v=d-p,w=e,S=r,y=h,b=c;else if(m==="vertical")g=Math.round(t.scrollTop),v=l-u,w=i,S=n,y=a,b=f;else return!1;return!b&&(g>=v||g<=0)?!0:(w>0?g<v:g>0)&&S&&y}get rootElement(){return this.options.wrapper===window?document.documentElement:this.options.wrapper}get limit(){return this.options.naiveDimensions?this.isHorizontal?this.rootElement.scrollWidth-this.rootElement.clientWidth:this.rootElement.scrollHeight-this.rootElement.clientHeight:this.dimensions.limit[this.isHorizontal?"x":"y"]}get isHorizontal(){return this.options.orientation==="horizontal"}get actualScroll(){const t=this.options.wrapper;return this.isHorizontal?t.scrollX??t.scrollLeft:t.scrollY??t.scrollTop}get scroll(){return this.options.infinite?$t(this.animatedScroll,this.limit):this.animatedScroll}get progress(){return this.limit===0?1:this.scroll/this.limit}get isScrolling(){return this._isScrolling}set isScrolling(t){this._isScrolling!==t&&(this._isScrolling=t,this.updateClassName())}get isStopped(){return this._isStopped}set isStopped(t){this._isStopped!==t&&(this._isStopped=t,this.updateClassName())}get isLocked(){return this._isLocked}set isLocked(t){this._isLocked!==t&&(this._isLocked=t,this.updateClassName())}get isSmooth(){return this.isScrolling==="smooth"}get className(){let t="lenis";return this.options.autoToggle&&(t+=" lenis-autoToggle"),this.isStopped&&(t+=" lenis-stopped"),this.isLocked&&(t+=" lenis-locked"),this.isScrolling&&(t+=" lenis-scrolling"),this.isScrolling==="smooth"&&(t+=" lenis-smooth"),t}updateClassName(){this.cleanUpClassName(),this.className.split(" ").forEach(t=>{this.rootElement.classList.add(t)})}cleanUpClassName(){for(const t of Array.from(this.rootElement.classList))(t==="lenis"||t.startsWith("lenis-"))&&this.rootElement.classList.remove(t)}};export{Zt as L,te as a,ie as b,ee as u};