<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>khup.com — This Domain May Be For Sale</title>





<style>
* { margin: 0; padding: 0; box-sizing: border-box; }

body {
  background: #000;
  color: #fff;
  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
  overflow: hidden;
  height: 100vh;
  width: 100vw;
}

/* ── Header ── */
.header {
  position: fixed;
  top: 0; left: 0; right: 0;
  z-index: 200;
  display: flex;
  align-items: center;
  padding: 14px 24px;
  justify-content: space-between;
  background: linear-gradient(to bottom, rgba(0,0,0,0.85), transparent);
}
.header img { height: 22px; width: auto; opacity: 0.8; }
.header .domain-label {
  font-size: 14px; opacity: 0.5; letter-spacing: 0.5px;
}

/* ── Text above video ── */
.above-video {
  position: fixed;
  left: 0; right: 0;
  z-index: 100;
  text-align: center;
  padding: 0 20px;
  transition: opacity 0.8s ease;
}
.above-video.hidden { opacity: 0; pointer-events: none; }

.above-video h1 {
  font-size: clamp(20px, 4vw, 36px);
  font-weight: 600;
  margin-bottom: 6px;
}
.above-video .watch-prompt {
  font-size: clamp(13px, 2vw, 17px);
  color: rgba(255,255,255,0.6);
}

/* ── Progress bar below video ── */
.progress-bar-wrap {
  position: fixed;
  left: 50%;
  transform: translateX(-50%);
  z-index: 100;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  transition: opacity 0.8s ease, bottom 3s ease-in-out;
}
.progress-bar-wrap.hidden { opacity: 0; pointer-events: none; }
.progress-bar-wrap .countdown {
  font-size: 15px;
  font-weight: 600;
  color: #000;
  font-variant-numeric: tabular-nums;
  text-shadow: 0 0 8px rgba(255,255,255,0.5);
  order: -1;
}
.progress-track {
  width: min(400px, 80vw);
  height: 14px;
  background: #bfa800;
  border-radius: 7px;
  overflow: hidden;
}
.progress-fill {
  height: 100%;
  width: 0%;
  background: #ffe44d;
  border-radius: 7px;
  transition: width 1s linear;
}

/* ── Video ── */
.video-wrap {
  position: fixed;
  top: 50%; left: 50%;
  transform: translate(-50%, -50%);
  width: 55vw;
  aspect-ratio: 16 / 9;
  border-radius: 12px;
  overflow: hidden;
  box-shadow: 0 20px 80px rgba(0,0,0,0.8);
  z-index: 10;
  transition: width 3s ease-in-out, height 3s ease-in-out,
              border-radius 3s ease-in-out, box-shadow 3s ease-in-out;
}
.video-wrap.fullscreen {
  width: 100vw; height: 100vh;
  aspect-ratio: auto; border-radius: 0; box-shadow: none;
}
.video-wrap iframe {
  position: absolute; top: 0; left: 0;
  width: 100%; height: 100%; border: 0;
}

/* ── Progress bar in fullscreen mode ── */
.progress-bar-wrap.fullscreen-mode {
  bottom: 30px !important;
  z-index: 150;
}
.progress-bar-wrap.fullscreen-mode .countdown {
  color: #fff;
  text-shadow: 0 1px 6px rgba(0,0,0,0.9);
}

/* ── Captcha modal ── */
.captcha-overlay {
  position: fixed; top: 0; left: 0; right: 0; bottom: 0;
  z-index: 500; background: rgba(0,0,0,0.85);
  backdrop-filter: blur(12px);
  display: flex; align-items: center; justify-content: center;
  opacity: 0; pointer-events: none;
  transition: opacity 0.4s ease;
}
.captcha-overlay.open { opacity: 1; pointer-events: all; }

