{% extends "/themes/default/index.html" %} 

{% block css %} {{ parent() }}
	<link type="text/css" rel="stylesheet" href="/themes/{{ theme }}/css/pages/index.css"/>
	<link type="text/css" rel="stylesheet" href="/themes/{{ theme }}/css/interface/spiral.css"/>
	<link type="text/css" rel="stylesheet" href="/themes/{{ theme }}/css/interface/ebashilovo.css"/>
	<link type="text/css" rel="stylesheet" href="/themes/{{ theme }}/css/interface/year.css"/>
	<link type="text/css" rel="stylesheet" href="/themes/{{ theme }}/css/interface/buttons.css"/>
	<link type="text/css" rel="stylesheet" href="/themes/{{ theme }}/css/interface/lines.css"/>
	<link type="text/css" rel="stylesheet" href="/themes/{{ theme }}/css/interface/order.css"/>
{% endblock %}

{% block main %}
<section id="entry">
	<h1 id="brand" class="unselectable">КОДОРВАНЬ</h1>
	<h2 id="slogan" class="unselectable">РЕАЛЬНЫХ ПРОГРАММИСТОВ</h2>

	<section id="services" class="block glass unselectable">
		<h3>Приоритетные услуги</h3>
		<ol>
			<li class="popular">
				<strong>Чат-роботы</strong>, от простых и до <strong>Web App</strong>
			</li>
			<li><strong>Нейросети</strong>. Все. Даже те самые.</li>
			<li><strong>Блокчейн-технологии</strong> по современным стандартам</li>
			<li><strong>Криптовалюты</strong> собственной разработки</li>
			<li><strong>Мобильные приложения</strong> с поддержкой айфонов</li>
			<li><strong>CRM-системы</strong> и интеграция с ними</li>
			<li><strong>Игры</strong> для акций и рекламы</li>
			<li><strong>Калькуляторы</strong> для предприятий</li>
			<li>
				<strong>Сайты</strong>, <strong>воронки</strong>,
				<strong>парсеры</strong>, <strong>API-интеграции</strong> и
				<strong>макросы</strong>
			</li>
		</ol>
	</section>

	<section id="simple" class="block glass white unselectable">
		<h4>Нужен небольшой проект?</h4>
		<span>НАШИ СТАЖЁРЫ РАБОТАЮТ ЗА ЧУПА ЧУПСЫ</span>
	</section>

	<section id="special" class="block glass black unselectable">
		<h3>Особые услуги</h3>
		<ol>
			<li><strong>Копируем конкурента</strong></li>
			<li>Запускаем в <strong>топ яндекса</strong></li>
			<li>
				Интегрируем к <strong>CRM</strong>, <strong>1C</strong> и
				<strong>Excel-таблицам</strong>
			</li>
			<li>Поддерживаем запущенный проект</li>
			<li><strong>Бесплатный сервер</strong> на этапе разработки</li>
			<li>Реанимируем проекты</li>
			<li><strong>Контроль качества</strong> чужой работы</li>
			<li>Проводим <strong>непредвзятое тестирование</strong></li>
			<!--       <li>Помогаем собрать команду</li> -->
		</ol>
	</section>
</section>

<span id="year" class="unselectable">2025</span>

