<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Hypnosis Level 1</title>
    <link rel="icon" href="/assets/favicon.ico" type="image/x-icon">
    <style>
        body, html {
            margin: 0;
            padding: 0;
            overflow: hidden;
            background-color: black;
            display: flex;
            align-items: center;
            justify-content: center;
            height: 100vh;
        }
        #spiralCanvas {
            width: 100vw;
            height: 100vh;
            position: absolute;
            opacity: 0.4; /* 40% opacity */
            z-index: 10;
        }
        .content {
            position: relative;
            z-index: 5;
            width: 100vw;
            height: 100vh;
            display: flex;
            flex-wrap: wrap;
            justify-content: center;
            align-items: center;
        }
        .popup {
            position: absolute;
            object-fit: cover;
            opacity: 0;
            animation: hypnoticZoom 8s infinite ease-in-out;
            border-radius: 10px;
        }
        @keyframes hypnoticZoom {
            0%, 100% { opacity: 0; transform: scale(0.8); }
            50% { opacity: 1; transform: scale(1.2); }
        }
        #timer {
            position: fixed;
            top: 10px;
            right: 20px;
            font-size: 2em;
            color: #FF6EC7;
            z-index: 15;
        }
        .retweetMe {
            display: none;
            position: absolute;
            padding: 20px 40px;
            font-size: 24px;
            color: #FF6EC7;
            background-color: black;
            border: 2px solid #FF6EC7;
            border-radius: 10px;
            cursor: pointer;
            animation: zoomInOut 1s infinite alternate;
            z-index: 20;
            text-decoration: none;
            text-align: center;
            font-weight: bold;
            box-shadow: 0 0 15px #FF6EC7, 0 0 30px #FF6EC7;
        }
        @keyframes zoomInOut {
            0% { transform: scale(1); }
            100% { transform: scale(1.1); }
        }
        .word {
            position: absolute;
            font-size: 4em;
            color: #ffffff;
            font-weight: bold;
            opacity: 0;
            animation: wordHypnotic 8s infinite ease-in-out;
            text-shadow: 0 0 15px #FF6EC7, 0 0 30px #FF6EC7;
            z-index: 15;
        }
        @keyframes wordHypnotic {
            0%, 100% { opacity: 0; transform: scale(0.5); }
            50% { opacity: 1; transform: scale(1.3); }
        }
    </style>
</head>
<body>

<!-- Timer -->
<div id="timer">7:21</div>

<canvas id="spiralCanvas"></canvas>

<div class="content" id="content">
    <!-- Images and videos will be dynamically loaded here -->
</div>

<audio id="backgroundAudio" src="/hypnosis/audio/audio1.wav" loop></audio>

<!-- Retweet Me Buttons -->
<a id="retweet1" class="retweetMe" href="https://x.com/wilddomme/status/1863656352842907861" target="_blank">Retweet Me</a>
<a id="retweet2" class="retweetMe" href="https://x.com/wilddomme/status/1863436166399476097" target="_blank">Retweet Me</a>