.captcha-box {
  background: #1a1a1a; border-radius: 16px;
  padding: 40px; max-width: 420px; width: 90%;
  text-align: center; border: 1px solid rgba(255,255,255,0.1);
  box-shadow: 0 30px 80px rgba(0,0,0,0.6);
}
.captcha-box h2 {
  font-size: 18px; font-weight: 400; margin-bottom: 28px;
  color: rgba(255,255,255,0.7); line-height: 1.5;
}
.captcha-question {
  display: flex; align-items: center; justify-content: center;
  gap: 12px; margin-bottom: 32px;
}
.captcha-answers {
  display: flex; gap: 12px; justify-content: center; flex-wrap: wrap;
}
.captcha-choice {
  width: 64px; height: 64px; border-radius: 50%;
  background: rgba(255,255,255,0.08); border: 2px solid rgba(255,255,255,0.15);
  cursor: pointer; display: flex; align-items: center; justify-content: center;
  transition: all 0.2s ease;
}
.captcha-choice:hover {
  background: rgba(255,255,255,0.15); border-color: rgba(255,255,255,0.4);
  transform: scale(1.1);
}
.captcha-choice.wrong {
  animation: shake 0.4s ease;
  border-color: #ff4444; background: rgba(255,68,68,0.15);
}
.captcha-choice.correct {
  border-color: #44ff88; background: rgba(68,255,136,0.2);
}
@keyframes shake {
  0%, 100% { transform: translateX(0); }
  20%, 60% { transform: translateX(-6px); }
  40%, 80% { transform: translateX(6px); }
}

/* ── Portrait ── */
@media (max-width: 600px) {
  .video-wrap { width: 85vw; aspect-ratio: 9 / 16; }
  .video-wrap.fullscreen { width: 100vw; height: 100vh; aspect-ratio: auto; }
  .captcha-choice { width: 54px; height: 54px; }
}
</style>
</head>

<body>

<header class="header">
  <a href="https://www.domainster.com">
    <img src="https://s3.amazonaws.com/assets.domainster/images/logo-white.png" alt="Domainster">
  </a>
  <span class="domain-label">khup.com</span>
</header>

<div class="above-video" id="aboveVideo">
  <h1>This Domain Name May Be For Sale!</h1>
  <div class="watch-prompt">Watch this video for 25 seconds and find out!</div>
</div>

<div class="video-wrap" id="videoWrap">
  <div id="player"></div>
</div>

<div class="progress-bar-wrap" id="progressWrap">
  <div class="progress-track">
    <div class="progress-fill" id="progressFill"></div>
  </div>
  <div class="countdown" id="countdown"></div>
</div>

<div class="captcha-overlay" id="captchaOverlay">
  <div class="captcha-box">
    <h2>Please convince us<br>that you are not a robot</h2>
    <div class="captcha-question" id="captchaQ"></div>
    <div class="captcha-answers" id="captchaA"></div>
  </div>
</div>

<script>
// ── SVG digit paths (viewBox 0 0 56 80) ──
// Single-stroke centerline paths for digits 0-9 (viewBox 0 0 56 80)
var _p = [
  "M28 8C16 8 10 20 10 40C10 60 16 72 28 72C40 72 46 60 46 40C46 20 40 8 28 8Z",
  "M18 16L28 8L28 72M16 72L40 72",
  "M12 22C12 12 18 8 28 8C38 8 44 14 44 24C44 36 28 48 12 68L12 72L44 72",
  "M14 14C18 10 22 8 28 8C38 8 44 14 44 24C44 30 40 36 32 38C40 40 46 46 46 56C46 66 38 72 28 72C20 72 14 66 14 60",
  "M34 72L34 8L10 52L46 52",
  "M42 8L16 8L12 36C18 30 24 28 30 28C40 28 46 36 46 48C46 62 40 72 28 72C20 72 12 66 12 60",
  "M42 14C36 8 32 8 28 8C16 8 10 22 10 40C10 60 16 72 28 72C40 72 46 62 46 52C46 42 40 34 28 34C18 34 10 40 10 48",
  "M12 8L44 8L26 72",
  "M28 8C18 8 12 14 12 24C12 30 16 36 28 40C40 36 44 30 44 24C44 14 38 8 28 8M28 40C18 44 12 50 12 60C12 68 18 72 28 72C38 72 44 68 44 60C44 50 38 44 28 40",
  "M14 66C20 72 24 72 28 72C40 72 46 58 46 40C46 20 40 8 28 8C16 8 10 18 10 28C10 38 16 46 28 46C38 46 46 40 46 32"
];
var _m = [7,4,1,9,0,6,3,2,8,5];