<section id="buttons">
	<img
		class="construction"
		loading="lazy"
		src="https://lyra.horse/css-clicker/buttons/construction.gif"
		ondragstart="return false;"
	/>
	<img
		loading="lazy"
		src="https://lyra.horse/css-clicker/buttons/css2.gif"
		ondragstart="return false;"
	/>
	<img
		loading="lazy"
		src="https://lyra.horse/css-clicker/buttons/dbd.gif"
		ondragstart="return false;"
	/>
	<!--     <img loading="lazy" src="https://lyra.horse/css-clicker/buttons/gaywebring.gif" ondragstart="return false;" /> -->
	<!--     <img loading="lazy" src="https://lyra.horse/css-clicker/buttons/miku.gif" ondragstart="return false;" /> -->
	<img
		loading="lazy"
		src="https://lyra.horse/css-clicker/buttons/mozbutd1.gif"
		ondragstart="return false;"
	/>
	<img
		loading="lazy"
		src="https://lyra.horse/css-clicker/buttons/nofuckingthanks.gif"
		ondragstart="return false;"
	/>
	<img
		class="noclick"
		loading="lazy"
		src="https://maia.crimew.gay/badges/noclick.gif"
		onclick="alert('bruh');"
		ondragstart="return false;"
	/>
	<img
		loading="lazy"
		src="https://cyber.dabamos.de/88x31/zanarkand.gif"
		ondragstart="return false;"
	/>
	<img
		loading="lazy"
		src="https://88x31.nl/gifs/antinazi.gif"
		ondragstart="return false;"
	/>
	<img
		class="hell"
		loading="lazy"
		src="https://cyber.dabamos.de/88x31/tohell.gif"
		ondragstart="return false;"
		ondragstart="return false;"
	/>
	<img
		loading="lazy"
		src="https://88x31.nl/gifs/say-no-to-web3.gif"
		ondragstart="return false;"
	/>
	<img
		loading="lazy"
		src="https://88x31.nl/gifs/they-walk-among-us.png"
		ondragstart="return false;"
	/>
	<img
		class="eye"
		loading="lazy"
		src="https://88x31.nl/gifs/uranohead.gif"
		ondragstart="return false;"
	/>
	<img
		loading="lazy"
		src="https://88x31.nl/gifs/discord-no-way.gif"
		ondragstart="return false;"
	/>
	<img
		loading="lazy"
		src="https://88x31.nl/gifs/chat.gif"
		ondragstart="return false;"
	/>
	<img
		loading="lazy"
		src="https://88x31.nl/gifs/upallnight%20(3).gif"
		ondragstart="return false;"
	/>
	<img
		loading="lazy"
		src="https://lyra.horse/css-clicker/buttons/free-sex.gif"
		ondragstart="return false;"
	/>
	<img
		loading="lazy"
		src="https://88x31.nl/gifs/virusalert.gif"
		ondragstart="return false;"
	/>
	<img
		loading="lazy"
		src="https://cyber.dabamos.de/88x31/microsoft_stop.gif"
		ondragstart="return false;"
	/>
	<img
		loading="lazy"
		src="https://88x31.nl/gifs/linuxnow2.gif"
		ondragstart="return false;"
	/>
	<img
		loading="lazy"
		src="https://88x31.nl/gifs/vim.vialle.love.anim.gif"
		ondragstart="return false;"
	/>
	<img
		loading="lazy"
		src="https://cyber.dabamos.de/88x31/tummy.gif"
		ondragstart="return false;"
	/>
	<img
		loading="lazy"
		src="https://88x31.nl/gifs/anybrow%20(3).gif"
		ondragstart="return false;"
	/>
	<img
		loading="lazy"
		src="https://88x31.nl/gifs/camtime.png"
		ondragstart="return false;"
	/>
	<img
		loading="lazy"
		src="https://88x31.nl/gifs/reshirii.gif"
		ondragstart="return false;"
	/>
	<img
		loading="lazy"
		src="https://88x31.nl/gifs/alien2.gif"
		ondragstart="return false;"
	/>
	<img
		class="antibuttons"
		loading="lazy"
		src="https://88x31.nl/gifs/anti_button.gif"
		onclick="alert('BUTTONS SUCKS!'); document.getElementById('buttons').remove();"
		ondragstart="return false;"
	/>
	<img
		loading="lazy"
		src="https://88x31.nl/gifs/fspeech96a.gif"
		ondragstart="return false;"
	/>
	<img
		loading="lazy"
		src="https://88x31.nl/gifs/saratov.gif"
		ondragstart="return false;"
	/>
	<img
		loading="lazy"
		src="https://88x31.nl/gifs/thatpays2.gif"
		ondragstart="return false;"
	/>
	<img
		loading="lazy"
		src="https://lyra.horse/css-clicker/buttons/antinft.gif"
		ondragstart="return false;"
	/>
	<img
		loading="lazy"
		src="https://88x31.nl/gifs/tumblr_ptmmk6djdu1xwjivko5_100.gif"
		ondragstart="return false;"
	/>
	<img
		loading="lazy"
		src="https://88x31.nl/gifs/ieshit.gif"
		ondragstart="return false;"
	/>
	<img
		loading="lazy"
		src="https://88x31.nl/gifs/underground.gif"
		ondragstart="return false;"
	/>
	<img
		loading="lazy"
		src="https://88x31.nl/gifs/volta.gif"
		ondragstart="return false;"
	/>
	<img
		loading="lazy"
		src="https://88x31.nl/gifs/ocartswap_2.gif"
		ondragstart="return false;"
	/>
	<img
		loading="lazy"
		src="https://88x31.nl/gifs/f_ckfb.gif"
		ondragstart="return false;"
	/>
	<img
		class="cogs"
		loading="lazy"
		src="https://88x31.nl/gifs/cogs.gif"
		ondragstart="return false;"
	/>
	<img
		loading="lazy"
		src="https://88x31.nl/gifs/antifa.gif"
		ondragstart="return false;"
	/>
	<img
		loading="lazy"
		src="https://cyber.dabamos.de/88x31/newbuttonone.gif"
		ondragstart="return false;"
	/>
	<img
		class="colors"
		loading="lazy"
		src="https://88x31.nl/gifs/bestviewed16bit.gif"
		ondragstart="return false;"
	/>
