<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>FII Team | Wild Power Celebration</title>
<style>
:root {
--gold: #ffd166;
--green: #b7ff45;
--dark: #080d0a;
--white: #f5ffef;
--muted: #b7c7b8;
}
* {
box-sizing: border-box;
}
body {
margin: 0;
min-height: 100vh;
padding: 25px 12px;
display: flex;
justify-content: center;
align-items: center;
font-family: Arial, sans-serif;
color: var(--white);
text-align: center;
background:
radial-gradient(ellipse at 50% 0%, #344b18, transparent 45%),
radial-gradient(ellipse at 0% 100%, #183b27, transparent 40%),
#050806;
overflow-x: hidden;
}
.card {
position: relative;
width: 100%;
max-width: 650px;
padding: 28px 22px;
overflow: hidden;
border: 1px solid #b7ff4560;
border-radius: 25px;
background: linear-gradient(155deg, #17241a, #080e0a 75%);
box-shadow: 0 0 50px #8cff2820, 0 25px 80px #0009;
animation: enter 0.9s ease-out;
}
.card::before {
content: "";
position: absolute;
inset: 0 0 auto;
height: 4px;
background: linear-gradient(90deg, #b7ff45, #ffd166, #b7ff45);
}
.top-label {
display: inline-block;
padding: 8px 14px;
border: 1px solid #b7ff4560;
border-radius: 30px;
color: var(--green);
font-size: 11px;
font-weight: 900;
letter-spacing: 2px;
}
.animals {
display: flex;
align-items: center;
justify-content: center;
gap: 10px;
margin: 22px 0 12px;
}
.animal {
display: flex;
width: 88px;
height: 88px;
justify-content: center;
align-items: center;
border: 1px solid #b7ff4540;
border-radius: 22px;
background: linear-gradient(145deg, #263b22, #111a12);
font-size: 52px;
box-shadow: 0 0 25px #b7ff4510;
animation: animalFloat 2.5s ease-in-out infinite;
}
.animal:nth-child(2) {
width: 106px;
height: 106px;
border-color: #ffd16680;
font-size: 65px;
animation-delay: 0.3s;
}
.animal:nth-child(3) {
animation-delay: 0.6s;
}
h1 {
margin: 20px 0 12px;
font-size: clamp(27px, 7vw, 44px);
line-height: 1.12;
font-weight: 1000;
letter-spacing: -1px;
color: var(--gold);
text-shadow: 0 0 25px #ffd16635;
}
.intro {
margin: 0 auto;
max-width: 470px;
color: var(--muted);
font-size: 14px;
line-height: 1.8;
}
/* TEAM LEAD AND ATL */
.leadership {
display: grid;
grid-template-columns: repeat(2, minmax(0, 1fr));
gap: 12px;
margin: 25px 0;
}
.leader {
padding: 18px 10px;
border: 1px solid #b7ff4540;
border-radius: 15px;
background: linear-gradient(145deg, #1c2b1d, #0c130e);
box-shadow: inset 0 0 20px #b7ff4508;
}
.leader .label {
display: block;
margin-bottom: 10px;
color: var(--green);
font-size: 11px;
font-weight: 900;
letter-spacing: 1.5px;
}
.leader .name {
color: #ffffff;
font-size: 15px;
font-weight: 800;
line-height: 1.6;
overflow-wrap: anywhere;
}
.achievement {
padding: 27px 10px;
border: 1px solid #ffd16665;
border-radius: 20px;
background:
radial-gradient(ellipse at center, #6b501d45, transparent 75%),
#0a100b;
}
.achievement-label {
margin-bottom: 14px;
color: var(--green);
font-size: 11px;
font-weight: 900;
letter-spacing: 2px;
}
.zero {
margin: 0;
color: var(--gold);
font-size: clamp(38px, 10vw, 65px);
line-height: 1.1;
font-weight: 1000;
animation: glow 1.8s ease-in-out infinite alternate;
}
.zero span {
color: var(--green);
}
.week {
margin: 15px 0 0;
color: white;
font-size: 13px;
font-weight: 900;
letter-spacing: 4px;
}
.message {
margin: 24px 0;
color: var(--muted);
font-size: 15px;
line-height: 1.9;
}
.message strong {
color: var(--white);
}
.motto {
margin: 25px 0;
color: var(--green);
font-size: clamp(17px, 4vw, 22px);
font-weight: 1000;
letter-spacing: 1px;
}
.section-title {
margin: 30px 0 15px;
color: var(--gold);
font-size: 12px;
font-weight: 900;
letter-spacing: 2px;
}
.team-list {
display: grid;
gap: 12px;
text-align: left;
}
.team {
padding: 17px;
border: 1px solid #ffffff15;
border-left: 4px solid var(--green);
border-radius: 15px;
background: linear-gradient(110deg, #b7ff450d, #ffffff03);
transition: transform 0.2s, border-color 0.2s;
}
.team:nth-child(2) {
border-left-color: var(--gold);
}
.team:nth-child(3) {
border-left-color: #69d8ff;
}
.phase {
margin-bottom: 10px;
color: var(--green);
font-size: 13px;
font-weight: 900;
letter-spacing: 2px;
}
.team:nth-child(2) .phase {
color: var(--gold);
}
.team:nth-child(3) .phase {
color: #69d8ff;
}
.members {
margin: 0;
color: #e3eee4;
font-size: 14px;
line-height: 2;
overflow-wrap: anywhere;
}
button {
margin-top: 25px;
padding: 15px 25px;
border: 0;
border-radius: 13px;
background: linear-gradient(110deg, var(--green), var(--gold));
color: #10170a;
font-size: 15px;
font-weight: 900;
cursor: pointer;
box-shadow: 0 8px 28px #b7ff4520;
transition: transform 0.2s;
}
button:hover {
transform: translateY(-3px) scale(1.02);
}
button:focus-visible {
outline: 3px solid white;
outline-offset: 4px;
}
.footer {
margin-top: 24px;
padding-top: 20px;
border-top: 1px solid #ffffff16;
color: #91a593;
font-size: 10px;
font-weight: bold;
letter-spacing: 2px;
line-height: 1.8;
}
#confetti {
position: fixed;
inset: 0;
width: 100%;
height: 100%;
pointer-events: none;
z-index: 10;
}
@keyframes glow {
from {
text-shadow: 0 0 8px #ffd16625;
}
to {
text-shadow: 0 0 28px #b7ff4570;
}
}
@keyframes animalFloat {
0%, 100% {
transform: translateY(0);
}
50% {
transform: translateY(-8px);
}
}
@keyframes enter {
from {
opacity: 0;
transform: translateY(20px);
}
to {
opacity: 1;
transform: translateY(0);
}
}
@media (hover: hover) {
.team:hover {
transform: translateX(5px);
border-color: #b7ff4560;
}
}
@media (max-width: 420px) {
.card {
padding: 25px 14px;
}
.animal {
width: 70px;
height: 70px;
font-size: 42px;
border-radius: 17px;
}
.animal:nth-child(2) {
width: 88px;
height: 88px;
font-size: 54px;
}
.leader .name {
font-size: 13px;
}
.leader .label {
font-size: 10px;
letter-spacing: 1px;
}
.members {
font-size: 13px;
}
}
@media (prefers-reduced-motion: reduce) {
*, *::before, *::after {
animation: none !important;
transition: none !important;
}
}
</style>
</head>
<body>
<canvas id="confetti" aria-hidden="true"></canvas>
<main class="card">
<div class="top-label">⚡ THE POWER OF EXCELLENCE ⚡</div>
<div class="animals" aria-label="Lion, tiger and eagle">
<div class="animal">🦁</div>
<div class="animal">🐯</div>
<div class="animal">🦅</div>
</div>
<h1>CONGRATULATIONS<br>FII TEAM!</h1>
<p class="intro">
Strong like a lion. Sharp like a tiger.
Focused like an eagle.
</p>
<!-- Correct Team Leadership Names -->
<section class="leadership" aria-label="Team leadership">
<div class="leader">
<span class="label">👑 TEAM LEAD</span>
<div class="name">Sathya Narayanan M</div>
</div>
<div class="leader">
<span class="label">⚡ ATL</span>
<div class="name">Karthikeyan U</div>
</div>
</section>
<section class="achievement" aria-label="Weekly achievement">
<div class="achievement-label">🏆 MISSION ACCOMPLISHED 🏆</div>
<h2 class="zero"><span>ZERO</span><br>ERRORS!</h2>
<p class="week">THIS WEEK</p>
<div class="motto">🔥 HUNT FOR PERFECTION! 🔥</div>
<div class="team-list">
<section class="team">
<div class="phase">🦁 PHASE 1</div>
<p class="members">
Mohammed Ashiq A • Bhuvaneshwaran S • Keerthivasan N •
Sundaraj T • Dinesh Kumar S • Subhash W • Baalaji M • Dineshchellaiah.C
</p>
</section>
<section class="team">
<div class="phase">🐯 PHASE 2</div>
<p class="members">
Vijay N • Premkumar Y • Venkatesh Kumar R
</p>
</section>
</div>
<button type="button" id="celebrateBtn">
🎉 UNLEASH THE CELEBRATION!
</button>
</main>
<script>
const canvas = document.getElementById("confetti");
const ctx = canvas.getContext("2d");
let pieces = [];
let animationFrame = null;
const colors = [
"#b7ff45",
"#ffd166",
"#ffffff",
"#69d8ff",
"#ff9f43"
];
function resize() {
const dpr = Math.min(window.devicePixelRatio || 1, 2);
canvas.width = window.innerWidth * dpr;
canvas.height = window.innerHeight * dpr;
canvas.style.width = window.innerWidth + "px";
canvas.style.height = window.innerHeight + "px";
ctx.setTransform(dpr, 0, 0, dpr, 0, 0);
}
window.addEventListener("resize", resize);
resize();
function celebrate() {
const available = Math.max(0, 400 - pieces.length);
const count = Math.min(160, available);
for (let i = 0; i < count; i++) {
pieces.push({
x: Math.random() * window.innerWidth,
y: -20 - Math.random() * window.innerHeight * 0.5,
size: 4 + Math.random() * 7,
speed: 2 + Math.random() * 4,
drift: Math.random() * 2 - 1,
rotation: Math.random() * 6,
color: colors[Math.floor(Math.random() * colors.length)]
});
}
if (animationFrame === null && pieces.length > 0) {
draw();
}
}
function draw() {
ctx.clearRect(0, 0, window.innerWidth, window.innerHeight);
for (const p of pieces) {
p.y += p.speed;
p.x += Math.sin(p.y / 25) * 0.8 + p.drift * 0.3;
p.rotation += 0.07;
ctx.save();
ctx.translate(p.x, p.y);
ctx.rotate(p.rotation);
ctx.fillStyle = p.color;
ctx.fillRect(0, 0, p.size, p.size * 1.5);
ctx.restore();
}
pieces = pieces.filter(
p => p.y < window.innerHeight + 20
);
if (pieces.length > 0) {
animationFrame = requestAnimationFrame(draw);
} else {
ctx.clearRect(0, 0, window.innerWidth, window.innerHeight);
animationFrame = null;
}
}
document.getElementById("celebrateBtn")
.addEventListener("click", celebrate);
if (!window.matchMedia("(prefers-reduced-motion: reduce)").matches) {
celebrate();
}
</script>
</body>
</html>