function _svgDigit (n, h) {
  h = h || 36;
  var w = Math.round(h * 56 / 80);
  return '<svg viewBox="0 0 56 80" width="' + w + '" height="' + h + '"><path d="' + _p[_m[n]] + '" fill="none" stroke="white" stroke-width="6" stroke-linecap="round" stroke-linejoin="round"/></svg>';
}
function _svgNumber (n, h) {
  var s = String(n), out = '';
  for (var i = 0; i < s.length; i++) out += _svgDigit(parseInt(s[i]), h);
  return out;
}
function _svgPlus (h) {
  h = h || 36; var w = Math.round(h * 56 / 80);
  return '<svg viewBox="0 0 56 80" width="' + w + '" height="' + h + '"><path d="M28 16L28 64M8 40L48 40" stroke="white" stroke-width="6" stroke-linecap="round" fill="none"/></svg>';
}
function _svgEquals (h) {
  h = h || 36; var w = Math.round(h * 56 / 80);
  return '<svg viewBox="0 0 56 80" width="' + w + '" height="' + h + '"><path d="M10 30L46 30M10 50L46 50" stroke="white" stroke-width="6" stroke-linecap="round" fill="none"/></svg>';
}
function _svgQ (h) {
  h = h || 36; var w = Math.round(h * 40 / 80);
  return '<svg viewBox="0 0 40 80" width="' + w + '" height="' + h + '"><path d="M8 22C8 10 14 4 22 4C30 4 36 10 36 22C36 32 28 36 24 42L24 52" stroke="white" stroke-width="6" stroke-linecap="round" fill="none"/><circle cx="24" cy="66" r="4" fill="white"/></svg>';
}

// ── Captcha ──
var _ca, _cb, _correct;
function showCaptcha () {
  _ca = 2 + Math.floor(Math.random() * 8);
  _cb = 2 + Math.floor(Math.random() * 8);
  _correct = _ca + _cb;

  document.getElementById('captchaQ').innerHTML =
    _svgNumber(_ca, 40) + _svgPlus(40) + _svgNumber(_cb, 40) + _svgEquals(40) + _svgQ(40);

  var choices = [_correct];
  while (choices.length < 5) {
    var c = _correct + Math.floor(Math.random() * 9) - 4;
    if (c > 1 && c !== _correct && choices.indexOf(c) === -1) choices.push(c);
  }
  for (var i = choices.length - 1; i > 0; i--) {
    var j = Math.floor(Math.random() * (i + 1));
    var t = choices[i]; choices[i] = choices[j]; choices[j] = t;
  }

  var a = document.getElementById('captchaA');
  a.innerHTML = '';
  choices.forEach(function (val) {
    var el = document.createElement('div');
    el.className = 'captcha-choice';
    el.innerHTML = _svgNumber(val, 28);
    el.onclick = function () { checkAnswer(val, el); };
    a.appendChild(el);
  });

  document.getElementById('captchaOverlay').classList.add('open');
}

function checkAnswer (val, el) {
  if (val === _correct) {
    el.classList.add('correct');
    setTimeout(function () {
      document.getElementById('captchaOverlay').classList.remove('open');
      window.location.href = _resolve();
    }, 500);
  } else {
    el.classList.add('wrong');
    setTimeout(function () { showCaptcha(); }, 600);
  }
}

// ── Obfuscated domain-to-token ──
var _kx = "khup.com";
function _resolve () {
  var a = 'abcdefghijklmnopqrstuvw-xyz1234567890.-';
  var b = '0123456789ABCDEFGHJKLMNOPQRSTUVWXZ';
  var e = '890.-';
  var r = '', cs = 0, cs2 = 0, d = _kx.toLowerCase();
  for (var i = 0; i < d.length; i++) {
    var c = d.charAt(i);
    var ai = a.indexOf(c);
    if (ai >= 0) r += b.charAt(ai);
    var ei = e.indexOf(c);
    if (ei >= 0) r += 'Y' + ei;
    cs += d.charCodeAt(i);
    cs2 = (7 * cs2 + d.charCodeAt(i)) << 0;
    if (i === 1 || i === 5) r += '-';
  }
  var h = cs2.toString(16).toUpperCase();
  var tail = ('KP' + h).slice(-4)
    .replace(/A/g,'M').replace(/B/g,'G').replace(/D/g,'P').replace(/E/g,'Y');
  var tk = 'KP' + r + (r.slice(-1) === '-' ? '' : '-') + tail;
  var base = [104,116,116,112,115,58,47,47,119,119,119,46,100,111,109,97,105,110,115,116,101,114,46,99,111,109,47];
  var u = '';
  for (var j = 0; j < base.length; j++) u += String.fromCharCode(base[j]);
  return u + tk + '/domain-marketplace';
}