</section>

<!--
  <section class="block glass black">
    <h3>Партнёрство</h3>
    <ol>
      <li>Подключаем свою ферму SIM-карт, дешевле чем у всех</li>
      <li>Печатаем мерч из нашей типографии, с мега скидкой</li>
      <li>Размещаем на нашем защищённом сервере в России</li>
    </ol>
  </section> -->

<div id="spiral" class="unselectable" style="opacity: 0">
	<div class="tray">
		<div class="die">
			<div class="cube">
				<div class="face" style="font-size: 60px">ПРИДУМАЕМ</div>
				<div class="face" style="font-size: 58px">СОЗДАДИМ</div>
				<div class="face" style="font-size: 55px">ЗАПУСТИМ</div>
			</div>
		</div>
		<!-- clones will go here -->
	</div>
</div>

<!--   <svg id="ladder" class="unselectable" viewBox="0 0 1280 720">
    <mask id="maskLeft">
      <rect x="-50%" width="100%" height="100%" fill="#fff" />
    </mask>
    <mask id="maskRight">
      <rect x="50%" width="100%" height="100%" fill="#fff" />
    </mask>
    <g font-size="150">
      <g mask="url(#maskLeft)" fill="#fff" class="left">
        <text y="120">ПРОЕКТ</text>
        <text y="250">ЛЮБОЙ</text>
        <text y="380">СЛОЖНОСТИ</text>
      </g>
      <g mask="url(#maskRight)" fill="#aaa" class="right">
        <text y="120">ПРОЕКТ</text>
        <text y="250">ЛЮБОЙ</text>
        <text y="380">СЛОЖНОСТИ</text>
      </g>
    </g>
  </svg> -->

