NotVeryHelpfulGroup.Com — Animated Logo
:root {
–pink: #ff2d95;
–orange: #ff8c00;
–yellow: #ffd700;
–lime: #39ff14;
–cyan: #00f5ff;
–purple: #bf00ff;
–blue: #4d7cff;
}
* {
box-sizing: border-box;
margin: 0;
padding: 0;
}
body {
min-height: 100vh;
display: grid;
place-items: center;
background: linear-gradient(135deg, #1a1a2e 0%, #16213e 50%, #0f3460 100%);
font-family: system-ui, -apple-system, “Segoe UI”, Roboto, sans-serif;
overflow: hidden;
color: white;
}
/* ===== LOGO CONTAINER ===== */
.logo {
position: relative;
width: min(92vw, 720px);
aspect-ratio: 16 / 9;
display: grid;
place-items: center;
isolation: isolate;
}
/* Soft glowing ring behind everything */
.glow-ring {
position: absolute;
inset: 8%;
border-radius: 50%;
background: conic-gradient(
from 0deg,
var(–pink),
var(–orange),
var(–yellow),
var(–lime),
var(–cyan),
var(–blue),
var(–purple),
var(–pink)
);
filter: blur(28px);
opacity: 0.55;
animation: spin 18s linear infinite;
z-index: -2;
}
@keyframes spin {
to { transform: rotate(360deg); }
}
/* Main wordmark */
.wordmark {
position: relative;
z-index: 2;
text-align: center;
line-height: 0.95;
font-weight: 900;
letter-spacing: -0.03em;
font-size: clamp(2.4rem, 8vw, 4.8rem);
background: linear-gradient(
90deg,
var(–pink),
var(–orange),
var(–yellow),
var(–lime),
var(–cyan),
var(–blue),
var(–purple),
var(–pink)
);
background-size: 200% auto;
-webkit-background-clip: text;
background-clip: text;
color: transparent;
animation: rainbow-shift 6s linear infinite;
filter: drop-shadow(0 4px 0 rgba(0,0,0,0.25));
user-select: none;
}
@keyframes rainbow-shift {
to { background-position: 200% center; }
}
.wordmark .welcome,
.wordmark .tagline {
display: block;
font-size: 0.32em;
font-weight: 700;
letter-spacing: 0.12em;
text-transform: uppercase;
opacity: 0.9;
background: none;
-webkit-background-clip: initial;
background-clip: initial;
color: #fff;
filter: none;
text-shadow: 0 2px 8px rgba(0,0,0,0.4);
}
.wordmark .welcome {
margin-bottom: 0.25em;
}
.wordmark .tagline {
margin-top: 0.3em;
}
.wordmark .com {
display: block;
font-size: 0.55em;
letter-spacing: 0.08em;
margin-top: 0.15em;
opacity: 0.95;
}
/* ===== CHARACTERS ===== */
.characters {
position: absolute;
inset: 0;
z-index: 3;
pointer-events: none;
}
.char {
position: absolute;
font-size: clamp(2.8rem, 7vw, 4.2rem);
line-height: 1;
filter: drop-shadow(0 6px 8px rgba(0,0,0,0.35));
transform-origin: center bottom;
}
/* Left – shrug guy */
.char-shrug {
left: 6%;
top: 22%;
animation: bounce-soft 2.8s ease-in-out infinite,
shrug 4.2s ease-in-out infinite;
}
/* Center – photographer */
.char-photo {
left: 50%;
top: 5%;
transform: translateX(-50%);
animation: bounce-soft 3.1s ease-in-out infinite 0.4s,
look-around 5s ease-in-out infinite;
}
/* Right – cracked/broken lightbulb */
.char-bulb {
right: 7%;
top: 24%;
animation: bounce-soft 2.6s ease-in-out infinite 0.7s,
wobble 3.8s ease-in-out infinite;
}
.char-bulb svg {
width: 1em;
height: 1em;
display: block;
overflow: visible;
}
@keyframes bounce-soft {
0%, 100% { translate: 0 0; }
50% { translate: 0 -14px; }
}
@keyframes shrug {
0%, 100% { rotate: 0deg; }
25% { rotate: -9deg; }
75% { rotate: 7deg; }
}
@keyframes look-around {
0%, 100% { rotate: 0deg; }
30% { rotate: -6deg; }
70% { rotate: 5deg; }
}
@keyframes wobble {
0%, 100% { rotate: 0deg; }
20% { rotate: 8deg; }
40% { rotate: -6deg; }
60% { rotate: 5deg; }
80% { rotate: -4deg; }
}
/* Speech bubbles */
.bubble {
position: absolute;
background: white;
color: #222;
font-size: clamp(0.7rem, 2vw, 1rem);
font-weight: 700;
padding: 0.35em 0.6em;
border-radius: 1.2em;
box-shadow: 0 4px 12px rgba(0,0,0,0.2);
animation: pop-float 3.5s ease-in-out infinite;
}
.bubble::after {
content: “”;
position: absolute;
bottom: -6px;
left: 50%;
width: 12px;
height: 12px;
background: white;
transform: translateX(-50%) rotate(45deg);
}
.bubble-1 {
left: 12%;
top: 6%;
animation-delay: 0.2s;
}
.bubble-2 {
left: 48%;
top: -2%;
transform: translateX(-50%);
animation-delay: 1.1s;
}
.bubble-3 {
right: 10%;
top: 8%;
animation-delay: 0.6s;
}
@keyframes pop-float {
0%, 100% { transform: translateY(0) scale(1); opacity: 0.9; }
50% { transform: translateY(-10px) scale(1.08); opacity: 1; }
}
/* Floating punctuation marks */
.mark {
position: absolute;
font-size: clamp(2.2rem, 6vw, 3.4rem);
font-weight: 900;
line-height: 1;
filter: drop-shadow(0 4px 6px rgba(0,0,0,0.3));
animation: float-mark 4s ease-in-out infinite;
user-select: none;
}
.mark-q {
left: 16%;
bottom: 26%;
color: #ff2d95;
rotate: -14deg;
animation-delay: 0s;
}
.mark-ex {
right: 14%;
bottom: 30%;
color: #39ff14;
rotate: 11deg;
animation-delay: 1.3s;
}
@keyframes float-mark {
0%, 100% { translate: 0 0; }
50% { translate: 0 -18px; }
}
/* Sparkles */
.sparkle {
position: absolute;
width: 10px;
height: 10px;
background: white;
border-radius: 50%;
box-shadow: 0 0 8px 2px rgba(255,255,255,0.8);
animation: twinkle 2.2s ease-in-out infinite;
}
.sparkle:nth-child(1) { top: 22%; left: 28%; animation-delay: 0s; }
.sparkle:nth-child(2) { top: 15%; right: 30%; animation-delay: 0.4s; }
.sparkle:nth-child(3) { bottom: 28%; left: 22%; animation-delay: 0.8s; }
.sparkle:nth-child(4) { bottom: 22%; right: 24%; animation-delay: 1.2s; }
.sparkle:nth-child(5) { top: 38%; left: 8%; animation-delay: 0.6s; }
.sparkle:nth-child(6) { top: 42%; right: 7%; animation-delay: 1.5s; }
@keyframes twinkle {
0%, 100% { opacity: 0.3; transform: scale(0.6); }
50% { opacity: 1; transform: scale(1.3); }
}
/* Subtle entrance */
.logo {
animation: logo-enter 1.1s cubic-bezier(0.22, 1, 0.36, 1) both;
}
@keyframes logo-enter {
from {
opacity: 0;
transform: scale(0.85) translateY(30px);
}
to {
opacity: 1;
transform: scale(1) translateY(0);
}
}
/* Accessibility */
@media (prefers-reduced-motion: reduce) {
.glow-ring,
.wordmark,
.char,
.bubble,
.mark,
.sparkle,
.logo {
animation: none !important;
}
.wordmark {
background-position: 0 center;
}
}
/* Caption */
.caption {
position: absolute;
bottom: 1.5rem;
left: 50%;
transform: translateX(-50%);
font-size: 0.85rem;
opacity: 0.6;
letter-spacing: 0.04em;
text-align: center;
width: 90%;
}
…
?
lol
?
!
Welcome to the
NotVeryHelpful
Group
Never Knowingly Helpful
.Com
Pure CSS • Continuous playful motion • Reduced-motion friendly