PLAYFUL-INTERACTIVE-MAXIMAL

Playful Interactive Maximal

Saturated colors, gamified interactions, physics-based hovers, surprise moments. Engagement over conversion.

Difficulty:★★★★☆
Mood:Energetic · Gamified · Saturated · Immersive · Surprise
Dense & Data-Forward

Visual DNA

Bold, saturated color palettes with gamified interactions. Every hover, click, scroll triggers surprise — confetti, sound, morphing shapes. Page feels like a toy. Fullscreen sections, unexpected navigation, scroll-jacking for storytelling.

Design Principles

ENGAGEMENT OVER CONVERSION

This is a campaign, not a sales page. The goal is not to close — it's to make people want to keep playing. Time-on-page, exploration, and repeated interaction are the metrics; a conversion button is just one toy among many. The page is a playground first and a product page second, if at all.

What it prevents: Boring corporate layouts that prioritize the CTA above everything else. Here the CTA is earned — people click it because the page already won them over, not because it's the only interactive element.

---

SURPRISE AS STRUCTURE

Every interaction has a delightful response — there are no dead zones. Hovering, pressing, scrolling, and idling all trigger feedback: squish, confetti, wobble, sticker landings, mascot waves. Surprise isn't garnish applied after the layout is done; it's the structural rule that every element must answer to being touched. The page hides discoveries that reward attention.

What it prevents: Static pages with one animated hero section. In this style, the delight IS the content — remove the responses and nothing is left.

---

FULLSCREEN IMMERSION

Each section is a complete world on its own saturated candy ground — electric pink `#FF2D8A`, cobalt `#2345FF`, lime `#C8FF30`, tangerine `#FF7A00`. Worlds change with color wipes and springy scroll snap. The user is never looking at a document; they're moving through themed rooms of a toy house.

What it prevents: Dense scrolling documents that feel like articles. The fullscreen discipline forces each section to justify itself — if a section can't fill a screen with energy, it doesn't earn its world.

---

PHYSICS, NOT PRECISION

Motion is physical and bouncy — springs with overshoot, jelly wobble, gravity, magnetic hovers. Nothing moves with mechanical precision or linear easing. The page behaves like a physical toy: press it and it responds with bounce and mass. The cursor is a hand in the toybox.

What it prevents: Tech-product motion — 300ms ease-outs, hover fades, and restrained micro-interactions. A button must overshoot 15% past its size and settle; a drag must fall with gravity and land with bounce.

---

POLYCHROME CONTAINMENT

The palette is saturated polychrome — seven candy hues — but each section contains itself to 2-3 hues maximum, then lets them shout. The confetti mix (`#FF2D8A, #C8FF30, #00E5FF, #FFD500, #FF7A00`) is reserved for interaction feedback, not decoration. Loud-on-loud pairings are the rule, but containment keeps the energy readable instead of nauseating.

What it prevents: Rainbow chaos where every element is a different saturated color. Containment is what turns the palette from noise into a designed toy — the saturation is loud, but the structure is strict.

Typography System

# Typography System

## Display Typeface

| Property | Specification |
|----------|--------------|
| **Register** | Bold, chunky display sans — heavy weights, condensed or expanded, shouts at you |
| **Examples** | Druk, Anton, Big Shoulders, Archivo Black |
| **Weight** | 700-900 (maximum impact — the type is the toy) |
| **Tracking** | 0em to -0.02em (tight, packed, energetic) |
| **Size** | `clamp(3rem, 8vw, 8rem)` — monumental, fullscreen-scale |
| **Transform** | UPPERCASE — every headline screams |

**Why chunky display sans:** The typography carries the energy of the page. Druk, Anton, and Big Shoulders are condensed, weighty, and unmissable — they land like a game title screen, not like editorial text. The type participates in the playfulness; it is never neutral or invisible.

---

## Playful Custom Lettering

| Property | Specification |
|----------|--------------|
| **Register** | Hand-drawn, rounded, wobbling lettering — custom, one-off, characterful |
| **Examples** | Rounded custom wordmarks, sticker-style letters, thick outlines |
| **Weight** | 800-900 |
| **Tracking** | Variable — letters can tilt, scale, and sit off-baseline |
| **Size** | `clamp(2rem, 5vw, 5rem)` — wordmark and accent moments |
| **Transform** | UPPERCASE or single-word lowercase — whichever feels funnier |

**Why custom lettering:** Single words become mascots. "WOW", "BOOM", "PLAY" render as drawn stickers with thick outlines, skewed baseline, or wobbling on hover. The custom lettering gives the type a handmade, toy-like personality the display sans alone can't deliver.

---

## Body Typeface

| Property | Specification |
|----------|--------------|
| **Register** | Rounded, friendly sans — readable but not corporate |
| **Examples** | Nunito, Baloo 2, Fredoka, Rubik |
| **Weight** | 400-700 (regular for body, bold for emphasis) |
| **Tracking** | 0em-0.01em (normal, tight) |
| **Size** | `clamp(1rem, 1.2vw, 1.125rem)` — 16-18px, comfortable |
| **Line Height** | 1.5-1.6 (lively, readable) |

**Why rounded sans:** The body type keeps the toy register. Rounded terminals match the chunky shapes of the display faces and soften dense sections. The page stays friendly at every text size — there is no voice for corporate seriousness.

---

## Micro / Label Type

| Property | Specification |
|----------|--------------|
| **Register** | Bold, small — game UI styling |
| **Examples** | Anton, Archivo Black, or the display sans at small size |
| **Weight** | 700-800 |
| **Tracking** | 0.05em-0.1em (wide, button-label energy) |
| **Size** | 12-14px |
| **Transform** | UPPERCASE |

**Usage:** Buttons, badges, score counters, tag labels. These read like game HUD elements — "LEVEL 03", "SCORE 4200", "TAP TO PLAY". They carry the gamified tone in the smallest text size.

---

## Type Scale

```
Display:  clamp(3rem, 8vw, 8rem)    — monumental, screaming
Lettering: clamp(2rem, 5vw, 5rem)   — sticker-style accents
Body:     clamp(1rem, 1.2vw, 1.125rem) — 16-18px, friendly
Micro:    12-14px                    — game HUD labels
```

The scale spans 12px to 128px — the biggest range in the system. Contrast is the point: screaming headlines against compact body text, with sticker words sprinkled between.

---

## Font Pairing Logic

**Two-family approach:** A heavy display sans (Druk/Anton/Big Shoulders) for headlines, a rounded friendly sans (Nunito/Baloo 2/Fredoka) for body, plus custom-drawn lettering for accent words. The display family owns the screams; the rounded family keeps reading comfortable; the custom lettering makes it feel handmade.