<section id="calculator">
	<div class="title block">
		<h3>КАЛЬКУЛЯТОР</h3>
		<!--       <small>Получите честную цену прямо здесь и сейчас!</small> -->
	</div>

	<div class="input block"></div>

	<div id="lines"></div>

	<script id="vertexShader" type="x-shader/x-vertex">
		    uniform float time;
		varying vec2 vUv;
		varying vec3 vPosition;
		uniform vec2 pixels;
		float PI = 3.141592653589793238;

		void main() {
		  vUv = uv;
		  vPosition = position;

		  gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );
		}
	</script>

	<!-- fragment shader -->
	<script id="fragmentShader" type="x-shader/x-fragment">
		    uniform float time;
		uniform float rotation;
		uniform float lineWidth;
		uniform float repeat;
		uniform sampler2D texture1;
		uniform vec4 resolution;
		varying vec2 vUv;
		varying vec3 vPosition;
		float PI = 3.141592653589793238;

		vec2 rotate(vec2 v, float a) {
		  float s = sin(a);
		  float c = cos(a);
		  mat2 m = mat2(c, -s, s, c);
		  return m * v;
		}

		float aastep(float threshold, float value) {
		  #ifdef GL_OES_standard_derivatives
		    float afwidth = length(vec2(dFdx(value), dFdy(value))) * 0.70710678118654757;
		    return smoothstep(threshold-afwidth, threshold+afwidth, value);
		  #else
		    return step(threshold, value);
		  #endif
		}


		//	Classic Perlin 3D Noise
		//	by Stefan Gustavson
		//
		vec4 permute(vec4 x){return mod(((x*34.0)+1.0)*x, 289.0);}
		vec4 taylorInvSqrt(vec4 r){return 1.79284291400159 - 0.85373472095314 * r;}
		vec3 fade(vec3 t) {return t*t*t*(t*(t*6.0-15.0)+10.0);}

		float cnoise(vec3 P){
		  vec3 Pi0 = floor(P); // Integer part for indexing
		  vec3 Pi1 = Pi0 + vec3(1.0); // Integer part + 1
		  Pi0 = mod(Pi0, 289.0);
		  Pi1 = mod(Pi1, 289.0);
		  vec3 Pf0 = fract(P); // Fractional part for interpolation
		  vec3 Pf1 = Pf0 - vec3(1.0); // Fractional part - 1.0
		  vec4 ix = vec4(Pi0.x, Pi1.x, Pi0.x, Pi1.x);
		  vec4 iy = vec4(Pi0.yy, Pi1.yy);
		  vec4 iz0 = Pi0.zzzz;
		  vec4 iz1 = Pi1.zzzz;

		  vec4 ixy = permute(permute(ix) + iy);
		  vec4 ixy0 = permute(ixy + iz0);
		  vec4 ixy1 = permute(ixy + iz1);

		  vec4 gx0 = ixy0 / 7.0;
		  vec4 gy0 = fract(floor(gx0) / 7.0) - 0.5;
		  gx0 = fract(gx0);
		  vec4 gz0 = vec4(0.5) - abs(gx0) - abs(gy0);
		  vec4 sz0 = step(gz0, vec4(0.0));
		  gx0 -= sz0 * (step(0.0, gx0) - 0.5);
		  gy0 -= sz0 * (step(0.0, gy0) - 0.5);

		  vec4 gx1 = ixy1 / 7.0;
		  vec4 gy1 = fract(floor(gx1) / 7.0) - 0.5;
		  gx1 = fract(gx1);
		  vec4 gz1 = vec4(0.5) - abs(gx1) - abs(gy1);
		  vec4 sz1 = step(gz1, vec4(0.0));
		  gx1 -= sz1 * (step(0.0, gx1) - 0.5);
		  gy1 -= sz1 * (step(0.0, gy1) - 0.5);

		  vec3 g000 = vec3(gx0.x,gy0.x,gz0.x);
		  vec3 g100 = vec3(gx0.y,gy0.y,gz0.y);
		  vec3 g010 = vec3(gx0.z,gy0.z,gz0.z);
		  vec3 g110 = vec3(gx0.w,gy0.w,gz0.w);
		  vec3 g001 = vec3(gx1.x,gy1.x,gz1.x);
		  vec3 g101 = vec3(gx1.y,gy1.y,gz1.y);
		  vec3 g011 = vec3(gx1.z,gy1.z,gz1.z);
		  vec3 g111 = vec3(gx1.w,gy1.w,gz1.w);

		  vec4 norm0 = taylorInvSqrt(vec4(dot(g000, g000), dot(g010, g010), dot(g100, g100), dot(g110, g110)));
		  g000 *= norm0.x;
		  g010 *= norm0.y;
		  g100 *= norm0.z;
		  g110 *= norm0.w;
		  vec4 norm1 = taylorInvSqrt(vec4(dot(g001, g001), dot(g011, g011), dot(g101, g101), dot(g111, g111)));
		  g001 *= norm1.x;
		  g011 *= norm1.y;
		  g101 *= norm1.z;
		  g111 *= norm1.w;

		  float n000 = dot(g000, Pf0);
		  float n100 = dot(g100, vec3(Pf1.x, Pf0.yz));
		  float n010 = dot(g010, vec3(Pf0.x, Pf1.y, Pf0.z));
		  float n110 = dot(g110, vec3(Pf1.xy, Pf0.z));
		  float n001 = dot(g001, vec3(Pf0.xy, Pf1.z));
		  float n101 = dot(g101, vec3(Pf1.x, Pf0.y, Pf1.z));
		  float n011 = dot(g011, vec3(Pf0.x, Pf1.yz));
		  float n111 = dot(g111, Pf1);

		  vec3 fade_xyz = fade(Pf0);
		  vec4 n_z = mix(vec4(n000, n100, n010, n110), vec4(n001, n101, n011, n111), fade_xyz.z);
		  vec2 n_yz = mix(n_z.xy, n_z.zw, fade_xyz.y);
		  float n_xyz = mix(n_yz.x, n_yz.y, fade_xyz.x);
		  return 2.2 * n_xyz;
		}

		float line(vec2 uv, float width) {
		  float u = 0.;

		  if(uv.x < 0.01) {
		    u = 0.;
		  }else if(uv.x > 1.-0.01) {
		    u = 0.;
		  }else {
		    u = aastep(width, uv.x) - aastep(1. - width, uv.x);
		  }


		  return u;
		}

		void main()	{
		  // vec2 newUV = vUv;
		  // vec2 newUV = gl_FragCoord.xy/resolution.xy;
		  vec2 newUV = vPosition.xy;
		  newUV = rotate(newUV, rotation);
		  float noise = cnoise(vec3(newUV+time/40.+vPosition.z,0.));

		  // repeat
		  newUV += vec2(noise);
		  newUV = vec2(fract((newUV.x+0.*newUV.y)*repeat), newUV.y);



		  gl_FragColor = vec4(vec3(line(newUV, lineWidth)),1.);
		  // gl_FragColor = vec4(newUV,0.,1.);

		}
	</script>

	<button class="block" onclick="alert('FREE SEX');">Посчитать</button>
