{"id":2445,"date":"2026-01-24T20:05:19","date_gmt":"2026-01-24T20:05:19","guid":{"rendered":"https:\/\/kuwaitnext.com\/ui-ux-designs\/"},"modified":"2026-01-29T00:27:20","modified_gmt":"2026-01-29T00:27:20","slug":"agent-falcon","status":"publish","type":"page","link":"https:\/\/kuwaitnext.com\/ar\/agent-falcon\/","title":{"rendered":"Agent falcon"},"content":{"rendered":"\n<div class=\"wp-block-group is-layout-constrained wp-block-group-is-layout-constrained\">\n<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n<meta charset=\"utf-8\" \/>\n<title>Agent Falcon &#8211; Total Dominion<\/title>\n\n<script src=\"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/three.js\/r128\/three.min.js\"><\/script>\n<script src=\"https:\/\/cdn.jsdelivr.net\/npm\/three@0.128.0\/examples\/js\/postprocessing\/EffectComposer.js\"><\/script>\n<script src=\"https:\/\/cdn.jsdelivr.net\/npm\/three@0.128.0\/examples\/js\/postprocessing\/RenderPass.js\"><\/script>\n<script src=\"https:\/\/cdn.jsdelivr.net\/npm\/three@0.128.0\/examples\/js\/postprocessing\/ShaderPass.js\"><\/script>\n<script src=\"https:\/\/cdn.jsdelivr.net\/npm\/three@0.128.0\/examples\/js\/shaders\/CopyShader.js\"><\/script>\n<script src=\"https:\/\/cdn.jsdelivr.net\/npm\/three@0.128.0\/examples\/js\/shaders\/LuminosityHighPassShader.js\"><\/script>\n<script src=\"https:\/\/cdn.jsdelivr.net\/npm\/three@0.128.0\/examples\/js\/postprocessing\/UnrealBloomPass.js\"><\/script>\n\n<style>\n\/* --- 1. NUCLEAR OVERRIDE CSS --- *\/\n\/* This mimics your 'Success Portal' strategy exactly *\/\n.kn-living-section {\n  position: fixed !important; \/* Locks to screen *\/\n  top: 0 !important;\n  left: 0 !important;\n  width: 100vw !important;\n  height: 100vh !important;\n  z-index: 2147483647 !important; \/* Max Z-Index to cover Headers\/Footers *\/\n  background-color: #000 !important;\n  overflow: hidden !important;\n  display: flex !important;\n  align-items: center !important;\n  justify-content: center !important;\n  margin: 0 !important;\n  padding: 0 !important;\n  cursor: none !important; \/* Custom Reticle *\/\n}\n\n\/* --- 2. VIDEO LAYER (PROTECTED) --- *\/\n#kn-bg-video {\n  position: absolute !important; inset: 0 !important;\n  width: 100% !important; height: 100% !important;\n  object-fit: cover !important; z-index: 0 !important;\n  filter: brightness(0.6) contrast(1.1);\n  opacity: 0.85;\n  pointer-events: none; \n  user-select: none;\n}\n\n\/* --- OVERLAY & CANVAS --- *\/\n.kn-overlay {\n  position: absolute !important; inset: 0 !important; z-index: 1 !important;\n  background: radial-gradient(circle at center, rgba(0,0,0,0) 30%, rgba(0,0,0,0.85) 100%) !important;\n  pointer-events: none;\n}\n\n#kn-living-canvas {\n  position: absolute !important; inset: 0 !important;\n  width: 100% !important; height: 100% !important;\n  z-index: 5 !important;\n  pointer-events: auto !important;\n  display: block !important;\n  outline: none;\n}\n\n\/* --- UI ELEMENTS --- *\/\n.kn-living-ui {\n  position: absolute !important; top: 0; left: 0; width: 100% !important; height: 100% !important;\n  z-index: 10 !important; pointer-events: none;\n  display: flex !important; flex-direction: column !important;\n  justify-content: space-between !important; padding: 48px !important;\n  box-sizing: border-box !important;\n}\n\n.kn-living-header {\n  position: absolute !important; left: 50% !important; transform: translateX(-50%) !important;\n  top: 5vh !important; text-align: center !important;\n  pointer-events: auto !important; z-index: 20 !important;\n  width: 100% !important;\n}\n\n.text-container { position: relative !important; display: inline-block !important; cursor: help !important; }\n\n.kn-living-title {\n  font-family: 'Times New Roman', serif;\n  font-size: 4.25rem; color: #fff; margin: 0;\n  background: linear-gradient(135deg, #004d2c 20%, #00ff88 50%, #004d2c 80%);\n  -webkit-background-clip: text; -webkit-text-fill-color: transparent;\n  filter: drop-shadow(0 0 30px rgba(0,255,136,0.3));\n  text-transform: uppercase; letter-spacing: 2px;\n  transition: opacity 0.4s ease;\n}\n\n.arabic-text {\n    position: absolute !important; inset: 0 !important; opacity: 0;\n    font-family: 'serif'; font-size: 4.25rem; color: #00ff88;\n    transition: opacity 0.4s ease; direction: rtl;\n    white-space: nowrap; pointer-events: none;\n    text-align: center; left: 50% !important; transform: translateX(-50%) !important;\n}\n\n.text-container:hover .kn-living-title, \n.text-container:hover .kn-living-subtitle { opacity: 0; }\n.text-container:hover .arabic-text { opacity: 1; }\n\n.kn-living-subtitle {\n  font-family: sans-serif; color: #00ff88;\n  margin-top: 15px; font-size: 1.25rem; text-align: center; \n  transition: opacity 0.4s ease; letter-spacing: 1.5px; width: 100%;\n}\n\n.sub-arabic { font-size: 1.8rem; top: 15px; }\n\n\/* --- HUD STATUS --- *\/\n.kn-living-status {\n  position: absolute !important; left: 50% !important; transform: translateX(-50%) !important;\n  bottom: 5vh !important; background: rgba(0,20,10,0.6) !important;\n  padding: 10px 22px !important; border: 1px solid #00ff88 !important;\n  color: #00ff88 !important; font-family: monospace !important;\n  backdrop-filter: blur(8px) !important; z-index: 15 !important;\n  transition: all 0.3s ease !important;\n}\n\n.kn-living-status.flare {\n  background: rgba(0,255,136,0.3) !important;\n  box-shadow: 0 0 30px #00ff88 !important;\n  text-shadow: 0 0 10px #fff !important;\n  border-color: #fff !important;\n  animation: uiGlitch 0.15s infinite !important;\n}\n\n\/* --- SENTINEL RETICLE (Cursor) --- *\/\n.kn-sentinel-cursor {\n    position: absolute; top: 0; left: 0;\n    width: 60px; height: 60px;\n    border: 2px dashed #00ff88;\n    border-radius: 50%;\n    transform: translate(-50%, -50%);\n    pointer-events: none; z-index: 2147483647 !important; \/* Max Z *\/\n    mix-blend-mode: screen;\n    transition: width 0.2s, height 0.2s, border-color 0.2s;\n    animation: reticleSpin 4s linear infinite;\n    display: none; \n}\n.kn-sentinel-cursor::after {\n    content: ''; position: absolute; top: 50%; left: 50%;\n    width: 4px; height: 4px; background: #00ff88;\n    transform: translate(-50%, -50%); border-radius: 50%;\n    box-shadow: 0 0 10px #00ff88;\n}\n.kn-sentinel-cursor.alert {\n    border-color: #ff3333;\n    border-style: solid;\n    width: 40px; height: 40px;\n    animation: reticleSpin 0.5s linear infinite;\n}\n.kn-sentinel-cursor.alert::after { background: #ff3333; box-shadow: 0 0 15px #ff3333; }\n\n@keyframes reticleSpin { 0% { transform: translate(-50%, -50%) rotate(0deg); } 100% { transform: translate(-50%, -50%) rotate(360deg); } }\n@keyframes uiGlitch {\n  0% { opacity: 1; transform: translateX(-50%) skew(0deg); }\n  20% { opacity: 0.8; transform: translateX(-50.5%) skew(1deg); }\n  40% { opacity: 1; transform: translateX(-49.5%) skew(-1deg); }\n  100% { opacity: 0.9; transform: translateX(-50%) skew(0deg); }\n}\n\n@media (max-width:600px) {\n  .kn-living-title, .arabic-text { font-size: 2.2rem; }\n  .kn-living-subtitle { font-size: 0.9rem; }\n  .kn-sentinel-cursor { display: none !important; }\n  .kn-living-section { cursor: auto !important; }\n}\n<\/style>\n<\/head>\n<body oncontextmenu=\"return false;\">\n\n<section class=\"kn-living-section\" id=\"livingSection\">\n  \n  <div class=\"kn-sentinel-cursor\" id=\"sentinelReticle\"><\/div>\n\n  <video id=\"kn-bg-video\" autoplay loop muted playsinline oncontextmenu=\"return false;\">\n    <source src=\"https:\/\/kuwaitnext.com\/wp-content\/uploads\/2026\/01\/Animated_Waving_Flag_in_K.mp4\" type=\"video\/mp4\">\n  <\/video>\n  \n  <div class=\"kn-overlay\"><\/div>\n  \n  <div class=\"kn-living-ui\">\n    <div class=\"kn-living-header\">\n      <div class=\"text-container\">\n          <h2 class=\"kn-living-title\">Agent Falcon<\/h2>\n          <span class=\"arabic-text\">\u0627\u0644\u0639\u0645\u064a\u0644 \u0641\u0627\u0644\u0643\u0648\u0646<\/span>\n      <\/div>\n      <br>\n      <div class=\"text-container\" style=\"width: 100%;\">\n          <p class=\"kn-living-subtitle\">Kuwait Next&#8217;s Agent to protect your Data &#038; Privacy<\/p>\n          <span class=\"arabic-text sub-arabic\">\u0648\u0643\u064a\u0644 \u0643\u0648\u064a\u062a \u0646\u064a\u0643\u0633\u062a \u0644\u062d\u0645\u0627\u064a\u0629 \u0628\u064a\u0627\u0646\u0627\u062a\u0643 \u0648\u062e\u0635\u0648\u0635\u064a\u062a\u0643<\/span>\n      <\/div>\n    <\/div>\n    <div class=\"kn-living-status\" id=\"livingStatus\">SYSTEM: ONLINE \/\/ CLICK TO ACTIVATE SHIELD<\/div>\n  <\/div>\n  \n  <canvas id=\"kn-living-canvas\"><\/canvas>\n<\/section>\n\n<script>\n\/* --- PROTECTION SCRIPT --- *\/\ndocument.onkeydown = function(e) {\n    if(event.keyCode == 123) { return false; } \n    if(e.ctrlKey && e.shiftKey && e.keyCode == 'I'.charCodeAt(0)) { return false; } \n    if(e.ctrlKey && e.shiftKey && e.keyCode == 'C'.charCodeAt(0)) { return false; } \n    if(e.ctrlKey && e.shiftKey && e.keyCode == 'J'.charCodeAt(0)) { return false; } \n    if(e.ctrlKey && e.keyCode == 'U'.charCodeAt(0)) { return false; } \n}\n\nwindow.addEventListener('load', function() {\n  \n  const section = document.getElementById('livingSection');\n  const canvas = document.getElementById('kn-living-canvas');\n  const statusEl = document.getElementById('livingStatus');\n  const reticle = document.getElementById('sentinelReticle');\n\n  if (!canvas || !section) return;\n\n  \/\/ --- NUCLEAR OVERRIDE: MOVE TO BODY ROOT ---\n  \/\/ This physically moves the Falcon section out of the theme content\n  \/\/ and appends it to the body, ensuring the 'fixed' positioning works perfectly.\n  document.body.appendChild(section);\n\n  if(window.innerWidth > 600) reticle.style.display = 'block';\n\n  \/\/ --- SCENE SETUP ---\n  const scene = new THREE.Scene();\n  const camera = new THREE.PerspectiveCamera(45, window.innerWidth\/window.innerHeight, 0.1, 5000);\n  camera.position.set(0, 1.8, 14);\n\n  const renderer = new THREE.WebGLRenderer({ canvas, antialias: true, alpha: true, powerPreference: \"high-performance\" });\n  renderer.setSize(window.innerWidth, window.innerHeight);\n  renderer.setPixelRatio(Math.min(window.devicePixelRatio, 2));\n  renderer.toneMapping = THREE.ACESFilmicToneMapping;\n  renderer.toneMappingExposure = 1.2; \n\n  const composer = new THREE.EffectComposer(renderer);\n  composer.addPass(new THREE.RenderPass(scene, camera));\n  const bloomPass = new THREE.UnrealBloomPass(new THREE.Vector2(window.innerWidth, window.innerHeight), 1.2, 0.4, 0.85);\n  bloomPass.strength = 0.6; bloomPass.radius = 0.5; bloomPass.threshold = 0.15;\n  composer.addPass(bloomPass);\n\n  const config = { royalGreen: 0x004d2c, brightGreen: 0x00ff88, chromeSilver: 0xcccccc, darkCarbon: 0x111111, energyCyan: 0x00d2ff };\n\n  \/* ============ MATERIALS ============ *\/\n  const mainGreenMat = new THREE.MeshStandardMaterial({ color: config.royalGreen, roughness: 0.25, metalness: 0.9, emissive: 0x002211, emissiveIntensity: 0.1 });\n  const darkAccentMat = new THREE.MeshStandardMaterial({ color: config.darkCarbon, roughness: 0.5, metalness: 0.7 });\n  const chromeFeatherMat = new THREE.MeshStandardMaterial({ color: config.chromeSilver, roughness: 0.1, metalness: 1.0, side: THREE.DoubleSide });\n  const eyeLensMat = new THREE.MeshStandardMaterial({ color: 0xffffff, metalness: 0.0, roughness: 0.1 });\n  const pupilMat = new THREE.MeshBasicMaterial({ color: 0x000000 });\n\n  \/* ============ LIGHTING ============ *\/\n  scene.add(new THREE.AmbientLight(0xffffff, 0.6));\n  const sun = new THREE.SpotLight(0xffffff, 3.75);\n  sun.position.set(10, 20, 15); sun.castShadow = true; scene.add(sun);\n  const rimLight = new THREE.SpotLight(config.brightGreen, 4.5);\n  rimLight.position.set(-15, 5, -10); scene.add(rimLight);\n  const wingTrackerLight = new THREE.PointLight(0xffffff, 1.0);\n  scene.add(wingTrackerLight);\n\n  \/* ============ 3000 STARS ============ *\/\n  const starGroup = new THREE.Group();\n  scene.add(starGroup);\n  const starGeo = new THREE.SphereGeometry(0.12, 6, 6);\n  const starsList = [];\n\n  for (let i = 0; i < 3000; i++) {\n    const sMat = new THREE.MeshBasicMaterial({ color: config.brightGreen, transparent: true });\n    const star = new THREE.Mesh(starGeo, sMat);\n    const r = (i < 1000) ? (40 + Math.random() * 150) : (400 + Math.random() * 1000);\n    const phi = Math.random() * Math.PI * 2;\n    const theta = Math.random() * Math.PI;\n    star.position.set(r*Math.sin(theta)*Math.cos(phi), r*Math.sin(theta)*Math.sin(phi), r*Math.cos(theta));\n    star.userData.twinkleSpeed = 0.5 + Math.random() * 2;\n    star.userData.phase = Math.random() * Math.PI;\n    starGroup.add(star);\n    starsList.push(star);\n  }\n\n  \/* ============ FALCON BUILD ============ *\/\n  const birdGroup = new THREE.Group(); scene.add(birdGroup);\n  const chestGroup = new THREE.Group(); birdGroup.add(chestGroup);\n\n  const chestGeo = new THREE.BoxGeometry(2.5, 3.5, 1.5);\n  const posArr = chestGeo.attributes.position;\n  for (let i = 0; i < posArr.count; i++) {\n      if (posArr.getY(i) < 0) posArr.setX(i, posArr.getX(i) * 0.6);\n      if (posArr.getZ(i) > 0) posArr.setY(i, posArr.getY(i) * 0.9);\n  }\n  chestGeo.computeVertexNormals();\n  const chest = new THREE.Mesh(chestGeo, mainGreenMat); chest.rotation.x = 0.2; \n  birdGroup.position.set(0, -2.2, 0); \n  chestGroup.add(chest);\n\n  const neckAnchor = new THREE.Group(); neckAnchor.position.set(0, 1.5, 0.5); birdGroup.add(neckAnchor);\n  const neck = new THREE.Mesh(new THREE.CylinderGeometry(0.6, 1.1, 1.5, 8), darkAccentMat); neck.position.y = 0.6; neckAnchor.add(neck);\n  const headGroup = new THREE.Group(); headGroup.position.set(0, 1.4, 0.2); neckAnchor.add(headGroup);\n  const skull = new THREE.Mesh(new THREE.BoxGeometry(1.3, 1.1, 1.6), mainGreenMat); headGroup.add(skull);\n\n  const beakShape = new THREE.Shape();\n  beakShape.moveTo(0, 0); beakShape.lineTo(0, 0.6); beakShape.lineTo(1.2, 0); beakShape.lineTo(0, -0.3);\n  const beak = new THREE.Mesh(new THREE.ExtrudeGeometry(beakShape, { steps: 1, depth: 0.3, bevelEnabled: true, bevelThickness: 0.05, bevelSize: 0.05 }), darkAccentMat);\n  beak.rotation.y = -Math.PI \/ 2; beak.position.set(0.15, -0.3, 0.7); headGroup.add(beak);\n\n  const eyeL = new THREE.Mesh(new THREE.SphereGeometry(0.25, 32, 32), eyeLensMat);\n  eyeL.position.set(-0.7, 0.1, 0.6); headGroup.add(eyeL);\n  const eyeR = eyeL.clone(); eyeR.position.x = 0.7; headGroup.add(eyeR);\n  const pupilL = new THREE.Mesh(new THREE.SphereGeometry(0.10, 16, 16), pupilMat);\n  pupilL.position.z = 0.22; eyeL.add(pupilL);\n  const pupilR = pupilL.clone(); eyeR.add(pupilR);\n\n  const lidL = new THREE.Mesh(new THREE.BoxGeometry(0.6, 0.3, 0.6), mainGreenMat);\n  lidL.position.set(-0.7, 0.38, 0.6); headGroup.add(lidL);\n  const lidR = lidL.clone(); lidR.position.x = 0.7; headGroup.add(lidR);\n  const crest = new THREE.Mesh(new THREE.BoxGeometry(0.2, 0.8, 2), mainGreenMat); crest.position.set(0, 0.8, -0.5); crest.rotation.x = -0.3; headGroup.add(crest);\n\n  \/\/ WINGS (Bio-Mimetic Logic Restored)\n  function createBioWing(side) {\n    const root = new THREE.Group(); root.position.set(side * 1.3, 0.8, 0.2);\n    const arm = new THREE.Group(); root.add(arm);\n    const armM = new THREE.Mesh(new THREE.BoxGeometry(2.0, 0.4, 1.2), darkAccentMat); armM.position.x = side; arm.add(armM);\n    const elbow = new THREE.Group(); elbow.position.x = side * 2; arm.add(elbow);\n    const forearm = new THREE.Mesh(new THREE.BoxGeometry(2.5, 0.3, 1), darkAccentMat); forearm.position.x = side * 1.25; elbow.add(forearm);\n    const wrist = new THREE.Group(); wrist.position.x = side * 2.5; elbow.add(wrist);\n    const primaries = [];\n    for (let i = 0; i < 7; i++) {\n      const f = new THREE.Mesh(new THREE.BoxGeometry(0.4, 0.05, 4.5 + i * 0.5), mainGreenMat);\n      f.position.set(side * (i * 0.25), 0, 1.8 + i * 0.4); f.rotation.y = side * -0.15 * i; wrist.add(f);\n      primaries.push(f);\n    }\n    return { root, arm, elbow, wrist, primaries };\n  }\n  const leftWing = createBioWing(1); const rightWing = createBioWing(-1);\n  chestGroup.add(leftWing.root, rightWing.root);\n\n  const tailGroup = new THREE.Group(); tailGroup.position.z = -2.5; chestGroup.add(tailGroup);\n  const tailFeathers = [];\n  for (let i = 0; i < 6; i++) {\n    const t = new THREE.Mesh(new THREE.BoxGeometry(0.6, 0.1, 4.5), chromeFeatherMat);\n    t.rotation.y = (i - 2.5) * 0.15; tailGroup.add(t);\n    tailFeathers.push(t);\n  }\n\n  const talonGroup = new THREE.Group(); talonGroup.position.set(0, -1.8, 0.5); chestGroup.add(talonGroup);\n  const clawGeo = new THREE.ConeGeometry(0.15, 0.8, 4);\n  const clawL = new THREE.Mesh(clawGeo, chromeFeatherMat); clawL.position.x = -0.6; talonGroup.add(clawL);\n  const clawR = clawL.clone(); clawR.position.x = 0.6; talonGroup.add(clawR);\n\n  \/* ============ \ud83d\udee1\ufe0f FEATURE: PRIVACY SHIELD \ud83d\udee1\ufe0f ============ *\/\n  const shieldGeo = new THREE.IcosahedronGeometry(6.0, 2);\n  const shieldMat = new THREE.MeshBasicMaterial({ \n      color: 0x00ff88, wireframe: true, transparent: true, opacity: 0, side: THREE.DoubleSide \n  });\n  const shieldMesh = new THREE.Mesh(shieldGeo, shieldMat);\n  birdGroup.add(shieldMesh);\n\n  \/* ============ ANIMATION ============ *\/\n  let mouse = new THREE.Vector2(0, 0), isFlare = false, clock = new THREE.Clock();\n\n  section.addEventListener('mousemove', (e) => {\n    const rect = section.getBoundingClientRect();\n    mouse.x = ((e.clientX - rect.left) \/ rect.width) * 2 - 1;\n    mouse.y = -((e.clientY - rect.top) \/ rect.height) * 2 + 1;\n    \n    \/\/ Update Reticle\n    reticle.style.left = e.clientX + 'px';\n    reticle.style.top = e.clientY + 'px';\n  });\n\n  section.addEventListener('mousedown', () => { \n      isFlare = true; \n      statusEl.innerText = \"SYSTEM: PRIVACY SHIELD ACTIVE \/\/ PROTECTING DATA\"; \n      statusEl.classList.add('flare'); \n      reticle.classList.add('alert');\n  });\n  \n  section.addEventListener('mouseup', () => { \n      isFlare = false; \n      statusEl.innerText = \"SYSTEM: ONLINE \/\/ PATROL MODE\"; \n      statusEl.classList.remove('flare'); \n      reticle.classList.remove('alert');\n  });\n\n  function animate() {\n    requestAnimationFrame(animate);\n    const time = clock.getElapsedTime();\n\n    starsList.forEach(s => {\n        s.material.opacity = 0.3 + Math.abs(Math.sin(time * s.userData.twinkleSpeed + s.userData.phase)) * 0.7;\n    });\n    starGroup.rotation.y = time * 0.015;\n\n    \/\/ --- BIO WING LOGIC RESTORED ---\n    const flapS = isFlare ? 12.0 : 4.0;\n    const cycle = Math.sin(time * flapS);\n    const cycleUp = Math.cos(time * flapS);\n    \n    chestGroup.position.y = isFlare ? (cycle * 0.1) : -cycle * 0.3;\n    neckAnchor.rotation.y += ((-mouse.x * 0.7) - neckAnchor.rotation.y) * 0.12;\n    neckAnchor.rotation.x += ((mouse.y * 0.5) - neckAnchor.rotation.x) * 0.12;\n\n    const dist = mouse.length();\n    const pupilScale = isFlare ? 1.4 : THREE.MathUtils.lerp(1.3, 0.7, 1 - dist);\n    pupilL.scale.set(pupilScale, pupilScale, 1);\n    pupilR.scale.set(pupilScale, pupilScale, 1);\n\n    [leftWing, rightWing].forEach((w, idx) => {\n      const side = idx === 0 ? 1 : -1;\n      if (isFlare) {\n        w.root.rotation.z = side * 0.3 + (side * cycle * 0.4);\n        w.arm.rotation.z = side * 0.5;\n        w.elbow.rotation.z = side * 0.8;\n        w.wrist.rotation.z = side * 0.2;\n      } else {\n        \/\/ ORIGINAL BIO-MECHANICAL FLAPPING\n        w.root.rotation.z = THREE.MathUtils.lerp(w.root.rotation.z, 0, 0.12);\n        w.arm.rotation.z = side * ((Math.sin(time * flapS) * 0.6) + 0.2);\n        \/\/ Elbow Phase Shift\n        w.elbow.rotation.z = side * ((Math.sin(time * flapS - 0.5) * 0.4));\n        \/\/ Wrist Phase Shift (Drag)\n        const drag = -cycleUp * 0.6;\n        w.wrist.rotation.z = side * (drag * 0.5);\n        w.primaries.forEach((f, i) => {\n          const windSway = Math.sin(time * 2 + i * 0.7) * 0.02;\n          f.rotation.x = (drag * (0.05 + i * 0.05)) + windSway;\n          f.material.roughness = 0.25 + Math.abs(Math.sin(time + i)) * 0.15;\n        });\n      }\n    });\n\n    if(isFlare) {\n        tailFeathers.forEach(f => { f.rotation.x = (Math.random() - 0.5) * 0.12; });\n    } else {\n        tailFeathers.forEach(f => f.rotation.x = 0);\n    }\n\n    \/\/ Shield Logic\n    if(isFlare) {\n        shieldMesh.material.opacity = THREE.MathUtils.lerp(shieldMesh.material.opacity, 0.5, 0.1);\n        shieldMesh.rotation.y += 0.05;\n        shieldMesh.rotation.z += 0.02;\n        bloomPass.strength = THREE.MathUtils.lerp(bloomPass.strength, 2.5, 0.1);\n    } else {\n        shieldMesh.material.opacity = THREE.MathUtils.lerp(shieldMesh.material.opacity, 0, 0.15);\n        shieldMesh.rotation.y += 0.005;\n        bloomPass.strength = THREE.MathUtils.lerp(bloomPass.strength, 0.6, 0.1);\n    }\n\n    camera.position.x += (mouse.x * 1.5 - camera.position.x) * 0.05;\n    camera.position.y += ((1.8 - (mouse.y * 0.5)) - camera.position.y) * 0.05;\n    camera.lookAt(0, 1, 0);\n\n    composer.render();\n  }\n  animate();\n\n  window.addEventListener('resize', () => {\n    camera.aspect = window.innerWidth \/ window.innerHeight; camera.updateProjectionMatrix();\n    renderer.setSize(window.innerWidth, window.innerHeight); composer.setSize(window.innerWidth, window.innerHeight);\n  });\n});\n<\/script>\n<\/body>\n<\/html>\n<\/div>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Agent Falcon &#8211; Total Dominion Agent Falcon \u0627\u0644\u0639\u0645\u064a\u0644 \u0641\u0627\u0644\u0643\u0648\u0646 Kuwait Next&#8217;s Agent to protect your Data &#038; Privacy \u0648\u0643\u064a\u0644 \u0643\u0648\u064a\u062a \u0646\u064a\u0643\u0633\u062a \u0644\u062d\u0645\u0627\u064a\u0629 \u0628\u064a\u0627\u0646\u0627\u062a\u0643 \u0648\u062e\u0635\u0648\u0635\u064a\u062a\u0643 SYSTEM: ONLINE \/\/ CLICK TO ACTIVATE SHIELD<\/p>","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"disabled","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"set","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"class_list":["post-2445","page","type-page","status-publish","hentry"],"_hostinger_reach_plugin_has_subscription_block":false,"_hostinger_reach_plugin_is_elementor":false,"_links":{"self":[{"href":"https:\/\/kuwaitnext.com\/ar\/wp-json\/wp\/v2\/pages\/2445","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/kuwaitnext.com\/ar\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/kuwaitnext.com\/ar\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/kuwaitnext.com\/ar\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/kuwaitnext.com\/ar\/wp-json\/wp\/v2\/comments?post=2445"}],"version-history":[{"count":7,"href":"https:\/\/kuwaitnext.com\/ar\/wp-json\/wp\/v2\/pages\/2445\/revisions"}],"predecessor-version":[{"id":2622,"href":"https:\/\/kuwaitnext.com\/ar\/wp-json\/wp\/v2\/pages\/2445\/revisions\/2622"}],"wp:attachment":[{"href":"https:\/\/kuwaitnext.com\/ar\/wp-json\/wp\/v2\/media?parent=2445"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}