**Never:** Serif typefaces (editorial calm kills the toy energy), thin or light weights (the style runs on weight and impact), or neutral grotesques as the only voice (too invisible — this page must be seen).

Color Architecture

# Color Architecture

## Ground

The ground is a bright, punchy surface — this is a toy, not a gallery. Backgrounds lean toward saturated candy colors and high-contrast pairings that make every element feel like it's popping off the page.

```css
--color-ground-hot: #FF2D8A;      /* Electric pink — the default playground */
--color-ground-cobalt: #2345FF;   /* Saturated cobalt — alternate world */
--color-ground-lime: #C4FF2D;     /* Acid lime — alternate world */
--color-ground-tangerine: #FF7A00; /* Tangerine — alternate world */
```

**Why candy grounds:** The ground is one of the saturated polychrome colors, or a segmented fullscreen section switch between them. There is no neutral white or near-black — every section is a new world with its own loud ground. Engagement over conversion: the page must feel like a toy before it feels like a product.

---

## Saturated Polychrome Palette

```css
--candy-pink: #FF2D8A;        /* Electric pink — energetic, loud */
--candy-cobalt: #2345FF;      /* Cobalt — punchy contrast */
--candy-lime: #C8FF30;        /* Lime — electric, acidic */
--candy-tangerine: #FF7A00;   /* Tangerine — warm pop */
--candy-yellow: #FFD500;      /* High-voltage yellow — celebration */
--candy-purple: #8B00FF;      /* Vivid purple — party accent */
--candy-cyan: #00E5FF;        /* Cyan — gaming accent */
```

**These are the base colors.** They cover full sections, big shapes, and interactive surfaces. Every color is saturated and capable of carrying the page alone. The polychrome strategy is containment — pick 2-3 hues per section maximum, then let them shout.

---

## High-Contrast Combinations

| Pairing | Usage |
|---------|-------|
| Electric pink ground + lime accents | Default hero contrast |
| Cobalt ground + yellow text | Playful primary CTA |
| Lime ground + tangerine shapes | Peak nostalgia energy |
| Tangerine ground + cyan text | Alternate-gaming accent |

**Rule:** Every pairing is high-contrast by luminance OR hue — never adjacent muted tones. Two loud colors can sit together if one carries text-safe contrast. The energy comes from unexpected loud-on-loud combos, not from calm pairings.

---

## Interactive Accents

```css
--hover-bounce: #FFFFFF;       /* White canister — heavy hover pop */
--confetti-mix: #FF2D8A, #C8FF30, #00E5FF, #FFD500, #FF7A00; /* Confetti spread palette */
```

**Usage:** Accents are reserved for interaction responses. Hovers, spins, confetti bursts, and game-feedback states pull from the confetti mix. The white hover accent gives every interactive element a visible, physical "squish" response against the loud ground.

---

## Text

```css
--color-text-on-hot: #FFFFFF;      /* White — legible on saturated ground */
--color-text-additional: #182058;  /* Deep ink — for light grounds and panels */
--color-text-muted: rgba(255, 255, 255, 0.7); /* Muted — for labels */
```

**Why white text:** Text lives on the loud saturated ground. White at full opacity reads against every hot ground; deep ink is reserved for light ground sections. Never gray-on-gray — muted text stays white but translucent, enough legibility at 70% to read as a label.

---

## Color Don'ts

| Don't | Do Instead |
|-------|------------|
| Restrained palettes | Saturated polychrome — electric pink, cobalt, lime, tangerine |
| Pure #000000 or #FFFFFF-only | Loud candy grounds with visible text contrast |
| Muted, corporate grays | High-contrast loud-on-loud combinations |
| Pastel or muted tones | Saturated, candy-value colors |
| Color reserved for one accent element | Color as space — every section is a saturated world |
| Mono-color scheme | Two-to-three-hue palettes with a confetti mix |

---

Motion Principles

# Motion Principles

## Philosophy

Motion in Playful Interactive Maximal is **physical, bouncy, and surprising**. Nothing moves with mechanical precision — everything springs, squishes, wobbles, and pops. The page behaves like a physical toy: press it and it responds with gravity, bounce, and confetti. Motion is the reward system — every interaction triggers a delightful response, and engagement over conversion means the motion IS the product.

---

## Spring / Bounce Motion

```css
@keyframes pop-in {
  0% { transform: scale(0); }
  60% { transform: scale(1.15); }
  80% { transform: scale(0.95); }
  100% { transform: scale(1); }
}

.spring-bounce {
  animation: pop-in 600ms cubic-bezier(0.34, 1.56, 0.64, 1);
}
```

| Element | Animation | Duration | Easing |
|---------|-----------|----------|--------|
| Cards & buttons | Scale 0→1 with overshoot | 400-700ms | Overshoot spring (back ease-out) |
| Modals & popovers | Pop-in from scale(0) | 500-800ms | Overshoot spring |
| Hover squish | scale(1)→scale(0.94) on press | 100-150ms | `ease-out`, instant-ish |
| Click release | scale(0.94)→scale(1.06)→1 | 300ms | Overshoot spring |

**The spring should overshoot.** A button doesn't just appear — it pops in, over-shoots 15% past its size, and settles. This is the signature feel of the style. Never linear easing; every transition carries bounce.

---

## Physics-Based Interactions

| Effect | Specification |
|--------|--------------|
| Physics-based hover | Elements tilt, lift, and cast moving shadows as the cursor approaches — magnetic pull toward the cursor |
| Drag & gravity | Draggable elements fall with gravity, land with bounce, and scatter on release |
| Momentum scrolling | Scroll-jacking with springy momentum — sections snap with overshoot, like flinging a game card |
| Cloth / jelly distortion | Buttons and panels wobble like jelly when poked (border-radius + scale oscillation) |
| Cursor-reactive flocking | Small elements scatter or cluster around the cursor position |

**The cursor is a hand in the toybox.** Everything on the page should react to being poked, grabbed, or flicked. The physics feel — mass, bounce, friction — sells the toy illusion better than any easing curve.

---

## Gamified Hover States

```css
.hover-gamify {
  transition: transform 150ms ease-out;
}
.hover-gamify:hover {
  transform: scale(1.06) rotate(-2deg);
}

.hover-gamify:active {
  transform: scale(0.94);
}
```

| Interaction | Response |
|-------------|----------|
| Button hover | Scale 1.06 + tilt + shadow lift — "look at me" |
| Button press | Scale 0.94 squish — physical press |
| Card hover | Confetti burst + sticker flip + wobble |
| Link hover | Letter-spacing snap + color swap + wiggle |
| Wrong/empty action | Shake + buzzer color flash (game feedback) |