</section>

<nav id="authors" class="unselectable">
	<span class="author">
		<span class="role">Developer</span>
		<a href="https://mirzaev.sexy" class="name"
			>Arsen Mirzaev Tatyano-Muradovich</a
		>
	</span>

	<span class="author">
		<span class="role">WebGL Shader</span>
		<a href="https://x.com/techartist_" class="name">Techartist</a>
	</span>

	<span class="author">
		<span class="role">Spiral</span>
		<a href="https://creativeocean.com" class="name">Tom Miller</a>
	</span>

	<span class="author">
		<span class="role">Inspiration</span>
		<a href="https://lyra.horse" class="name">Lyra Rebane</a>
	</span>

	<span class="author">
		<span class="role">Buttons</span>
		<a href="https://88x31.nl" class="name">Paulus Hollander</a>
	</span>
</nav>

<!-- 
<section id="questions" class="unselectable">
  <p class="glass">Как оформить подписку?</p>
  <p class="glass">Когда будет доставка заказа?</p>
  <p class="glass">Возможно ли изменить адрес?</p>
  <p class="glass">Какой срок обработки запросов?</p>
  <p class="glass">Предоставляете ли услуги тестирования?</p>
  <p class="glass">Сколько стоит ваша консультация?</p>
  <p class="glass">Есть ли скидки для студентов?</p>
  <p class="glass">Как получить промокод?</p>
  <p class="glass">Можно ли вернуть товар?</p>
  <p class="glass">Какой срок возврата денег?</p>
  <p class="glass">Можно ли отменить заказ?</p>
  <p class="glass">Как выбрать подходящий товар?</p>
  <p class="glass">Как оплатить заказ?</p>
  <p class="glass">Как связаться с поддержкой?</p>
  <p class="glass">Принимаете ли вы PayPal?</p>
  <p class="glass">Есть ли минимальная сумма заказа?</p>
  <p class="glass">Как долго идет доставка?</p>
  <p class="glass">Можно ли изменить заказ?</p>
  <p class="glass">Предоставляете ли бесплатную пробу?</p>
  <p class="glass">Как мне зарегистрироваться?</p>
  <p class="glass">Когда откроются новые отзывы?</p>
  <p class="glass">Какой у вас режим работы?</p>
  <p class="glass">Сколько стоит доставка?</p>
  <p class="glass">Как отслеживать заказ?</p>
  <p class="glass">Как готовите отзывы клиентов?</p>
  <p class="glass">Предоставляете ли телесные консультации?</p>
  <p class="glass">Могу ли я увидеть образцы?</p>
  <p class="glass">Как работает ваша служба поддержки?</p>
  <p class="glass">Есть ли у вас гарантии?</p>
  <p class="glass">Какие товары в наличии?</p>
  <p class="glass">Когда запустите новую акцию?</p>
  <p class="glass">Что делать с бракованным товаром?</p>
  <p class="glass">Когда обновится сайт?</p>
  <p class="glass">Как часто вы проводите распродажи?</p>
  <p class="glass">Как будет выглядеть упаковка?</p>
  <p class="glass">Как написать отзыв?</p>
  <p class="glass">Где найти ваши филиалы?</p>
  <p class="glass">Какова средняя скорость доставки?</p>
  <p class="glass">Каковы условия партнёрства?</p>
  <p class="glass">Когда выйдет новая коллекция?</p>
  <p class="glass">Как оставить заявку на обратный звонок?</p>
  <p class="glass">Где искать информацию о скидках?</p>
  <p class="glass">Как расширить свой аккаунт?</p>
  <p class="glass">Можно ли комбинировать товары?</p>
  <p class="glass">Когда мне отвечают?</p>
  <p class="glass">Где найти ваши условия доставки?</p>
  <p class="glass">Когда будет следующее обновление?</p>
  <p class="glass">Можно ли вернуть услугу?</p>
  <p class="glass">Как отменить подписку?</p>
  <p class="glass">Как пользоваться вашим сервисом?</p>
  <p class="glass">Сколько длится подписка?</p>
  <p class="glass">Как получить сертификат?</p>
  <p class="glass">На какой срок действует акция?</p>
  <p class="glass">Можно ли забрать товар самовывозом?</p>
  <p class="glass">Как можно связаться с менеджером?</p>
  <p class="glass">Что включает в себя гарантия?</p>
  <p class="glass">Как быстро обрабатываются жалобы?</p>
  <p class="glass">Где узнать о совместных акциях?</p>
  <p class="glass">Можно ли продлить подписку?</p>
  <p class="glass">Как решить проблему с оплатой?</p>
  <p class="glass">Когда будут новые поступления?</p>
  <p class="glass">Как написать грамотный отзыв?</p>
  <p class="glass">Где можно прочитать ваше соглашение?</p>
  <p class="glass">Как подобрать оптимальный тариф?</p>
  <p class="glass">Что делать при возникновении проблемы?</p>
  <p class="glass">Как оплатить в рассрочку?</p>
  <p class="glass">Когда будет ближайшая акция?</p>
  <p class="glass">Как проходит процесс возврата?</p>
  <p class="glass">Каковы условия доставки за границу?</p>
  <p class="glass">Есть ли возможность самовывоза?</p>
  <p class="glass">Каковы ваши условия использования?</p>
  <p class="glass">Как получить скидку на первый заказ?</p>
  <p class="glass">Где можно прочитать отзывы?</p>
  <p class="glass">Как вы обрабатываете персональные данные?</p>
  <p class="glass">Можно ли оплатить частями?</p>
  <p class="glass">Как избежать мошенничества?</p>
  <p class="glass">Когда обновится программа лояльности?</p>
  <p class="glass">Можно ли создать групповой заказ?</p>
  <p class="glass">Как быстро отвечает техподдержка?</p>
  <p class="glass">Каков процесс предоставления услуг?</p>
  <p class="glass">Почему товары недоступны?</p>
  <p class="glass">Где искать информацию о доступности?</p>
  <p class="glass">Как оформляются подарочные сертификаты?</p>
  <p class="glass">Что делать, если не приходит ответ?</p>
  <p class="glass">Можно ли оставить отзыв анонимно?</p>
  <p class="glass">Какой у вас стаж работы?</p>
  <p class="glass">Как осуществляется контроль качества?</p>
  <p class="glass">Когда можно подписаться на новости?</p>
  <p class="glass">Как получить консультацию по телефону?</p>
  <p class="glass">Где посмотреть наши оставленные заявки?</p>
  <p class="glass">Можно ли снизить стоимость услуг?</p>
  <p class="glass">Как часто обновляется ассортимент?</p>
  <p class="glass">Когда выйдет обновление описания услуг?</p>
  <p class="glass">Как перейти на следующий уровень?</p>
  <p class="glass">Когда будут доступны новые функции?</p>
  <p class="glass">Как выбрать клининг-агентство?</p>
  <p class="glass">Как вызвать специального мастера?</p>
  <p class="glass">Получите ли вы сертификаты?</p>
</section> -->

<div id="ebashilovo"></div>

<button id="order" class="unselectable">КУПИТЬ</button>
{% endblock %} 

{% block js %}
	<script type="importmap">
		{
			"imports": {
        "three": "/javascript/three.module.js",
        "BufferGeometryUtils": "/javascript/BufferGeometryUtils.js",
				"gsap": "/javascript/gsap/all.js",
				"hotline": "/javascript/hotline.mjs"
			}
		}
	</script>

	<script src="/javascript/pages/index.js" type="module"></script>
{% endblock %}
