3d-effect-cinema 0.4.1 → 0.5.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1,6 +1,7 @@
1
- # 🎬 3D Effect Cinema
1
+ # 🎬 3D Effect Cinema (v0.5.0)
2
2
 
3
3
  > Componente de Fondo WebGL 3D de Alto Rendimiento, Motor de Efectos Bioluminiscentes y Pantalla de Carga / Intro Cinematográfica para React y Next.js impulsado por `@react-three/fiber` & `three`.
4
+ > **100% Compatible con Next.js 14, 15 y 16 (App Router & Pages Router con Turbopack o Webpack) sin necesidad de configuraciones adicionales.**
4
5
 
5
6
  [![npm version](https://img.shields.io/npm/v/3d-effect-cinema.svg?style=flat-square&color=blue)](https://www.npmjs.com/package/3d-effect-cinema)
6
7
  [![license](https://img.shields.io/npm/l/3d-effect-cinema.svg?style=flat-square)](https://github.com/esteban284/3d-effect-cinema)
@@ -18,30 +19,27 @@
18
19
  ## 📦 Instalación
19
20
 
20
21
  ```bash
21
- npm install 3d-effect-cinema three @react-three/fiber @react-three/drei @react-three/postprocessing postprocessing
22
+ npm install 3d-effect-cinema three @react-three/fiber @react-three/drei
22
23
  ```
23
24
 
24
25
  ---
25
26
 
26
- ## ⚡ Inicio Rápido
27
+ ## ⚡ Inicio Rápido (Plug & Play en Next.js & React)
27
28
 
28
- ### Modo 1: Fondo 3D Permanente
29
+ Importa `<AnimatedBackground />` directamente en cualquier archivo (Server Component o Client Component):
29
30
 
30
31
  ```tsx
31
- "use client";
32
-
33
32
  import AnimatedBackground from "3d-effect-cinema";
34
33
 
35
34
  export default function App() {
36
35
  return (
37
- // Fondo de Nubes de Energía Verde Bioluminiscente sobre Fondo Blanco
38
36
  <div className="w-full h-screen">
39
37
  <AnimatedBackground
40
- effect="blobs"
41
- effectColor="#00e676"
42
- effectDensity={0.4}
43
- effectSpeed={0.5}
44
- backgroundColor="#ffffff"
38
+ title="CINEMULTIPLEX"
39
+ fontFamily="helvetiker"
40
+ effect="blobs,flames"
41
+ effectColor="#00e5ff"
42
+ backgroundColor="#07080c"
45
43
  />
46
44
  </div>
47
45
  );
@@ -50,16 +48,14 @@ export default function App() {
50
48
 
51
49
  ---
52
50
 
53
- ### Modo 2: Pantalla de Carga / Intro Splash Screen (con Redirección Automática)
51
+ ## 🎬 Modo Pantalla de Carga / Intro Splash Screen (con Redirección Automática)
54
52
 
55
53
  ```tsx
56
- "use client";
57
-
58
54
  import AnimatedBackground from "3d-effect-cinema";
59
55
 
60
56
  export default function SplashIntro() {
61
57
  return (
62
- // Mantiene la animación durante 5 segundos y luego redirecciona a /home
58
+ // Mantiene la animación durante 5 segundos con barra de progreso de cristal y redirecciona a /home
63
59
  <div className="w-full h-screen">
64
60
  <AnimatedBackground
65
61
  title="CINEMULTIPLEX"
@@ -102,95 +98,9 @@ export default function SplashIntro() {
102
98
 
103
99
  ---
104
100
 
105
- ## 🌟 Lista de Efectos Disponibles
106
-
107
- | Nombre de Efecto | Valor de Prop `effect` | Icono | Descripción |
108
- | :--- | :--- | :--- | :--- |
109
- | **Nubes Bioluminiscentes** | `"blobs"` / `"energy-blobs"` / `"plasma-blobs"` | 🟢 | Nubes bioluminiscentes de energía líquida fusionándose suavemente. |
110
- | **Llamas Orgánicas** | `"flames"` / `"fluid-flames"` / `"llamas"` | 🔥 | Partículas de llamas de fuego fluido de mezcla aditiva. |
111
- | **Cristales 3D** | `"fire"` / `"crystal-flames"` / `"cristales"` | 💎 | Conos de llamas 3D de cristal facetado. |
112
- | **Chispas 3D** | `"sparks"` / `"chispas"` | 💥 | Ráfagas de chispas incandescente con gravedad física. |
113
- | **Onda de Choque 3D** | `"shockwave"` / `"wave"` / `"onda"` | 🌊 | Anillos emissivos de onda de choque expansivos. |
114
- | **Plasma Eléctrico** | `"plasma"` / `"electric"` | ⚡ | Arcos de plasma eléctrico reactivos al cursor. |
115
- | **Ascuas Ambientales** | `"embers"` / `"ascuas"` | ✨ | Ascuas y polvo estelar flotante en el aire. |
116
- | **Todos los Efectos** | `"all"` / `"supernova"` / `"todos"` | 🌟 | Activa todos los efectos 3D en simultáneo. |
117
-
118
- ---
119
-
120
- ## 💡 Ejemplos de Uso
121
-
122
- ### 1. Fondo de Nubes Bioluminiscentes sobre Fondo Blanco (Estilo Captura)
123
-
124
- ```tsx
125
- import AnimatedBackground from "3d-effect-cinema";
126
-
127
- export default function NubesVerdes() {
128
- return (
129
- <div className="w-full h-screen">
130
- <AnimatedBackground
131
- effect="blobs"
132
- effectColor="#00e676"
133
- backgroundColor="#ffffff"
134
- effectDensity={0.4}
135
- effectSpeed={0.5}
136
- />
137
- </div>
138
- );
139
- }
140
- ```
141
-
142
- ---
143
-
144
- ### 2. Multi-Selección de Efectos (`effect="llamas,onda,plasma"`)
145
-
146
- ```tsx
147
- import AnimatedBackground from "3d-effect-cinema";
148
-
149
- export default function MultiEfectos() {
150
- return (
151
- <div className="w-full h-[600px]">
152
- <AnimatedBackground
153
- title="UNITED OF WEB"
154
- fontFamily="helvetiker"
155
- effect="llamas,onda,plasma"
156
- effectColor="#00e5ff"
157
- backgroundColor="#021a38"
158
- letterSpacing={0.85}
159
- />
160
- </div>
161
- );
162
- }
163
- ```
164
-
165
- ---
166
-
167
- ### 3. Pantalla de Carga de 5 Segundos con Redirección y Selector de Contenedor DOM
168
-
169
- ```tsx
170
- import AnimatedBackground from "3d-effect-cinema";
171
-
172
- export default function SplashIntro() {
173
- return (
174
- <div id="home" className="w-full h-screen">
175
- <AnimatedBackground
176
- title="CINEMULTIPLEX"
177
- fontFamily="helvetiker"
178
- effect="blobs,flames"
179
- effectColor="#00e5ff"
180
- loaderDuration={5}
181
- redirectUrl="/home"
182
- containerSelector="home"
183
- />
184
- </div>
185
- );
186
- }
187
- ```
188
-
189
- ---
190
-
191
- ## 🖱️ Interactividad Clic & Drag
101
+ ## 🛠️ Solución de Errores e Integración en Next.js
192
102
 
193
- Al hacer **clic o arrastrar el ratón/touch** sobre la escena 3D, brotan ráfagas instantáneas del efecto activo **en las coordenadas exactas del puntero**.
103
+ Para consultar el análisis técnico detallado de cómo la v0.5.0 resuelve los 6 problemas clásicos de Next.js (Turbopack, SSR, `next-intl`, Three.js duplicado y `window.React`), consulta la **[Guía Completa de Integración en Next.js](file:///home/kaiser284/EstebanProjects/3d-effect-cinema/GUIA_SOLUCION_NEXT_3D_CINEMA.md)**.
194
104
 
195
105
  ---
196
106
 
package/dist/index.js CHANGED
@@ -1,3 +1,4 @@
1
- 'use client';
2
- "use strict";var St=Object.create;var ie=Object.defineProperty,Lt=Object.defineProperties,Rt=Object.getOwnPropertyDescriptor,Nt=Object.getOwnPropertyDescriptors,Pt=Object.getOwnPropertyNames,he=Object.getOwnPropertySymbols,Ht=Object.getPrototypeOf,Re=Object.prototype.hasOwnProperty,Oe=Object.prototype.propertyIsEnumerable;var _e=(t,e,r)=>e in t?ie(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,L=(t,e)=>{for(var r in e||(e={}))Re.call(e,r)&&_e(t,r,e[r]);if(he)for(var r of he(e))Oe.call(e,r)&&_e(t,r,e[r]);return t},Q=(t,e)=>Lt(t,Nt(e));var De=(t,e)=>{var r={};for(var n in t)Re.call(t,n)&&e.indexOf(n)<0&&(r[n]=t[n]);if(t!=null&&he)for(var n of he(t))e.indexOf(n)<0&&Oe.call(t,n)&&(r[n]=t[n]);return r};var Bt=(t,e)=>{for(var r in e)ie(t,r,{get:e[r],enumerable:!0})},We=(t,e,r,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of Pt(e))!Re.call(t,o)&&o!==r&&ie(t,o,{get:()=>e[o],enumerable:!(n=Rt(e,o))||n.enumerable});return t};var F=(t,e,r)=>(r=t!=null?St(Ht(t)):{},We(e||!t||!t.__esModule?ie(r,"default",{value:t,enumerable:!0}):r,t)),Ft=t=>We(ie({},"__esModule",{value:!0}),t);var Zt={};Bt(Zt,{AnimatedBackground:()=>Te,AnimatedLetter:()=>X,CameraRig:()=>j,CinemaBackground:()=>fe,CinemaHome:()=>ue,CinemaLoader:()=>Fe,ClickFireSparks:()=>Y,ClickShockwave:()=>V,ElectricPlasma:()=>$,FireFlames:()=>me,LoaderOverlay:()=>pe,PlasmaBlobs:()=>de,SceneParticles:()=>U,default:()=>Te,withCinema3D:()=>Mt});module.exports=Ft(Zt);var g=F(require("react")),xt=require("@react-three/fiber"),ke=require("@react-three/drei"),q=require("@react-three/postprocessing");var le=require("react"),Xe=require("@react-three/fiber"),Ue=require("@react-three/drei"),ne=F(require("three")),At={gold:{color:"#FFD700",metalness:1,roughness:.15,clearcoat:1,emissive:"#1a0f00",emissiveIntensity:.3,envMapIntensity:2},neon:{color:"#00ffff",metalness:0,roughness:1,clearcoat:0,emissive:"#00ffff",emissiveIntensity:2.5,envMapIntensity:.5},emerald:{color:"#10b981",metalness:.9,roughness:.1,clearcoat:1,emissive:"#065f46",emissiveIntensity:1.2,envMapIntensity:2.5},crimson:{color:"#ff1744",metalness:.8,roughness:.15,clearcoat:1,emissive:"#880e4f",emissiveIntensity:1.8,envMapIntensity:2},obsidian:{color:"#1a1a2e",metalness:1,roughness:.05,clearcoat:1,emissive:"#0a0a1a",emissiveIntensity:.1,envMapIntensity:3},glass:{color:"#ffffff",metalness:0,roughness:0,clearcoat:0,emissive:"#000000",emissiveIntensity:0,envMapIntensity:1.5,transmission:.95,ior:1.5,thickness:.5,transparent:!0}};function X({char:t,index:e,totalLetters:r,position:n,phase:o,theme:d,fontUrl:c}){let m=(0,le.useRef)(null),b=(0,le.useRef)(null),s=(0,le.useMemo)(()=>{let i=e/r*Math.PI*2;return{x:Math.cos(i)*4+(Math.random()-.5)*2,y:-3+Math.random()*-3,z:-5+Math.random()*-3,rotX:(Math.random()-.5)*Math.PI*2,rotY:(Math.random()-.5)*Math.PI*2}},[e,r]),a=At[d];return(0,Xe.useFrame)(i=>{if(!m.current)return;let l=i.clock.getElapsedTime();b.current===null&&(b.current=l);let x=l-b.current,u=e*.12;if(o==="loading"){m.current.position.set(n[0]+s.x,n[1]+s.y,n[2]+s.z),m.current.rotation.set(s.rotX,s.rotY,0),m.current.scale.setScalar(0);return}if(o==="entering"){let M=Math.max(0,x-u),f=1-Math.exp(-M*3),k=1+Math.sin(M*8)*Math.max(0,.15-M*.1);m.current.position.set(ne.MathUtils.lerp(n[0]+s.x,n[0],f),ne.MathUtils.lerp(n[1]+s.y,n[1],f),ne.MathUtils.lerp(n[2]+s.z,n[2],f)),m.current.rotation.set(ne.MathUtils.lerp(s.rotX,0,f),ne.MathUtils.lerp(s.rotY,0,f),0),m.current.scale.setScalar(Math.min(f*k,1.05));return}if(o==="idle"){let M=Math.sin(l*1.2+e*.5)*.015,f=Math.sin(l*.8+e*.3)*.008;m.current.position.set(n[0]+f,n[1]+M,n[2]),m.current.rotation.set(Math.sin(l*.5+e)*.01,Math.sin(l*.3+e*.7)*.01,0),m.current.scale.setScalar(1);return}if(o==="exiting"){let M=Math.max(0,x-u*.5),f=Math.min(M*2,1),k=f*f;m.current.position.set(n[0]+s.x*k*.5,n[1],n[2]-k*8),m.current.scale.setScalar(Math.max(1-k,0)),m.current.rotation.y+=.05}}),t===" "?null:React.createElement("group",{ref:m,position:n},React.createElement(Ue.Text3D,{font:c,size:.8,height:.35,bevelEnabled:!0,bevelSize:.02,bevelThickness:.01,bevelSegments:3,curveSegments:12},t,React.createElement("meshPhysicalMaterial",{color:a.color,metalness:a.metalness,roughness:a.roughness,clearcoat:a.clearcoat,emissive:a.emissive,emissiveIntensity:a.emissiveIntensity,envMapIntensity:a.envMapIntensity,transmission:a.transmission,ior:a.ior,thickness:a.thickness,transparent:a.transparent,toneMapped:d!=="neon"})))}var ee=require("react"),Ve=require("@react-three/fiber"),Ne=require("@react-three/drei"),$e=F(require("three")),je={gold:"#FFD700",neon:"#00ffff",emerald:"#10b981",crimson:"#ff1744",obsidian:"#a855f7",glass:"#ffffff"},Ye={azul:"#00e5ff",verde:"#00e676",rojo:"#ff3d00",dorado:"#ffb300",purpura:"#d500f9",magenta:"#ff007f",esmeralda:"#10b981"};function zt({color:t,speedMultiplier:e=.5,count:r=60}){let n=(0,ee.useRef)(null),o=(0,ee.useRef)(new $e.Object3D),d=(0,ee.useRef)(null),c=(0,ee.useRef)(null);if(!d.current){d.current=new Float32Array(r),c.current=new Float32Array(r*3);for(let m=0;m<r;m++)d.current[m]=.1+Math.random()*.3,c.current[m*3]=(Math.random()-.5)*16,c.current[m*3+1]=(Math.random()-.5)*10,c.current[m*3+2]=(Math.random()-.5)*12}return(0,Ve.useFrame)(m=>{if(!n.current||!d.current||!c.current)return;let b=m.clock.getElapsedTime()*e;for(let s=0;s<r;s++){let a=d.current[s],i=c.current[s*3],l=c.current[s*3+1],x=c.current[s*3+2];o.current.position.set(i+Math.sin(b*a+s)*2,l+Math.cos(b*a*.7+s*.5)*1.5,x+Math.sin(b*a*.5+s*.3)*2),o.current.scale.setScalar(.015+Math.sin(b+s)*.005),o.current.updateMatrix(),n.current.setMatrixAt(s,o.current.matrix)}n.current.instanceMatrix.needsUpdate=!0}),React.createElement("instancedMesh",{ref:n,args:[void 0,void 0,r]},React.createElement("sphereGeometry",{args:[1,6,6]}),React.createElement("meshBasicMaterial",{color:t,transparent:!0,opacity:.3,toneMapped:!1}))}function U({theme:t,effectColor:e,effectSpeed:r=.5,visible:n}){let o=(0,ee.useMemo)(()=>{if(!e)return je[t]||je.gold;let d=e.toLowerCase().trim();return Ye[d]?Ye[d]:e},[e,t]);return n?React.createElement("group",null,React.createElement(Ne.Sparkles,{count:150,scale:10,size:4,speed:.3*r,opacity:.8,color:o,noise:.6}),React.createElement(Ne.Sparkles,{count:80,scale:16,size:2,speed:.15*r,opacity:.4,color:"#ffffff",noise:.8}),React.createElement(zt,{color:o,speedMultiplier:r,count:50})):null}var Pe=require("react"),ge=require("@react-three/fiber"),te=F(require("three"));function j({phase:t,effectSpeed:e=.5}){let{camera:r,pointer:n}=(0,ge.useThree)(),o=(0,Pe.useRef)(null),d=(0,Pe.useRef)(t);return d.current!==t&&(d.current=t,o.current=null),(0,ge.useFrame)(c=>{let m=c.clock.getElapsedTime()*e;o.current===null&&(o.current=m);let b=m-o.current;if(t==="loading"){r.position.set(0,0,14),r.lookAt(0,0,0);return}if(t==="entering"){let i=Math.min(b/3,1),l=1-Math.pow(1-i,3),x=te.MathUtils.lerp(14,6,l),u=te.MathUtils.lerp(1,.2,l);r.position.set(0,u,x),r.lookAt(0,0,0);return}let s=c.viewport.width/(c.viewport.height||1),a=s<1?Math.max(6,6/Math.max(.45,s*.85)):6;if(t==="idle"){let i=Math.sin(m*.1)*.2,l=Math.cos(m*.08)*.1+.2,x=n.x*.2,u=n.y*.1;r.position.x=te.MathUtils.damp(r.position.x,i+x,3,.016),r.position.y=te.MathUtils.damp(r.position.y,l+u,3,.016),r.position.z=te.MathUtils.damp(r.position.z,a,3,.016),r.lookAt(0,0,0);return}if(t==="exiting"){let i=Math.min(b/1.5,1),l=i*i*i,x=te.MathUtils.lerp(6,-8,l);r.position.set(0,0,x),r.lookAt(0,0,0)}}),null}var _=require("react"),be=require("@react-three/fiber"),I=F(require("three"));var Ge={gold:["#FFD700","#FF8C00","#FF4500","#FFF8DC"],neon:["#00ffff","#0088ff","#ff00ff","#ffffff"],emerald:["#00ff88","#10b981","#059669","#a7f3d0"],crimson:["#ff1744","#d50000","#ff5252","#ffb74d"],obsidian:["#a855f7","#6366f1","#3b82f6","#ffffff"],glass:["#ffffff","#e0e7ff","#93c5fd","#60a5fa"]},It={azul:"#00e5ff",verde:"#00e676",rojo:"#ff3d00",dorado:"#ffb300",purpura:"#d500f9",magenta:"#ff007f",esmeralda:"#10b981"};function Y({theme:t="gold",effectColor:e,effectSpeed:r=.5,enabled:n=!0}){let{camera:o,raycaster:d}=(0,be.useThree)(),[c,m]=(0,_.useState)([]),b=(0,_.useRef)(0),s=(0,_.useMemo)(()=>{if(!e)return Ge[t]||Ge.gold;let i=e.toLowerCase().trim(),l=It[i]||e;return[l,"#ffffff",l]},[e,t]),a=(0,_.useCallback)(i=>{if(!n)return;let l=0,x=0;if("touches"in i&&i.touches.length>0)l=i.touches[0].clientX,x=i.touches[0].clientY;else if("clientX"in i)l=i.clientX,x=i.clientY;else return;let u=new I.Vector2(l/window.innerWidth*2-1,-(x/window.innerHeight)*2+1);d.setFromCamera(u,o);let M=new I.Plane(new I.Vector3(0,0,1),0),f=new I.Vector3;if(d.ray.intersectPlane(M,f),!f)return;let k=35,p=[];for(let v=0;v<k;v++){let y=Math.random()*Math.PI*2,E=(1.5+Math.random()*4.5)*r,h=(Math.random()-.3)*3*r,T=new I.Vector3(Math.cos(y)*E,Math.sin(y)*E+h,(Math.random()-.5)*E*.8),S=s[Math.floor(Math.random()*s.length)];p.push({id:v,position:f.clone(),velocity:T,color:new I.Color(S),size:.08+Math.random()*.12,life:1,maxLife:(.6+Math.random()*.8)/Math.max(.2,r)})}let w={id:b.current++,origin:f.clone(),sparks:p,color:s[0],lightIntensity:4,time:0};m(v=>[...v.slice(-4),w])},[o,d,s,r,n]);return(0,_.useEffect)(()=>(window.addEventListener("pointerdown",a),()=>{window.removeEventListener("pointerdown",a)}),[a]),(0,be.useFrame)((i,l)=>{c.length!==0&&m(x=>x.map(u=>{let M=u.time+l*r,f=Math.max(0,u.lightIntensity-l*8*r),k=u.sparks.map(p=>{let w=p.life-l*r/p.maxLife;if(w<=0)return null;let v=p.position.clone().addScaledVector(p.velocity,l*r);return p.velocity.y-=l*3.5*r,p.velocity.multiplyScalar(.96),Q(L({},p),{position:v,life:w})}).filter(Boolean);return k.length===0&&f<=0?null:Q(L({},u),{time:M,lightIntensity:f,sparks:k})}).filter(Boolean))}),React.createElement("group",null,c.map(i=>React.createElement("group",{key:i.id},i.lightIntensity>.05&&React.createElement("pointLight",{position:i.origin,intensity:i.lightIntensity*3,distance:6,color:i.color}),i.sparks.map(l=>React.createElement("mesh",{key:l.id,position:l.position},React.createElement("sphereGeometry",{args:[l.size*l.life,6,6]}),React.createElement("meshBasicMaterial",{color:l.color,transparent:!0,opacity:l.life,toneMapped:!1}))))))}var O=require("react"),xe=require("@react-three/fiber"),A=F(require("three"));var Ze={gold:"#FFD700",neon:"#00ffff",emerald:"#10b981",crimson:"#ff1744",obsidian:"#a855f7",glass:"#ffffff"},qe={azul:"#00e5ff",verde:"#00e676",rojo:"#ff3d00",dorado:"#ffb300",purpura:"#d500f9",magenta:"#ff007f",esmeralda:"#10b981"};function V({theme:t="gold",effectColor:e,effectSpeed:r=.5,enabled:n=!0}){let{camera:o,raycaster:d}=(0,xe.useThree)(),[c,m]=(0,O.useState)([]),b=(0,O.useRef)(0),s=(0,O.useMemo)(()=>{if(!e)return Ze[t]||Ze.gold;let i=e.toLowerCase().trim();return qe[i]?qe[i]:e},[e,t]),a=(0,O.useCallback)(i=>{if(!n)return;let l=0,x=0;if("touches"in i&&i.touches.length>0)l=i.touches[0].clientX,x=i.touches[0].clientY;else if("clientX"in i)l=i.clientX,x=i.clientY;else return;let u=new A.Vector2(l/window.innerWidth*2-1,-(x/window.innerHeight)*2+1);d.setFromCamera(u,o);let M=new A.Plane(new A.Vector3(0,0,1),0),f=new A.Vector3;if(d.ray.intersectPlane(M,f),!f)return;let k={id:b.current++,origin:f.clone(),radius:.1,maxRadius:3.5,life:1,color:new A.Color(s)};m(p=>[...p.slice(-4),k])},[o,d,s,n]);return(0,O.useEffect)(()=>(window.addEventListener("pointerdown",a),()=>{window.removeEventListener("pointerdown",a)}),[a]),(0,xe.useFrame)((i,l)=>{c.length!==0&&m(x=>x.map(u=>{let M=u.life-l*1.8*r;if(M<=0)return null;let f=u.radius+l*5*r;return Q(L({},u),{life:M,radius:f})}).filter(Boolean))}),n?React.createElement("group",null,c.map(i=>React.createElement("mesh",{key:i.id,position:i.origin,rotation:[0,0,0]},React.createElement("ringGeometry",{args:[i.radius*.9,i.radius,48]}),React.createElement("meshBasicMaterial",{color:i.color,transparent:!0,opacity:i.life*.75,side:A.DoubleSide,toneMapped:!1})))):null}var ce=require("react"),ve=require("@react-three/fiber"),ye=F(require("three")),Ke={gold:"#ffaa00",neon:"#00ffff",emerald:"#00ffaa",crimson:"#ff0055",obsidian:"#9900ff",glass:"#88ccff"},Je={azul:"#00e5ff",verde:"#00e676",rojo:"#ff3d00",dorado:"#ffb300",purpura:"#d500f9",magenta:"#ff007f",esmeralda:"#10b981"};function $({theme:t="neon",effectColor:e,effectSpeed:r=.5,enabled:n=!0}){let{pointer:o}=(0,ve.useThree)(),d=(0,ce.useRef)(null),c=(0,ce.useMemo)(()=>{if(!e)return Ke[t]||Ke.neon;let s=e.toLowerCase().trim();return Je[s]?Je[s]:e},[e,t]),m=30,b=(0,ce.useMemo)(()=>{let s=new ye.BufferGeometry,a=new Float32Array(m*2*3);return s.setAttribute("position",new ye.BufferAttribute(a,3)),s},[m]);return(0,ve.useFrame)(s=>{if(!d.current||!n)return;let a=s.clock.getElapsedTime()*r,i=d.current.geometry.attributes.position,l=i.array,x=o.x*6,u=o.y*3;for(let M=0;M<m;M++){let f=M*6,k=M/m*Math.PI*2+a*1.5,p=2.5+Math.sin(a*3+M)*.5,w=Math.cos(k)*p,v=Math.sin(k)*p,y=(Math.random()-.5)*1.5,E=w+(x-w)*.3+(Math.random()-.5)*.8,h=v+(u-v)*.3+(Math.random()-.5)*.8,T=y+(Math.random()-.5)*.8;l[f]=w,l[f+1]=v,l[f+2]=y,l[f+3]=E,l[f+4]=h,l[f+5]=T}i.needsUpdate=!0}),n?React.createElement("lineSegments",{ref:d,geometry:b},React.createElement("lineBasicMaterial",{color:c,transparent:!0,opacity:.75,linewidth:2,toneMapped:!1})):null}var R=require("react"),Me=require("@react-three/fiber"),G=F(require("three")),Qe={crimson:{color1:"#ff3d00",color2:"#ff9100",light:"#ff1744"},gold:{color1:"#ffb300",color2:"#ffe082",light:"#FFD700"},emerald:{color1:"#00e676",color2:"#a7f3d0",light:"#10b981"},neon:{color1:"#00e5ff",color2:"#80d8ff",light:"#00ffff"},obsidian:{color1:"#d500f9",color2:"#ea80fc",light:"#a855f7"},glass:{color1:"#80d8ff",color2:"#ffffff",light:"#60a5fa"}},et={azul:"#00e5ff",verde:"#00e676",rojo:"#ff3d00",dorado:"#ffb300",purpura:"#d500f9",magenta:"#ff007f",esmeralda:"#10b981"};function _t(){let t=document.createElement("canvas");t.width=128,t.height=128;let e=t.getContext("2d");if(e){let n=e.createRadialGradient(64,64,0,64,64,64);n.addColorStop(0,"rgba(255, 255, 255, 1)"),n.addColorStop(.3,"rgba(255, 255, 255, 0.9)"),n.addColorStop(.65,"rgba(255, 255, 255, 0.35)"),n.addColorStop(1,"rgba(0, 0, 0, 0)"),e.fillStyle=n,e.fillRect(0,0,128,128)}let r=new G.CanvasTexture(t);return r.needsUpdate=!0,r}function me({theme:t="crimson",effectColor:e,effectSpeed:r=.5,effectDensity:n=.3,mode:o="fluid",enabled:d=!0}){let{pointer:c}=(0,Me.useThree)(),m=(0,R.useRef)(null),b=(0,R.useRef)(null),s=(0,R.useRef)(null),a=(0,R.useRef)(new G.Object3D),i=(0,R.useRef)(!1),l=(0,R.useRef)([]),x=Math.max(.1,Math.min(1,n)),u=Math.round(110*x),M=(0,R.useMemo)(()=>_t(),[]),f=(0,R.useMemo)(()=>{if(!e)return(Qe[t]||Qe.crimson).color1;let v=e.toLowerCase().trim();return et[v]?et[v]:e},[e,t]),k=(0,R.useMemo)(()=>{let v=[],y=.4+Math.sqrt(x)*.55;for(let E=0;E<u;E++)v.push({x:(Math.random()-.5)*10,y:-2+Math.random()*.4,z:(Math.random()-.5)*2-.5,speedY:.8+Math.random()*1.8,speedX:(Math.random()-.5)*.5,size:(.4+Math.random()*.6)*y,phase:Math.random()*Math.PI*2,life:Math.random()});return v},[u,x]),p=(0,R.useCallback)(()=>{i.current=!0},[]),w=(0,R.useCallback)(()=>{i.current=!1},[]);return(0,R.useEffect)(()=>(window.addEventListener("pointerdown",p),window.addEventListener("pointerup",w),()=>{window.removeEventListener("pointerdown",p),window.removeEventListener("pointerup",w)}),[p,w]),(0,Me.useFrame)((v,y)=>{if(!d)return;let E=v.clock.getElapsedTime()*r;if(i.current){let h=c.x*7,T=c.y*4;l.current.length<25&&l.current.push({x:h+(Math.random()-.5)*.8,y:T+(Math.random()-.5)*.8,z:(Math.random()-.5)*1.5,life:1,size:(.5+Math.random()*.6)*Math.sqrt(x)})}l.current=l.current.map(h=>(h.life-=y*1.8*r,h.y+=y*1.2*r,h)).filter(h=>h.life>0),s.current&&(s.current.intensity=2.2+Math.sin(E*10)*.6+Math.cos(E*15)*.3,s.current.position.y=-1+Math.sin(E*3)*.2),(o==="fluid"||o==="all")&&m.current&&(k.forEach((h,T)=>{h.life+=y*h.speedY*.35*r,h.life>1&&(h.life=0,h.x=(Math.random()-.5)*10,h.y=-2+Math.random()*.4);let S=h.life,N=h.y+S*3.8,ae=h.x+Math.sin(E*2.5+h.phase)*.5+h.speedX*S,se=h.z+Math.cos(E*1.8+h.phase)*.2,W=Math.sin(S*Math.PI)*h.size*(1.2-S*.3);a.current.position.set(ae,N,se),a.current.rotation.set(0,0,Math.sin(E*1.5+T)*.2),a.current.scale.set(W,W*1.3,W),a.current.updateMatrix(),m.current.setMatrixAt(T,a.current.matrix)}),l.current.forEach((h,T)=>{let S=(u-1-T+u)%u,N=Math.sin(h.life*Math.PI)*h.size;a.current.position.set(h.x,h.y,h.z),a.current.rotation.set(0,0,Math.sin(E*3+T)*.3),a.current.scale.set(N,N*1.4,N),a.current.updateMatrix(),m.current.setMatrixAt(S,a.current.matrix)}),m.current.instanceMatrix.needsUpdate=!0),(o==="crystal"||o==="all")&&b.current&&(k.forEach((h,T)=>{let S=h.life,N=h.y+S*3.8,ae=h.x+Math.sin(E*2.8+h.phase)*.5+h.speedX*S,se=h.z+Math.cos(E*2+h.phase)*.3,W=Math.sin(S*Math.PI)*h.size*.6;a.current.position.set(ae,N,se),a.current.rotation.set(E*1.5+T,E*2,T),a.current.scale.set(W,W*2,W),a.current.updateMatrix(),b.current.setMatrixAt(T,a.current.matrix)}),b.current.instanceMatrix.needsUpdate=!0)}),d?React.createElement("group",null,React.createElement("pointLight",{ref:s,position:[0,-1,1.5],color:f,intensity:2.5,distance:10}),(o==="fluid"||o==="all")&&React.createElement("instancedMesh",{ref:m,args:[void 0,void 0,u]},React.createElement("planeGeometry",{args:[1.2,1.2]}),React.createElement("meshBasicMaterial",{map:M,color:f,transparent:!0,blending:G.AdditiveBlending,depthWrite:!1,side:G.DoubleSide})),(o==="crystal"||o==="all")&&React.createElement("instancedMesh",{ref:b,args:[void 0,void 0,u]},React.createElement("coneGeometry",{args:[.3,1.2,5]}),React.createElement("meshBasicMaterial",{color:f,transparent:!0,opacity:.65,blending:G.AdditiveBlending,depthWrite:!1}))):null}var H=require("react"),we=require("@react-three/fiber"),Z=F(require("three")),tt={azul:"#00e5ff",verde:"#00e676",rojo:"#ff3d00",dorado:"#ffb300",purpura:"#d500f9",magenta:"#ff007f",esmeralda:"#10b981"};function Ot(){let t=document.createElement("canvas");t.width=256,t.height=256;let e=t.getContext("2d");if(e){let n=e.createRadialGradient(128,128,0,128,128,128);n.addColorStop(0,"rgba(255, 255, 255, 1)"),n.addColorStop(.2,"rgba(0, 240, 200, 0.95)"),n.addColorStop(.5,"rgba(0, 200, 140, 0.6)"),n.addColorStop(.8,"rgba(0, 150, 100, 0.2)"),n.addColorStop(1,"rgba(0, 0, 0, 0)"),e.fillStyle=n,e.fillRect(0,0,256,256)}let r=new Z.CanvasTexture(t);return r.needsUpdate=!0,r}function de({theme:t="emerald",effectColor:e="#00e676",effectSpeed:r=.5,effectDensity:n=.5,enabled:o=!0}){let{pointer:d}=(0,we.useThree)(),c=(0,H.useRef)(null),m=(0,H.useRef)(null),b=(0,H.useRef)(new Z.Object3D),s=(0,H.useRef)(!1),a=(0,H.useRef)([]),i=Math.max(.1,Math.min(1,n)),l=Math.round(60*i),x=(0,H.useMemo)(()=>Ot(),[]),u=(0,H.useMemo)(()=>{if(!e)return"#00e676";let p=e.toLowerCase().trim();return tt[p]?tt[p]:e},[e]),M=(0,H.useMemo)(()=>{let p=[],w=1+Math.sqrt(i)*.8;for(let v=0;v<l;v++)p.push({x:(Math.random()-.5)*12,y:(Math.random()-.5)*6,z:(Math.random()-.5)*3,speedY:(Math.random()-.5)*.8,speedX:(Math.random()-.5)*.8,size:(.8+Math.random()*1.2)*w,phase:Math.random()*Math.PI*2,life:Math.random()});return p},[l,i]),f=(0,H.useCallback)(()=>{s.current=!0},[]),k=(0,H.useCallback)(()=>{s.current=!1},[]);return(0,H.useEffect)(()=>(window.addEventListener("pointerdown",f),window.addEventListener("pointerup",k),()=>{window.removeEventListener("pointerdown",f),window.removeEventListener("pointerup",k)}),[f,k]),(0,we.useFrame)((p,w)=>{if(!c.current||!o)return;let v=p.clock.getElapsedTime()*r;if(s.current){let y=d.x*7,E=d.y*4;a.current.length<15&&a.current.push({x:y+(Math.random()-.5)*.5,y:E+(Math.random()-.5)*.5,z:(Math.random()-.5)*1,life:1,size:(1.2+Math.random()*.8)*Math.sqrt(i)})}a.current=a.current.map(y=>(y.life-=w*1.2*r,y)).filter(y=>y.life>0),m.current&&(m.current.intensity=2.5+Math.sin(v*6)*.5),M.forEach((y,E)=>{let h=y.x+Math.sin(v*1.2+y.phase)*1.5,T=y.y+Math.cos(v*.9+y.phase*1.3)*1.2,S=y.z+Math.sin(v*.7+y.phase*.8)*.8,N=y.size*(1+Math.sin(v*2+E)*.25);b.current.position.set(h,T,S),b.current.scale.set(N,N,N),b.current.updateMatrix(),c.current.setMatrixAt(E,b.current.matrix)}),a.current.forEach((y,E)=>{let h=(l-1-E+l)%l,T=Math.sin(y.life*Math.PI)*y.size;b.current.position.set(y.x,y.y,y.z),b.current.scale.set(T,T,T),b.current.updateMatrix(),c.current.setMatrixAt(h,b.current.matrix)}),c.current.instanceMatrix.needsUpdate=!0}),o?React.createElement("group",null,React.createElement("pointLight",{ref:m,position:[0,0,2],color:u,intensity:3,distance:12}),React.createElement("instancedMesh",{ref:c,args:[void 0,void 0,l]},React.createElement("planeGeometry",{args:[1.8,1.8]}),React.createElement("meshBasicMaterial",{map:x,color:u,transparent:!0,opacity:.85,blending:Z.NormalBlending,depthWrite:!1,side:Z.DoubleSide}))):null}var ft=require("react"),pt=require("next-intl");var rt=require("next-intl/routing"),nt=require("next-intl/navigation"),Dt=(0,rt.defineRouting)({locales:["en","es"],defaultLocale:"en"}),{Link:D,redirect:ir,usePathname:ot,useRouter:at}=(0,nt.createNavigation)(Dt);var st=require("next-intl");var it=require("lucide-react");function He(){let t=(0,st.useLocale)(),e=at(),r=ot();return React.createElement("button",{onClick:()=>{let o=t==="en"?"es":"en";e.replace(r,{locale:o})},className:"flex items-center gap-2 text-sm font-medium text-muted-foreground hover:text-white transition-colors uppercase tracking-wider"},React.createElement(it.Globe,{className:"w-4 h-4"}),t==="en"?"ES":"EN")}var Ee=F(require("react")),dt=require("@radix-ui/react-slot"),ut=require("class-variance-authority");var lt=require("clsx"),ct=require("tailwind-merge");function mt(...t){return(0,ct.twMerge)((0,lt.clsx)(t))}var Wt=(0,ut.cva)("inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium cursor-pointer transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 disabled:cursor-not-allowed [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",{variants:{variant:{default:"bg-primary text-primary-foreground shadow hover:bg-primary/90",destructive:"bg-destructive text-destructive-foreground shadow-sm hover:bg-destructive/90",outline:"border border-input bg-background shadow-sm hover:bg-accent hover:text-accent-foreground",secondary:"bg-secondary text-secondary-foreground shadow-sm hover:bg-secondary/80",ghost:"hover:bg-accent hover:text-accent-foreground",link:"text-primary underline-offset-4 hover:underline"},size:{default:"h-9 px-4 py-2",sm:"h-8 rounded-md px-3 text-xs",lg:"h-10 rounded-md px-8",icon:"h-9 w-9"}},defaultVariants:{variant:"default",size:"default"}}),oe=Ee.forwardRef((c,d)=>{var m=c,{className:t,variant:e,size:r,asChild:n=!1}=m,o=De(m,["className","variant","size","asChild"]);return Ee.createElement(n?dt.Slot:"button",L({className:mt(Wt({variant:e,size:r,className:t})),ref:d},o))});oe.displayName="Button";function ue({cinemaName:t="NOVA",webTheme:e="neon"}){let r=(0,pt.useTranslations)(),[n,o]=(0,ft.useState)(!1),d=e==="noir"?"bg-slate-900/40 mix-blend-color":e==="crimson"?"bg-red-900/30 mix-blend-color":"bg-blue-900/20 mix-blend-color";return React.createElement("div",{className:`min-h-screen bg-black text-white selection:bg-white/30 font-sans transition-colors duration-1000 group theme-${e}`},React.createElement("nav",{className:"absolute top-0 left-0 right-0 z-50 flex items-center justify-between px-4 sm:px-8 py-4 sm:py-6 bg-black/40 sm:bg-transparent backdrop-blur-md sm:backdrop-blur-none border-b border-white/10 sm:border-none"},React.createElement("div",{className:"flex items-center gap-6 lg:gap-12"},React.createElement(D,{href:"/",className:"text-2xl sm:text-3xl font-bold tracking-tighter uppercase font-display text-white"},t,"."),React.createElement("div",{className:"hidden md:flex items-center gap-6 lg:gap-8 text-sm font-semibold tracking-widest text-white/70"},React.createElement(D,{href:"/schedule",className:"hover:text-white transition-colors"},r("nav.schedule")),React.createElement(D,{href:"/experiences",className:"hover:text-white transition-colors"},r("nav.experiences")),React.createElement(D,{href:"/membership",className:"hover:text-white transition-colors"},r("nav.membership")))),React.createElement("div",{className:"flex items-center gap-3 sm:gap-6"},React.createElement(He,null),React.createElement("div",{className:"hidden sm:flex items-center gap-4"},React.createElement(D,{href:"/login",className:"text-sm font-semibold tracking-widest text-white/70 hover:text-white transition-colors"},r("nav.login")),React.createElement(oe,{variant:"outline",className:"rounded-none border-white/40 text-white bg-transparent hover:bg-white hover:text-black transition-colors font-semibold tracking-widest text-xs px-6 py-5 uppercase"},r("nav.bookTickets"))),React.createElement("button",{onClick:()=>o(!n),className:"md:hidden p-2 rounded-lg bg-white/10 hover:bg-white/20 text-white text-lg focus:outline-none transition-colors cursor-pointer","aria-label":"Toggle Navigation Menu"},n?"\u2715":"\u2630"))),n&&React.createElement("div",{className:"fixed inset-0 z-40 bg-black/95 backdrop-blur-2xl md:hidden flex flex-col justify-between p-8 pt-24 animate-fade-in"},React.createElement("div",{className:"flex flex-col gap-6 text-xl font-bold tracking-wider uppercase font-display"},React.createElement(D,{href:"/schedule",onClick:()=>o(!1),className:"py-2 border-b border-white/10 hover:text-amber-400 transition-colors"},r("nav.schedule")),React.createElement(D,{href:"/experiences",onClick:()=>o(!1),className:"py-2 border-b border-white/10 hover:text-amber-400 transition-colors"},r("nav.experiences")),React.createElement(D,{href:"/membership",onClick:()=>o(!1),className:"py-2 border-b border-white/10 hover:text-amber-400 transition-colors"},r("nav.membership")),React.createElement(D,{href:"/login",onClick:()=>o(!1),className:"py-2 border-b border-white/10 text-white/70 hover:text-white transition-colors"},r("nav.login"))),React.createElement("div",{className:"flex flex-col gap-3 pt-6 border-t border-white/10"},React.createElement(oe,{onClick:()=>o(!1),className:"w-full rounded-none bg-amber-400 text-black hover:bg-amber-300 font-extrabold tracking-widest text-sm py-4 uppercase"},r("nav.bookTickets")))),React.createElement("div",{className:"relative h-screen w-full flex flex-col justify-end pb-28 sm:pb-24 px-4 sm:px-8 md:px-16 overflow-hidden"},React.createElement("div",{className:"absolute inset-0 z-0"},React.createElement("div",{className:"absolute inset-0 bg-[url('https://images.unsplash.com/photo-1605810230434-7631ac76ec81?q=80&w=2560&auto=format&fit=crop')] bg-cover bg-center"}),React.createElement("div",{className:"absolute inset-0 bg-gradient-to-t from-black via-black/50 to-transparent z-10"}),React.createElement("div",{className:`absolute inset-0 ${d} z-10`})),React.createElement("div",{className:"relative z-20 max-w-5xl"},React.createElement("div",{className:"flex items-center gap-2 sm:gap-3 mb-4 sm:mb-6 flex-wrap"},React.createElement("span",{className:"bg-blue-600 text-white text-[9px] sm:text-[10px] font-bold px-2.5 sm:px-3 py-1 tracking-widest"},r("hero.genreImax")),React.createElement("span",{className:"border border-white/20 text-white/80 text-[9px] sm:text-[10px] font-bold px-2.5 sm:px-3 py-1 tracking-widest"},r("hero.genreAction"))),React.createElement("h1",{className:"text-4xl sm:text-6xl md:text-7xl lg:text-[8rem] leading-[0.9] sm:leading-[0.85] font-display font-black tracking-tighter mb-4 sm:mb-6 uppercase drop-shadow-2xl"},r("hero.title")),React.createElement("p",{className:"max-w-2xl text-sm sm:text-lg md:text-xl text-white/70 font-medium mb-6 sm:mb-10 leading-relaxed drop-shadow-md line-clamp-3 sm:line-clamp-none"},r("hero.synopsis")),React.createElement("div",{className:"flex flex-col sm:flex-row items-stretch sm:items-center gap-3 sm:gap-4 w-full sm:w-auto"},React.createElement(oe,{className:"rounded-none bg-white text-black hover:bg-white/90 font-bold tracking-widest text-xs px-6 sm:px-8 py-5 sm:py-6 uppercase transition-transform hover:scale-105 active:scale-95 w-full sm:w-auto"},r("hero.getTickets")),React.createElement(oe,{variant:"outline",className:"rounded-none border-white/30 text-white bg-black/20 backdrop-blur-md hover:bg-white/10 transition-colors font-bold tracking-widest text-xs px-6 sm:px-8 py-5 sm:py-6 uppercase w-full sm:w-auto"},r("hero.watchTrailer"))))))}var ht={cinema:"/fonts/cinema_display.typeface.json",helvetiker:"https://threejs.org/examples/fonts/helvetiker_bold.typeface.json",gentilis:"https://threejs.org/examples/fonts/gentilis_bold.typeface.json",optimer:"https://threejs.org/examples/fonts/optimer_bold.typeface.json"},gt={rojo:"#3b0712",azul:"#021a38",verde:"#032117",esmeralda:"#032117",dorado:"#1c1503",negro:"#07080c",purpura:"#21032a"},bt={gold:"radial-gradient(circle at center, #1c1503 0%, #080601 60%, #020201 100%)",neon:"radial-gradient(circle at center, #021a1e 0%, #030d14 60%, #010408 100%)",emerald:"radial-gradient(circle at center, #032117 0%, #02120d 60%, #010705 100%)",crimson:"radial-gradient(circle at center, #240409 0%, #120205 60%, #060102 100%)",obsidian:"radial-gradient(circle at center, #120d24 0%, #080512 60%, #030206 100%)",glass:"radial-gradient(circle at center, #0f172a 0%, #070b14 60%, #020205 100%)"};function Xt(t,e=.85){let n=-(t.length*e)/2+e/2;return t.split("").map((o,d)=>[n+d*e,0,0])}function Ut(t){let e=[];t?Array.isArray(t)?e=t.map(a=>String(a).toLowerCase().trim()):typeof t=="string"&&(e=t.toLowerCase().split(",").map(a=>a.trim())):e=["flames"];let r=e.includes("all")||e.includes("todos")||e.includes("supernova")||e.includes("inferno"),n=r||e.includes("flames")||e.includes("fluid-flames")||e.includes("llamas")||e.includes("llamas-organicas"),o=r||e.includes("fire")||e.includes("crystal-flames")||e.includes("cristales")||e.includes("fuego"),d=r||e.includes("blobs")||e.includes("energy-blobs")||e.includes("plasma-blobs")||e.includes("nubes"),c=r||e.includes("sparks")||e.includes("chispas"),m=r||e.includes("shockwave")||e.includes("wave")||e.includes("onda")||e.includes("onda-3d"),b=r||e.includes("plasma")||e.includes("electric"),s=r||e.includes("embers")||e.includes("ascuas")||n||o||d;return{enableFluidFlames:n,enableCrystalFlames:o,enableBlobs:d,enableSparks:c,enableShockwave:m,enablePlasma:b,enableEmbers:s}}function Te({containerToDisplay:t,containerSelector:e,effect:r="flames",title:n,backgroundColor:o,effectColor:d,effectSpeed:c=.5,effectDensity:m=.3,autoFitText:b=!0,loaderDuration:s,redirectUrl:a,onComplete:i,fontFamily:l="cinema",fontUrl:x,theme:u="crimson",letterSpacing:M=.85,className:f="",style:k,children:p}){let w=n!=null?n.trim().toUpperCase():"",v=w?w.split(""):[],y=(0,g.useMemo)(()=>Xt(w,M),[w,M]),E=!!(s&&s>0&&(a||i)),[h,T]=(0,g.useState)(0);(0,g.useEffect)(()=>{if(!E||!s)return;let C=s*1e3,P=50,Le=0,Ie=setInterval(()=>{Le+=P;let Ct=Math.min(100,Le/C*100);T(Ct),Le>=C&&(clearInterval(Ie),i==null||i(),a&&(window.location.href=a))},P);return()=>clearInterval(Ie)},[E,s,a,i]);let S=(0,g.useMemo)(()=>{if(x)return x;let C=String(l).toLowerCase().trim();return ht[C]||ht.cinema},[l,x]),[N,ae]=(0,g.useState)(typeof window!="undefined"?window.innerWidth:1200);(0,g.useEffect)(()=>{let C=()=>ae(window.innerWidth);return window.addEventListener("resize",C),()=>window.removeEventListener("resize",C)},[]);let se=(0,g.useMemo)(()=>{if(!b||!v.length)return 1;let C=v.length,P=1;return C<=4?P=1:C<=7?P=.85:C<=10?P=.7:C<=14?P=.55:P=.45,N<480?P*.55:N<768?P*.75:P},[b,v.length,N]),W=(0,g.useMemo)(()=>{if(!o)return bt[u]||bt.gold;let C=o.toLowerCase().trim();return gt[C]?gt[C]:(o.startsWith("#")||o.startsWith("rgb")||o.includes("gradient"),o)},[o,u]),z=(0,g.useMemo)(()=>Ut(r),[r]),kt=z.enableFluidFlames&&z.enableCrystalFlames?"all":z.enableCrystalFlames?"crystal":"fluid",Tt=z.enableFluidFlames||z.enableCrystalFlames,Ae=e||(typeof t=="string"?t:void 0),ze=()=>Ae==="lhome"||Ae==="home"||t==="lhome"||t==="home"?g.default.createElement(ue,{cinemaName:w||"NOVA",webTheme:u}):typeof t=="string"&&t!=="lhome"&&t!=="home"?g.default.createElement("div",{className:"text-center text-white p-8 bg-black/40 backdrop-blur-md rounded-2xl border border-white/10"},g.default.createElement("h2",{className:"text-3xl font-bold tracking-widest uppercase mb-2"},t),g.default.createElement("p",{className:"text-sm text-white/60"},"3D Interactive WebGL Background")):t&&typeof t!="string"?t:p;return g.default.createElement("div",{id:e,"data-container-selector":e,className:`relative w-full h-full overflow-hidden select-none ${f}`,style:L({background:W},k)},E&&g.default.createElement("div",{className:"absolute top-0 left-0 right-0 z-30 h-1 bg-white/10 pointer-events-none"},g.default.createElement("div",{className:"h-full bg-gradient-to-r from-amber-400 via-rose-500 to-cyan-400 transition-all duration-75",style:{width:`${h}%`}})),g.default.createElement("div",{className:"absolute inset-0 z-0 pointer-events-auto"},g.default.createElement(xt.Canvas,{camera:{position:[0,0,14],fov:45,near:.1,far:50},dpr:[1,2],gl:{antialias:!0,toneMapping:4,toneMappingExposure:1.2}},g.default.createElement(g.Suspense,{fallback:null},g.default.createElement(ke.Environment,{preset:"studio"}),g.default.createElement("ambientLight",{intensity:.3}),g.default.createElement("directionalLight",{position:[5,8,5],intensity:1.5,color:"#ffffff"}),g.default.createElement("pointLight",{position:[-5,-3,-5],intensity:.6,color:u==="emerald"?"#10b981":u==="crimson"?"#ff1744":u==="neon"?"#00ffff":"#FFD700"}),g.default.createElement(j,{phase:E?"entering":"idle",effectSpeed:c}),g.default.createElement(me,{enabled:Tt,theme:u,effectColor:d,effectSpeed:c,effectDensity:m,mode:kt}),g.default.createElement(de,{enabled:z.enableBlobs,theme:u,effectColor:d,effectSpeed:c,effectDensity:m}),g.default.createElement(Y,{enabled:z.enableSparks,theme:u,effectColor:d,effectSpeed:c}),g.default.createElement(V,{enabled:z.enableShockwave,theme:u,effectColor:d,effectSpeed:c}),g.default.createElement($,{enabled:z.enablePlasma,theme:u,effectColor:d,effectSpeed:c}),v.length>0&&g.default.createElement(ke.Center,{disableY:!0,disableZ:!0},g.default.createElement("group",{scale:se},v.map((C,P)=>g.default.createElement(X,{key:`${C}-${P}`,char:C,index:P,totalLetters:v.length,position:y[P],phase:E?"entering":"idle",theme:u,fontUrl:S})))),g.default.createElement(U,{theme:u,effectColor:d,effectSpeed:c,visible:z.enableEmbers}),g.default.createElement(q.EffectComposer,null,g.default.createElement(q.Bloom,{luminanceThreshold:.7,luminanceSmoothing:.9,intensity:u==="neon"||u==="crimson"?1.4:.9,mipmapBlur:!0}),g.default.createElement(q.Vignette,{offset:.3,darkness:.85}),g.default.createElement(q.Noise,{opacity:.025}))))),ze()&&g.default.createElement("div",{className:"relative z-10 w-full h-full pointer-events-none flex flex-col items-center justify-center"},g.default.createElement("div",{className:"pointer-events-auto w-full h-full"},ze())))}var Be=F(require("react"));var re=require("react"),yt=require("@react-three/fiber"),Ce=require("@react-three/drei"),K=require("@react-three/postprocessing");var vt={gold:"radial-gradient(circle at center, #1c1503 0%, #080601 60%, #020201 100%)",neon:"radial-gradient(circle at center, #021a1e 0%, #030d14 60%, #010408 100%)",emerald:"radial-gradient(circle at center, #032117 0%, #02120d 60%, #010705 100%)",crimson:"radial-gradient(circle at center, #240409 0%, #120205 60%, #060102 100%)",obsidian:"radial-gradient(circle at center, #120d24 0%, #080512 60%, #030206 100%)",glass:"radial-gradient(circle at center, #0f172a 0%, #070b14 60%, #020205 100%)"},jt="/fonts/cinema_display.typeface.json";function Yt(t){let n=-(t.length*.65)/2;return t.split("").map((o,d)=>[n+d*.65,0,0])}function fe({text:t="CINEMA",theme:e="emerald",customBackground:r,interactiveSparks:n=!0,interactiveShockwave:o=!0,interactivePlasma:d=!0,showParticles:c=!0,enableBloom:m=!0,className:b="",style:s,children:a}){let[i,l]=(0,re.useState)(t),[x,u]=(0,re.useState)(e),M=(i||t||"CINEMA").toUpperCase(),f=M.split(""),k=(0,re.useMemo)(()=>Yt(M),[M]),p=x||e||"emerald",w=r||vt[p]||vt.emerald;return React.createElement("div",{className:`relative w-full h-full min-h-[350px] overflow-hidden select-none ${b}`,style:L({background:w},s)},React.createElement("div",{className:"absolute inset-0 z-0 pointer-events-auto"},React.createElement(yt.Canvas,{camera:{position:[0,0,14],fov:45,near:.1,far:50},dpr:[1,2],gl:{antialias:!0,toneMapping:4,toneMappingExposure:1.2}},React.createElement(re.Suspense,{fallback:null},React.createElement(Ce.Environment,{preset:"studio"}),React.createElement("ambientLight",{intensity:.3}),React.createElement("directionalLight",{position:[5,8,5],intensity:1.5,color:"#ffffff"}),React.createElement("pointLight",{position:[-5,-3,-5],intensity:.6,color:p==="emerald"?"#10b981":p==="crimson"?"#ff1744":p==="neon"?"#00ffff":"#FFD700"}),React.createElement(j,{phase:"idle"}),React.createElement(Y,{enabled:n,theme:p}),React.createElement(V,{enabled:o,theme:p}),React.createElement($,{enabled:d,theme:p}),React.createElement(Ce.Center,{disableY:!0,disableZ:!0},React.createElement("group",null,f.map((v,y)=>React.createElement(X,{key:`${v}-${y}`,char:v,index:y,totalLetters:f.length,position:k[y],phase:"idle",theme:p,fontUrl:jt})))),c&&React.createElement(U,{theme:p,visible:!0}),React.createElement(K.EffectComposer,null,React.createElement(K.Bloom,{luminanceThreshold:.7,luminanceSmoothing:.9,intensity:m?.9:0,mipmapBlur:!0}),React.createElement(K.Vignette,{offset:.3,darkness:.85}),React.createElement(K.Noise,{opacity:.025}))))),a&&React.createElement("div",{className:"relative z-10 w-full h-full pointer-events-none flex flex-col items-center justify-center"},a))}function Mt(t,e={}){let r=n=>Be.default.createElement(fe,L({},e),Be.default.createElement(t,L({},n)));return r.displayName=`WithCinema3D(${t.displayName||t.name||"Component"})`,r}var B=require("react"),Et=require("@react-three/fiber"),Se=require("@react-three/drei"),J=require("@react-three/postprocessing");var Vt=[{key:"gold",label:"Gold",color:"#FFD700"},{key:"neon",label:"Neon",color:"#00ffff"},{key:"emerald",label:"Emerald",color:"#10b981"},{key:"crimson",label:"Crimson",color:"#ff1744"},{key:"obsidian",label:"Obsidian",color:"#a855f7"},{key:"glass",label:"Glass",color:"#ffffff"}];function pe({phase:t,cinemaName:e,theme:r,effects:n,onTitleChange:o,onThemeChange:d,onToggleEffect:c}){return React.createElement("div",{className:"absolute inset-0 pointer-events-none z-10 flex flex-col items-center justify-between p-6 md:p-10",style:{opacity:t==="exiting"?0:1,transition:"opacity 0.8s ease-out"}},React.createElement("div",{className:"w-full max-w-xl flex flex-col items-center gap-2 pointer-events-auto",style:{opacity:t==="idle"||t==="entering"?1:0,transform:t==="idle"||t==="entering"?"translateY(0)":"translateY(-20px)",transition:"all 1s ease-out 0.3s"}},React.createElement("label",{className:"text-[10px] tracking-[0.3em] uppercase text-white/50 font-bold"},"Live 3D Title Control"),React.createElement("div",{className:"relative w-full"},React.createElement("input",{type:"text",value:e,onChange:s=>o(s.target.value),maxLength:18,placeholder:"Type any title...",className:"w-full px-6 py-3 rounded-full text-center text-sm md:text-base font-bold tracking-widest uppercase outline-none transition-all duration-300",style:{background:"rgba(255, 255, 255, 0.08)",backdropFilter:"blur(16px)",border:"1px solid rgba(255, 255, 255, 0.2)",color:"#ffffff",boxShadow:"0 8px 32px rgba(0, 0, 0, 0.37)"}}))),t==="loading"&&React.createElement("div",{className:"absolute inset-0 flex items-center justify-center"},React.createElement("div",{className:"w-16 h-16 rounded-full border-2 animate-spin",style:{borderColor:"transparent",borderTopColor:"rgba(255, 215, 0, 0.8)",borderRightColor:"rgba(255, 215, 0, 0.3)"}})),React.createElement("div",{className:"w-full max-w-3xl flex flex-col items-center gap-5"},React.createElement("div",{className:"flex flex-wrap items-center justify-center gap-2 pointer-events-auto",style:{opacity:t==="idle"||t==="entering"?1:0,transition:"opacity 1s ease-out 0.8s"}},React.createElement("span",{className:"text-[9px] uppercase tracking-[0.25em] text-white/40 mr-2 font-bold"},"Effects"),React.createElement("button",{onClick:()=>c("sparks"),className:`px-4 py-1.5 rounded-full text-[11px] font-bold tracking-wider uppercase transition-all duration-300 cursor-pointer ${n.sparks?"bg-amber-500/30 text-amber-200 border-amber-400/60 shadow-[0_0_15px_rgba(245,158,11,0.4)]":"bg-white/5 text-white/40 border-white/10 hover:text-white/70"} border`},"\u{1F525} Sparks"),React.createElement("button",{onClick:()=>c("shockwave"),className:`px-4 py-1.5 rounded-full text-[11px] font-bold tracking-wider uppercase transition-all duration-300 cursor-pointer ${n.shockwave?"bg-cyan-500/30 text-cyan-200 border-cyan-400/60 shadow-[0_0_15px_rgba(6,182,212,0.4)]":"bg-white/5 text-white/40 border-white/10 hover:text-white/70"} border`},"\u{1F30A} Wave"),React.createElement("button",{onClick:()=>c("plasma"),className:`px-4 py-1.5 rounded-full text-[11px] font-bold tracking-wider uppercase transition-all duration-300 cursor-pointer ${n.plasma?"bg-purple-500/30 text-purple-200 border-purple-400/60 shadow-[0_0_15px_rgba(168,85,247,0.4)]":"bg-white/5 text-white/40 border-white/10 hover:text-white/70"} border`},"\u26A1 Plasma"),React.createElement("button",{onClick:()=>c("embers"),className:`px-4 py-1.5 rounded-full text-[11px] font-bold tracking-wider uppercase transition-all duration-300 cursor-pointer ${n.embers?"bg-emerald-500/30 text-emerald-200 border-emerald-400/60 shadow-[0_0_15px_rgba(16,185,129,0.4)]":"bg-white/5 text-white/40 border-white/10 hover:text-white/70"} border`},"\u2728 Embers")),React.createElement("div",{className:"flex items-center gap-3 pointer-events-auto",style:{opacity:t==="idle"||t==="entering"?1:0,transition:"opacity 1s ease-out 1.2s"}},React.createElement("span",{className:"text-[10px] uppercase tracking-[0.3em] text-white/40 mr-2 font-bold"},"Theme"),React.createElement("div",{className:"flex items-center gap-2 md:gap-3"},Vt.map(s=>{let a=r===s.key;return React.createElement("button",{key:s.key,onClick:()=>d(s.key),className:"group relative flex flex-col items-center gap-1.5 cursor-pointer outline-none","aria-label":`Switch to ${s.label} theme`},React.createElement("div",{className:"relative w-11 h-7 md:w-14 md:h-9 rounded-md overflow-hidden transition-all duration-300",style:{border:a?`2px solid ${s.color}`:"1px solid rgba(255, 255, 255, 0.15)",transform:a?"scale(1.1) translateY(-2px)":"scale(1) translateY(0)",boxShadow:a?`0 4px 20px ${s.color}60`:"0 2px 10px rgba(0,0,0,0.5)"}},React.createElement("div",{className:"absolute inset-0 opacity-80",style:{backgroundColor:s.color}})),React.createElement("span",{className:"text-[9px] uppercase tracking-widest font-semibold transition-colors duration-300",style:{color:a?"#ffffff":"rgba(255, 255, 255, 0.4)"}},s.label))})))))}var $t="/fonts/cinema_display.typeface.json",wt={gold:"radial-gradient(circle at center, #1c1503 0%, #080601 60%, #020201 100%)",neon:"radial-gradient(circle at center, #021a1e 0%, #030d14 60%, #010408 100%)",emerald:"radial-gradient(circle at center, #032117 0%, #02120d 60%, #010705 100%)",crimson:"radial-gradient(circle at center, #240409 0%, #120205 60%, #060102 100%)",obsidian:"radial-gradient(circle at center, #120d24 0%, #080512 60%, #030206 100%)",glass:"radial-gradient(circle at center, #0f172a 0%, #070b14 60%, #020205 100%)"};function Gt(t){let n=-(t.length*.65)/2;return t.split("").map((o,d)=>[n+d*.65,0,0])}function Fe({cinemaName:t="CINEMULTIPLEX",defaultTheme:e="emerald",customBackground:r,onEnterCinema:n}){let[o,d]=(0,B.useState)("loading"),[c,m]=(0,B.useState)(e),[b,s]=(0,B.useState)(t),[a,i]=(0,B.useState)({sparks:!0,shockwave:!0,plasma:!0,embers:!0}),l=(b||"CINEMA").toUpperCase(),x=l.split(""),u=(0,B.useMemo)(()=>Gt(l),[l]);(0,B.useEffect)(()=>{let p=setTimeout(()=>d("entering"),800),w=x.length*120+1500,v=setTimeout(()=>d("idle"),800+w);return()=>{clearTimeout(p),clearTimeout(v)}},[x.length]);let M=(0,B.useCallback)(()=>{d("exiting"),setTimeout(()=>{n&&n()},1800)},[n]),f=(0,B.useCallback)(p=>{i(w=>Q(L({},w),{[p]:!w[p]}))},[]),k=r||wt[c]||wt.emerald;return React.createElement("div",{className:"fixed inset-0 w-screen h-screen transition-all duration-1000 select-none overflow-hidden",style:{background:k}},React.createElement(Et.Canvas,{camera:{position:[0,0,14],fov:45,near:.1,far:50},dpr:[1,2],gl:{antialias:!0,toneMapping:4,toneMappingExposure:1.2}},React.createElement(B.Suspense,{fallback:null},React.createElement(Se.Environment,{preset:"studio"}),React.createElement("ambientLight",{intensity:.3}),React.createElement("directionalLight",{position:[5,8,5],intensity:1.5,color:"#ffffff"}),React.createElement("pointLight",{position:[-5,-3,-5],intensity:.6,color:c==="emerald"?"#10b981":c==="crimson"?"#ff1744":c==="neon"?"#00ffff":"#FFD700"}),React.createElement("spotLight",{position:[0,10,0],angle:.4,penumbra:.8,intensity:.9,color:"#ffffff"}),React.createElement("pointLight",{position:[0,0,-5],intensity:.4,color:"#ffffff"}),React.createElement(j,{phase:o}),a.sparks&&React.createElement(Y,{theme:c}),React.createElement(V,{theme:c,enabled:a.shockwave}),React.createElement($,{theme:c,enabled:a.plasma}),React.createElement(Se.Center,{disableY:!0,disableZ:!0},React.createElement("group",null,x.map((p,w)=>React.createElement(X,{key:`${p}-${w}`,char:p,index:w,totalLetters:x.length,position:u[w],phase:o,theme:c,fontUrl:$t})))),React.createElement(U,{theme:c,visible:o!=="loading"&&a.embers}),React.createElement(J.EffectComposer,null,React.createElement(J.Bloom,{luminanceThreshold:.7,luminanceSmoothing:.9,intensity:c==="neon"||c==="emerald"||c==="crimson"?1.4:.7,mipmapBlur:!0}),React.createElement(J.Vignette,{offset:.3,darkness:.85}),React.createElement(J.Noise,{opacity:.025})))),React.createElement(pe,{phase:o,cinemaName:b,theme:c,effects:a,onTitleChange:s,onThemeChange:m,onToggleEffect:f}))}0&&(module.exports={AnimatedBackground,AnimatedLetter,CameraRig,CinemaBackground,CinemaHome,CinemaLoader,ClickFireSparks,ClickShockwave,ElectricPlasma,FireFlames,LoaderOverlay,PlasmaBlobs,SceneParticles,withCinema3D});
1
+ "use client";
2
+ import React from "react";
3
+ "use strict";var Dt=Object.create;var ge=Object.defineProperty,Wt=Object.defineProperties,Xt=Object.getOwnPropertyDescriptor,Ut=Object.getOwnPropertyDescriptors,Yt=Object.getOwnPropertyNames,Re=Object.getOwnPropertySymbols,Vt=Object.getPrototypeOf,De=Object.prototype.hasOwnProperty,Ke=Object.prototype.propertyIsEnumerable;var qe=(t,e,r)=>e in t?ge(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,P=(t,e)=>{for(var r in e||(e={}))De.call(e,r)&&qe(t,r,e[r]);if(Re)for(var r of Re(e))Ke.call(e,r)&&qe(t,r,e[r]);return t},G=(t,e)=>Wt(t,Ut(e));var Je=(t,e)=>{var r={};for(var n in t)De.call(t,n)&&e.indexOf(n)<0&&(r[n]=t[n]);if(t!=null&&Re)for(var n of Re(t))e.indexOf(n)<0&&Ke.call(t,n)&&(r[n]=t[n]);return r};var $t=(t,e)=>{for(var r in e)ge(t,r,{get:e[r],enumerable:!0})},Qe=(t,e,r,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of Yt(e))!De.call(t,o)&&o!==r&&ge(t,o,{get:()=>e[o],enumerable:!(n=Xt(e,o))||n.enumerable});return t};var j=(t,e,r)=>(r=t!=null?Dt(Vt(t)):{},Qe(e||!t||!t.__esModule?ge(r,"default",{value:t,enumerable:!0}):r,t)),Gt=t=>Qe(ge({},"__esModule",{value:!0}),t);var lr={};$t(lr,{AnimatedBackground:()=>Ie,AnimatedLetter:()=>Z,CameraRig:()=>J,CinemaBackground:()=>Ee,CinemaHome:()=>Me,CinemaLoader:()=>$e,ClickFireSparks:()=>Q,ClickShockwave:()=>ee,ElectricPlasma:()=>te,FireFlames:()=>ye,LoaderOverlay:()=>Te,PlasmaBlobs:()=>we,SceneParticles:()=>K,default:()=>Ie,withCinema3D:()=>At});module.exports=Gt(lr);var F=require("react"),Nt=require("@react-three/fiber"),Be=require("@react-three/drei"),ae=require("@react-three/postprocessing");var be=require("react"),et=require("@react-three/fiber"),tt=require("@react-three/drei"),fe=j(require("three")),xe=require("react/jsx-runtime"),jt={gold:{color:"#FFD700",metalness:1,roughness:.15,clearcoat:1,emissive:"#1a0f00",emissiveIntensity:.3,envMapIntensity:2},neon:{color:"#00ffff",metalness:0,roughness:1,clearcoat:0,emissive:"#00ffff",emissiveIntensity:2.5,envMapIntensity:.5},emerald:{color:"#10b981",metalness:.9,roughness:.1,clearcoat:1,emissive:"#065f46",emissiveIntensity:1.2,envMapIntensity:2.5},crimson:{color:"#ff1744",metalness:.8,roughness:.15,clearcoat:1,emissive:"#880e4f",emissiveIntensity:1.8,envMapIntensity:2},obsidian:{color:"#1a1a2e",metalness:1,roughness:.05,clearcoat:1,emissive:"#0a0a1a",emissiveIntensity:.1,envMapIntensity:3},glass:{color:"#ffffff",metalness:0,roughness:0,clearcoat:0,emissive:"#000000",emissiveIntensity:0,envMapIntensity:1.5,transmission:.95,ior:1.5,thickness:.5,transparent:!0}};function Z({char:t,index:e,totalLetters:r,position:n,phase:o,theme:m,fontUrl:f}){let c=(0,be.useRef)(null),d=(0,be.useRef)(null),a=(0,be.useMemo)(()=>{let l=e/r*Math.PI*2;return{x:Math.cos(l)*4+(Math.random()-.5)*2,y:-3+Math.random()*-3,z:-5+Math.random()*-3,rotX:(Math.random()-.5)*Math.PI*2,rotY:(Math.random()-.5)*Math.PI*2}},[e,r]),s=jt[m];return(0,et.useFrame)(l=>{if(!c.current)return;let i=l.clock.getElapsedTime();d.current===null&&(d.current=i);let v=i-d.current,u=e*.12;if(o==="loading"){c.current.position.set(n[0]+a.x,n[1]+a.y,n[2]+a.z),c.current.rotation.set(a.rotX,a.rotY,0),c.current.scale.setScalar(0);return}if(o==="entering"){let y=Math.max(0,v-u),p=1-Math.exp(-y*3),T=1+Math.sin(y*8)*Math.max(0,.15-y*.1);c.current.position.set(fe.MathUtils.lerp(n[0]+a.x,n[0],p),fe.MathUtils.lerp(n[1]+a.y,n[1],p),fe.MathUtils.lerp(n[2]+a.z,n[2],p)),c.current.rotation.set(fe.MathUtils.lerp(a.rotX,0,p),fe.MathUtils.lerp(a.rotY,0,p),0),c.current.scale.setScalar(Math.min(p*T,1.05));return}if(o==="idle"){let y=Math.sin(i*1.2+e*.5)*.015,p=Math.sin(i*.8+e*.3)*.008;c.current.position.set(n[0]+p,n[1]+y,n[2]),c.current.rotation.set(Math.sin(i*.5+e)*.01,Math.sin(i*.3+e*.7)*.01,0),c.current.scale.setScalar(1);return}if(o==="exiting"){let y=Math.max(0,v-u*.5),p=Math.min(y*2,1),T=p*p;c.current.position.set(n[0]+a.x*T*.5,n[1],n[2]-T*8),c.current.scale.setScalar(Math.max(1-T,0)),c.current.rotation.y+=.05}}),t===" "?null:(0,xe.jsx)("group",{ref:c,position:n,children:(0,xe.jsxs)(tt.Text3D,{font:f,size:.8,height:.35,bevelEnabled:!0,bevelSize:.02,bevelThickness:.01,bevelSegments:3,curveSegments:12,children:[t,(0,xe.jsx)("meshPhysicalMaterial",{color:s.color,metalness:s.metalness,roughness:s.roughness,clearcoat:s.clearcoat,emissive:s.emissive,emissiveIntensity:s.emissiveIntensity,envMapIntensity:s.envMapIntensity,transmission:s.transmission,ior:s.ior,thickness:s.thickness,transparent:s.transparent,toneMapped:m!=="neon"})]})})}var ce=require("react"),ot=require("@react-three/fiber"),We=require("@react-three/drei"),at=j(require("three")),q=require("react/jsx-runtime"),rt={gold:"#FFD700",neon:"#00ffff",emerald:"#10b981",crimson:"#ff1744",obsidian:"#a855f7",glass:"#ffffff"},nt={azul:"#00e5ff",verde:"#00e676",rojo:"#ff3d00",dorado:"#ffb300",purpura:"#d500f9",magenta:"#ff007f",esmeralda:"#10b981"};function Zt({color:t,speedMultiplier:e=.5,count:r=60}){let n=(0,ce.useRef)(null),o=(0,ce.useRef)(new at.Object3D),m=(0,ce.useRef)(null),f=(0,ce.useRef)(null);if(!m.current){m.current=new Float32Array(r),f.current=new Float32Array(r*3);for(let c=0;c<r;c++)m.current[c]=.1+Math.random()*.3,f.current[c*3]=(Math.random()-.5)*16,f.current[c*3+1]=(Math.random()-.5)*10,f.current[c*3+2]=(Math.random()-.5)*12}return(0,ot.useFrame)(c=>{if(!n.current||!m.current||!f.current)return;let d=c.clock.getElapsedTime()*e;for(let a=0;a<r;a++){let s=m.current[a],l=f.current[a*3],i=f.current[a*3+1],v=f.current[a*3+2];o.current.position.set(l+Math.sin(d*s+a)*2,i+Math.cos(d*s*.7+a*.5)*1.5,v+Math.sin(d*s*.5+a*.3)*2),o.current.scale.setScalar(.015+Math.sin(d+a)*.005),o.current.updateMatrix(),n.current.setMatrixAt(a,o.current.matrix)}n.current.instanceMatrix.needsUpdate=!0}),(0,q.jsxs)("instancedMesh",{ref:n,args:[void 0,void 0,r],children:[(0,q.jsx)("sphereGeometry",{args:[1,6,6]}),(0,q.jsx)("meshBasicMaterial",{color:t,transparent:!0,opacity:.3,toneMapped:!1})]})}function K({theme:t,effectColor:e,effectSpeed:r=.5,visible:n}){let o=(0,ce.useMemo)(()=>{if(!e)return rt[t]||rt.gold;let m=e.toLowerCase().trim();return nt[m]?nt[m]:e},[e,t]);return n?(0,q.jsxs)("group",{children:[(0,q.jsx)(We.Sparkles,{count:150,scale:10,size:4,speed:.3*r,opacity:.8,color:o,noise:.6}),(0,q.jsx)(We.Sparkles,{count:80,scale:16,size:2,speed:.15*r,opacity:.4,color:"#ffffff",noise:.8}),(0,q.jsx)(Zt,{color:o,speedMultiplier:r,count:50})]}):null}var Xe=require("react"),Ce=require("@react-three/fiber"),me=j(require("three"));function J({phase:t,effectSpeed:e=.5}){let{camera:r,pointer:n}=(0,Ce.useThree)(),o=(0,Xe.useRef)(null),m=(0,Xe.useRef)(t);return m.current!==t&&(m.current=t,o.current=null),(0,Ce.useFrame)(f=>{let c=f.clock.getElapsedTime()*e;o.current===null&&(o.current=c);let d=c-o.current;if(t==="loading"){r.position.set(0,0,14),r.lookAt(0,0,0);return}if(t==="entering"){let l=Math.min(d/3,1),i=1-Math.pow(1-l,3),v=me.MathUtils.lerp(14,6,i),u=me.MathUtils.lerp(1,.2,i);r.position.set(0,u,v),r.lookAt(0,0,0);return}let a=f.viewport.width/(f.viewport.height||1),s=a<1?Math.max(6,6/Math.max(.45,a*.85)):6;if(t==="idle"){let l=Math.sin(c*.1)*.2,i=Math.cos(c*.08)*.1+.2,v=n.x*.2,u=n.y*.1;r.position.x=me.MathUtils.damp(r.position.x,l+v,3,.016),r.position.y=me.MathUtils.damp(r.position.y,i+u,3,.016),r.position.z=me.MathUtils.damp(r.position.z,s,3,.016),r.lookAt(0,0,0);return}if(t==="exiting"){let l=Math.min(d/1.5,1),i=l*l*l,v=me.MathUtils.lerp(6,-8,i);r.position.set(0,0,v),r.lookAt(0,0,0)}}),null}var X=require("react"),Se=require("@react-three/fiber"),W=j(require("three"));var ne=require("react/jsx-runtime"),st={gold:["#FFD700","#FF8C00","#FF4500","#FFF8DC"],neon:["#00ffff","#0088ff","#ff00ff","#ffffff"],emerald:["#00ff88","#10b981","#059669","#a7f3d0"],crimson:["#ff1744","#d50000","#ff5252","#ffb74d"],obsidian:["#a855f7","#6366f1","#3b82f6","#ffffff"],glass:["#ffffff","#e0e7ff","#93c5fd","#60a5fa"]},qt={azul:"#00e5ff",verde:"#00e676",rojo:"#ff3d00",dorado:"#ffb300",purpura:"#d500f9",magenta:"#ff007f",esmeralda:"#10b981"};function Q({theme:t="gold",effectColor:e,effectSpeed:r=.5,enabled:n=!0}){let{camera:o,raycaster:m}=(0,Se.useThree)(),[f,c]=(0,X.useState)([]),d=(0,X.useRef)(0),a=(0,X.useMemo)(()=>{if(!e)return st[t]||st.gold;let l=e.toLowerCase().trim(),i=qt[l]||e;return[i,"#ffffff",i]},[e,t]),s=(0,X.useCallback)(l=>{if(!n)return;let i=0,v=0;if("touches"in l&&l.touches.length>0)i=l.touches[0].clientX,v=l.touches[0].clientY;else if("clientX"in l)i=l.clientX,v=l.clientY;else return;let u=new W.Vector2(i/window.innerWidth*2-1,-(v/window.innerHeight)*2+1);m.setFromCamera(u,o);let y=new W.Plane(new W.Vector3(0,0,1),0),p=new W.Vector3;if(m.ray.intersectPlane(y,p),!p)return;let T=35,b=[];for(let h=0;h<T;h++){let x=Math.random()*Math.PI*2,k=(1.5+Math.random()*4.5)*r,g=(Math.random()-.3)*3*r,R=new W.Vector3(Math.cos(x)*k,Math.sin(x)*k+g,(Math.random()-.5)*k*.8),H=a[Math.floor(Math.random()*a.length)];b.push({id:h,position:p.clone(),velocity:R,color:new W.Color(H),size:.08+Math.random()*.12,life:1,maxLife:(.6+Math.random()*.8)/Math.max(.2,r)})}let E={id:d.current++,origin:p.clone(),sparks:b,color:a[0],lightIntensity:4,time:0};c(h=>[...h.slice(-4),E])},[o,m,a,r,n]);return(0,X.useEffect)(()=>(window.addEventListener("pointerdown",s),()=>{window.removeEventListener("pointerdown",s)}),[s]),(0,Se.useFrame)((l,i)=>{f.length!==0&&c(v=>v.map(u=>{let y=u.time+i*r,p=Math.max(0,u.lightIntensity-i*8*r),T=u.sparks.map(b=>{let E=b.life-i*r/b.maxLife;if(E<=0)return null;let h=b.position.clone().addScaledVector(b.velocity,i*r);return b.velocity.y-=i*3.5*r,b.velocity.multiplyScalar(.96),G(P({},b),{position:h,life:E})}).filter(Boolean);return T.length===0&&p<=0?null:G(P({},u),{time:y,lightIntensity:p,sparks:T})}).filter(Boolean))}),(0,ne.jsx)("group",{children:f.map(l=>(0,ne.jsxs)("group",{children:[l.lightIntensity>.05&&(0,ne.jsx)("pointLight",{position:l.origin,intensity:l.lightIntensity*3,distance:6,color:l.color}),l.sparks.map(i=>(0,ne.jsxs)("mesh",{position:i.position,children:[(0,ne.jsx)("sphereGeometry",{args:[i.size*i.life,6,6]}),(0,ne.jsx)("meshBasicMaterial",{color:i.color,transparent:!0,opacity:i.life,toneMapped:!1})]},i.id))]},l.id))})}var U=require("react"),Le=require("@react-three/fiber"),O=j(require("three"));var ue=require("react/jsx-runtime"),it={gold:"#FFD700",neon:"#00ffff",emerald:"#10b981",crimson:"#ff1744",obsidian:"#a855f7",glass:"#ffffff"},lt={azul:"#00e5ff",verde:"#00e676",rojo:"#ff3d00",dorado:"#ffb300",purpura:"#d500f9",magenta:"#ff007f",esmeralda:"#10b981"};function ee({theme:t="gold",effectColor:e,effectSpeed:r=.5,enabled:n=!0}){let{camera:o,raycaster:m}=(0,Le.useThree)(),[f,c]=(0,U.useState)([]),d=(0,U.useRef)(0),a=(0,U.useMemo)(()=>{if(!e)return it[t]||it.gold;let l=e.toLowerCase().trim();return lt[l]?lt[l]:e},[e,t]),s=(0,U.useCallback)(l=>{if(!n)return;let i=0,v=0;if("touches"in l&&l.touches.length>0)i=l.touches[0].clientX,v=l.touches[0].clientY;else if("clientX"in l)i=l.clientX,v=l.clientY;else return;let u=new O.Vector2(i/window.innerWidth*2-1,-(v/window.innerHeight)*2+1);m.setFromCamera(u,o);let y=new O.Plane(new O.Vector3(0,0,1),0),p=new O.Vector3;if(m.ray.intersectPlane(y,p),!p)return;let T={id:d.current++,origin:p.clone(),radius:.1,maxRadius:3.5,life:1,color:new O.Color(a)};c(b=>[...b.slice(-4),T])},[o,m,a,n]);return(0,U.useEffect)(()=>(window.addEventListener("pointerdown",s),()=>{window.removeEventListener("pointerdown",s)}),[s]),(0,Le.useFrame)((l,i)=>{f.length!==0&&c(v=>v.map(u=>{let y=u.life-i*1.8*r;if(y<=0)return null;let p=u.radius+i*5*r;return G(P({},u),{life:y,radius:p})}).filter(Boolean))}),n?(0,ue.jsx)("group",{children:f.map(l=>(0,ue.jsxs)("mesh",{position:l.origin,rotation:[0,0,0],children:[(0,ue.jsx)("ringGeometry",{args:[l.radius*.9,l.radius,48]}),(0,ue.jsx)("meshBasicMaterial",{color:l.color,transparent:!0,opacity:l.life*.75,side:O.DoubleSide,toneMapped:!1})]},l.id))}):null}var ve=require("react"),Ne=require("@react-three/fiber"),Pe=j(require("three")),Ue=require("react/jsx-runtime"),ct={gold:"#ffaa00",neon:"#00ffff",emerald:"#00ffaa",crimson:"#ff0055",obsidian:"#9900ff",glass:"#88ccff"},mt={azul:"#00e5ff",verde:"#00e676",rojo:"#ff3d00",dorado:"#ffb300",purpura:"#d500f9",magenta:"#ff007f",esmeralda:"#10b981"};function te({theme:t="neon",effectColor:e,effectSpeed:r=.5,enabled:n=!0}){let{pointer:o}=(0,Ne.useThree)(),m=(0,ve.useRef)(null),f=(0,ve.useMemo)(()=>{if(!e)return ct[t]||ct.neon;let a=e.toLowerCase().trim();return mt[a]?mt[a]:e},[e,t]),c=30,d=(0,ve.useMemo)(()=>{let a=new Pe.BufferGeometry,s=new Float32Array(c*2*3);return a.setAttribute("position",new Pe.BufferAttribute(s,3)),a},[c]);return(0,Ne.useFrame)(a=>{if(!m.current||!n)return;let s=a.clock.getElapsedTime()*r,l=m.current.geometry.attributes.position,i=l.array,v=o.x*6,u=o.y*3;for(let y=0;y<c;y++){let p=y*6,T=y/c*Math.PI*2+s*1.5,b=2.5+Math.sin(s*3+y)*.5,E=Math.cos(T)*b,h=Math.sin(T)*b,x=(Math.random()-.5)*1.5,k=E+(v-E)*.3+(Math.random()-.5)*.8,g=h+(u-h)*.3+(Math.random()-.5)*.8,R=x+(Math.random()-.5)*.8;i[p]=E,i[p+1]=h,i[p+2]=x,i[p+3]=k,i[p+4]=g,i[p+5]=R}l.needsUpdate=!0}),n?(0,Ue.jsx)("lineSegments",{ref:m,geometry:d,children:(0,Ue.jsx)("lineBasicMaterial",{color:f,transparent:!0,opacity:.75,linewidth:2,toneMapped:!1})}):null}var A=require("react"),He=require("@react-three/fiber"),re=j(require("three")),Y=require("react/jsx-runtime"),dt={crimson:{color1:"#ff3d00",color2:"#ff9100",light:"#ff1744"},gold:{color1:"#ffb300",color2:"#ffe082",light:"#FFD700"},emerald:{color1:"#00e676",color2:"#a7f3d0",light:"#10b981"},neon:{color1:"#00e5ff",color2:"#80d8ff",light:"#00ffff"},obsidian:{color1:"#d500f9",color2:"#ea80fc",light:"#a855f7"},glass:{color1:"#80d8ff",color2:"#ffffff",light:"#60a5fa"}},ft={azul:"#00e5ff",verde:"#00e676",rojo:"#ff3d00",dorado:"#ffb300",purpura:"#d500f9",magenta:"#ff007f",esmeralda:"#10b981"};function Kt(){let t=document.createElement("canvas");t.width=128,t.height=128;let e=t.getContext("2d");if(e){let n=e.createRadialGradient(64,64,0,64,64,64);n.addColorStop(0,"rgba(255, 255, 255, 1)"),n.addColorStop(.3,"rgba(255, 255, 255, 0.9)"),n.addColorStop(.65,"rgba(255, 255, 255, 0.35)"),n.addColorStop(1,"rgba(0, 0, 0, 0)"),e.fillStyle=n,e.fillRect(0,0,128,128)}let r=new re.CanvasTexture(t);return r.needsUpdate=!0,r}function ye({theme:t="crimson",effectColor:e,effectSpeed:r=.5,effectDensity:n=.3,mode:o="fluid",enabled:m=!0}){let{pointer:f}=(0,He.useThree)(),c=(0,A.useRef)(null),d=(0,A.useRef)(null),a=(0,A.useRef)(null),s=(0,A.useRef)(new re.Object3D),l=(0,A.useRef)(!1),i=(0,A.useRef)([]),v=Math.max(.1,Math.min(1,n)),u=Math.round(110*v),y=(0,A.useMemo)(()=>Kt(),[]),p=(0,A.useMemo)(()=>{if(!e)return(dt[t]||dt.crimson).color1;let h=e.toLowerCase().trim();return ft[h]?ft[h]:e},[e,t]),T=(0,A.useMemo)(()=>{let h=[],x=.4+Math.sqrt(v)*.55;for(let k=0;k<u;k++)h.push({x:(Math.random()-.5)*10,y:-2+Math.random()*.4,z:(Math.random()-.5)*2-.5,speedY:.8+Math.random()*1.8,speedX:(Math.random()-.5)*.5,size:(.4+Math.random()*.6)*x,phase:Math.random()*Math.PI*2,life:Math.random()});return h},[u,v]),b=(0,A.useCallback)(()=>{l.current=!0},[]),E=(0,A.useCallback)(()=>{l.current=!1},[]);return(0,A.useEffect)(()=>(window.addEventListener("pointerdown",b),window.addEventListener("pointerup",E),()=>{window.removeEventListener("pointerdown",b),window.removeEventListener("pointerup",E)}),[b,E]),(0,He.useFrame)((h,x)=>{if(!m)return;let k=h.clock.getElapsedTime()*r;if(l.current){let g=f.x*7,R=f.y*4;i.current.length<25&&i.current.push({x:g+(Math.random()-.5)*.8,y:R+(Math.random()-.5)*.8,z:(Math.random()-.5)*1.5,life:1,size:(.5+Math.random()*.6)*Math.sqrt(v)})}i.current=i.current.map(g=>(g.life-=x*1.8*r,g.y+=x*1.2*r,g)).filter(g=>g.life>0),a.current&&(a.current.intensity=2.2+Math.sin(k*10)*.6+Math.cos(k*15)*.3,a.current.position.y=-1+Math.sin(k*3)*.2),(o==="fluid"||o==="all")&&c.current&&(T.forEach((g,R)=>{g.life+=x*g.speedY*.35*r,g.life>1&&(g.life=0,g.x=(Math.random()-.5)*10,g.y=-2+Math.random()*.4);let H=g.life,_=g.y+H*3.8,he=g.x+Math.sin(k*2.5+g.phase)*.5+g.speedX*H,le=g.z+Math.cos(k*1.8+g.phase)*.2,$=Math.sin(H*Math.PI)*g.size*(1.2-H*.3);s.current.position.set(he,_,le),s.current.rotation.set(0,0,Math.sin(k*1.5+R)*.2),s.current.scale.set($,$*1.3,$),s.current.updateMatrix(),c.current.setMatrixAt(R,s.current.matrix)}),i.current.forEach((g,R)=>{let H=(u-1-R+u)%u,_=Math.sin(g.life*Math.PI)*g.size;s.current.position.set(g.x,g.y,g.z),s.current.rotation.set(0,0,Math.sin(k*3+R)*.3),s.current.scale.set(_,_*1.4,_),s.current.updateMatrix(),c.current.setMatrixAt(H,s.current.matrix)}),c.current.instanceMatrix.needsUpdate=!0),(o==="crystal"||o==="all")&&d.current&&(T.forEach((g,R)=>{let H=g.life,_=g.y+H*3.8,he=g.x+Math.sin(k*2.8+g.phase)*.5+g.speedX*H,le=g.z+Math.cos(k*2+g.phase)*.3,$=Math.sin(H*Math.PI)*g.size*.6;s.current.position.set(he,_,le),s.current.rotation.set(k*1.5+R,k*2,R),s.current.scale.set($,$*2,$),s.current.updateMatrix(),d.current.setMatrixAt(R,s.current.matrix)}),d.current.instanceMatrix.needsUpdate=!0)}),m?(0,Y.jsxs)("group",{children:[(0,Y.jsx)("pointLight",{ref:a,position:[0,-1,1.5],color:p,intensity:2.5,distance:10}),(o==="fluid"||o==="all")&&(0,Y.jsxs)("instancedMesh",{ref:c,args:[void 0,void 0,u],children:[(0,Y.jsx)("planeGeometry",{args:[1.2,1.2]}),(0,Y.jsx)("meshBasicMaterial",{map:y,color:p,transparent:!0,blending:re.AdditiveBlending,depthWrite:!1,side:re.DoubleSide})]}),(o==="crystal"||o==="all")&&(0,Y.jsxs)("instancedMesh",{ref:d,args:[void 0,void 0,u],children:[(0,Y.jsx)("coneGeometry",{args:[.3,1.2,5]}),(0,Y.jsx)("meshBasicMaterial",{color:p,transparent:!0,opacity:.65,blending:re.AdditiveBlending,depthWrite:!1})]})]}):null}var I=require("react"),Ae=require("@react-three/fiber"),oe=j(require("three")),de=require("react/jsx-runtime"),ut={azul:"#00e5ff",verde:"#00e676",rojo:"#ff3d00",dorado:"#ffb300",purpura:"#d500f9",magenta:"#ff007f",esmeralda:"#10b981"};function Jt(){let t=document.createElement("canvas");t.width=256,t.height=256;let e=t.getContext("2d");if(e){let n=e.createRadialGradient(128,128,0,128,128,128);n.addColorStop(0,"rgba(255, 255, 255, 1)"),n.addColorStop(.2,"rgba(0, 240, 200, 0.95)"),n.addColorStop(.5,"rgba(0, 200, 140, 0.6)"),n.addColorStop(.8,"rgba(0, 150, 100, 0.2)"),n.addColorStop(1,"rgba(0, 0, 0, 0)"),e.fillStyle=n,e.fillRect(0,0,256,256)}let r=new oe.CanvasTexture(t);return r.needsUpdate=!0,r}function we({theme:t="emerald",effectColor:e="#00e676",effectSpeed:r=.5,effectDensity:n=.5,enabled:o=!0}){let{pointer:m}=(0,Ae.useThree)(),f=(0,I.useRef)(null),c=(0,I.useRef)(null),d=(0,I.useRef)(new oe.Object3D),a=(0,I.useRef)(!1),s=(0,I.useRef)([]),l=Math.max(.1,Math.min(1,n)),i=Math.round(60*l),v=(0,I.useMemo)(()=>Jt(),[]),u=(0,I.useMemo)(()=>{if(!e)return"#00e676";let b=e.toLowerCase().trim();return ut[b]?ut[b]:e},[e]),y=(0,I.useMemo)(()=>{let b=[],E=1+Math.sqrt(l)*.8;for(let h=0;h<i;h++)b.push({x:(Math.random()-.5)*12,y:(Math.random()-.5)*6,z:(Math.random()-.5)*3,speedY:(Math.random()-.5)*.8,speedX:(Math.random()-.5)*.8,size:(.8+Math.random()*1.2)*E,phase:Math.random()*Math.PI*2,life:Math.random()});return b},[i,l]),p=(0,I.useCallback)(()=>{a.current=!0},[]),T=(0,I.useCallback)(()=>{a.current=!1},[]);return(0,I.useEffect)(()=>(window.addEventListener("pointerdown",p),window.addEventListener("pointerup",T),()=>{window.removeEventListener("pointerdown",p),window.removeEventListener("pointerup",T)}),[p,T]),(0,Ae.useFrame)((b,E)=>{if(!f.current||!o)return;let h=b.clock.getElapsedTime()*r;if(a.current){let x=m.x*7,k=m.y*4;s.current.length<15&&s.current.push({x:x+(Math.random()-.5)*.5,y:k+(Math.random()-.5)*.5,z:(Math.random()-.5)*1,life:1,size:(1.2+Math.random()*.8)*Math.sqrt(l)})}s.current=s.current.map(x=>(x.life-=E*1.2*r,x)).filter(x=>x.life>0),c.current&&(c.current.intensity=2.5+Math.sin(h*6)*.5),y.forEach((x,k)=>{let g=x.x+Math.sin(h*1.2+x.phase)*1.5,R=x.y+Math.cos(h*.9+x.phase*1.3)*1.2,H=x.z+Math.sin(h*.7+x.phase*.8)*.8,_=x.size*(1+Math.sin(h*2+k)*.25);d.current.position.set(g,R,H),d.current.scale.set(_,_,_),d.current.updateMatrix(),f.current.setMatrixAt(k,d.current.matrix)}),s.current.forEach((x,k)=>{let g=(i-1-k+i)%i,R=Math.sin(x.life*Math.PI)*x.size;d.current.position.set(x.x,x.y,x.z),d.current.scale.set(R,R,R),d.current.updateMatrix(),f.current.setMatrixAt(g,d.current.matrix)}),f.current.instanceMatrix.needsUpdate=!0}),o?(0,de.jsxs)("group",{children:[(0,de.jsx)("pointLight",{ref:c,position:[0,0,2],color:u,intensity:3,distance:12}),(0,de.jsxs)("instancedMesh",{ref:f,args:[void 0,void 0,i],children:[(0,de.jsx)("planeGeometry",{args:[1.8,1.8]}),(0,de.jsx)("meshBasicMaterial",{map:v,color:u,transparent:!0,opacity:.85,blending:oe.NormalBlending,depthWrite:!1,side:oe.DoubleSide})]})]}):null}var kt=require("react");var Qt={"nav.schedule":"Schedule","nav.experiences":"Experiences","nav.membership":"Membership","nav.login":"Log In","nav.bookTickets":"Book Tickets","hero.genreImax":"IMAX 3D","hero.genreAction":"ACTION / SCI-FI","hero.title":"AVATAR: THE WAY OF WATER","hero.synopsis":"Set more than a decade after the events of the first film, learn the story of the Sully family, the trouble that follows them, the lengths they go to keep each other safe, the battles they fight to stay alive, and the tragedies they endure.","hero.getTickets":"GET TICKETS","hero.watchTrailer":"WATCH TRAILER"};function pt(){return t=>Qt[t]||t}var ht=require("react"),gt=require("next-intl"),bt=require("lucide-react"),Fe=require("react/jsx-runtime");function Ye(){let t="en";try{let o=(0,gt.useLocale)();o&&(t=o)}catch(o){}let[e,r]=(0,ht.useState)(t);return(0,Fe.jsxs)("button",{onClick:()=>{r(e==="en"?"es":"en")},className:"flex items-center gap-2 text-sm font-medium text-white/70 hover:text-white transition-colors uppercase tracking-wider cursor-pointer",children:[(0,Fe.jsx)(bt.Globe,{className:"w-4 h-4"}),e==="en"?"ES":"EN"]})}var wt=j(require("react")),Mt=require("@radix-ui/react-slot"),Et=require("class-variance-authority");var xt=require("clsx"),vt=require("tailwind-merge");function yt(...t){return(0,vt.twMerge)((0,xt.clsx)(t))}var Tt=require("react/jsx-runtime"),er=(0,Et.cva)("inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium cursor-pointer transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 disabled:cursor-not-allowed [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",{variants:{variant:{default:"bg-primary text-primary-foreground shadow hover:bg-primary/90",destructive:"bg-destructive text-destructive-foreground shadow-sm hover:bg-destructive/90",outline:"border border-input bg-background shadow-sm hover:bg-accent hover:text-accent-foreground",secondary:"bg-secondary text-secondary-foreground shadow-sm hover:bg-secondary/80",ghost:"hover:bg-accent hover:text-accent-foreground",link:"text-primary underline-offset-4 hover:underline"},size:{default:"h-9 px-4 py-2",sm:"h-8 rounded-md px-3 text-xs",lg:"h-10 rounded-md px-8",icon:"h-9 w-9"}},defaultVariants:{variant:"default",size:"default"}}),pe=wt.forwardRef((f,m)=>{var c=f,{className:t,variant:e,size:r,asChild:n=!1}=c,o=Je(c,["className","variant","size","asChild"]);return(0,Tt.jsx)(n?Mt.Slot:"button",P({className:yt(er({variant:e,size:r,className:t})),ref:m},o))});pe.displayName="Button";var w=require("react/jsx-runtime");function Me({cinemaName:t="NOVA",webTheme:e="neon"}){let r=pt(),[n,o]=(0,kt.useState)(!1),m=e==="noir"?"bg-slate-900/40 mix-blend-color":e==="crimson"?"bg-red-900/30 mix-blend-color":"bg-blue-900/20 mix-blend-color";return(0,w.jsxs)("div",{className:`min-h-screen bg-black text-white selection:bg-white/30 font-sans transition-colors duration-1000 group theme-${e}`,children:[(0,w.jsxs)("nav",{className:"absolute top-0 left-0 right-0 z-50 flex items-center justify-between px-4 sm:px-8 py-4 sm:py-6 bg-black/40 sm:bg-transparent backdrop-blur-md sm:backdrop-blur-none border-b border-white/10 sm:border-none",children:[(0,w.jsxs)("div",{className:"flex items-center gap-6 lg:gap-12",children:[(0,w.jsxs)("a",{href:"#",className:"text-2xl sm:text-3xl font-bold tracking-tighter uppercase font-display text-white",children:[t,"."]}),(0,w.jsxs)("div",{className:"hidden md:flex items-center gap-6 lg:gap-8 text-sm font-semibold tracking-widest text-white/70",children:[(0,w.jsx)("a",{href:"#schedule",className:"hover:text-white transition-colors",children:r("nav.schedule")}),(0,w.jsx)("a",{href:"#experiences",className:"hover:text-white transition-colors",children:r("nav.experiences")}),(0,w.jsx)("a",{href:"#membership",className:"hover:text-white transition-colors",children:r("nav.membership")})]})]}),(0,w.jsxs)("div",{className:"flex items-center gap-3 sm:gap-6",children:[(0,w.jsx)(Ye,{}),(0,w.jsxs)("div",{className:"hidden sm:flex items-center gap-4",children:[(0,w.jsx)("a",{href:"#login",className:"text-sm font-semibold tracking-widest text-white/70 hover:text-white transition-colors",children:r("nav.login")}),(0,w.jsx)(pe,{variant:"outline",className:"rounded-none border-white/40 text-white bg-transparent hover:bg-white hover:text-black transition-colors font-semibold tracking-widest text-xs px-6 py-5 uppercase",children:r("nav.bookTickets")})]}),(0,w.jsx)("button",{onClick:()=>o(!n),className:"md:hidden p-2 rounded-lg bg-white/10 hover:bg-white/20 text-white text-lg focus:outline-none transition-colors cursor-pointer","aria-label":"Toggle Navigation Menu",children:n?"\u2715":"\u2630"})]})]}),n&&(0,w.jsxs)("div",{className:"fixed inset-0 z-40 bg-black/95 backdrop-blur-2xl md:hidden flex flex-col justify-between p-8 pt-24 animate-fade-in",children:[(0,w.jsxs)("div",{className:"flex flex-col gap-6 text-xl font-bold tracking-wider uppercase font-display",children:[(0,w.jsx)("a",{href:"#schedule",onClick:()=>o(!1),className:"py-2 border-b border-white/10 hover:text-amber-400 transition-colors",children:r("nav.schedule")}),(0,w.jsx)("a",{href:"#experiences",onClick:()=>o(!1),className:"py-2 border-b border-white/10 hover:text-amber-400 transition-colors",children:r("nav.experiences")}),(0,w.jsx)("a",{href:"#membership",onClick:()=>o(!1),className:"py-2 border-b border-white/10 hover:text-amber-400 transition-colors",children:r("nav.membership")}),(0,w.jsx)("a",{href:"#login",onClick:()=>o(!1),className:"py-2 border-b border-white/10 text-white/70 hover:text-white transition-colors",children:r("nav.login")})]}),(0,w.jsx)("div",{className:"flex flex-col gap-3 pt-6 border-t border-white/10",children:(0,w.jsx)(pe,{onClick:()=>o(!1),className:"w-full rounded-none bg-amber-400 text-black hover:bg-amber-300 font-extrabold tracking-widest text-sm py-4 uppercase",children:r("nav.bookTickets")})})]}),(0,w.jsxs)("div",{className:"relative h-screen w-full flex flex-col justify-end pb-28 sm:pb-24 px-4 sm:px-8 md:px-16 overflow-hidden",children:[(0,w.jsxs)("div",{className:"absolute inset-0 z-0",children:[(0,w.jsx)("div",{className:"absolute inset-0 bg-[url('https://images.unsplash.com/photo-1605810230434-7631ac76ec81?q=80&w=2560&auto=format&fit=crop')] bg-cover bg-center"}),(0,w.jsx)("div",{className:"absolute inset-0 bg-gradient-to-t from-black via-black/50 to-transparent z-10"}),(0,w.jsx)("div",{className:`absolute inset-0 ${m} z-10`})]}),(0,w.jsxs)("div",{className:"relative z-20 max-w-5xl",children:[(0,w.jsxs)("div",{className:"flex items-center gap-2 sm:gap-3 mb-4 sm:mb-6 flex-wrap",children:[(0,w.jsx)("span",{className:"bg-blue-600 text-white text-[9px] sm:text-[10px] font-bold px-2.5 sm:px-3 py-1 tracking-widest",children:r("hero.genreImax")}),(0,w.jsx)("span",{className:"border border-white/20 text-white/80 text-[9px] sm:text-[10px] font-bold px-2.5 sm:px-3 py-1 tracking-widest",children:r("hero.genreAction")})]}),(0,w.jsx)("h1",{className:"text-4xl sm:text-6xl md:text-7xl lg:text-[8rem] leading-[0.9] sm:leading-[0.85] font-display font-black tracking-tighter mb-4 sm:mb-6 uppercase drop-shadow-2xl",children:r("hero.title")}),(0,w.jsx)("p",{className:"max-w-2xl text-sm sm:text-lg md:text-xl text-white/70 font-medium mb-6 sm:mb-10 leading-relaxed drop-shadow-md line-clamp-3 sm:line-clamp-none",children:r("hero.synopsis")}),(0,w.jsxs)("div",{className:"flex flex-col sm:flex-row items-stretch sm:items-center gap-3 sm:gap-4 w-full sm:w-auto",children:[(0,w.jsx)(pe,{className:"rounded-none bg-white text-black hover:bg-white/90 font-bold tracking-widest text-xs px-6 sm:px-8 py-5 sm:py-6 uppercase transition-transform hover:scale-105 active:scale-95 w-full sm:w-auto",children:r("hero.getTickets")}),(0,w.jsx)(pe,{variant:"outline",className:"rounded-none border-white/30 text-white bg-black/20 backdrop-blur-md hover:bg-white/10 transition-colors font-bold tracking-widest text-xs px-6 sm:px-8 py-5 sm:py-6 uppercase w-full sm:w-auto",children:r("hero.watchTrailer")})]})]})]})]})}var M=require("react/jsx-runtime"),Rt="https://threejs.org/examples/fonts/helvetiker_bold.typeface.json",Ct={cinema:Rt,helvetiker:Rt,gentilis:"https://threejs.org/examples/fonts/gentilis_bold.typeface.json",optimer:"https://threejs.org/examples/fonts/optimer_bold.typeface.json"},St={rojo:"#3b0712",azul:"#021a38",verde:"#032117",esmeralda:"#032117",dorado:"#1c1503",negro:"#07080c",purpura:"#21032a"},Lt={gold:"radial-gradient(circle at center, #1c1503 0%, #080601 60%, #020201 100%)",neon:"radial-gradient(circle at center, #021a1e 0%, #030d14 60%, #010408 100%)",emerald:"radial-gradient(circle at center, #032117 0%, #02120d 60%, #010705 100%)",crimson:"radial-gradient(circle at center, #240409 0%, #120205 60%, #060102 100%)",obsidian:"radial-gradient(circle at center, #120d24 0%, #080512 60%, #030206 100%)",glass:"radial-gradient(circle at center, #0f172a 0%, #070b14 60%, #020205 100%)"};function tr(t,e=.85){let n=-(t.length*e)/2+e/2;return t.split("").map((o,m)=>[n+m*e,0,0])}function rr(t){let e=[];t?Array.isArray(t)?e=t.map(s=>String(s).toLowerCase().trim()):typeof t=="string"&&(e=t.toLowerCase().split(",").map(s=>s.trim())):e=["flames"];let r=e.includes("all")||e.includes("todos")||e.includes("supernova")||e.includes("inferno"),n=r||e.includes("flames")||e.includes("fluid-flames")||e.includes("llamas")||e.includes("llamas-organicas"),o=r||e.includes("fire")||e.includes("crystal-flames")||e.includes("cristales")||e.includes("fuego"),m=r||e.includes("blobs")||e.includes("energy-blobs")||e.includes("plasma-blobs")||e.includes("nubes"),f=r||e.includes("sparks")||e.includes("chispas"),c=r||e.includes("shockwave")||e.includes("wave")||e.includes("onda")||e.includes("onda-3d"),d=r||e.includes("plasma")||e.includes("electric"),a=r||e.includes("embers")||e.includes("ascuas")||n||o||m;return{enableFluidFlames:n,enableCrystalFlames:o,enableBlobs:m,enableSparks:f,enableShockwave:c,enablePlasma:d,enableEmbers:a}}function Ie({containerToDisplay:t,containerSelector:e,effect:r="flames",title:n,backgroundColor:o,effectColor:m,effectSpeed:f=.5,effectDensity:c=.3,autoFitText:d=!0,loaderDuration:a,redirectUrl:s,onComplete:l,fontFamily:i="cinema",fontUrl:v,theme:u="crimson",letterSpacing:y=.85,className:p="",style:T,children:b}){let E=n!=null?n.trim().toUpperCase():"",h=E?E.split(""):[],x=(0,F.useMemo)(()=>tr(E,y),[E,y]),[k,g]=(0,F.useState)(!1);(0,F.useEffect)(()=>{g(!0)},[]);let R=!!(a&&a>0&&(s||l)),[H,_]=(0,F.useState)(0);(0,F.useEffect)(()=>{if(!R||!a)return;let N=a*1e3,B=50,Oe=0,Ze=setInterval(()=>{Oe+=B;let Ot=Math.min(100,Oe/N*100);_(Ot),Oe>=N&&(clearInterval(Ze),l==null||l(),s&&(window.location.href=s))},B);return()=>clearInterval(Ze)},[R,a,s,l]);let he=(0,F.useMemo)(()=>{if(v)return v;let N=String(i).toLowerCase().trim();return Ct[N]||Ct.cinema},[i,v]),[le,$]=(0,F.useState)(typeof window!="undefined"?window.innerWidth:1200);(0,F.useEffect)(()=>{let N=()=>$(window.innerWidth);return window.addEventListener("resize",N),()=>window.removeEventListener("resize",N)},[]);let It=(0,F.useMemo)(()=>{if(!d||!h.length)return 1;let N=h.length,B=1;return N<=4?B=1:N<=7?B=.85:N<=10?B=.7:N<=14?B=.55:B=.45,le<480?B*.55:le<768?B*.75:B},[d,h.length,le]),Ge=(0,F.useMemo)(()=>{if(!o)return Lt[u]||Lt.gold;let N=o.toLowerCase().trim();return St[N]?St[N]:(o.startsWith("#")||o.startsWith("rgb")||o.includes("gradient"),o)},[o,u]),D=(0,F.useMemo)(()=>rr(r),[r]),zt=D.enableFluidFlames&&D.enableCrystalFlames?"all":D.enableCrystalFlames?"crystal":"fluid",_t=D.enableFluidFlames||D.enableCrystalFlames,je=e||(typeof t=="string"?t:void 0),ke=()=>je==="lhome"||je==="home"||t==="lhome"||t==="home"?(0,M.jsx)(Me,{cinemaName:E||"NOVA",webTheme:u}):typeof t=="string"&&t!=="lhome"&&t!=="home"?(0,M.jsxs)("div",{className:"text-center text-white p-8 bg-black/40 backdrop-blur-md rounded-2xl border border-white/10",children:[(0,M.jsx)("h2",{className:"text-3xl font-bold tracking-widest uppercase mb-2",children:t}),(0,M.jsx)("p",{className:"text-sm text-white/60",children:"3D Interactive WebGL Background"})]}):t&&typeof t!="string"?t:b;return k?(0,M.jsxs)("div",{id:e,"data-container-selector":e,className:`relative w-full h-full overflow-hidden select-none ${p}`,style:P({background:Ge},T),children:[R&&(0,M.jsx)("div",{className:"absolute top-0 left-0 right-0 z-30 h-1 bg-white/10 pointer-events-none",children:(0,M.jsx)("div",{className:"h-full bg-gradient-to-r from-amber-400 via-rose-500 to-cyan-400 transition-all duration-75",style:{width:`${H}%`}})}),(0,M.jsx)("div",{className:"absolute inset-0 z-0 pointer-events-auto",children:(0,M.jsx)(Nt.Canvas,{camera:{position:[0,0,14],fov:45,near:.1,far:50},dpr:[1,2],gl:{antialias:!0,toneMapping:4,toneMappingExposure:1.2},children:(0,M.jsxs)(F.Suspense,{fallback:null,children:[(0,M.jsx)(Be.Environment,{preset:"studio"}),(0,M.jsx)("ambientLight",{intensity:.3}),(0,M.jsx)("directionalLight",{position:[5,8,5],intensity:1.5,color:"#ffffff"}),(0,M.jsx)("pointLight",{position:[-5,-3,-5],intensity:.6,color:u==="emerald"?"#10b981":u==="crimson"?"#ff1744":u==="neon"?"#00ffff":"#FFD700"}),(0,M.jsx)(J,{phase:R?"entering":"idle",effectSpeed:f}),(0,M.jsx)(ye,{enabled:_t,theme:u,effectColor:m,effectSpeed:f,effectDensity:c,mode:zt}),(0,M.jsx)(we,{enabled:D.enableBlobs,theme:u,effectColor:m,effectSpeed:f,effectDensity:c}),(0,M.jsx)(Q,{enabled:D.enableSparks,theme:u,effectColor:m,effectSpeed:f}),(0,M.jsx)(ee,{enabled:D.enableShockwave,theme:u,effectColor:m,effectSpeed:f}),(0,M.jsx)(te,{enabled:D.enablePlasma,theme:u,effectColor:m,effectSpeed:f}),h.length>0&&(0,M.jsx)(Be.Center,{disableY:!0,disableZ:!0,children:(0,M.jsx)("group",{scale:It,children:h.map((N,B)=>(0,M.jsx)(Z,{char:N,index:B,totalLetters:h.length,position:x[B],phase:R?"entering":"idle",theme:u,fontUrl:he},`${N}-${B}`))})}),(0,M.jsx)(K,{theme:u,effectColor:m,effectSpeed:f,visible:D.enableEmbers}),(0,M.jsxs)(ae.EffectComposer,{children:[(0,M.jsx)(ae.Bloom,{luminanceThreshold:.7,luminanceSmoothing:.9,intensity:u==="neon"||u==="crimson"?1.4:.9,mipmapBlur:!0}),(0,M.jsx)(ae.Vignette,{offset:.3,darkness:.85}),(0,M.jsx)(ae.Noise,{opacity:.025})]})]})})}),ke()&&(0,M.jsx)("div",{className:"relative z-10 w-full h-full pointer-events-none flex flex-col items-center justify-center",children:(0,M.jsx)("div",{className:"pointer-events-auto w-full h-full",children:ke()})})]}):(0,M.jsx)("div",{id:e,"data-container-selector":e,className:`relative w-full h-full overflow-hidden select-none bg-black ${p}`,style:P({background:Ge},T),children:ke()&&(0,M.jsx)("div",{className:"relative z-10 w-full h-full pointer-events-none flex flex-col items-center justify-center",children:(0,M.jsx)("div",{className:"pointer-events-auto w-full h-full",children:ke()})})})}var V=require("react"),Ht=require("@react-three/fiber"),ze=require("@react-three/drei"),se=require("@react-three/postprocessing");var S=require("react/jsx-runtime"),Pt={gold:"radial-gradient(circle at center, #1c1503 0%, #080601 60%, #020201 100%)",neon:"radial-gradient(circle at center, #021a1e 0%, #030d14 60%, #010408 100%)",emerald:"radial-gradient(circle at center, #032117 0%, #02120d 60%, #010705 100%)",crimson:"radial-gradient(circle at center, #240409 0%, #120205 60%, #060102 100%)",obsidian:"radial-gradient(circle at center, #120d24 0%, #080512 60%, #030206 100%)",glass:"radial-gradient(circle at center, #0f172a 0%, #070b14 60%, #020205 100%)"},nr="https://threejs.org/examples/fonts/helvetiker_bold.typeface.json";function or(t){let n=-(t.length*.65)/2;return t.split("").map((o,m)=>[n+m*.65,0,0])}function Ee({text:t="CINEMA",theme:e="emerald",customBackground:r,interactiveSparks:n=!0,interactiveShockwave:o=!0,interactivePlasma:m=!0,showParticles:f=!0,enableBloom:c=!0,className:d="",style:a,children:s}){let[l,i]=(0,V.useState)(!1),[v]=(0,V.useState)(t),[u]=(0,V.useState)(e);(0,V.useEffect)(()=>{i(!0)},[]);let y=(v||t||"CINEMA").toUpperCase(),p=y.split(""),T=(0,V.useMemo)(()=>or(y),[y]),b=u||e||"emerald",E=r||Pt[b]||Pt.emerald;return l?(0,S.jsxs)("div",{className:`relative w-full h-full min-h-[350px] overflow-hidden select-none ${d}`,style:P({background:E},a),children:[(0,S.jsx)("div",{className:"absolute inset-0 z-0 pointer-events-auto",children:(0,S.jsx)(Ht.Canvas,{camera:{position:[0,0,14],fov:45,near:.1,far:50},dpr:[1,2],gl:{antialias:!0,toneMapping:4,toneMappingExposure:1.2},children:(0,S.jsxs)(V.Suspense,{fallback:null,children:[(0,S.jsx)(ze.Environment,{preset:"studio"}),(0,S.jsx)("ambientLight",{intensity:.3}),(0,S.jsx)("directionalLight",{position:[5,8,5],intensity:1.5,color:"#ffffff"}),(0,S.jsx)("pointLight",{position:[-5,-3,-5],intensity:.6,color:b==="emerald"?"#10b981":b==="crimson"?"#ff1744":b==="neon"?"#00ffff":"#FFD700"}),(0,S.jsx)(J,{phase:"idle"}),(0,S.jsx)(Q,{enabled:n,theme:b}),(0,S.jsx)(ee,{enabled:o,theme:b}),(0,S.jsx)(te,{enabled:m,theme:b}),(0,S.jsx)(ze.Center,{disableY:!0,disableZ:!0,children:(0,S.jsx)("group",{children:p.map((h,x)=>(0,S.jsx)(Z,{char:h,index:x,totalLetters:p.length,position:T[x],phase:"idle",theme:b,fontUrl:nr},`${h}-${x}`))})}),f&&(0,S.jsx)(K,{theme:b,visible:!0}),(0,S.jsxs)(se.EffectComposer,{children:[(0,S.jsx)(se.Bloom,{luminanceThreshold:.7,luminanceSmoothing:.9,intensity:c?.9:0,mipmapBlur:!0}),(0,S.jsx)(se.Vignette,{offset:.3,darkness:.85}),(0,S.jsx)(se.Noise,{opacity:.025})]})]})})}),s&&(0,S.jsx)("div",{className:"relative z-10 w-full h-full pointer-events-none flex flex-col items-center justify-center",children:s})]}):(0,S.jsx)("div",{className:`relative w-full h-full min-h-[350px] overflow-hidden select-none bg-black ${d}`,style:P({background:E},a),children:s&&(0,S.jsx)("div",{className:"relative z-10 w-full h-full pointer-events-none flex flex-col items-center justify-center",children:s})})}var Ve=require("react/jsx-runtime");function At(t,e={}){let r=n=>(0,Ve.jsx)(Ee,G(P({},e),{children:(0,Ve.jsx)(t,P({},n))}));return r.displayName=`WithCinema3D(${t.displayName||t.name||"Component"})`,r}var z=require("react"),Bt=require("@react-three/fiber"),_e=require("@react-three/drei"),ie=require("@react-three/postprocessing");var L=require("react/jsx-runtime"),ar=[{key:"gold",label:"Gold",color:"#FFD700"},{key:"neon",label:"Neon",color:"#00ffff"},{key:"emerald",label:"Emerald",color:"#10b981"},{key:"crimson",label:"Crimson",color:"#ff1744"},{key:"obsidian",label:"Obsidian",color:"#a855f7"},{key:"glass",label:"Glass",color:"#ffffff"}];function Te({phase:t,cinemaName:e,theme:r,effects:n,onTitleChange:o,onThemeChange:m,onToggleEffect:f}){return(0,L.jsxs)("div",{className:"absolute inset-0 pointer-events-none z-10 flex flex-col items-center justify-between p-6 md:p-10",style:{opacity:t==="exiting"?0:1,transition:"opacity 0.8s ease-out"},children:[(0,L.jsxs)("div",{className:"w-full max-w-xl flex flex-col items-center gap-2 pointer-events-auto",style:{opacity:t==="idle"||t==="entering"?1:0,transform:t==="idle"||t==="entering"?"translateY(0)":"translateY(-20px)",transition:"all 1s ease-out 0.3s"},children:[(0,L.jsx)("label",{className:"text-[10px] tracking-[0.3em] uppercase text-white/50 font-bold",children:"Live 3D Title Control"}),(0,L.jsx)("div",{className:"relative w-full",children:(0,L.jsx)("input",{type:"text",value:e,onChange:a=>o(a.target.value),maxLength:18,placeholder:"Type any title...",className:"w-full px-6 py-3 rounded-full text-center text-sm md:text-base font-bold tracking-widest uppercase outline-none transition-all duration-300",style:{background:"rgba(255, 255, 255, 0.08)",backdropFilter:"blur(16px)",border:"1px solid rgba(255, 255, 255, 0.2)",color:"#ffffff",boxShadow:"0 8px 32px rgba(0, 0, 0, 0.37)"}})})]}),t==="loading"&&(0,L.jsx)("div",{className:"absolute inset-0 flex items-center justify-center",children:(0,L.jsx)("div",{className:"w-16 h-16 rounded-full border-2 animate-spin",style:{borderColor:"transparent",borderTopColor:"rgba(255, 215, 0, 0.8)",borderRightColor:"rgba(255, 215, 0, 0.3)"}})}),(0,L.jsxs)("div",{className:"w-full max-w-3xl flex flex-col items-center gap-5",children:[(0,L.jsxs)("div",{className:"flex flex-wrap items-center justify-center gap-2 pointer-events-auto",style:{opacity:t==="idle"||t==="entering"?1:0,transition:"opacity 1s ease-out 0.8s"},children:[(0,L.jsx)("span",{className:"text-[9px] uppercase tracking-[0.25em] text-white/40 mr-2 font-bold",children:"Effects"}),(0,L.jsx)("button",{onClick:()=>f("sparks"),className:`px-4 py-1.5 rounded-full text-[11px] font-bold tracking-wider uppercase transition-all duration-300 cursor-pointer ${n.sparks?"bg-amber-500/30 text-amber-200 border-amber-400/60 shadow-[0_0_15px_rgba(245,158,11,0.4)]":"bg-white/5 text-white/40 border-white/10 hover:text-white/70"} border`,children:"\u{1F525} Sparks"}),(0,L.jsx)("button",{onClick:()=>f("shockwave"),className:`px-4 py-1.5 rounded-full text-[11px] font-bold tracking-wider uppercase transition-all duration-300 cursor-pointer ${n.shockwave?"bg-cyan-500/30 text-cyan-200 border-cyan-400/60 shadow-[0_0_15px_rgba(6,182,212,0.4)]":"bg-white/5 text-white/40 border-white/10 hover:text-white/70"} border`,children:"\u{1F30A} Wave"}),(0,L.jsx)("button",{onClick:()=>f("plasma"),className:`px-4 py-1.5 rounded-full text-[11px] font-bold tracking-wider uppercase transition-all duration-300 cursor-pointer ${n.plasma?"bg-purple-500/30 text-purple-200 border-purple-400/60 shadow-[0_0_15px_rgba(168,85,247,0.4)]":"bg-white/5 text-white/40 border-white/10 hover:text-white/70"} border`,children:"\u26A1 Plasma"}),(0,L.jsx)("button",{onClick:()=>f("embers"),className:`px-4 py-1.5 rounded-full text-[11px] font-bold tracking-wider uppercase transition-all duration-300 cursor-pointer ${n.embers?"bg-emerald-500/30 text-emerald-200 border-emerald-400/60 shadow-[0_0_15px_rgba(16,185,129,0.4)]":"bg-white/5 text-white/40 border-white/10 hover:text-white/70"} border`,children:"\u2728 Embers"})]}),(0,L.jsxs)("div",{className:"flex items-center gap-3 pointer-events-auto",style:{opacity:t==="idle"||t==="entering"?1:0,transition:"opacity 1s ease-out 1.2s"},children:[(0,L.jsx)("span",{className:"text-[10px] uppercase tracking-[0.3em] text-white/40 mr-2 font-bold",children:"Theme"}),(0,L.jsx)("div",{className:"flex items-center gap-2 md:gap-3",children:ar.map(a=>{let s=r===a.key;return(0,L.jsxs)("button",{onClick:()=>m(a.key),className:"group relative flex flex-col items-center gap-1.5 cursor-pointer outline-none","aria-label":`Switch to ${a.label} theme`,children:[(0,L.jsx)("div",{className:"relative w-11 h-7 md:w-14 md:h-9 rounded-md overflow-hidden transition-all duration-300",style:{border:s?`2px solid ${a.color}`:"1px solid rgba(255, 255, 255, 0.15)",transform:s?"scale(1.1) translateY(-2px)":"scale(1) translateY(0)",boxShadow:s?`0 4px 20px ${a.color}60`:"0 2px 10px rgba(0,0,0,0.5)"},children:(0,L.jsx)("div",{className:"absolute inset-0 opacity-80",style:{backgroundColor:a.color}})}),(0,L.jsx)("span",{className:"text-[9px] uppercase tracking-widest font-semibold transition-colors duration-300",style:{color:s?"#ffffff":"rgba(255, 255, 255, 0.4)"},children:a.label})]},a.key)})})]})]})]})}var C=require("react/jsx-runtime"),sr="https://threejs.org/examples/fonts/helvetiker_bold.typeface.json",Ft={gold:"radial-gradient(circle at center, #1c1503 0%, #080601 60%, #020201 100%)",neon:"radial-gradient(circle at center, #021a1e 0%, #030d14 60%, #010408 100%)",emerald:"radial-gradient(circle at center, #032117 0%, #02120d 60%, #010705 100%)",crimson:"radial-gradient(circle at center, #240409 0%, #120205 60%, #060102 100%)",obsidian:"radial-gradient(circle at center, #120d24 0%, #080512 60%, #030206 100%)",glass:"radial-gradient(circle at center, #0f172a 0%, #070b14 60%, #020205 100%)"};function ir(t){let n=-(t.length*.65)/2;return t.split("").map((o,m)=>[n+m*.65,0,0])}function $e({cinemaName:t="CINEMULTIPLEX",defaultTheme:e="emerald",customBackground:r,onEnterCinema:n}){let[o,m]=(0,z.useState)(!1),[f,c]=(0,z.useState)("loading"),[d,a]=(0,z.useState)(e),[s,l]=(0,z.useState)(t),[i,v]=(0,z.useState)({sparks:!0,shockwave:!0,plasma:!0,embers:!0});(0,z.useEffect)(()=>{m(!0)},[]);let u=(s||"CINEMA").toUpperCase(),y=u.split(""),p=(0,z.useMemo)(()=>ir(u),[u]);(0,z.useEffect)(()=>{let E=setTimeout(()=>c("entering"),800),h=y.length*120+1500,x=setTimeout(()=>c("idle"),800+h);return()=>{clearTimeout(E),clearTimeout(x)}},[y.length]);let T=(0,z.useCallback)(E=>{v(h=>G(P({},h),{[E]:!h[E]}))},[]),b=r||Ft[d]||Ft.emerald;return o?(0,C.jsxs)("div",{className:"fixed inset-0 w-screen h-screen transition-all duration-1000 select-none overflow-hidden",style:{background:b},children:[(0,C.jsx)(Bt.Canvas,{camera:{position:[0,0,14],fov:45,near:.1,far:50},dpr:[1,2],gl:{antialias:!0,toneMapping:4,toneMappingExposure:1.2},children:(0,C.jsxs)(z.Suspense,{fallback:null,children:[(0,C.jsx)(_e.Environment,{preset:"studio"}),(0,C.jsx)("ambientLight",{intensity:.3}),(0,C.jsx)("directionalLight",{position:[5,8,5],intensity:1.5,color:"#ffffff"}),(0,C.jsx)("pointLight",{position:[-5,-3,-5],intensity:.6,color:d==="emerald"?"#10b981":d==="crimson"?"#ff1744":d==="neon"?"#00ffff":"#FFD700"}),(0,C.jsx)("spotLight",{position:[0,10,0],angle:.4,penumbra:.8,intensity:.9,color:"#ffffff"}),(0,C.jsx)("pointLight",{position:[0,0,-5],intensity:.4,color:"#ffffff"}),(0,C.jsx)(J,{phase:f}),i.sparks&&(0,C.jsx)(Q,{theme:d}),(0,C.jsx)(ee,{theme:d,enabled:i.shockwave}),(0,C.jsx)(te,{theme:d,enabled:i.plasma}),(0,C.jsx)(_e.Center,{disableY:!0,disableZ:!0,children:(0,C.jsx)("group",{children:y.map((E,h)=>(0,C.jsx)(Z,{char:E,index:h,totalLetters:y.length,position:p[h],phase:f,theme:d,fontUrl:sr},`${E}-${h}`))})}),(0,C.jsx)(K,{theme:d,visible:f!=="loading"&&i.embers}),(0,C.jsxs)(ie.EffectComposer,{children:[(0,C.jsx)(ie.Bloom,{luminanceThreshold:.7,luminanceSmoothing:.9,intensity:d==="neon"||d==="emerald"||d==="crimson"?1.4:.7,mipmapBlur:!0}),(0,C.jsx)(ie.Vignette,{offset:.3,darkness:.85}),(0,C.jsx)(ie.Noise,{opacity:.025})]})]})}),(0,C.jsx)(Te,{phase:f,cinemaName:s,theme:d,effects:i,onTitleChange:l,onThemeChange:a,onToggleEffect:T})]}):(0,C.jsx)("div",{className:"fixed inset-0 w-screen h-screen transition-all duration-1000 select-none overflow-hidden bg-black flex items-center justify-center",style:{background:b},children:(0,C.jsx)("div",{className:"w-16 h-16 rounded-full border-2 animate-spin border-t-amber-400 border-r-amber-400/30 border-b-transparent border-l-transparent"})})}0&&(module.exports={AnimatedBackground,AnimatedLetter,CameraRig,CinemaBackground,CinemaHome,CinemaLoader,ClickFireSparks,ClickShockwave,ElectricPlasma,FireFlames,LoaderOverlay,PlasmaBlobs,SceneParticles,withCinema3D});
3
4
  //# sourceMappingURL=index.js.map