**Every interaction has a response.** There are no dead zones — hovering, pressing, and entering a section all produce feedback. The responses read as game mechanics: press the button, the button squishes; score the section, confetti fires. Surprise is structure, not garnish.

---

## Particle Effects & Confetti

```css
.confetti-burst {
  position: absolute;
  animation: confetti-fly 900ms ease-out forwards;
}

@keyframes confetti-fly {
  0% { transform: translate(0, 0) rotate(0deg); opacity: 1; }
  100% { transform: translate(var(--dx), var(--dy)) rotate(540deg); opacity: 0; }
}
```

| Trigger | Effect |
|---------|--------|
| CTA click | 20-40 piece confetti burst in palette colors |
| Section entry | Particle shower or emoji rain |
| Milestone / counter pass | Star burst + screen flash |
| Correct gamified action | Glow pulse + particle ring |

**Confetti is the currency.** Each burst is 900ms-1.2s, uses the confetti-mix palette, and fires on high-value interactions only — oversaturating the effect devalues it. Sound-reactive elements (subtle, user-initiated) can pulse visuals to the beat of an optional audio toggle.

---

## Entrance Animations

| Element | Animation | Duration | Easing | Delay |
|---------|-----------|----------|--------|-------|
| Fullscreen section | Scale(0.96)→1 + color wipe | 800ms | Overshoot spring | 0ms |
| Display headline | Pop-in with letter-by-letter stagger | 700ms | Overshoot spring | 100ms stagger per letter |
| Sticker words | Wobble in from rotated -8deg | 500ms | Overshoot spring | 200ms |
| Cards | Staggered pop-in, 60-80ms apart | 500ms | Overshoot spring | 300ms+ |

**Key:** Entrance is a cascade of pops. Sections enter with springy scale, headlines pop letter-by-letter, cards cascade like a dealt hand. Delays are small (60-300ms) — the energy stays fast and playful, never slow and drifting.

---

## Surprise Interactions

| Moment | Surprise |
|--------|----------|
| Scroll milestone | Sticker lands on screen + wobbles |
| Random Easter eggs | Cursor walks on the page, mascot waves after idle |
| 404 / empty states | Talking mascot, joke copy, clickable confetti cannon |
| Completion | Full-screen confetti + fanfare flash |

**Surprise is structural.** The page hides delights the user can discover — every scroll, idle moment, and edge case is a chance to reward attention. The goal is a page that feels like a toy you want to keep playing with.

---

## Reduced Motion