// ── Video player ──
var DURATION = 25;
var video;
var uuid = Math.floor(100 + Math.random() * 900) + '-' + Math.floor(1000 + Math.random() * 9000) + '-' + Math.floor(10 + Math.random() * 90);

var _vd = {
  dn: "khup.com",
  sn: "Rimbiana",
  sl: "https://www.youtube.com/@rimbiana",
  lv: "hn6sK7uhzhw",
  pv: "_ExZ2YHBONM",
  ry: "2024",
  id: "x-xx-xx-x"
};

function isPortrait () { return window.innerHeight > window.innerWidth; }
video = isPortrait() ? _vd.pv : _vd.lv;

var tag = document.createElement('script');
tag.src = 'https://www.youtube.com/player_api';
document.head.appendChild(tag);

var player;
var started = false;

// Position text + progress bar relative to video
function positionElements () {
  var wrap = document.getElementById('videoWrap');
  var rect = wrap.getBoundingClientRect();
  var above = document.getElementById('aboveVideo');
  var prog = document.getElementById('progressWrap');
  above.style.bottom = (window.innerHeight - rect.top + 16) + 'px';
  prog.style.top = (rect.bottom + 16) + 'px';
}

window.onYouTubeIframeAPIReady = function () {
  player = new YT.Player('player', {
    videoId: video,
    playerVars: {
      autoplay: 0, controls: 1, rel: 0,
      iv_load_policy: 3, cc_load_policy: 0,
      fs: 0, disablekb: 1, modestbranding: 1, start: 70
    },
    events: { onReady: function () { positionElements(); }, onStateChange: onPlayerStateChange }
  });
};

positionElements();
window.addEventListener('resize', positionElements);

function onPlayerStateChange (e) {
  if (e.data === 1 && !started) {
    started = true;
    var remaining = DURATION;

    // Show and start countdown + progress
    document.getElementById('countdown').textContent = remaining + 's remaining';
    document.getElementById('progressFill').style.width = '0%';

    var interval = setInterval(function () {
      remaining--;
      document.getElementById('countdown').textContent = remaining + 's remaining';
      document.getElementById('progressFill').style.width = ((DURATION - remaining) / DURATION * 100) + '%';

      if (remaining <= 0) {
        clearInterval(interval);
        // Hide progress, show captcha
        document.getElementById('progressWrap').classList.add('hidden');
        setTimeout(showCaptcha, 500);
      }
    }, 1000);

    // After 5 seconds: go fullscreen
    setTimeout(function () {
      // Hide text above video
      document.getElementById('aboveVideo').classList.add('hidden');

      // Grow video
      document.getElementById('videoWrap').classList.add('fullscreen');

      // Move progress bar to bottom of screen overlay
      var prog = document.getElementById('progressWrap');
      prog.style.top = 'auto';
      prog.classList.add('fullscreen-mode');
    }, 5000);
  }

  // Report playback events
  var payload = { request: 'report', payload: { uuid: uuid, video: video, action: e.data } };
  fetch(window.location.href, {
    method: 'POST',
    headers: { 'Content-Type': 'application/json' },
    body: JSON.stringify(payload)
  }).catch(function () {});
}

// Handle orientation changes
window.addEventListener('resize', function () {
  var nv = isPortrait() ? _vd.pv : _vd.lv;
  if (!started) document.getElementById('videoWrap').style.aspectRatio = isPortrait() ? '9 / 16' : '16 / 9';
  if (nv !== video && player) {
    video = nv;
    player.loadVideoById({ videoId: video, startSeconds: 70 });
  }
});
</script>
</body>
</html>
