-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathscript.min.js
More file actions
1 lines (1 loc) · 18.8 KB
/
script.min.js
File metadata and controls
1 lines (1 loc) · 18.8 KB
1
function initializeAllFeatures(){try{if("undefined"!=typeof AOS)try{AOS.init({duration:1e3,easing:"ease-in-out",once:!0,mirror:!1,disable:function(){return window.innerWidth<768}})}catch(t){console.warn("AOS initialization failed:",t)}safeInit("Navbar",initNavbar),safeInit("Smooth Scroll",initSmoothScroll),safeInit("Scroll Indicator",initScrollIndicator),safeInit("Parallax",initParallax),safeInit("Form Validation",initFormValidation),safeInit("Hover Effects",initHoverEffects),/HeadlessChrome/.test(navigator.userAgent)||safeInit("Smoke Effect",initSmokeEffect),safeInit("Mobile Menu",initMobileMenu)}catch(t){console.error("Error initializing features:",t)}}function safeInit(t,e){try{e()}catch(e){console.warn(`Failed to initialize ${t}:`,e)}}function initNavbar(){const t=document.querySelector(".navbar"),e=document.querySelectorAll(".nav-link");t?window.addEventListener("scroll",function(){window.scrollY>100?t.classList.add("scrolled"):t.classList.remove("scrolled"),function(){const t=document.querySelectorAll("section[id]"),i=window.pageYOffset;t.forEach(t=>{const n=t.offsetHeight,o=t.offsetTop-100,a=t.getAttribute("id");i>o&&i<=o+n&&e.forEach(t=>{t.classList.remove("active"),t.getAttribute("href")===`#${a}`&&t.classList.add("active")})})}()}):console.warn("Navbar not found, skipping navbar initialization")}function initSmoothScroll(){document.querySelectorAll('a[href^="#"]').forEach(function(t){t.addEventListener("click",function(t){var e=this.getAttribute("href");if("#"!==e&&e.length>1){t.preventDefault();var i=document.querySelector(e);if(i){var n=i.offsetTop-80;window.scrollTo({top:n,left:0,behavior:"smooth"});try{var o=document.querySelector(".navbar-collapse");if(o&&o.classList.contains("show")&&"undefined"!=typeof bootstrap&&bootstrap.Collapse){var a=bootstrap.Collapse.getInstance(o);a&&a.hide()}}catch(t){console.warn("Error closing mobile menu:",t)}}}})})}function initScrollIndicator(){const t=document.querySelector(".scroll-indicator");t&&(t.addEventListener("click",function(){const t=document.querySelector("#about");t&&t.scrollIntoView({behavior:"smooth"})}),window.addEventListener("scroll",function(){window.scrollY>100?(t.style.opacity="0",t.style.pointerEvents="none"):(t.style.opacity="1",t.style.pointerEvents="auto")}))}function initParallax(){if(window.innerWidth>992&&!isTouchDevice()){var t=!1;window.addEventListener("scroll",function(){t||(window.requestAnimationFrame(function(){var e=window.pageYOffset||document.documentElement.scrollTop,i=document.querySelector(".hero-content");if(i&&e<800){var n=.5*e,o=1-e/600;i.style.webkitTransform="translateY("+n+"px)",i.style.mozTransform="translateY("+n+"px)",i.style.msTransform="translateY("+n+"px)",i.style.oTransform="translateY("+n+"px)",i.style.transform="translateY("+n+"px)",i.style.opacity=Math.max(0,o)}t=!1}),t=!0)})}}function isTouchDevice(){return"ontouchstart"in window||navigator.maxTouchPoints>0||navigator.msMaxTouchPoints>0}function initFormValidation(){const t=document.querySelector(".contact-form");if(t){t.addEventListener("submit",function(e){e.preventDefault();const i=this.querySelectorAll(".gothic-input");let n=!0;i.forEach(t=>{""===t.value.trim()?(n=!1,t.style.borderColor="#ff0033",setTimeout(()=>{t.style.borderColor="rgba(220, 20, 60, 0.3)"},2e3)):t.style.borderColor="#dc143c"}),n?(showNotification("Message sent successfully!","success"),t.reset()):showNotification("Please fill in all fields.","error")});t.querySelectorAll(".gothic-input").forEach(t=>{t.addEventListener("focus",function(){this.parentElement.classList.add("focused")}),t.addEventListener("blur",function(){this.parentElement.classList.remove("focused")})})}}function showNotification(t,e){const i=document.createElement("div");i.className=`notification notification-${e}`,i.textContent=t,i.style.cssText=`\n position: fixed;\n top: 100px;\n right: 20px;\n padding: 20px 30px;\n background: ${"success"===e?"#dc143c":"#ff0033"};\n color: white;\n font-family: 'Cinzel', serif;\n border-radius: 0;\n z-index: 10000;\n animation: slideInRight 0.5s ease;\n box-shadow: 0 5px 30px rgba(220, 20, 60, 0.5);\n `,document.body.appendChild(i),setTimeout(()=>{i.style.animation="slideOutRight 0.5s ease",setTimeout(()=>{i.remove()},500)},3e3)}window.NodeList&&!NodeList.prototype.forEach&&(NodeList.prototype.forEach=Array.prototype.forEach),Element.prototype.matches||(Element.prototype.matches=Element.prototype.msMatchesSelector||Element.prototype.webkitMatchesSelector),Element.prototype.closest||(Element.prototype.closest=function(t){var e=this;do{if(Element.prototype.matches.call(e,t))return e;e=e.parentElement||e.parentNode}while(null!==e&&1===e.nodeType);return null}),function(){if(!("scrollBehavior"in document.documentElement.style)){window.HTMLElement||window.Element;var t=window.scrollTo;function e(t,e,i,n){return(t/=n/2)<1?i/2*t*t+e:-i/2*(--t*(t-2)-1)+e}window.scrollTo=function(){if(1===arguments.length&&"object"==typeof arguments[0]){var i=arguments[0];"smooth"===i.behavior?(n=i.top||0,o=i.left||0,a=window.pageYOffset||document.documentElement.scrollTop,r=window.pageXOffset||document.documentElement.scrollLeft,s=n-a,l=o-r,c=(new Date).getTime(),h=400,d=setInterval(function(){var t=(new Date).getTime()-c,i=e(t,a,s,h),n=e(t,r,l,h);t>=h&&clearInterval(d),window.scroll(n,i)},1e3/60)):t.call(window,i.left||0,i.top||0)}else t.apply(window,arguments);var n,o,a,r,s,l,c,h,d}}}(),function(){for(var t=0,e=["webkit","moz"],i=0;i<e.length&&!window.requestAnimationFrame;++i)window.requestAnimationFrame=window[e[i]+"RequestAnimationFrame"],window.cancelAnimationFrame=window[e[i]+"CancelAnimationFrame"]||window[e[i]+"CancelRequestAnimationFrame"];window.requestAnimationFrame||(window.requestAnimationFrame=function(e){var i=(new Date).getTime(),n=Math.max(0,16-(i-t)),o=window.setTimeout(function(){e(i+n)},n);return t=i+n,o}),window.cancelAnimationFrame||(window.cancelAnimationFrame=function(t){clearTimeout(t)})}(),document.addEventListener("DOMContentLoaded",function(){setTimeout(function(){document.body.classList.add("loaded")},100),initializeAllFeatures()});const style=document.createElement("style");function initHoverEffects(){document.querySelectorAll(".feature-card").forEach(t=>{t.addEventListener("mouseenter",function(){this.style.transition="all 0.3s ease"}),t.addEventListener("mousemove",function(t){const e=this.getBoundingClientRect(),i=t.clientX-e.left,n=t.clientY-e.top,o=e.width/2,a=(n-e.height/2)/20,r=(o-i)/20;this.style.transform=`translateY(-10px) rotateX(${a}deg) rotateY(${r}deg)`}),t.addEventListener("mouseleave",function(){this.style.transform="translateY(0) rotateX(0) rotateY(0)"})});document.querySelectorAll(".gallery-item").forEach(t=>{t.addEventListener("mouseenter",function(){this.style.boxShadow="0 10px 60px rgba(220, 20, 60, 0.7)"}),t.addEventListener("mouseleave",function(){this.style.boxShadow="none"})})}function initSmokeEffect(){var t=document.createElement("canvas");t.id="smoke-canvas",t.style.cssText="position:fixed;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:9999;",document.body.appendChild(t);var e=t.getContext("2d"),i=500,n=[],o=[],a=[],r=0,s=0,l=0,c=0,h=0,d=0,u=Date.now(),f=!1,m=!1,p=0,v=0,y=0,w=null,g=[];function M(){t.width=window.innerWidth,t.height=window.innerHeight,b()}M(),window.addEventListener("resize",M);var x=document.createElement("canvas").getContext("2d");function b(){g=[],document.querySelectorAll("h1, h2, h3, h4, h5, h6, p, a, span, li, button, .nav-link, .section-title, .gothic-title").forEach(function(t){var e=t.getBoundingClientRect(),i=200;if(e.width>0&&e.height>0&&e.bottom>-200&&e.top<window.innerHeight+i&&e.right>-200&&e.left<window.innerWidth+i){var n=window.getComputedStyle(t),o=t.textContent.trim();if(!o)return;x.font=n.fontSize+" "+n.fontFamily;var a=x.measureText(o),r=parseFloat(n.fontSize),s=a.width,l=1.2*r,c=parseFloat(n.paddingLeft)||0,h=parseFloat(n.paddingTop)||0,d=e.left+c,u=e.top+h,f=Math.min(s,e.width-c),m=Math.min(l,e.height-h);g.push({x:d,y:u,width:f,height:m,centerX:d+f/2,centerY:u+m/2,influenceRange:Math.max(f,m)/2+30})}})}b();var S=0;window.addEventListener("scroll",function(){var t=Date.now();t-S>500&&(b(),S=t)},{passive:!0}),setInterval(b,3e3);for(var E=0;E<1e3;E++)o.push(z());function z(){return{x:0,y:0,velocityX:0,velocityY:0,size:0,maxSize:0,alpha:0,life:0,decayRate:0,growRate:0,type:"normal",rotation:0,rotationSpeed:0,active:!1,accumulated:!1,targetX:0,targetY:0}}function Y(t,e,i,l,c,h){for(var d,u=0;u<o.length;u++)if(!o[u].active){d=o[u];break}d||(d=n.shift()||{x:0,y:0,velocityX:0,velocityY:0,size:0,maxSize:0,alpha:0,life:0,decayRate:0,growRate:0,type:"normal",rotation:0,rotationSpeed:0,active:!1,accumulated:!1,targetX:0,targetY:0}),d.active=!0,d.x=t,d.y=e,d.velocityX=void 0!==i?i:.5*(Math.random()-.5),d.velocityY=void 0!==l?l:1.5*-Math.random()-.5,d.size=c||15*Math.random()+8,d.maxSize=3.5*d.size,d.alpha=.7,d.life=1,d.type=h||"normal";var f=a.length,m=f>6?Math.min(3,1+.5*(f-6)):1;return d.decayRate="puff"===h?.003*m:"wisp"===h?.008:.005,d.growRate="puff"===h?.9:"wisp"===h?.2:.35,d.rotation=Math.random()*Math.PI*2,d.rotationSpeed=.03*(Math.random()-.5),d.accumulated=!1,d.targetX=r,d.targetY=s,d}function X(e){if(!e.active)return!1;if(e.accumulated){var i=e.targetX-e.x,n=e.targetY-e.y;Math.sqrt(i*i+n*n)>5?(e.velocityX=.08*i,e.velocityY=.08*n):(e.velocityX*=.95,e.velocityY*=.95)}else{i=r-e.x,n=s-e.y;var o=Math.sqrt(i*i+n*n);if(o<150&&f&&!m){var a=(150-o)/150*.3;e.velocityX+=i/o*a*h*.01,e.velocityY+=n/o*a*d*.01}for(var l=0;l<g.length;l++){var c=g[l],u=c.influenceRange+e.size;if(!(Math.abs(e.x-c.centerX)>u||Math.abs(e.y-c.centerY)>u)){var p=e.x-c.centerX,v=e.y-c.centerY,y=p*p+v*v;if(y<c.influenceRange*c.influenceRange){var w=Math.sqrt(y);if(e.x>=c.x&&e.x<=c.x+c.width&&e.y>=c.y&&e.y<=c.y+c.height){e.velocityX+=p/w*.8,e.velocityY+=v/w*.8}else{var M=Math.atan2(v,p),x=(c.influenceRange-w)/c.influenceRange*.15;e.velocityX+=Math.cos(M+Math.PI/2)*x,e.velocityY+=Math.sin(M+Math.PI/2)*x,e.velocityX+=p/w*x*.5,e.velocityY+=v/w*x*.5}}}}e.velocityX*=.98,e.velocityY-=.02,e.velocityX+=.02*(Math.random()-.5)}e.y+=e.velocityY,e.x+=e.velocityX;var b=.6,S=e.size;return e.x-S<0&&(e.x=S,e.velocityX=Math.abs(e.velocityX)*b,e.life-=.05),e.x+S>t.width&&(e.x=t.width-S,e.velocityX=-Math.abs(e.velocityX)*b,e.life-=.05),e.y-S<0&&(e.y=S,e.velocityY=Math.abs(e.velocityY)*b,e.life-=.05),e.y+S>t.height&&(e.y=t.height-S,e.velocityY=-Math.abs(e.velocityY)*b,e.life-=.05),e.size<e.maxSize&&(e.size+=e.growRate),e.life-=e.decayRate,e.alpha=.7*e.life,e.rotation+=e.rotationSpeed,e.life>0}function L(t){if(t.active){e.save(),e.translate(t.x,t.y),e.rotate(t.rotation);var i=e.createRadialGradient(0,0,0,0,0,t.size);"wisp"===t.type?(i.addColorStop(0,"rgba(130, 130, 130, "+t.alpha+")"),i.addColorStop(.3,"rgba(100, 100, 100, "+.7*t.alpha+")"),i.addColorStop(.6,"rgba(70, 70, 70, "+.4*t.alpha+")"),i.addColorStop(1,"rgba(40, 40, 40, 0)")):(i.addColorStop(0,"rgba(110, 110, 110, "+t.alpha+")"),i.addColorStop(.4,"rgba(85, 85, 85, "+.6*t.alpha+")"),i.addColorStop(.7,"rgba(60, 60, 60, "+.3*t.alpha+")"),i.addColorStop(1,"rgba(35, 35, 35, 0)")),e.fillStyle=i,e.globalCompositeOperation="screen",e.fillRect(-t.size,-t.size,2*t.size,2*t.size),e.globalCompositeOperation="source-over",e.restore()}}function C(t,e){this.x=t,this.y=e,this.size=15,this.maxSize=100,this.alpha=.8,this.growthRate=.8,this.particles=[]}function A(t,e,i,n,o){this.x=t,this.y=e,this.velocityX=i,this.velocityY=n,this.size=o||35,this.alpha=.9,this.active=!0,this.gravity=.15,this.drag=.98,this.smokeAmount=Math.floor(o/5)}C.prototype.update=function(t,e){if(this.x=t,this.y=e,this.size<this.maxSize&&(this.size+=this.growthRate,this.growthRate*=.99),Math.random()<.3&&n.length<i){var o=Math.random()*Math.PI*2,a=.7*this.size,r=Y(this.x+Math.cos(o)*a,this.y+Math.sin(o)*a,.5*(Math.random()-.5),.5*-Math.random(),8*Math.random()+5,"wisp");this.particles.push(r),n.push(r)}},C.prototype.draw=function(){e.save();var t=.1*Math.sin(.005*Date.now())+.9,i=this.size*t,n=e.createRadialGradient(this.x,this.y,0,this.x,this.y,1.5*i);n.addColorStop(0,"rgba(150, 150, 150, "+.3*this.alpha+")"),n.addColorStop(.5,"rgba(120, 120, 120, "+.2*this.alpha+")"),n.addColorStop(1,"rgba(80, 80, 80, 0)"),e.fillStyle=n,e.beginPath(),e.arc(this.x,this.y,1.5*i,0,2*Math.PI),e.fill();var o=e.createRadialGradient(this.x,this.y,0,this.x,this.y,i);o.addColorStop(0,"rgba(160, 160, 160, "+this.alpha+")"),o.addColorStop(.5,"rgba(120, 120, 120, "+.7*this.alpha+")"),o.addColorStop(1,"rgba(80, 80, 80, "+.3*this.alpha+")"),e.fillStyle=o,e.beginPath(),e.arc(this.x,this.y,i,0,2*Math.PI),e.fill(),e.restore()},A.prototype.update=function(){this.velocityY+=this.gravity,this.velocityX*=this.drag,this.velocityY*=this.drag,this.x+=this.velocityX,this.y+=this.velocityY,this.alpha*=.98;var e=.7,o=!1;this.x-this.size<0&&(this.x=this.size,this.velocityX=Math.abs(this.velocityX)*e,o=!0),this.x+this.size>t.width&&(this.x=t.width-this.size,this.velocityX=-Math.abs(this.velocityX)*e,o=!0),this.y-this.size<0&&(this.y=this.size,this.velocityY=Math.abs(this.velocityY)*e,o=!0),this.y+this.size>t.height&&(this.y=t.height-this.size,this.velocityY=-Math.abs(this.velocityY)*e,o=!0);for(var a=0;a<g.length;a++){var r=g[a];if(this.x+this.size>r.x&&this.x-this.size<r.x+r.width&&this.y+this.size>r.y&&this.y-this.size<r.y+r.height)return this.explode(),!1}if(Math.random()<.4&&n.length<i){var s=Y(this.x+(Math.random()-.5)*this.size*.5,this.y+(Math.random()-.5)*this.size*.5,.3*this.velocityX+.5*(Math.random()-.5),.3*this.velocityY+.5*(Math.random()-.5),10*Math.random()+5,"wisp");n.push(s)}return Math.sqrt(this.velocityX*this.velocityX+this.velocityY*this.velocityY)<.5&&o||this.alpha<.1?(this.explode(),!1):this.active},A.prototype.draw=function(){e.save();for(var t=0;t<2;t++){var i=this.size*(1+.3*t),n=this.alpha*(1-.5*t),o=e.createRadialGradient(this.x,this.y,0,this.x,this.y,i);o.addColorStop(0,"rgba(140, 140, 140, "+n+")"),o.addColorStop(.5,"rgba(100, 100, 100, "+.6*n+")"),o.addColorStop(1,"rgba(60, 60, 60, 0)"),e.fillStyle=o,e.beginPath(),e.arc(this.x,this.y,i,0,2*Math.PI),e.fill()}e.restore()},A.prototype.explode=function(){for(var t=Math.min(30+2*this.smokeAmount,50),e=0;e<t&&!(n.length>=i);e++){if(a.length>=10){var o=a.shift();o&&(o.active=!1)}var r=2*Math.PI*e/t,s=2*Math.random()+1,l=Y(this.x,this.y,Math.cos(r)*s+.3*this.velocityX,Math.sin(r)*s+.3*this.velocityY,25*Math.random()+15,"puff");n.push(l),a.push(l)}this.active=!1};var q=[];function R(t,e){l=r,c=s,r=t,s=e;var i=Date.now(),n=i-u;n>0&&(h=(r-l)/n*16,d=(s-c)/n*16),u=i,f=!0}document.addEventListener("mousemove",function(t){R(t.clientX,t.clientY)}),document.addEventListener("mousedown",function(t){m=!0,p=Date.now(),v=t.clientX,y=t.clientY,w=new C(t.clientX,t.clientY)}),document.addEventListener("mouseup",function(t){if(m){m=!1;var e=Date.now()-p,o=Math.sqrt(Math.pow(t.clientX-v,2)+Math.pow(t.clientY-y,2));if(w){var r=Math.sqrt(h*h+d*d);if(e<200&&o<10)for(var s=Math.min(20,i-n.length),l=0;l<s;l++){if(a.length>=10){var c=a.shift();c&&(c.active=!1)}var u=2*Math.PI*l/s,f=2.5*Math.random()+1,g=Y(t.clientX+10*(Math.random()-.5),t.clientY+10*(Math.random()-.5),Math.cos(u)*f,Math.sin(u)*f-.8,18*Math.random()+10,"puff");n.push(g),a.push(g)}else if(o>30&&r>2)q.length>=10&&q.shift(),q.push(new A(w.x,w.y,.8*h,.8*d,w.size));else{new A(w.x,w.y,0,0,w.size).explode()}w=null}}}),document.addEventListener("touchstart",function(t){if(t.touches.length>0){var e=t.touches[0];m=!0,p=Date.now(),v=e.clientX,y=e.clientY,R(e.clientX,e.clientY),w=new C(e.clientX,e.clientY)}},{passive:!0}),document.addEventListener("touchmove",function(t){if(t.touches.length>0){var e=t.touches[0];R(e.clientX,e.clientY)}},{passive:!0}),document.addEventListener("touchend",function(t){if(m&&w){var e=Date.now()-p,o=Math.sqrt(Math.pow(r-v,2)+Math.pow(s-y,2)),l=Math.sqrt(h*h+d*d);if(e<200&&o<10)for(var c=Math.min(20,i-n.length),u=0;u<c;u++){if(a.length>=10){var g=a.shift();g&&(g.active=!1)}var M=2*Math.PI*u/c,x=2.5*Math.random()+1,b=Y(r+10*(Math.random()-.5),s+10*(Math.random()-.5),Math.cos(M)*x,Math.sin(M)*x-.8,18*Math.random()+10,"puff");n.push(b),a.push(b)}else if(o>30&&l>2)q.length>=10&&q.shift(),q.push(new A(w.x,w.y,.8*h,.8*d,w.size));else{new A(w.x,w.y,0,0,w.size).explode()}w=null}m=!1,f=!1},{passive:!0}),function i(){e.clearRect(0,0,t.width,t.height),w&&m&&(w.update(r,s),w.draw());for(var o=[],l=[],c=0;c<n.length;c++)X(n[c])?(L(n[c]),o.push(n[c]),"puff"===n[c].type&&n[c].active&&l.push(n[c])):n[c].active=!1;n=o,a=l;var h=[];for(c=0;c<q.length;c++)q[c].update()&&(q[c].draw(),h.push(q[c]));q=h,requestAnimationFrame(i)}()}function initMobileMenu(){try{var t=document.querySelector(".navbar-toggler"),e=document.querySelector(".navbar-collapse");t&&e&&(document.addEventListener("click",function(i){try{if(!(t.contains(i.target)||e.contains(i.target))&&e.classList.contains("show")&&"undefined"!=typeof bootstrap&&bootstrap.Collapse){var n=bootstrap.Collapse.getInstance(e);n&&n.hide()}}catch(t){console.warn("Error handling menu click:",t)}}),t.addEventListener("click",function(){try{setTimeout(function(){e.classList.contains("show")?document.body.style.overflow="hidden":document.body.style.overflow=""},350)}catch(t){console.warn("Error toggling body scroll:",t)}}))}catch(t){console.warn("Mobile menu initialization failed:",t)}}function enhanceRedStreaks(){const t=document.querySelector(".red-streaks");if(t){let e=.02;window.addEventListener("scroll",function(){const i=window.scrollY/(document.documentElement.scrollHeight-window.innerHeight);e=.02+.05*i,t.style.opacity=Math.min(1,.5+i)})}}function getViewportSize(){return{width:window.innerWidth||document.documentElement.clientWidth,height:window.innerHeight||document.documentElement.clientHeight}}function prefersReducedMotion(){return window.matchMedia&&window.matchMedia("(prefers-reduced-motion: reduce)").matches}style.textContent="\n @keyframes slideInRight {\n from {\n transform: translateX(400px);\n opacity: 0;\n }\n to {\n transform: translateX(0);\n opacity: 1;\n }\n }\n\n @keyframes slideOutRight {\n from {\n transform: translateX(0);\n opacity: 1;\n }\n to {\n transform: translateX(400px);\n opacity: 0;\n }\n }\n",document.head.appendChild(style),enhanceRedStreaks(),function(){var t=0,e=!1;window.addEventListener("scroll",function(){var i=window.pageYOffset||document.documentElement.scrollTop;e||(window.requestAnimationFrame(function(){Math.abs(i-t)>5&&(t=i),e=!1}),e=!0)},{passive:!0})}(),function(){var t;window.addEventListener("resize",function(){clearTimeout(t),t=setTimeout(function(){var t=getViewportSize();"undefined"!=typeof AOS&&t.width>=768&&AOS.refresh()},250)})}(),window.addEventListener("error",function(t){return console.error("Global error caught:",t.error),t.preventDefault(),!0}),window.addEventListener("unhandledrejection",function(t){console.error("Unhandled promise rejection:",t.reason),t.preventDefault()}),console.log("%c🧠 UnityAILab 🧠","color: #dc143c; font-size: 24px; font-weight: bold;"),console.log("%cPushing AI to its limits...","color: #cccccc; font-size: 14px;");