Skip to content

Ten #52

Description

<title>THE STAGE TEN - 特設サイト</title> <script src="https://cdn.tailwindcss.com"></script> <style> .bg-main { background-image: linear-gradient(rgba(0, 0, 0, 0.75), rgba(0, 0, 0, 0.85)), url('https://images.unsplash.com/photo-1514525253161-7a46d19cd819?q=80&w=1000&auto=format&fit=crop'); background-size: cover; background-position: center; } .neon-red { box-shadow: 0 0 15px rgba(220, 38, 38, 0.6); } .neon-gold { box-shadow: 0 0 8px rgba(251, 191, 36, 0.8); } </style>

✨ 目標達成!動画解放 ✨

次の舞のショート映像が届きました!

  <a href="https://www.youtube.com/@SAYAKAworks" target="_blank" rel="noopener noreferrer" class="w-full py-4 bg-red-600 hover:bg-red-500 rounded-xl flex items-center justify-center font-bold tracking-wider active:scale-95 transition text-sm text-white neon-red">
    🔴 YouTubeで映像を見る
  </a>

  <button onclick="closePopup()" class="w-full py-2 bg-zinc-900 hover:bg-zinc-800 border border-zinc-800 rounded-lg text-xs tracking-wider font-medium text-zinc-400 transition">
    閉じる
  </button>
</div>

THE STAGE TEN

━ 繋がる軌跡 ━

A Decade of Creation

<div class="bg-black/80 backdrop-blur-md border border-zinc-800 rounded-2xl p-5 space-y-4">
  <div class="flex justify-between items-end">
    <div>
      <p class="text-[11px] text-zinc-400 tracking-wider">総販売数</p>
      <div class="flex items-baseline gap-1 mt-1">
        <span id="total-sold" class="text-5xl font-light font-mono text-red-500">114</span>
        <span class="text-xs text-zinc-500">/ 555 席</span>
      </div>
    </div>
    <div class="text-right">
      <p class="text-[11px] text-zinc-400">次の動画解放まで</p>
      <p class="text-xl font-mono text-amber-400 mt-1">あと <span id="next-dance" class="text-2xl font-bold">38</span> 席</p>
    </div>
  </div>

  <div class="w-full bg-zinc-900 rounded-full h-2 overflow-hidden border border-zinc-800">
    <div id="progress-bar" class="bg-gradient-to-r from-red-600 to-amber-500 h-full transition-all duration-500" style="width: 20.5%"></div>
  </div>

  <div class="flex gap-3 pt-2">
    <div class="flex items-center bg-zinc-950 border border-zinc-800 rounded-xl overflow-hidden justify-between px-2 w-1/3">
      <button onclick="changeInput(-1)" class="w-8 h-10 text-zinc-400 font-bold">-</button>
      <span id="input-display" class="font-bold font-mono text-sm">5</span>
      <button onclick="changeInput(1)" class="w-8 h-10 text-zinc-400 font-bold">+</button>
    </div>
    <button onclick="addLights()" class="bg-gradient-to-r from-red-700 to-red-600 text-white font-bold py-3 rounded-xl neon-red active:scale-95 transition text-xs tracking-widest flex-1">
      灯を追加する
    </button>
  </div>
</div>

<div class="bg-black/80 backdrop-blur-md border border-zinc-800 rounded-2xl p-4">
  <p class="text-[11px] text-zinc-400 tracking-wider mb-2 text-center">座席点灯グラフ</p>
  <div id="light-grid" class="grid grid-cols-10 gap-1.5 p-1"></div>
</div>
© THE STAGE TEN All Rights Reserved. <script> let totalSold = 114; let inputCount = 5; const maxSeats = 555; let nextThreshold = 152; function changeInput(val) { inputCount = Math.max(1, inputCount + val); document.getElementById('input-display').innerText = inputCount; } function addLights() { if (totalSold + inputCount <= maxSeats) { totalSold += inputCount; if (totalSold >= nextThreshold) { triggerPopupGimmick(); nextThreshold += 38; } updateDashboard(); } } function triggerPopupGimmick() { const popup = document.getElementById('video-popup'); popup.classList.remove('hidden'); setTimeout(() => popup.classList.remove('opacity-0'), 10); } function closePopup() { const popup = document.getElementById('video-popup'); popup.classList.add('opacity-0'); setTimeout(() => popup.classList.add('hidden'), 300); } function updateDashboard() { document.getElementById('total-sold').innerText = totalSold; document.getElementById('next-dance').innerText = Math.max(0, nextThreshold - totalSold); const percent = (totalSold / maxSeats) * 100; document.getElementById('progress-bar').style.width = `${percent}%`; // グリッドの更新 const grid = document.getElementById('light-grid'); grid.innerHTML = ''; const totalBlocks = 40; const activeBlocks = Math.floor((totalSold / maxSeats) * totalBlocks); for(let i = 0; i < totalBlocks; i++) { const block = document.createElement('div'); block.className = `h-3 rounded-sm transition-all duration-300 ${i < activeBlocks ? 'bg-amber-400 neon-gold' : 'bg-zinc-900 border border-zinc-800'}`; grid.appendChild(block); } } updateDashboard(); </script>

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions