1(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,745540,e=>{"use strict";var t=e.i(101842),a=e.i(513409),n=e.i(643071);let r=[149/255,191/255,1],i=[189/255,.6,254/255],o=` 2attribute vec2 aPos; 3void main() { gl_Position = vec4(aPos, 0.0, 1.0); } 4`,u=` 5precision highp float; 6 7uniform vec2 uRes; 8uniform float uTime; 9uniform vec3 uLow; 10uniform vec3 uHigh; 11/** Kursor dalam ruang yang sama dengan uv; jauh di luar layar saat tidak ada. */ 12uniform vec2 uPointer; 13/** 0 = tidak ada kursor, 1 = penuh. Dinaikkan/diturunkan halus di sisi JS. */ 14uniform float uPointerAmt; 15 16const float DETAIL = 1.47; 17const float INTENSITY = 3.64; 18const float TWIST = 0.43; 19const float FLOW = 0.26; 20const float ZOOM = 0.36; 21const float SPEED = 0.18; 22const float MORPH = 0.64; 23const float SCALE = 1.26; 24const float BIAS = 0.26; 25const float PULL = 0.55; 26const float PULL_TIGHT= 3.2; 27const float FLOW_RATE = 1.1; 28const float MORPH_RATE= 0.55; 29 30float hash(vec3 p) { 31 p = fract(p * 0.3183099 + vec3(0.71, 0.113, 0.419)); 32 p *= 17.0; 33 return fract(p.x * p.y * p.z * (p.x + p.y + p.z)); 34} 35 36/* Value noise, interpolasi kubik. Cukup untuk bidang tinggi yang lembut, dan 37 jauh lebih murah daripada simplex untuk sesuatu yang toh akan dijenuhkan 38 INTENSITY sampai jadi bidang datar. */ 39float noise(vec3 x) { 40 vec3 i = floor(x); 41 vec3 f = fract(x); 42 f = f * f * (3.0 - 2.0 * f); 43 return mix( 44 mix(mix(hash(i + vec3(0.0, 0.0, 0.0)), hash(i + vec3(1.0, 0.0, 0.0)), f.x), 45 mix(hash(i + vec3(0.0, 1.0, 0.0)), hash(i + vec3(1.0, 1.0, 0.0)), f.x), f.y), 46 mix(mix(hash(i + vec3(0.0, 0.0, 1.0)), hash(i + vec3(1.0, 0.0, 1.0)), f.x), 47 mix(hash(i + vec3(0.0, 1.0, 1.0)), hash(i + vec3(1.0, 1.0, 1.0)), f.x), f.y), 48 f.z); 49} 50 51/* Detail menaikkan lacunarity, bukan jumlah oktaf: menambah oktaf pada gradien 52 selebar layar hanya menambah derau di bawah ambang penglihatan sambil 53 membayar penuh untuknya. */ 54float fbm(vec3 q) { 55 float sum = 0.0; 56 float amp = 0.5; 57 float lac = 1.7 + DETAIL * 0.3; 58 for (int i = 0; i < 4; i++) { 59 sum += amp * noise(q); 60 q = q * lac + vec3(37.1, 17.7, 11.3); 61 amp *= 0.5; 62 } 63 return sum / 0.9375; 64} 65 66void main() { 67 vec2 uv = (gl_FragCoord.xy - 0.5 * uRes) / min(uRes.x, uRes.y); 68 vec2 p = uv * (SCALE / max(ZOOM, 0.02)); 69 70 /* Kursor mendorong bidangnya menjauh, seperti lensa yang digeser di atas 71 kain. Dikerjakan pada uv â ruang layar â dan bukan pada p, supaya 72 seberapa jauh pengaruhnya terasa sama di layar besar dan kecil; kalau 73 dihitung setelah penskalaan, efeknya akan mengecil persis di layar yang 74 paling lega untuk menggerakkan kursor. 75 76 Jatuhnya gaussian, jadi tidak ada tepi yang terlihat. uPointerAmt 77 memudarkannya masuk dan keluar di sisi JS, karena efek yang muncul dan 78 hilang seketika saat kursor menyeberangi tepi jendela terbaca sebagai 79 kedipan, bukan sebagai sentuhan. */ 80 vec2 rel = uv - uPointer; 81 float falloff = exp(-dot(rel, rel) * PULL_TIGHT) * uPointerAmt; 82 p += normalize(rel + vec2(1e-5)) * falloff * PULL; 83 84 float t = uTime * SPEED; 85 86 /* Flow: seluruh domain hanyut â tapi menyusuri LINGKARAN, bukan garis lurus. 87 Hanyut lurus terlihat benar pada detik-detik pertama dan salah setelahnya: 88 ia berjalan menjauh selamanya, jadi warna rata-rata layar ikut mengembara 89 ke wilayah noise yang kebetulan lebih terang atau lebih gelap, dan uTime 90 yang tumbuh tanpa batas akhirnya menghabiskan presisi float 91 sehingga polanya patah pada tab yang dibiarkan terbuka lama. Lingkaran 92 menutup kedua lubang itu sekaligus: geraknya tetap terasa sebagai hanyut 93 lokal, tapi bidangnya tidak pernah pergi ke mana-mana. */ 94 p += FLOW * 3.0 * vec2(cos(t * FLOW_RATE), sin(t * FLOW_RATE)); 95 96 /* Twist: putaran yang membesar terhadap jarak dari pusat. Ini yang membuat 97 pitanya melengkung alih-alih jadi garis lurus. */ 98 float a = TWIST * length(p); 99 float c = cos(a); 100 float s = sin(a); 101 p = mat2(c, -s, s, c) * p; 102 103 /* Morph speed jalan di sumbu ketiga: polanya berubah bentuk di tempat, lepas 104 dari hanyutnya. Digabung jadi satu, keduanya hanya akan terlihat sebagai 105 gerak yang lebih cepat. Berayun, dengan alasan yang sama seperti flow â 106 dan pada kecepatan selambat ini arah baliknya tidak terbaca sebagai 107 mundur. */ 108 float h = fbm(vec3(p, MORPH * 1.6 * sin(uTime * MORPH * MORPH_RATE))); 109 110 /* Intensity menaikkan kontras di sekitar tengah, lalu dipotong. Pemotongan 111 itulah yang menghasilkan bidang datar lebar berwarna murni â sifat yang 112 sama yang terbaca saat menyampel PNG rujukannya. BIAS menggeser seluruh 113 ramp ke arah ungu; lihat catatannya di atas. */ 114 h = clamp(0.5 + (h - 0.5) * INTENSITY * 0.66 + BIAS, 0.0, 1.0); 115 116 vec3 col = mix(uLow, uHigh, smoothstep(0.0, 1.0, h)); 117 118 /* Dither. Tanpa ini gradien selebar layar pada 8 bit per kanal 119 memperlihatkan pita tangga, dan bidang selembut ini justru kasus 120 terburuknya. */
121 col += (hash(vec3(gl_FragCoord.xy, 0.0)) - 0.5) / 255.0; 122 123 gl_FragColor = vec4(col, 1.0); 124} 125`;function l(e,t,a){let n=e.createShader(t);return n?(e.shaderSource(n,a),e.compileShader(n),e.getShaderParameter(n,e.COMPILE_STATUS))?n:(e.deleteShader(n),null):null}e.s(["InviteGradient",0,function({className:e=""}){let s=(0,a.useRef)(null),[c,f]=(0,a.useState)(!1);return(0,a.useEffect)(()=>{if((0,n.getPrefersReducedMotion)())return;let e=s.current;if(!e)return;let t=e.getContext("webgl",{alpha:!1,antialias:!1,depth:!1,stencil:!1,powerPreference:"low-power"});if(!t)return;let a=l(t,t.VERTEX_SHADER,o),c=l(t,t.FRAGMENT_SHADER,u);if(!a||!c)return;let d=t.createProgram();if(!d||(t.attachShader(d,a),t.attachShader(d,c),t.linkProgram(d),!t.getProgramParameter(d,t.LINK_STATUS)))return;t.useProgram(d);let p=t.createBuffer();t.bindBuffer(t.ARRAY_BUFFER,p),t.bufferData(t.ARRAY_BUFFER,new Float32Array([-1,-1,3,-1,-1,3]),t.STATIC_DRAW);let h=t.getAttribLocation(d,"aPos");t.enableVertexAttribArray(h),t.vertexAttribPointer(h,2,t.FLOAT,!1,0,0);let m=t.getUniformLocation(d,"uRes"),g=t.getUniformLocation(d,"uTime"),y=t.getUniformLocation(d,"uPointer"),b=t.getUniformLocation(d,"uPointerAmt");t.uniform3fv(t.getUniformLocation(d,"uLow"),r),t.uniform3fv(t.getUniformLocation(d,"uHigh"),i);let v=0,k=!1,P=performance.now(),E={x:0,y:0,amt:0},T={x:0,y:0,amt:0},w=t=>{let a=e.getBoundingClientRect();if(0===a.width||0===a.height)return;let n=Math.min(a.width,a.height);E.x=(t.clientX-a.left-a.width/2)/n,E.y=-(t.clientY-a.top-a.height/2)/n,E.amt=1,L()},S=()=>{E.amt=0,L()},L=()=>{v||k||document.hidden||(v=requestAnimationFrame(A))};function A(){if(v=0,!k&&t){let a,n,r;a=Math.min(window.devicePixelRatio||1,1.5),n=Math.max(1,Math.round(e.clientWidth*a)),r=Math.max(1,Math.round(e.clientHeight*a)),(e.width!==n||e.height!==r)&&(e.width=n,e.height=r,t.viewport(0,0,n,r),t.uniform2f(m,n,r)),T.x+=(E.x-T.x)*.12,T.y+=(E.y-T.y)*.12,T.amt+=(E.amt-T.amt)*.06,t.uniform2f(y,T.x,T.y),t.uniform1f(b,T.amt),t.uniform1f(g,(performance.now()-P)/1e3),t.drawArrays(t.TRIANGLES,0,3),f(!0),L()}}let x=()=>{document.hidden?(v&&cancelAnimationFrame(v),v=0):L()},R=e=>{e.preventDefault(),k=!0,v&&cancelAnimationFrame(v),v=0,f(!1)};return e.addEventListener("webglcontextlost",R),document.addEventListener("visibilitychange",x),window.addEventListener("resize",L),window.addEventListener("pointermove",w,{passive:!0}),window.addEventListener("pointerleave",S),L(),()=>{k=!0,v&&cancelAnimationFrame(v),e.removeEventListener("webglcontextlost",R),document.removeEventListener("visibilitychange",x),window.removeEventListener("resize",L),window.removeEventListener("pointermove",w),window.removeEventListener("pointerleave",S),t.deleteBuffer(p),t.deleteProgram(d),t.deleteShader(a),t.deleteShader(c)}},[]),(0,t.jsx)("div",{"aria-hidden":"true",className:`pointer-events-none absolute inset-0 overflow-hidden bg-[#b1a7fe] ${e}`,style:{backgroundImage:"url(/invite-gradient.png)",backgroundSize:"cover",backgroundPosition:"center"},children:(0,t.jsx)("canvas",{ref:s,className:"h-full w-full transition-opacity duration-700 ease-out motion-reduce:transition-none",style:{opacity:+!!c}})})}])},643071,e=>{"use strict";var t=e.i(513409);let a="(prefers-reduced-motion: reduce)";function n(){return!!window.matchMedia&&window.matchMedia(a).matches}e.s(["getPrefersReducedMotion",0,n,"usePrefersReducedMotion",0,function(){let[e,r]=(0,t.useState)(n);return(0,t.useEffect)(()=>{let e=window.matchMedia(a),t=()=>r(e.matches);return t(),e.addEventListener("change",t),()=>e.removeEventListener("change",t)},[]),e}])},903967,(e,t,a)=>{"use strict";e.i(159737),Object.defineProperty(a,"__esModule",{value:!0});var n={default:function(){return y},useLinkStatus:function(){return v}};for(var r in n)Object.defineProperty(a,r,{enumerable:!0,get:n[r]});let i=e.r(56421),o=e.r(101842),u=i._(e.r(513409)),l=e.r(729653),s=e.r(797421),c=e.r(221249),f=e.r(993031),d=e.r(368215),p=e.r(237686),h=e.r(557368),m=e.r(994377),g=e.r(329481);function y(t){var a;let n,r,i,[y,v]=(0,u.useOptimistic)(h.IDLE_LINK_STATUS),k=(0,u.useRef)(null),{href:P,as:E,children:T,prefetch:w=null,passHref:S,replace:L,shallow:A,scroll:x,onClick:R,onMouseEnter:_,onTouchStart:j,legacyBehavior:O=!1,onNavigate:I,transitionTypes:M,ref:C,unstable_dynamicOnHover:N,...U}=t;n=T,O&&("string"==typeof n||"number"==typeof n)&&(n=(0,o.jsx)("a",{children:n}));let F=u.default.useContext(s.AppRouterContext),D=!1!==w,B=!1===w?"none":!0===w?"full":"auto",$="none"!==B?"auto"===B?g.FetchStrategy.PPR:g.FetchStrategy.Full:g.FetchStrategy.PPR,H="str
125ing"==typeof(a=E||P)?a:(0,l.formatUrl)(a);if(O){if(n?.$$typeof===Symbol.for("react.lazy"))throw Object.defineProperty(Error("`<Link legacyBehavior>` received a direct child that is either a Server Component, or JSX that was loaded with React.lazy(). This is not supported. Either remove legacyBehavior, or make the direct child a Client Component that renders the Link's `<a>` tag."),"__NEXT_ERROR_CODE",{value:"E863",enumerable:!1,configurable:!0});r=u.default.Children.only(n)}let z=O?r&&"object"==typeof r&&r.ref:C,K,W=u.default.useCallback(e=>(null!==F&&(k.current=(0,h.mountLinkInstance)(e,H,F,$,D,v,K)),()=>{k.current&&((0,h.unmountLinkForCurrentNavigation)(k.current),k.current=null),(0,h.unmountPrefetchableInstance)(e)}),[D,H,F,$,v,K]),G={ref:(0,c.useMergedRef)(W,z),onClick(t){O||"function"!=typeof R||R(t),O&&r.props&&"function"==typeof r.props.onClick&&r.props.onClick(t),!F||t.defaultPrevented||function(t,a,n,r,i,o,l,s="none"){if("u">typeof window){let c,{nodeName:f}=t.currentTarget;if("A"===f.toUpperCase()&&((c=t.currentTarget.getAttribute("target"))&&"_self"!==c||t.metaKey||t.ctrlKey||t.shiftKey||t.altKey||t.nativeEvent&&2===t.nativeEvent.which)||t.currentTarget.hasAttribute("download"))return;if(!(0,m.isLocalURL)(a)){r&&(t.preventDefault(),location.replace(a));return}if(t.preventDefault(),o){let e=!1;if(o({preventDefault:()=>{e=!0}}),e)return}let{dispatchNavigateAction:d}=e.r(925756);u.default.startTransition(()=>{d(a,r?"replace":"push",!1===i?p.ScrollBehavior.NoScroll:p.ScrollBehavior.Default,n.current,l,s)})}}(t,H,k,L,x,I,M,B)},onMouseEnter(e){O||"function"!=typeof _||_(e),O&&r.props&&"function"==typeof r.props.onMouseEnter&&r.props.onMouseEnter(e),F&&D&&(0,h.onNavigationIntent)(e.currentTarget,!0===N)},onTouchStart:function(e){O||"function"!=typeof j||j(e),O&&r.props&&"function"==typeof r.props.onTouchStart&&r.props.onTouchStart(e),F&&D&&(0,h.onNavigationIntent)(e.currentTarget,!0===N)}};return(0,f.isAbsoluteUrl)(H)?G.href=H:O&&!S&&("a"!==r.type||"href"in r.props)||(G.href=(0,d.addBasePath)(H)),i=O?u.default.cloneElement(r,G):(0,o.jsx)("a",{...U,...G,children:n}),(0,o.jsx)(b.Provider,{value:y,children:i})}let b=(0,u.createContext)(h.IDLE_LINK_STATUS),v=()=>(0,u.useContext)(b);("function"==typeof a.default||"object"==typeof a.default&&null!==a.default)&&void 0===a.default.__esModule&&(Object.defineProperty(a.default,"__esModule",{value:!0}),Object.assign(a.default,a),t.exports=a.default)},221249,(e,t,a)=>{"use strict";Object.defineProperty(a,"__esModule",{value:!0}),Object.defineProperty(a,"useMergedRef",{enumerable:!0,get:function(){return r}});let n=e.r(513409);function r(e,t){let a=(0,n.useRef)(null),r=(0,n.useRef)(null);return(0,n.useCallback)(n=>{if(null===n){let e=a.current;e&&(a.current=null,e());let t=r.current;t&&(r.current=null,t())}else e&&(a.current=i(e,n)),t&&(r.current=i(t,n))},[e,t])}function i(e,t){if("function"!=typeof e)return e.current=t,()=>{e.current=null};{let a=e(t);return"function"==typeof a?a:()=>e(null)}}("function"==typeof a.default||"object"==typeof a.default&&null!==a.default)&&void 0===a.default.__esModule&&(Object.defineProperty(a.default,"__esModule",{value:!0}),Object.assign(a.default,a),t.exports=a.default)},994377,(e,t,a)=>{"use strict";Object.defineProperty(a,"__esModule",{value:!0}),Object.defineProperty(a,"isLocalURL",{enumerable:!0,get:function(){return i}});let n=e.r(993031),r=e.r(100088);function i(e){if(!(0,n.isAbsoluteUrl)(e))return!0;try{let t=(0,n.getLocationOrigin)(),a=new URL(e,t);return a.origin===t&&(0,r.hasBasePath)(a.pathname)}catch(e){return!1}}},418049,(e,t,a)=>{"use strict";Object.defineProperty(a,"__esModule",{value:!0});var n={assign:function(){return l},searchParamsToUrlQuery:function(){return i},urlQueryToSearchParams:function(){return u}};for(var r in n)Object.defineProperty(a,r,{enumerable:!0,get:n[r]});function i(e){let t={};for(let[a,n]of e.entries()){let e=t[a];void 0===e?t[a]=n:Array.isArray(e)?e.push(n):t[a]=[e,n]}return t}function o(e){return"string"==typeof e?e:("number"!=typeof e||isNaN(e))&&"boolean"!=typeof e?"":String(e)}function u(e){let t=new URLSearchParams;for(let[a,n]of Object.entries(e))if(Array.isArray(n))for(let e of n)t.append(a,o(e));else t.set(a,o(n));return t}function l(e,...t){for(let a of t){for(let t of a.keys())e.delete(t);for(let[t,n]of a.entries())e.append(t,n)}return e}},729653,(e,t,a)=>{"use strict";e.i(159737),Object.defineProperty(a,"__esModule",{value:!0});var n={formatUrl:function(){return u},formatWithValidation:function(){return s},urlObjectKeys:function(){return l}};for(var r in n)Object.defineProperty(a,r,{enumerable:!0,get:n[r]});let i=e.r(56421)._(e.r(418049)),o=/https?|ftp|gopher|file/;function u(e){let{auth:t,hostname:a}=e,n=e.protocol||"",r=e.pathname||"",u=e.hash||"",l=e.query||"",s=!1;t=t?encodeURIComponent(t).replace(/%3A/i,":")+"@":"",e.host?s=t+e.host:a&&(s=t+(~a.indexOf(":")?`[${a}]`:a),e.port&&(s+=":"+e.port)),l&&"object"==typeof l&&(l=String(i.urlQueryToSearchParams(l)));let c=e.search||l&&`?${l}`||"";return n&&!n.endsWith(":")&&(n+=":"),e.slashes||(!n||o.test(n))&&!1!==s?(s="//"+(s||""),r&&"/"!==r[0]&&(r="/"+r)):s||(s=""),u&&"#"!==u[0]&&(u="#"+u),c&&"?"!==c[0]&&(c="?"+c),r=r.replace(/[?#]/g,encodeURIComponent),c=c.replace("#","%23"),`${n}${s}${r}${c}${u}`}let l=["auth","hash","host","hostname","href","path","pathname","port","protocol","query","search","slashes"];function s(e){return u(e)}},993031,(e,t,a)=>{"use strict";e.i(159737),Object.defineProperty(a,"__esModule",{value:!0});var n={DecodeError:function(){return y},MiddlewareNotFoundError:function(){return P},MissingStaticPage:function(){return k},NormalizeError:function(){return b},PageNotFoundError:function(){return v},SP:function(){return m},ST:function(){return g},WEB_VITALS:function(){return i},execOnce:function(){return o},getDisplayName:function(){return f},getLocationOrigin:function(){return s},getURL:function(){return c},isAbsoluteUrl:function(){return l},isResSent:function(){return d},loadGetInitialProps:function(){return h}
125,normalizeRepeatedSlashes:function(){return p},stringifyError:function(){return E}};for(var r in n)Object.defineProperty(a,r,{enumerable:!0,get:n[r]});let i=["CLS","FCP","FID","INP","LCP","TTFB"];function o(e){let t,a=!1;return(...n)=>(a||(a=!0,t=e(...n)),t)}let u=/^[a-zA-Z][a-zA-Z\d+\-.]*?:/,l=e=>{let t=e.charCodeAt(0);return!!(t>=65&&t<=90||t>=97&&t<=122)&&u.test(e)};function s(){let{protocol:e,hostname:t,port:a}=window.location;return`${e}//${t}${a?":"+a:""}`}function c(){let{href:e}=window.location,t=s();return e.substring(t.length)}function f(e){return"string"==typeof e?e:e.displayName||e.name||"Unknown"}function d(e){return e.finished||e.headersSent}function p(e){let t=e.split("?");return t[0].replace(/\\/g,"/").replace(/\/\/+/g,"/")+(t[1]?`?${t.slice(1).join("?")}`:"")}async function h(e,t){let a=t.res||t.ctx&&t.ctx.res;if(!e.getInitialProps)return t.ctx&&t.Component?{pageProps:await h(t.Component,t.ctx)}:{};let n=await e.getInitialProps(t);if(a&&d(a))return n;if(!n)throw Object.defineProperty(Error(`"${f(e)}.getInitialProps()" should resolve to an object. But found "${n}" instead.`),"__NEXT_ERROR_CODE",{value:"E1025",enumerable:!1,configurable:!0});return n}let m="u">typeof performance,g=m&&["mark","measure","getEntriesByName"].every(e=>"function"==typeof performance[e]);class y extends Error{}class b extends Error{}class v extends Error{constructor(e){super(),this.code="ENOENT",this.name="PageNotFoundError",this.message=`Cannot find module for page: ${e}`}}class k extends Error{constructor(e,t){super(),this.message=`Failed to load static file for page: ${e} ${t}`}}class P extends Error{constructor(){super(),this.code="ENOENT",this.message="Cannot find the middleware module"}}function E(e){return JSON.stringify({message:e.message,stack:e.stack})}}]);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.