When `prefers-reduced-motion: reduce`:
- All springs: instant (scale changes snap, no overshoot)
- Particle effects / confetti: replaced with single static badge flash
- Scroll-jacking: disabled, native scroll
- Letter stagger: instant full reveal
- Surprise interactions: kept but non-animated (mascot still appears, doesn't dance)

```css
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    transition-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
  }
}
```

---

## What NOT to Animate

| Never | Why |
|-------|-----|
| Linear, mechanical easing | Kills the toy illusion — everything must bounce |
| Slow drift (8-12s ambient loops) | The page is a toy, not an aquarium — motion happens on interaction |
| Restrained, minimal motion | Banned vocabulary — motion is the product |
| Predictable interactions | Banned vocabulary — every response should feel earned |
| Auto-playing audio without toggle | Sound-reactive elements must be user-initiated |
| Confetti on every click | Devalues the currency — reserve bursts for high-value actions |
| Motion without feedback | Every animation must respond to user action, not ambient decoration |

Layout Grammar

# Layout Grammar

## Grid System

**No quiet grid.** The layout is fullscreen, segmented, and game-like — each section is a complete world with its own candy ground. Internally:

- Fullscreen sections: 100vw width, `min-h-[100dvh]`, one saturated candy ground per section
- Section switching: full-color wipe between worlds (never fade-to-white)
- Content: dense, collage-style composition — stickers, badges, and cards scattered with rotation
- Navigation: unexpected — floating pill, game-style menu, or progress dots that snap with bounce
- Scroll: springy momentum with section snap (scroll-jacking for storytelling), never linear

---

## Hero Section

| Property | Specification |
|----------|--------------|
| Height | Full viewport — `min-h-[100dvh]` |
| Background | Flat saturated candy ground — `--color-ground-hot: #FF2D8A` |
| Text position | Centered or slightly offset — the headline IS the hero |
| Headline size | `clamp(3rem, 8vw, 8rem)` — monumental, screaming |
| Interaction | Entrance pops: headline letter-stagger pop-in, sticker words wobble in, 3D mascot bounces |

```
┌─────────────────────────────────────────┐
│  [Saturated candy ground — #FF2D8A]     │
│                                         │
│  ✦    W O W   ✦                          │
│  (letter-by-letter pop-in)              │
│  "A toy you keep playing with"          │
│                                         │
│  [PLAY ▶]          (squish on press,    │
│   confetti burst on click)              │
│  [3D clay mascot, bobbing gently]       │
│  ✦ sparkle doodles sprinkled on edges ✦ │
└─────────────────────────────────────────┘
```

**The hero is a game title screen.** The headline lands like a logo — chunky display sans at monumental scale — and the ground carries the saturation. CTA is the first toy: squish, tilt, and confetti on press.

---

## Section Spacing

```css
--section-padding-y: clamp(3rem, 8vh, 6rem);
--content-max-width: 1100px;
--edge-margin: clamp(1.5rem, 4vw, 4rem);
--section-gap: 0; /* sections are continuous worlds, separated by color wipes */
```

**Spacing is dense but deliberate.** Unlike calm styles, gaps here are small — the page reads as packed, layered, collage-like. Breathing room comes from the color wipes between sections, not from whitespace inside them. Density is the aesthetic; chaos is the failure mode.

---

## Layout Patterns

### Pattern 1: Fullscreen World (Default)
```
┌─────────────────────────────────────────┐
│  [Candy ground — one saturated hue]     │
│                                         │
│  ✦  HEADLINE (screaming display)       │
│  [sticker]  body text  [sticker]        │
│                                         │
│  [3D props + doodles, sparse]           │
│                                         │
│  [TAP TO PLAY] ← bouncing CTA          │
└─────────────────────────────────────────┘
```

### Pattern 2: Gamified Card Scatter
```
┌─────────────────────────────────────────┐
│  [Ground — cobalt #2345FF]              │
│  [SCORE 0420] [LEVEL 03] ← HUD labels  │
│                                         │
│  ┌──────┐  ┌──────┐  ┌──────┐           │
│  │ card │  │ card │  │ card │  ← tilted │
│  │ -3°  │  │ +2°  │  │ +4°  │   stickers│
│  └──────┘  └──────┘  └──────┘           │
│    (hover: confetti burst + wobble)     │
│                                         │
│  [PLAY NEXT] ← squish button            │
└─────────────────────────────────────────┘
```

### Pattern 3: Scroll-Jacked Story Sequence
```
┌─────────────────────────────────────────┐
│  [World 1 — pink ground]                │
│  (snaps with springy overshoot)         │
├─────────────────────────────────────────┤
│  [World 2 — lime ground #C8FF30]        │
│  (color wipe + particle shower)         │
├─────────────────────────────────────────┤
│  [World 3 — tangerine ground #FF7A00]   │
│  (sticker lands on scroll milestone)    │
└─────────────────────────────────────────┘
```

---

## Responsive Behavior

| Breakpoint | Layout Change |
|------------|--------------|
| **Desktop (1200px+)** | Fullscreen worlds, scroll-jacking snap, 3D tilt cards, cursor-reactive flocking |
| **Tablet (768px)** | Scroll-jacking off (native scroll), cards stack in 2 columns, hover effects downgraded to tap effects |
| **Mobile (375px)** | Single column, HUD labels shrink, particle effects reduced 50%, tap = press (no hover states) |

**On mobile:** The toy feel must survive without a cursor. Hovers become press states (squish + confetti on tap), scroll-jacking is disabled in favor of native scroll, and fullscreen sections become stacked with smaller padding. Never ship hover-only interactions — every delight must have a tap equivalent.

---

## Layout Don'ts

| Don't | Do Instead |
|------|------------|
| Neutral white/gray page background | Saturated candy ground per section |
| Uniform grid of identical cards | Rotated sticker cards, varied sizes, scattered placement |
| Plain horizontal section dividers | Doodle zigzags, wavy lines, star separators |
| Standard hamburger + static nav | Floating pill nav, game-style menu, snap-dot progress |
| Linear, predictable page flow | Scroll-jacked story sequence with section worlds |
| Generous whitespace everywhere | Dense collage density with color-wipe pacing |
| Same ground color for the whole page | Section worlds — each one a new candy hue |

Texture & Surface

# Texture & Surface

## Primary Texture: Clean Digital Surfaces

The default surface is clean, glossy digital — flat saturated color, crisp edges, no noise. The toy world is built on solid candy grounds and clean panels; texture variety comes from what sits ON those surfaces, not from degrading them.

| Quality | Description |
|---------|-------------|
| **Flat saturated fields** | Solid candy-color sections — the clean canvas |
| **Crisp vector edges** | Sharp sticker-cut shapes, no feathered borders |
| **Glossy highlights** | Small white specular highlights on buttons and shapes |
| **Chunky outlines** | Thick 2-4px black or white outlines on stickers and badges |

**The goal:** Surfaces start clean and toy-like — like a plastic playset. Texture arrives as layered elements (stickers, confetti, illustrations), not as material grunge.

---

## Sticker Variety

```css
.sticker {
  border: 3px solid #182058;        /* Chunky ink outline */
  border-radius: 999px;
  background: #FFFFFF;
  box-shadow: 4px 4px 0 rgba(24, 32, 88, 0.25);  /* Hard offset shadow */
}
```

| Sticker Style | Treatment |
|---------------|-----------|
| **Candy sticker** | Thick ink outline + hard offset shadow — "peel me off the sheet" |
| **Die-cut shape** | Circle, starburst, squiggle — irregular silhouette, no box |
| **Ripped edge** | White paper texture with a jagged torn edge for badges |
| **Rotated placement** | -3deg to +5deg rotation, never axis-aligned |

**Purpose:** Stickers are the layer between UI and decoration. They sit slightly rotated, cast hard offset shadows, and look manually placed on the page — like a decorated journal spread. The thick outline keeps them readable on any loud ground.

---

## Confetti & Particle Textures

```css
.confetti-piece {
  width: 8px;
  height: 14px;
  border-radius: 2px;
  background: var(--candy-lime);
  box-shadow: 0 2px 0 rgba(0, 0, 0, 0.15);
}
```

| Particle | Treatment |
|----------|-----------|
| **Confetti pieces** | Small 8x14px strips in confetti-mix colors with tiny drop shadows |
| **Emoji / glyph rain** | Spinning emoji and glyph particles on celebration moments |
| **Star & sparkle overlays** | Hand-drawn star/sparkle SVGs sprinkled on hero and section edges |
| **Dotted swarm** | Clustered dots that scatter on cursor proximity |

**Purpose:** Confetti gives surfaces motion and celebration without breaking the clean digital base. Pieces are simple shapes — strips, stars, dots — that read instantly as "party" against flat grounds.

---

## 3D Rendered Elements

```css
.card-3d {
  background: linear-gradient(145deg, #FFFFFF 0%, #FFE9F3 40%, #FFD5E8 100%);
  border-radius: 24px;
  box-shadow:
    0 16px 32px rgba(24, 32, 88, 0.2),
    inset 0 2px 0 rgba(255, 255, 255, 0.9);
  transform: perspective(800px) rotateX(2deg) rotateY(-2deg);
}
```

| Element | Treatment |
|----------|-----------|
| **Hero objects** | 3D-rendered toys, mascots, and abstract shapes — glossy, clay-like |
| **Cards** | CSS 3D tilt with perspective — floating panels with depth shadow |
| **Shapes** | Clay / plastic material feel: rounded corners, specular highlight, soft floor shadow |
| **Rotation** | Elements rotate on hover in 3D space (perspective transform) |

**Purpose:** 3D elements bridge the flat UI and the toy metaphor. Glossy rendered objects sit on the clean surfaces like props on a stage — they add depth without adding noise.

---

## Illustrated Overlays

```css
.overlay-sparkle {
  position: absolute;
  background: url('data:image/svg+xml;utf8,<svg .../>') no-repeat center;
  mix-blend-mode: screen;
  opacity: 0.9;
}
```

| Overlay | Treatment |
|---------|-----------|
| **Hand-drawn doodles** | Squiggly underlines, burst rays, circling lines around headlines |
| **Background doodles** | Sparse giant stars, lightning bolts, and half-sun shapes at low visual weight |
| **Pattern patches** | Polka dots, candy stripes, and checker patches as small section accents |
| **Scanline / grain** | Optional subtle grain (opacity 0.02) only on illustration areas, never on text |

**Purpose:** Illustrated overlays add hand-drawn personality on top of the clean surfaces. They stay sparse — a squiggle under a word, a burst behind a badge — and never degrade the flat candy ground into noise.

---

## Surface Rules

| Surface | Treatment |
|---------|-----------|
| Background | Flat saturated candy color per section |
| Panels & cards | Clean white or inverted candy with thick outlines + hard offset shadows |
| Buttons | Glossy gradient, chunky outline, specular highlight, jelly hover |
| Badges / stickers | Die-cut shapes, rotated, hard offset shadow |
| Navigation | Clean bar or floating pill — always readable on any ground |
| Dividers | Doodle zigzags, wavy lines, or star-shaped separators — never plain lines |

**No grunge, no grain-heavy paper, no glassmorphism.** Surfaces are clean and toy-like. Every surface supports the flat-and-glossy world; texture variety comes from the sticker/3D/illustration layer, not from material effects.

---

## Texture Don'ts

| Don't | Do Instead |
|-------|------------|
| Realistic photography | Flat candy grounds with 3D-rendered toys and illustrated overlays |
| Grunge, noise-heavy textures | Clean glossy digital surfaces |
| Restrained, corporate surfaces | Stickers, confetti, doodles — decorated like a journal |
| Thin, hairline borders | Chunky 2-4px outlines with hard offset shadows |
| Subtle, muted shading | Specular highlights and soft floor shadows — glossy toy depth |
| Glassmorphism blur panels | Clean opaque panels with thick outlines |
| Uniform, predictable grids of texture | Rotated stickers, scattered confetti, varied doodle accents |

Vocabulary Bank

# Vocabulary Bank

## Primary Terms

| Term | Why It Matters |
|------|---------------|
| `gamified interaction` | Every action earns a response — the page behaves like a game |
| `physics-based hover` | Elements react with real spring force, not static color swaps |
| `surprise interaction` | Each click, hover, scroll hides a delight moment |
| `particle effect` | Confetti, sparks, trails that celebrate input — interaction is the content |
| `saturated polychrome` | The core palette — electric pink, cobalt, lime, tangerine in high contrast |

---

## Secondary Terms

| Term | Effect |
|------|--------|
| `confetti` | Burst of colored pieces on interaction — instant celebration |
| `spring animation` | Elastic, overshooting motion (mass/tension/friction) — things bounce when they settle |
| `delight moment` | A micro-payoff hidden in every interaction — the reason to click again |
| `gamified hover state` | Hover that transforms, scores, or triggers — never a flat background change |
| `score-driven UI` | Points, progress, badges that make browsing feel like playing |
| `scroll-jacking` | Scroll becomes a storytelling device — the page leads, the user follows |
| `morphing shapes` | Buttons and chips that reshape, stretch, squash on interaction |
| `particle trail` | Cursor and drag events leave a trail of colored particles |
| `fullscreen immersion` | Every section is a self-contained world — `min-h-[100dvh]` |
| `unexpected navigation` | Untraditional menus and reveal patterns — navigation itself is playful |

---

## Context Terms

| Term | Mood |
|------|------|
| `energy` | Fast, loud, saturated, constantly moving |
| `campaign` | A hype moment, not a sales page — engagement over conversion |
| `toy` | The page should feel like something you want to pick up and shake |
| `carnival` | Bright colors, noise, prizes, fun — a fairground atmosphere |
| `score` | Browsing earns points and rewards — the game makes you stay |
| `surprise` | Unpredictable responses that make the user grin |
| `delight` | Positive emotional payoff engineered into every interaction |

---

## Banned Terms

| Term | Why It Breaks the Style |
|------|------------------------|
| `restrained palettes` | The palette must be loud and saturated — electric pink, cobalt, lime, tangerine |
| `minimal motion` | Motion is everywhere and bouncy — springs, particles, morphs |
| `corporate seriousness` | This is a toy, not a boardroom — copy and UI are playful |
| `predictable interactions` | Every element must hide a surprise, never behave as expected |
| `muted neutrals` | No beige, gray, dark corporate backgrounds as the base |
| `subtle transitions` | No slow fades or eased drifts — snap, bounce, burst |
| `flat hover states` | A hover that only changes color is dead — hovers must transform or trigger |
| `uniform card grid` | No same-size card batteries — fullscreen worlds and unexpected layouts |
| `quiet CTAs` | Buttons must pop, morph, and celebrate — never a muted pill |
| `hollow copy` | Copy must be playful and energetic, matching the visual noise |

---

## Prompt-Ready Phrases

```
"fullscreen section as a self-contained world (min-h-[100dvh])"
"saturated polychrome palette — electric pink #FF2E93, cobalt #2050FF, lime #D6FF3D, tangerine #FF7A00"
"physics-based hover — framer-motion spring (stiffness ~300, damping ~15), tilt/scale/morph on hover"
"spring animations — elastic overshoot on entry (type: spring, bounce 0.5)+"
"confetti burst on click — 60-120 particles with gravity + rotation"
"particle effects — cursor trail, sparks on hover, burst on click"
"delight moment on every interaction — a micro-payoff per click/hover/scroll"
"gamified interactions — points, badges, progress that reward browsing"
"scroll-jacking — scroll scrubs the storytelling sequence"
"morphing buttons — border-radius and scale stretch and squash on interaction"
"unexpected navigation — playful custom menu, transform reveal, not a toolbar"
"chunky rounded display type — Anton / Big Shoulders / Druk Uppercase, tight leading"
"clean digital surfaces — flat saturated color, minimal texture, smooth vectors"
"playful energetic copy — short, loud, reward-driven"
"no restrained palettes, no minimal motion, no corporate seriousness"
```

Anti-Slop Checklist

☐Saturated polychrome palette as the ground (electric pink #FF2D8A, cobalt #2345FF, lime #C8FF30, tangerine #FF7A00)
☐Section worlds — each fullscreen section is a new candy hue with a color wipe
☐Chunky display sans headlines at clamp(3rem, 8vw, 8rem) — Druk, Anton, Big Shoulders, Archivo Black
☐Playful custom lettering — sticker-style words, wobbling, off-baseline
☐Rounded friendly body type (Nunito, Baloo 2, Fredoka, Rubik) — never corporate grotesque
☐Game HUD micro-labels — "LEVEL 03", "SCORE 0420", "TAP TO PLAY"
☐Spring/bounce motion with overshoot on everything (back ease-out, never linear)
☐Physics-based interactions — magnetic hovers, gravity drag, jelly wobble, cursor-reactive flocking
☐Every interaction has a response — no dead zones, no one-way hover states
☐Confetti/particle bursts reserved for high-value actions only (20-40 pieces, 900ms-1.2s)
☐Surprise moments — Easter eggs, idle mascots, talking 404s, scroll-milestone stickers
☐Stickers with chunky ink outlines + hard offset shadows, rotated -3deg to +5deg
☐3D rendered toys/props with glossy speculars and soft floor shadows
☐Doodle overlays — squiggles, bursts, stars — sparse, never noise
☐Clean digital surfaces — no grunge, no glassmorphism, no grain-heavy paper
☐Dense collage layouts with rotation and varied card sizes (not uniform grids)
☐Sound-reactive elements user-initiated via explicit audio toggle
☐High-contrast text — white #FFFFFF or deep ink #182058 on candy grounds
☐`prefers-reduced-motion` honored — springs snap, confetti becomes a static badge, scroll-jacking off
☐No restrained or minimal palettes
☐No corporate seriousness — no muted grays, no thin borders, no editorial calm
☐No predictable interactions — responses feel earned, not templated
☐No motion without feedback — every animation responds to user action, not ambient decoration
☐No sensory overload without purpose — density and effects serve engagement, not noise

When to Use

# When to Use

## Perfect For

| Context | Why This Style Works |
|---------|---------------------|
| **Campaign microsites** | Gamified interactions and surprise moments build buzz — engagement over conversion |
| **Product launches** | The toy-like world makes a reveal feel like an event, not a page |
| **Kids / education products** | Saturated color, bouncy motion, and rewards-style feedback match playful learning (Kahoot, Duolingo territory) |
| **Music / entertainment** | Fullscreen immersive sections and sound-reactive elements suit drops, gigs, and cultural moments |
| **Gen-Z / youth brands** | Energetic, saturated, surprise-driven design is the native language of this audience |
| **Gamified apps and platforms** | Physics-based hovers, particle effects, and level-up feedback reinforce the product loop |
| **Interactive portfolios** | The fullscreen worlds and unexpected navigation showcase motion and interaction skill |

## Brand Personality Match

This style reinforces brands that are:
- **Energetic** — high pulse, high signal, never flat
- **Gamified** — treats the visitor as a player to delight, not a prospect to convert
- **Saturated** — embraces electric pink, cobalt, lime, and tangerine over restraint
- **Surprising** — every interaction has a delightful response
- **Immersive** — each section is a world, not a page
- **Confident** — loud without irony, playful without kitsch

## Avoid When

| Context | Why It Fails |
|---------|-------------|
| **Corporate/B2B** | The playful, gamified energy reads as unserious for professional services |
| **Legal / banking / insurance** | Bright bouncy motion and confetti destroy the trust and gravity these categories need |
| **Healthcare** | High-density, jittery interaction is the opposite of calm and reassuring |
| **News / journalism** | Gamified navigation undermines editorial credibility |
| **Content-heavy documentation** | Scroll-jacking and fullscreen sections can't host long-form reading |
| **Premium-minimal brands** | Conflicts directly with restraint-led siblings like Luxury Refined Restraint or Minimal Editorial |
| **Conversion-critical e-commerce** | Engagement over conversion means the checkout flow gets buried under the toy |

## How to Decide

Ask: **"Does my brand want to feel like a toy — saturated, bouncy, and relentlessly interactive — where engagement is the whole point?"**

If yes → Playful Interactive Maximal.
If no → Consider Bold Anti-Corporate Color (if you want loud and saturated without the game mechanics), Hand-Drawn Organic Illustration (if you want warmth and craft but calmer motion), or Kinetic Typography (if you want energetic type without fullscreen gamification).

Neighboring styles to compare: industrial-brutalist-ui (raw and loud but rigid, not springy) and kinetic-typography (motion-forward, less gamified).

Common Mistakes

Mistake 1: Flat Corporate Playfulness

**What people do:** Add rounded corners, a bright accent color, and an emoji to a standard corporate layout and call it playful.

**Why it fails:** Playfulness isn't a coat of paint — it's structural. If the layout is a centered corporate grid with a muted palette and one animated button, the rounded corners read as decoration, not identity. The style needs saturated candy grounds, chunky display type, sticker variety, and interaction responses working together. One accent color is restraint, and restraint is the banned vocabulary.

**Fix:** Commit fully — saturated polychrome grounds per section, monumental chunky headlines, gamified interactions on every element. If the page wouldn't feel out of place in a corporate boardroom, it isn't playful enough.

---

Mistake 2: Motion Sickness

**What people do:** Animate everything constantly — ambient bouncing, perpetual wobble, nonstop particles, and aggressive scroll-jacking all at once.

**Why it fails:** Motion in this style is a reward for interaction, not an ambient condition. Perpetual motion creates vestibular discomfort, drowns the actual interaction feedback, and makes the page exhausting within seconds. The toy metaphor dies when the toy never stops moving on its own — a real toy sits still until you touch it.

**Fix:** Motion happens on interaction. Idle states are calm and static; only hover, press, scroll-milestone, and click trigger motion. Keep the high-energy moments short (500-800ms), never loop ambient animations, and cap particle effects per burst.

---

Mistake 3: Density Chaos

**What people do:** Fill every pixel — stickers everywhere, ten colors per section, doodles on doodles, cards at every rotation.

**Why it fails:** Density without containment is noise. The style's energy comes from the contrast between dense, packed composition and the clean saturated grounds it sits on. When everything shouts, nothing is readable, the HUD labels get lost, and the playfulness collapses into a visual wall. Polychrome containment (2-3 hues per section) exists for exactly this reason.

**Fix:** One ground color per section, 2-3 hues max per world, and the confetti mix reserved for feedback. Layer stickers and doodles deliberately — each one should be discoverable, not buried. If a section can't be scanned in one second, it's too dense.

---

Mistake 4: Gimmick Fatigue

**What people do:** Confetti on every click, mascot dancing constantly, a surprise interaction on every scroll pixel.

**Why it fails:** Confetti is currency. When every action pays out the same burst, the reward devalues to background noise — the surprise becomes expected, and expected surprise is just animation. The user stops noticing the delights because they're all the same volume. Scarcity is what makes a surprise a surprise.

**Fix:** Reserve confetti for high-value actions only (CTA click, milestone, completion). Space out Easter eggs — one mascot moment, one 404 joke, one hidden sticker. Escalate the reward scale: small pops for small actions, full-screen confetti only for the finale. The rarity is the delight.

---

Mistake 5: Accessibility Failures

**What people do:** Ship the full confetti carnival with no reduced-motion support, gray-on-gray text, or interactions that require a cursor.

**Why it fails:** The style is the highest-motion, highest-saturation style in the system — which means it has the most to get wrong. Users with vestibular disorders get physically sick from scroll-jacking and overshoot springs. Hover-only interactions (tilt, flocking, magnetic pull) are dead zones for touch users and keyboard users. Low-contrast loud-on-loud pairings fail WCAG even though they look intentional. A toy that hurts people is not playful.

**Fix:** Honor `prefers-reduced-motion` fully — springs snap instantly, confetti becomes a static badge flash, scroll-jacking becomes native scroll, letter stagger becomes instant reveal. Keep mascots but stop the dancing. Every hover interaction needs a tap and keyboard equivalent. Check contrast on every loud-on-loud pairing — white `#FFFFFF` and deep ink `#182058` are the text-safe anchors.

---

Mistake 6: Predictable Interactions

**What people do:** One hover animation (scale 1.05) applied to every element, because it's consistent.

**Why it fails:** Uniform responses are as dead as no responses. The style's vocabulary bans "predictable interactions" — the delight comes from variety: buttons squish and tilt, cards burst confetti and wobble, links snap letter-spacing and wiggle, wrong actions shake with a buzzer flash. When every element does the same thing, the game mechanic disappears and it's just CSS.

**Fix:** Build a response vocabulary — map interaction type to response type: press = squish, card = confetti + wobble, link = wiggle + color swap, error = shake + buzzer flash, completion = full-screen burst. Every response should read as a distinct game mechanic.

---

Mistake 7: Auto-Playing Sound

**What people do:** Add sound effects on every click and auto-play music to maximize the party energy.

**Why it fails:** Audio without user initiation is hostile — it's a browser red flag, an immediate tab-close, and the fastest way to break engagement. The style's own motion spec forbids auto-playing audio: sound-reactive elements must be user-initiated via an explicit toggle. An uninvited party is not a party.

**Fix:** Ship a clearly labeled sound toggle, off by default. Sound-reactive visuals (pulsing to a beat) only activate when the user enables audio. Keep effects subtle and short — a pop, a chime, a fanfare — never a continuous soundtrack.

Reference Gallery

# Reference Gallery

## Live Sites

### Duolingo (duolingo.com)
- **What works:** The canonical gamified product — streak rewards, level-up feedback, XP celebrations, and a saturated green/yellow palette that makes learning feel like a game
- **URL:** duolingo.com
- **Study:** how motivational mechanics (streaks, leagues) are surfaced as visual feedback moments, not just UI widgets

### Kahoot! (kahoot.com)
- **What works:** Explosive saturated color spreads, chunky rounded system, big timer and question reveals, confetti-style wins
- **URL:** kahoot.com
- **Study:** dense color without chaos — one dominant hue per screen, type scale that reads instantly at classroom distance

### LEGO (lego.com)
- **What works:** Fullscreen product worlds, saturated primary-block palettes, and buildable/immersive interactions that make browsing feel like play
- **URL:** lego.com
- **Study:** how to keep high saturation playful (not loud) via clean digital surfaces and friendly rounded shapes

### Typeform (typeform.com)
- **What works:** Personality injected into a utility product — one-question-at-a-time panels, micro-delight transitions, bouncy progress
- **URL:** typeform.com
- **Study:** scale of surprise: small springy responses on hover can carry the whole personality without overt gamification

### Run The Song / Cultural Campaigns (Awwwards, search "playful" or "gamified")
- **What works:** Scroll-jacking storytellers, particle effects, physics-based hovers, and sound-reactive sections
- **URL:** awwwards.com (search "playful interactive" trends)
- **Study:** fullscreen section-as-world pacing and how scroll-jacking carries a narrative

### Product Hunt / Side-Project Launch Pages
- **What works:** Confetti-on-click, sticker/illustration variety, and "level-up" animations that make launching feel celebratory
- **URL:** producthunt.com (browse recent launches)
- **Study:** restraint in surprise — one confetti moment reads as delight, twenty reads as noise

## Key Visual References

### Color
- **Saturated polychrome** — electric pink, cobalt blue, lime, tangerine on high contrast
- **Punchy pairings** — saturated-on-saturated and saturated-on-black both work; keep the pairing ratio roughly 60/30/10
- **Neutral accents (sparingly)** — warm off-whites and near-blacks let the saturation breathe
- **Avoid** — desaturated pastel bases and subdued tones at all costs; they kill the energy on contact

### Typography
- **Bold display sans** — Druk, Anton, Big Shoulders for the headline punch
- **Mixed with playful custom lettering** — hand-drawn wobble, sticker-style word art, irregular baselines
- **Short, shouty copy** — one bold line, oversized; no large paragraphs, no small print
- **Rounded chunky sans** for UI — friendly, tactile feel that matches springy motion

### Motion
- **Physics-based interactions** — spring, momentum, snap-back on every hover and click
- **Springy entrance** — elements rubber-band in, overshoot their rest title, settle (200-600ms)
- **Particle effects** — confetti, sparks, dust on key actions and milestones
- **Sound-reactive elements** — elements that pulse to a beat on entertainment sites
- **Gamified hover states** — buttons that swell, chase the cursor, combo-up, or trigger tap-toplay
- **Scroll-jacking** — scroll-progress-driven fullscreen storytelling sections

### Visual / Texture Nuance
- **Clean digital surfaces** — smooth fill, not airbrush: the "toy plastic" finish
- **3D rendered elements** — glossy chunky props and mascots punch off the flat page
- **Illustrated overlays** — stickers, doodles, and scribble layers scattered for texture and density
- **No realistic photography** unless it's a single masked sticker-style cutout

## Screenshot Notes

> When capturing references for this style, look for:
> - The energy (saturated, loud, never muted)
> - The motion (springy, bouncy, physics-based — never slow drift)
> - The color compliance (saturated polychrome; nothing instantly knows desaturated or pastel)
> - The density (high — zaps, stickers, layers, and deep noise in every section)
> - The type (chunky rounded display, short copy so the page reads fast)
> - The states (a hover or click response on every single element)
> - The interactions for the game (confetti, sound, morphing shapes — never static walls of text)
> - The overall mood (a toy — engagement over conversion)

AI Prompts

EXACT REPLICA6547 characters
> Copy this entire prompt and paste it into your AI coding assistant.

---

```
Build a playful interactive maximal page for "BONK!" — a campaign microsite for a game-toy launch. Stack: React + Vite + TypeScript + Tailwind CSS v4 + framer-motion. Page title: `BONK! — Play hard. Click harder.`

Vibe: A toy you want to pick up and shake. Saturated polychrome everywhere — electric pink, cobalt, lime, tangerine. Every hover, click, and scroll triggers a surprise: confetti, morphing shapes, springs, particle trails. The page is a game — browsing earns points, badges, and delight moments. Engagement over conversion.

---

## ANTI-SLOP CONSTRAINTS

- NO restrained or muted palettes (saturated polychrome only)
- NO minimal motion (springs, particles, morphs everywhere)
- NO corporate seriousness (playful, loud, reward-driven copy and UI)
- NO predictable interactions (every element hides a surprise)
- NO flat hover states (hovers must transform, tilt, or trigger effects)
- NO slow fades or subtle drifts (snap, bounce, burst)
- NO uniform card grids (fullscreen sections, unexpected layouts)
- NO quiet CTAs (buttons pop, morph, and celebrate)
- NO muted neutral backgrounds as the base

---

## FONTS

Load via Google Fonts:
```
https://fonts.googleapis.com/css2?family=Anton&family=Big+Shoulders+Display:wght@700;800;900&display=swap
```

Usage:
- **Anton UPPERCASE**: Display headlines — `clamp(2.5rem, 6vw, 6rem)`, uppercase, tight leading 0.95, tracking -0.01em
- **Big Shoulders Display 800-900**: Section titles, big numbers — `clamp(1.5rem, 3vw, 3rem)`, uppercase
- **System font stack (chunky sans)**: Body and UI — 14-16px, weight 600-700, rounded feel via letter-spacing 0.02em
- Optional: Druk (premium) in place of Anton if self-hosted

---

## COLOR SYSTEM

```css
:root {
  --electric-pink: #FF2E93;      /* Primary brand — hot, loud */
  --cobalt: #2050FF;             /* Contrast pair for pink */
  --lime: #D6FF3D;               /* Highlight, accents, points */
  --tangerine: #FF7A00;          /* Warm pop, badges, warnings */
  --ink: #141210;                /* Near-black — text and outlines */
  --paper: #FFF7E8;              /* Warm cream ground */
  --white: #FFFFFF;
}
```

Body: `bg-[#FFF7E8] text-[#141210] antialiased font-body overflow-x-hidden`.

Pairing rules:
- Pink + cobalt on cream — the base combo
- Lime only as highlight or on dark — never a background
- Tangerine for badges, points, and celebration accents
- Text is always ink on paper, or white on saturated fills

---

## STRUCTURE

### 1. Hero Section
- `min-h-[100dvh]`, full-bleed saturated composition: giant 3D-rendered toy shapes on electric pink
- Giant Anton headline: "PLAY HARD. CLICK HARDER." — uppercase, `clamp(2.5rem, 6vw, 6rem)`
- Subtext: "Everything on this page reacts. Trust nothing. Click everything." — chunky body, max-width 460px
- CTA: "START PLAYING" — morphing button, spring hover (tilt + scale + confetti burst on click)
- Floating sticker elements with idle bobbing animation (spring loop)
- Corner badge: "SCORE 0 — EARN POINTS BY EXPLORING" — tangerine badge, live score counter

### 2. "Meet the Toy" Section (3 fullscreen worlds)
- Each world: `min-h-[100dvh]`, its own saturated background (cobalt, lime-on-ink, tangerine)
- Headline per world: Big Shoulders 900, uppercase
- Each world has one hero interactive element:
  - World 1: a huge button that squashes and stretches with spring physics on press
  - World 2: a drag-and-toss object that leaves a particle trail
  - World 3: a click-to-morph shape that cycles border-radius and colors
- Every world awards points on interaction — score counter in the corner ticks up

### 3. "How It Works" Section
- Dense, playful layout: three chunky step cards with tilted stickers and numbers
- Steps are gamified: "STEP 1 — OPEN", "STEP 2 — CLICK EVERYTHING", "STEP 3 — COLLECT THE BADGES"
- Each card hover: lifts with spring, tilts, reveals a hidden fun-fact badge
- Sticker collage: overlapping rotated labels pinned across the section

### 4. Badge Wall (gamified payoff)
- Fullscreen section on lime: "YOUR BADGES"
- Grid of 9 badge tiles — each reveals on hover/click with a confetti burst and a sound-friendly pop animation
- Unearned badges are "LOCKED" in grayscale; earned ones are saturated with a spring scale-in

### 5. Footer
- Ink background, white text, uppercase Anton label
- "BONK! © 2026 — PLAY HARD. CLICK HARDER." — Anton, 16px, tracking 0.1em
- Footer buttons repeat the confetti-burst hover

---

## SPRING & MOTION SYSTEM

```ts
const spring = { type: "spring", stiffness: 300, damping: 15, mass: 0.8 };
const snappy = { type: "spring", stiffness: 500, damping: 22 };
const bouncy = { type: "spring", stiffness: 260, damping: 12 };
```

| Element | Animation | Spec | Trigger |
|---------|-----------|------|---------|
| Buttons | tilt + scale(1.08) | spring, stiffness 300 | hover |
| Buttons | squash + stretch + confetti burst | snappy + 80-120 particles | click |
| Cards | lift + tilt (rotateX/rotateY) | spring, stiffness 300 | hover |
| Stickers | idle bob + spin | spring loop, slow | always |
| Section entry | scale(0.85)→1 + overshoot | bouncy, bounce 0.5 | scroll into view |
| Badges | pop in with overshoot + confetti | bouncy | earn/reveal |
| Score counter | flip/tick with scale pulse | snappy | on gain |
| Scrolling | scroll-jacking — scroll scrubs the story sequence | 0.8s per section, spring eased | wheel |

Confetti spec: 80-120 pieces, random colors from the palette, `randomInt` gravity + rotation, life 900-1400ms, emitted from click point.

`prefers-reduced-motion: reduce` → disable particles, scroll-jacking, and idle bobbing; hovers become simple scale; entrance is instant.

---

## ANTI-SLOP (LOCKED)

- Saturated polychrome palette (electric pink #FF2E93, cobalt #2050FF, lime #D6FF3D, tangerine #FF7A00)
- Chunky rounded display type — Anton/Big Shoulders uppercase, tight leading
- Physics-based hover — springs, tilt, squash-and-stretch
- Confetti and particle effects on interaction
- Delight moment on every click, hover, and scroll
- Gamified elements — score, badges, points for exploring
- Fullscreen immersive sections (min-h-[100dvh])
- Playful, energetic copy throughout
- No restrained palettes, no minimal motion, no corporate seriousness
- No predictable interactions, no flat hover states, no uniform card grids

---

Recreate this page with the exact playful interactive maximal aesthetic — saturated polychrome, springs, confetti, gamified interactions, and surprise moments everywhere.
```

This prompt recreates a specific design pixel-faithfully. Study it to understand the style at its purest.