<script>
    // Spiral animation code
    const canvas = document.getElementById('spiralCanvas');
    const ctx = canvas.getContext('2d');
    let width = window.innerWidth;
    let height = window.innerHeight;

    canvas.width = width;
    canvas.height = height;

    let angle = 0;
    let scale = 1;
    let scaleDirection = 1;
    let rotationSpeed = 0.03;
    let scaleSpeed = 0.005;

    const colors = ["#FF6EC7", "#9400D3", "black"];
    let colorIndex = 0;
    let colorTransitionSpeed = 0.01;
    let colorTransition = 0;

    function drawSpiral() {
        ctx.clearRect(0, 0, width, height);
        ctx.save();
        ctx.translate(width / 2, height / 2);
        ctx.rotate(angle);
        ctx.scale(scale, scale);

        const numberOfCircles = 60;
        const circleWidth = 15;
        const circleSpacing = 20;

        for (let i = 0; i < numberOfCircles; i++) {
            ctx.beginPath();
            ctx.arc(0, 0, i * circleSpacing, 0, Math.PI * 2);

            const nextColorIndex = (colorIndex + 1) % colors.length;
            const currentColor = hexToRGB(colors[colorIndex]);
            const nextColor = hexToRGB(colors[nextColorIndex]);

            const interpolatedColor = interpolateColor(currentColor, nextColor, colorTransition);
            ctx.strokeStyle = `rgb(${interpolatedColor.r}, ${interpolatedColor.g}, ${interpolatedColor.b})`;
            ctx.lineWidth = circleWidth;
            ctx.stroke();
        }

        ctx.restore();

        angle += rotationSpeed;
        scale += scaleSpeed * scaleDirection;

        if (scale > 2 || scale < 0.5) scaleDirection *= -1;
        colorTransition += colorTransitionSpeed;

        if (colorTransition >= 1) {
            colorTransition = 0;
            colorIndex = (colorIndex + 1) % colors.length;
        }

        requestAnimationFrame(drawSpiral);
    }

    function hexToRGB(hex) {
        const bigint = parseInt(hex.slice(1), 16);
        const r = (bigint >> 16) & 255;
        const g = (bigint >> 8) & 255;
        const b = bigint & 255;
        return { r, g, b };
    }

    function interpolateColor(color1, color2, factor) {
        const r = Math.round(color1.r + factor * (color2.r - color1.r));
        const g = Math.round(color1.g + factor * (color2.g - color1.g));
        const b = Math.round(color1.b + factor * (color2.b - color1.b));
        return { r, g, b };
    }

    drawSpiral();

    window.addEventListener('resize', () => {
        width = window.innerWidth;
        height = window.innerHeight;
        canvas.width = width;
        canvas.height = height;
    });

    // Countdown Timer and Show Retweet Me Button
    let countdownTime = 7 * 60 + 21; // 7 minutes 21 seconds in seconds
    const timerDisplay = document.getElementById('timer');

    function updateTimer() {
        const minutes = Math.floor(countdownTime / 60);
        const seconds = countdownTime % 60;
        timerDisplay.textContent = `${minutes}:${seconds < 10 ? '0' + seconds : seconds}`;

        if (countdownTime === 1) { // Show Retweet buttons at 7:20
            const retweets = document.querySelectorAll('.retweetMe');
            retweets.forEach(retweet => {
                retweet.style.display = 'block';
                retweet.style.top = `${Math.random() * 80 + 10}%`; // Random Y position
                retweet.style.left = `${Math.random() * 80 + 10}%`; // Random X position
            });
        }

        if (countdownTime > 0) {
            countdownTime--;
            setTimeout(updateTimer, 1000);
        } else {
            timerDisplay.textContent = "Time's up!";
        }
    }

    updateTimer();

    // Words to display
    const words = [
        "Goddess Yuki", "Mommy Yuki", "Princess Yuki", "Wild Domme", "Mistress Yuki", "Queen Yuki"
    ];

    // Randomly display words on the screen
    function displayWords() {
        words.forEach((word, index) => {
            const wordElement = document.createElement('div');
            wordElement.className = 'word';
            wordElement.textContent = word;

            // Randomize position, size, and delay
            const x = Math.floor(Math.random() * 80) + 10; // Between 10% and 90% width
            const y = Math.floor(Math.random() * 80) + 10; // Between 10% and 90% height
            const delay = Math.random() * 6; // Random delay for animation

            wordElement.style.left = `${x}%`;
            wordElement.style.top = `${y}%`;
            wordElement.style.animationDelay = `${delay}s`;

            document.body.appendChild(wordElement); // Append to body
        });
    }

    displayWords();

    // Media Sources
    const mediaSources = [
    "https://storage.googleapis.com/hentaixxx/1535e5f074355909874062830fceea55.mp4", 
    "https://storage.googleapis.com/hentaixxx/189a5cfd55bfcc36c8128121c9bb741e.mp4", 
    "https://storage.googleapis.com/hentaixxx/1cafa1dbf85ab616baa86848a3ada4b5.mp4", 
    "https://storage.googleapis.com/hentaixxx/2c38184078af0467d3520ca5fb2e3082.mp4", 
    "https://storage.googleapis.com/hentaixxx/362a2d1af87d2e9224635ef1d8e8da79.mp4", 
    "https://storage.googleapis.com/hentaixxx/4313ad5e8549c00c4c5c1a6578247272.mp4",
    "https://storage.googleapis.com/hentaixxx/4aed41f342ec7c2127dce89d879c0763.mp4",
    "https://storage.googleapis.com/hentaixxx/5a3cb3e522499143016f15dcd446c2b2.mp4",
    "https://storage.googleapis.com/hentaixxx/83007bc061204c931843737ff2f07e4f.mp4",
    "https://storage.googleapis.com/hentaixxx/a1e81daee96cfe5ec4ebe7c2753bf014.mp4",
    "https://storage.googleapis.com/hentaixxx/c61368298dca3c1b03e95992a842b542.mp4",
    "https://storage.googleapis.com/hentaixxx/dde60f79be34c32dc91694cd55d59b9f.mp4",
    "https://storage.googleapis.com/hentaixxx/de2a8859e65322f93844c8a94d6402fd.mp4",
    "https://storage.googleapis.com/hentaixxx/e1b1374b63269546eeec2d16dcfdfe16.mp4",
    "https://storage.googleapis.com/hentaixxx/e5eb06de45b1d73cc7b12a4b2b688b93.mp4",
    "https://storage.googleapis.com/hentaixxx/e7ed143bdf0af1c279bef0a9b3e4787f.mp4",
    "https://storage.googleapis.com/hentaixxx/e8ada7101e47221da2f138e97a3a47cc.mp4",
    "https://storage.googleapis.com/hentaixxx/photo_2024-12-06_00-53-58.jpg",
    "https://storage.googleapis.com/hentaixxx/photo_2024-12-06_00-56-18.jpg",
    "https://storage.googleapis.com/hentaixxx/photo_2024-12-06_01-06-08.jpg",
    "https://storage.googleapis.com/hentaixxx/photo_2024-12-06_01-06-23.jpg",
    "https://storage.googleapis.com/hentaixxx/photo_2024-12-06_01-06-28.jpg",
    "https://storage.googleapis.com/hentaixxx/photo_2024-12-06_01-06-37.jpg",
    "https://storage.googleapis.com/hentaixxx/photo_2024-12-06_01-06-43.jpg",
    "https://storage.googleapis.com/hentaixxx/photo_2024-12-06_01-07-15.jpg",
    "https://storage.googleapis.com/hentaixxx/photo_2024-12-06_01-07-21.jpg",
    "https://storage.googleapis.com/hentaixxx/photo_2024-12-06_01-07-29.jpg",
    "https://storage.googleapis.com/hentaixxx/photo_2024-12-06_01-07-51.jpg",
    "https://storage.googleapis.com/hentaixxx/photo_2024-12-06_01-08-04.jpg",
    "https://storage.googleapis.com/hentaixxx/photo_2024-12-06_01-08-07.jpg",
    "https://storage.googleapis.com/hentaixxx/photo_2024-12-06_01-08-11.jpg",
    "https://storage.googleapis.com/hentaixxx/photo_2024-12-06_01-08-14.jpg",
    "https://storage.googleapis.com/hentaixxx/photo_2024-12-06_01-08-35.jpg",
    "https://storage.googleapis.com/hentaixxx/1.jpg",
    "https://storage.googleapis.com/hentaixxx/2.jpg",
    "https://storage.googleapis.com/hentaixxx/3.jpg",
    "https://storage.googleapis.com/hentaixxx/4.jpg",
    "https://storage.googleapis.com/hentaixxx/5.jpg",
    "https://storage.googleapis.com/hentaixxx/6.jpg",
    "https://storage.googleapis.com/hentaixxx/7.jpg"
];
    function loadMedia() {
        const content = document.getElementById('content');
        content.innerHTML = ''; 

        mediaSources.forEach((src, index) => {
            const mediaElement = src.endsWith('.mp4') ? document.createElement('video') : document.createElement('img');
            mediaElement.src = src;
            mediaElement.classList.add('popup');

            if (mediaElement.tagName === 'VIDEO') {
                mediaElement.autoplay = true;
                mediaElement.loop = true;
                mediaElement.volume = 0.2; // Set volume to 50%
            }

            const randomSize = Math.floor(Math.random() * 15) + 15;
            mediaElement.style.width = `${randomSize}vw`;
            mediaElement.style.transform = `scale(1) rotate(${Math.random() * 20 - 10}deg)`;
            mediaElement.style.left = `${Math.random() * 90}vw`;
            mediaElement.style.top = `${Math.random() * 90}vh`;

            mediaElement.style.animationDelay = `${index * 0.5}s`;
            content.appendChild(mediaElement);
        });
    }

    loadMedia();

    // Ensure audio autoplay with fallback for interaction
    const audioElement = document.getElementById('backgroundAudio');
    audioElement.play().catch(() => {
        document.body.addEventListener('click', () => {
            audioElement.play();
            const videos = document.querySelectorAll('video');
            videos.forEach(video => video.play());
        }, { once: true });
    });
</script>

</body>
</html>
