emmys / index.html
hudaakram's picture
Update index.html
33ed098 verified
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width,initial-scale=1" />
<title>EMMYS Portal</title>
<script src="https://cdn.tailwindcss.com"></script>
<script defer src="https://unpkg.com/lucide@latest"></script>
<script src="https://unpkg.com/@motionone/dom"></script>
<style>
body{
min-height:100vh;
background:
linear-gradient(rgba(5,5,5,.82), rgba(5,5,5,.82)),
url('https://wallpapercave.com/wp/wp2186661.jpg') center/cover fixed no-repeat;
}
.glass{ background: linear-gradient(135deg, rgba(20,17,15,0.85), rgba(20,17,15,0.35)); }
.border-gold{ border-color: rgba(234,179,8,.22) }
.pill{ padding:.25rem .7rem; border-radius:9999px; font-size:.72rem; border:1px solid rgba(234,179,8,.35); background: rgba(234,179,8,.08); color:#fde68a; }
.ticker > div { animation: ticker 24s linear infinite; }
@keyframes ticker { from {transform: translateX(0);} to {transform: translateX(-50%);} }
</style>
</head>
<body class="text-yellow-50 relative">
<div class="max-w-6xl mx-auto p-6 relative">
<!-- HEADER -->
<header class="flex items-center justify-between">
<div class="flex items-center gap-3">
<div class="w-9 h-9 rounded-xl bg-gradient-to-br from-yellow-300 via-yellow-500 to-amber-600 flex items-center justify-center shadow-md">
<i data-lucide="sparkles" class="w-5 h-5 text-black"></i>
</div>
<div>
<p class="text-xs uppercase tracking-widest text-yellow-300/80">AI WEEK</p>
<h1 class="text-2xl md:text-3xl font-black text-yellow-200">Emmys Portal</h1>
</div>
</div>
<div class="flex items-center gap-3">
<div id="avatar" class="w-10 h-10 rounded-full bg-yellow-500/20 ring-2 ring-yellow-400/60 flex items-center justify-center text-yellow-200 font-semibold">U</div>
<div class="text-right">
<div id="user" class="text-sm text-yellow-100/90">Guest</div>
<div class="text-xs text-emerald-300 flex items-center gap-1"><i data-lucide="shield-check" class="w-4 h-4"></i> Access Granted</div>
</div>
</div>
</header>
<!-- HERO -->
<section class="mt-8 rounded-3xl overflow-hidden border border-gold glass p-8 md:p-12">
<div class="flex flex-col md:flex-row gap-8 items-center">
<div class="flex-1">
<div class="flex items-center gap-2 mb-3 text-xs">
<span class="pill">Official</span>
<span class="pill">Access Level: Gold</span>
<span id="scorePill" class="pill hidden"></span>
</div>
<h2 class="text-3xl md:text-4xl font-black text-yellow-200">Welcome to the Emmys, <span id="user2">Guest</span>.</h2>
<p class="mt-3 text-yellow-100/70 max-w-prose">Explore nominees, watch the ceremony, and trigger your team’s automations. This is your protected area.</p>
<div class="mt-6 flex flex-wrap gap-3">
<a href="#schedule" data-raise class="px-4 py-2 rounded-xl bg-yellow-400 text-black font-semibold flex items-center gap-2 shadow">
<i data-lucide="clock-5" class="w-4 h-4"></i> View Schedule
</a>
<a href="#live" data-raise class="px-4 py-2 rounded-xl bg-yellow-50/10 text-yellow-200 border border-yellow-200/20 flex items-center gap-2">
<i data-lucide="radio" class="w-4 h-4"></i> Live Stream
</a>
<a href="category-1.html" data-raise class="px-4 py-2 rounded-xl bg-yellow-50/10 text-yellow-200 border border-yellow-200/20 flex items-center gap-2">
<i data-lucide="trophy" class="w-4 h-4"></i> Browse Categories
</a>
</div>
</div>
<!-- Countdown panel -->
<div class="flex-1 w-full rounded-2xl border border-gold bg-yellow-50/[0.04] p-6">
<div class="text-yellow-200/80 text-sm mb-2">Ceremony starts in</div>
<div id="countdown" class="text-3xl font-black text-yellow-300 tracking-wide">00:00:00</div>
<div class="text-xs text-yellow-100/60 mt-2">Tonight • 20:00 (Local)</div>
<div class="mt-4 grid grid-cols-3 gap-2 text-xs">
<div class="rounded-xl bg-yellow-50/[0.05] border border-gold p-3 text-center">
<div class="text-yellow-100/70">Doors</div><div class="font-semibold text-yellow-100">19:00</div>
</div>
<div class="rounded-xl bg-yellow-50/[0.05] border border-gold p-3 text-center">
<div class="text-yellow-100/70">Live</div><div class="font-semibold text-yellow-100">20:00</div>
</div>
<div class="rounded-xl bg-yellow-50/[0.05] border border-gold p-3 text-center">
<div class="text-yellow-100/70">After</div><div class="font-semibold text-yellow-100">23:30</div>
</div>
</div>
</div>
</div>
</section>
<!-- TICKER -->
<section class="mt-6 rounded-2xl border border-gold bg-yellow-50/[0.05] overflow-hidden">
<div class="flex items-center gap-2 px-4 py-2 text-yellow-200 border-b border-gold">
<i data-lucide="megaphone" class="w-4 h-4"></i>
<span class="text-xs uppercase tracking-widest">Winners Ticker</span>
</div>
<div class="ticker whitespace-nowrap flex">
<div class="flex gap-8 px-4 py-3 text-sm text-yellow-100/90">
<span>⭐ Outstanding Drama • “Succession”</span>
<span>⭐ Lead Actress • Zendaya</span>
<span>⭐ Lead Actor • Jeremy Allen White</span>
<span>⭐ Supporting Actress • Hannah Waddingham</span>
<span>⭐ Comedy Series • “The Bear”</span>
<span>⭐ Directing • Hiro Murai</span>
</div>
<!-- duplicate for seamless loop -->
<div class="flex gap-8 px-4 py-3 text-sm text-yellow-100/90" aria-hidden="true">
<span>⭐ Outstanding Drama • “Succession”</span>
<span>⭐ Lead Actress • Zendaya</span>
<span>⭐ Lead Actor • Jeremy Allen White</span>
<span>⭐ Supporting Actress • Hannah Waddingham</span>
<span>⭐ Comedy Series • “The Bear”</span>
<span>⭐ Directing • Hiro Murai</span>
</div>
</div>
</section>
<!-- LIVE + SCHEDULE + PRESENTERS -->
<section id="live" class="mt-8 grid md:grid-cols-3 gap-6">
<!-- Live card -->
<div class="rounded-3xl border border-gold bg-yellow-50/[0.04] p-6 md:col-span-2">
<div class="flex items-center justify-between">
<div class="flex items-center gap-2">
<i data-lucide="radio" class="w-5 h-5 text-yellow-300"></i>
<h3 class="text-yellow-100 font-semibold">Live Stream</h3>
</div>
<a class="px-3 py-2 rounded-xl bg-yellow-400 text-black text-sm font-semibold shadow" href="#" onclick="alert('Connect your stream URL'); return false;">Watch</a>
</div>
<p class="text-yellow-100/70 text-sm mt-2">Connect your RTMP or embed link here. For the hackathon demo, this button can open a recorded clip.</p>
</div>
<!-- Presenters -->
<div class="rounded-3xl border border-gold bg-yellow-50/[0.04] p-6">
<h3 class="text-yellow-100 font-semibold mb-3">Presenters</h3>
<div class="flex flex-wrap gap-2 text-sm">
<span class="pill">Pedro Pascal</span>
<span class="pill">Aubrey Plaza</span>
<span class="pill">Quinta Brunson</span>
<span class="pill">Ben Stiller</span>
<span class="pill">Rhea Seehorn</span>
</div>
</div>
</section>
<!-- CEREMONY SCHEDULE -->
<section id="schedule" class="mt-8 rounded-3xl border border-gold bg-yellow-50/[0.04] p-6">
<div class="flex items-center gap-2 mb-3">
<i data-lucide="calendar-days" class="w-5 h-5 text-yellow-300"></i>
<h3 class="text-yellow-100 font-semibold">Ceremony Schedule</h3>
</div>
<div class="grid md:grid-cols-2 gap-4">
<div class="rounded-2xl border border-gold p-4 bg-black/30">
<div class="text-yellow-200 font-medium">Red Carpet & Doors</div>
<div class="text-yellow-100/70 text-sm">19:00 – 19:45</div>
<p class="text-yellow-100/70 text-sm mt-2">Check-in, photo ops, press line opens.</p>
</div>
<div class="rounded-2xl border border-gold p-4 bg-black/30">
<div class="text-yellow-200 font-medium">Opening & Monologue</div>
<div class="text-yellow-100/70 text-sm">20:00 – 20:10</div>
<p class="text-yellow-100/70 text-sm mt-2">Live broadcast kicks off.</p>
</div>
<div class="rounded-2xl border border-gold p-4 bg-black/30">
<div class="text-yellow-200 font-medium">Awards Block I</div>
<div class="text-yellow-100/70 text-sm">20:10 – 20:45</div>
<p class="text-yellow-100/70 text-sm mt-2">Comedy & supporting categories.</p>
</div>
<div class="rounded-2xl border border-gold p-4 bg-black/30">
<div class="text-yellow-200 font-medium">Performance & Montage</div>
<div class="text-yellow-100/70 text-sm">20:45 – 21:00</div>
</div>
<div class="rounded-2xl border border-gold p-4 bg-black/30">
<div class="text-yellow-200 font-medium">Awards Block II</div>
<div class="text-yellow-100/70 text-sm">21:00 – 21:40</div>
<p class="text-yellow-100/70 text-sm mt-2">Drama, limited series.</p>
</div>
<div class="rounded-2xl border border-gold p-4 bg-black/30">
<div class="text-yellow-200 font-medium">Grand Finale</div>
<div class="text-yellow-100/70 text-sm">21:40 – 22:00</div>
<p class="text-yellow-100/70 text-sm mt-2">Top categories & closing remarks.</p>
</div>
</div>
<div class="mt-4">
<button id="addCal" class="px-3 py-2 rounded-xl bg-yellow-400 text-black text-sm font-semibold shadow">
<i data-lucide="plus" class="inline w-4 h-4 mr-1"></i> Add to Calendar (.ics)
</button>
</div>
</section>
<!-- CATEGORIES -->
<section class="mt-8">
<h3 class="text-yellow-100 font-semibold mb-3">Categories</h3>
<div class="grid grid-cols-1 sm:grid-cols-2 md:grid-cols-3 gap-4">
<a href="category-1.html" data-raise class="rounded-2xl p-4 bg-yellow-50/[0.05] hover:bg-yellow-50/[0.09] border border-gold shadow-inner flex items-center justify-between"><span class="text-yellow-100 font-medium">Outstanding Drama Series</span><i data-lucide="arrow-right" class="w-4 h-4 text-yellow-200"></i></a>
<a href="category-2.html" data-raise class="rounded-2xl p-4 bg-yellow-50/[0.05] hover:bg-yellow-50/[0.09] border border-gold shadow-inner flex items-center justify-between"><span class="text-yellow-100 font-medium">Outstanding Comedy Series</span><i data-lucide="arrow-right" class="w-4 h-4 text-yellow-200"></i></a>
<a href="category-3.html" data-raise class="rounded-2xl p-4 bg-yellow-50/[0.05] hover:bg-yellow-50/[0.09] border border-gold shadow-inner flex items-center justify-between"><span class="text-yellow-100 font-medium">Outstanding Limited or Anthology Series</span><i data-lucide="arrow-right" class="w-4 h-4 text-yellow-200"></i></a>
<a href="category-4.html" data-raise class="rounded-2xl p-4 bg-yellow-50/[0.05] hover:bg-yellow-50/[0.09] border border-gold shadow-inner flex items-center justify-between"><span class="text-yellow-100 font-medium">Lead Actor in a Drama</span><i data-lucide="arrow-right" class="w-4 h-4 text-yellow-200"></i></a>
<a href="category-5.html" data-raise class="rounded-2xl p-4 bg-yellow-50/[0.05] hover:bg-yellow-50/[0.09] border border-gold shadow-inner flex items-center justify-between"><span class="text-yellow-100 font-medium">Lead Actress in a Drama</span><i data-lucide="arrow-right" class="w-4 h-4 text-yellow-200"></i></a>
<a href="category-6.html" data-raise class="rounded-2xl p-4 bg-yellow-50/[0.05] hover:bg-yellow-50/[0.09] border border-gold shadow-inner flex items-center justify-between"><span class="text-yellow-100 font-medium">Lead Actor in a Comedy</span><i data-lucide="arrow-right" class="w-4 h-4 text-yellow-200"></i></a>
<a href="category-7.html" data-raise class="rounded-2xl p-4 bg-yellow-50/[0.05] hover:bg-yellow-50/[0.09] border border-gold shadow-inner flex items-center justify-between"><span class="text-yellow-100 font-medium">Lead Actress in a Comedy</span><i data-lucide="arrow-right" class="w-4 h-4 text-yellow-200"></i></a>
<a href="category-8.html" data-raise class="rounded-2xl p-4 bg-yellow-50/[0.05] hover:bg-yellow-50/[0.09] border border-gold shadow-inner flex items-center justify-between"><span class="text-yellow-100 font-medium">Supporting Actor (All Genres)</span><i data-lucide="arrow-right" class="w-4 h-4 text-yellow-200"></i></a>
<a href="category-9.html" data-raise class="rounded-2xl p-4 bg-yellow-50/[0.05] hover:bg-yellow-50/[0.09] border border-gold shadow-inner flex items-center justify-between"><span class="text-yellow-100 font-medium">Supporting Actress (All Genres)</span><i data-lucide="arrow-right" class="w-4 h-4 text-yellow-200"></i></a>
<a href="category-10.html" data-raise class="rounded-2xl p-4 bg-yellow-50/[0.05] hover:bg-yellow-50/[0.09] border border-gold shadow-inner flex items-center justify-between"><span class="text-yellow-100 font-medium">Outstanding Directing</span><i data-lucide="arrow-right" class="w-4 h-4 text-yellow-200"></i></a>
</div>
</section>
<footer class="mt-12 py-6 text-center text-[11px] text-yellow-100/50">© AI WEEK • Emmys Portal (demo)</footer>
</div>
<script>
// query params
const q = new URLSearchParams(location.search);
const user = q.get('user') || 'Guest';
const score = q.get('score');
document.querySelectorAll('#user,#user2').forEach(el=>el.textContent=user);
const av = document.getElementById('avatar');
if (av) av.textContent = (user.split(' ').map(s=>s[0]).slice(0,2).join('') || 'U').toUpperCase();
const sp = document.getElementById('scorePill'); if (sp && score){ sp.textContent = `Score: ${Number(score).toFixed(3)}`; sp.classList.remove('hidden'); }
lucide.createIcons();
document.querySelectorAll('[data-raise]').forEach(el=>{
el.addEventListener('mouseenter',()=>window.motion.animate(el,{y:-4,scale:1.02},{duration:.25}));
el.addEventListener('mouseleave',()=>window.motion.animate(el,{y:0,scale:1},{duration:.25}));
});
// countdown to today 20:00 local (change if needed)
function nextShowtime() {
const t = new Date();
const show = new Date();
show.setHours(20,0,0,0); // 20:00 today
if (t > show) show.setDate(show.getDate()+1); // if passed, use tomorrow
return show;
}
const target = nextShowtime();
const el = document.getElementById('countdown');
function tick(){
const now = new Date();
let ms = target - now;
if (ms < 0) { el.textContent = "LIVE"; return; }
const h = Math.floor(ms/3_600_000);
ms -= h*3_600_000;
const m = Math.floor(ms/60_000);
ms -= m*60_000;
const s = Math.floor(ms/1000);
el.textContent = `${String(h).padStart(2,'0')}:${String(m).padStart(2,'0')}:${String(s).padStart(2,'0')}`;
requestAnimationFrame(()=>setTimeout(tick, 250));
}
tick();
// simple .ics generator
document.getElementById('addCal').addEventListener('click', () => {
const start = target.toISOString().replace(/[-:]/g,'').split('.')[0] + 'Z';
const endDt = new Date(target.getTime()+2*60*60*1000); // +2h
const end = endDt.toISOString().replace(/[-:]/g,'').split('.')[0] + 'Z';
const ics = `BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//AI WEEK//EMMYS//EN
BEGIN:VEVENT
UID:${Date.now()}@ai-week-emmys
DTSTAMP:${start}
DTSTART:${start}
DTEND:${end}
SUMMARY:Emmys Live Ceremony
DESCRIPTION:AI WEEK Emmys live broadcast.
END:VEVENT
END:VCALENDAR`.replace(/\\n/g, '\n');
const blob = new Blob([ics], {type:'text/calendar'});
const url = URL.createObjectURL(blob);
const a = document.createElement('a'); a.href = url; a.download = 'emmys.ics'; a.click();
URL.revokeObjectURL(url);
});
<script type="module" src="./chat.js"></script>
</body>
</html>