website_designs

Kidcore - Design Reference

Overview

Kidcore is a maximalist, nostalgia-fueled web aesthetic that celebrates the unbridled joy and sensory overload of 1990s and early 2000s childhood. Rooted in hyper-saturated primary colors, toy-box imagery, and the visual language of Lisa Frank folders, Nickelodeon bumpers, and cereal box packaging, Kidcore treats the screen as a playground where more is always more. Layouts favor collage-style compositions with tilted elements, sticker-like decorations, crayon textures, and chunky rounded shapes that evoke arts-and-crafts tables and playroom floors. Typography is bubbly, hand-drawn, and deliberately imperfect, rejecting sophistication in favor of exuberant, childlike energy. Rainbow gradients, checkerboard patterns, smiley faces, stars, hearts, and cartoon doodles are layered without restraint, creating a scrapbook-like density that rewards exploration. The philosophy is joyful maximalism – every pixel should feel like it was decorated by a kid with unlimited markers, stickers, and glitter glue.


Visual Characteristics

Core Design Traits

Design Principles


Color Palette

Kidcore demands a palette that hits like a box of 64 crayons spilled across a table. Primary colors form the foundation, supported by a full rainbow of secondary and accent hues at maximum saturation.

Color Name Hex Role / Usage
Crayon Red #FF2D2D Primary accent, buttons, hearts, alert states
Sunshine Yellow #FFD600 Backgrounds, highlights, star decorations, hover states
True Blue #2979FF Links, headers, borders, sky elements
Grass Green #00C853 Success states, nature motifs, checkerboard fills
Bubblegum Pink #FF6EC7 Decorative accents, badges, sticker outlines
Tangerine Orange #FF6D00 Secondary buttons, callouts, warm accents
Grape Purple #AA00FF Tags, decorative shadows, alternating pattern fills
Cloud White #FFFEF5 Page background, card surfaces, breathing room
Chalkboard Black #1A1A2E Text, outlines, thick borders, cartoon strokes
Robin Egg Blue #00E5FF Secondary links, decorative borders, water motifs
Candy Apple #D50000 Deep accent, important labels, bold emphasis
Lemon Lime #C6FF00 Highlight backgrounds, tag fills, energetic accents
Cotton Candy #F8BBD0 Soft backgrounds, alternating rows, gentle sections
Royal Blue #304FFE Dark link variant, footer backgrounds, contrast text
Rainbow Gradient Start #FF0000 Left/top edge of rainbow gradient bands
Rainbow Gradient End #8B00FF Right/bottom edge of rainbow gradient bands

CSS Custom Properties

:root {
  /* Primary colors */
  --kid-red: #FF2D2D;
  --kid-yellow: #FFD600;
  --kid-blue: #2979FF;
  --kid-green: #00C853;

  /* Secondary colors */
  --kid-pink: #FF6EC7;
  --kid-orange: #FF6D00;
  --kid-purple: #AA00FF;
  --kid-cyan: #00E5FF;

  /* Supporting colors */
  --kid-candy-red: #D50000;
  --kid-lime: #C6FF00;
  --kid-cotton-candy: #F8BBD0;
  --kid-royal-blue: #304FFE;

  /* Neutrals */
  --kid-white: #FFFEF5;
  --kid-black: #1A1A2E;

  /* Rainbow gradient */
  --kid-rainbow: linear-gradient(
    90deg,
    #FF0000, #FF8800, #FFD600,
    #00C853, #2979FF, #AA00FF, #8B00FF
  );

  /* Functional tokens */
  --kid-bg: var(--kid-white);
  --kid-text: var(--kid-black);
  --kid-border: var(--kid-black);
  --kid-accent: var(--kid-red);
  --kid-highlight: var(--kid-yellow);
  --kid-link: var(--kid-blue);
  --kid-shadow-color: var(--kid-pink);
  --kid-radius: 20px;
  --kid-radius-lg: 30px;
  --kid-radius-pill: 999px;
  --kid-outline: 3px;
  --kid-shadow-offset: 5px;
}

Typography

Kidcore typography should feel hand-drawn, bubbly, and exuberant. Letters should look like they were written with fat markers, stamped with alphabet blocks, or inflated like balloons. Readability matters, but personality matters more.

Typeface Characteristics

Font Style Best For
Bubblegum Sans Rounded, playful display Headlines, hero text, feature titles
Fredoka Variable weight, rounded Headings, subheadings, UI labels
Gaegu Childlike handwriting Body text, captions, personal notes
Patrick Hand Casual handwritten Body text, descriptions, informal content
Bungee Bold block display Hero titles, banners, large display text
Sniglet Rounded, friendly sans Navigation, buttons, card titles
Schoolbell Notebook handwriting Decorative text, annotations, asides
Baloo 2 Heavy rounded sans Subheadings, callouts, badge labels

Font Pairing Suggestions

Heading Body Vibe
Bubblegum Sans Patrick Hand Toy packaging meets notebook scribbles; playful and readable
Fredoka (700) Gaegu Chunky rounded headers with casual handwritten body; arts-and-crafts
Bungee Patrick Hand Bold block-letter impact paired with friendly handwriting; cereal box energy
Sniglet Gaegu Friendly rounded headers with childlike body text; storybook feel

Typography CSS Example

@import url('https://fonts.googleapis.com/css2?family=Bubblegum+Sans&family=Fredoka:wght@400;500;600;700&family=Patrick+Hand&display=swap');

/* === Base Typography === */
body {
  font-family: 'Patrick Hand', 'Comic Sans MS', 'Segoe Print', cursive;
  font-size: 18px;
  line-height: 1.7;
  color: var(--kid-text);
  background-color: var(--kid-bg);
}

h1, h2, h3, h4, h5, h6 {
  font-family: 'Bubblegum Sans', 'Fredoka', 'Comic Sans MS', cursive;
  line-height: 1.2;
  color: var(--kid-text);
  text-shadow: 3px 3px 0 var(--kid-yellow);
}

h1 {
  font-size: clamp(2.5rem, 8vw, 5rem);
  text-shadow: 4px 4px 0 var(--kid-pink);
}

h2 {
  font-family: 'Fredoka', 'Comic Sans MS', cursive;
  font-weight: 700;
  font-size: clamp(1.8rem, 4vw, 3rem);
}

h3 {
  font-family: 'Fredoka', 'Comic Sans MS', cursive;
  font-weight: 600;
  font-size: clamp(1.3rem, 3vw, 2rem);
}

a {
  color: var(--kid-link);
  text-decoration: underline wavy;
  text-underline-offset: 4px;
  transition: color 0.2s, transform 0.2s;
}

a:hover {
  color: var(--kid-pink);
  transform: scale(1.05);
}

.rainbow-text {
  background: var(--kid-rainbow);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}

Layout Principles

Grid and Structure

Section Organization

Responsive Approach


CSS / Design Techniques

Kidcore Card

A bubbly content card with thick outlines, colored shadow, and rounded corners that looks like a sticker peeled off a sheet.

.kid-card {
  background-color: var(--kid-white);
  border: var(--kid-outline) solid var(--kid-black);
  border-radius: var(--kid-radius);
  padding: 1.5rem;
  box-shadow: var(--kid-shadow-offset) var(--kid-shadow-offset) 0 var(--kid-shadow-color);
  transition: transform 0.2s ease, box-shadow 0.2s ease;
  position: relative;
  overflow: visible;
}

.kid-card:hover {
  transform: translateY(-4px) rotate(-1deg);
  box-shadow: 8px 8px 0 var(--kid-purple);
}

.kid-card::before {
  content: '';
  position: absolute;
  top: -10px;
  right: -10px;
  width: 40px;
  height: 40px;
  background: var(--kid-yellow);
  border: 2px solid var(--kid-black);
  border-radius: 50%;
  z-index: 1;
}

.kid-card h3 {
  font-family: 'Fredoka', cursive;
  font-weight: 700;
  font-size: 1.4rem;
  margin-bottom: 0.75rem;
  color: var(--kid-blue);
}

.kid-card p {
  font-size: 1rem;
  line-height: 1.6;
  margin-bottom: 1rem;
}

.kid-card .tag {
  display: inline-block;
  font-family: 'Fredoka', cursive;
  font-size: 0.75rem;
  font-weight: 600;
  padding: 0.25rem 0.75rem;
  border-radius: var(--kid-radius-pill);
  border: 2px solid var(--kid-black);
  background-color: var(--kid-lime);
  margin-right: 0.4rem;
  margin-bottom: 0.4rem;
}

Kidcore Button

Chunky, rounded buttons with bold outlines and a playful press effect that feels like pushing a toy.

.kid-btn {
  display: inline-block;
  font-family: 'Fredoka', 'Comic Sans MS', cursive;
  font-size: 1.1rem;
  font-weight: 600;
  padding: 0.8rem 2rem;
  border: var(--kid-outline) solid var(--kid-black);
  border-radius: var(--kid-radius-pill);
  background-color: var(--kid-red);
  color: var(--kid-white);
  cursor: pointer;
  text-decoration: none;
  text-align: center;
  box-shadow: 4px 4px 0 var(--kid-black);
  transition: transform 0.15s ease, box-shadow 0.15s ease;
  position: relative;
}

.kid-btn:hover {
  transform: translateY(-2px);
  box-shadow: 6px 6px 0 var(--kid-black);
}

.kid-btn:active {
  transform: translateY(3px);
  box-shadow: 1px 1px 0 var(--kid-black);
}

.kid-btn--blue { background-color: var(--kid-blue); }
.kid-btn--green { background-color: var(--kid-green); color: var(--kid-black); }
.kid-btn--pink { background-color: var(--kid-pink); }
.kid-btn--yellow { background-color: var(--kid-yellow); color: var(--kid-black); }
.kid-btn--orange { background-color: var(--kid-orange); }

.kid-btn--outline {
  background-color: var(--kid-white);
  color: var(--kid-black);
}

Kidcore Navigation

A colorful top navigation bar with pill-shaped links and rainbow underline, like alphabet magnets on a fridge.

.kid-nav {
  background-color: var(--kid-yellow);
  border-bottom: var(--kid-outline) solid var(--kid-black);
  padding: 0.75rem 1.5rem;
  position: relative;
}

.kid-nav::after {
  content: '';
  position: absolute;
  bottom: -8px;
  left: 0;
  right: 0;
  height: 5px;
  background: var(--kid-rainbow);
}

.kid-nav ul {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.5rem;
}

.kid-nav .logo {
  font-family: 'Bubblegum Sans', cursive;
  font-size: 1.5rem;
  color: var(--kid-black);
  text-decoration: none;
  margin-right: 1rem;
}

.kid-nav a {
  display: block;
  padding: 0.5rem 1rem;
  font-family: 'Fredoka', cursive;
  font-weight: 600;
  font-size: 1rem;
  color: var(--kid-black);
  text-decoration: none;
  border-radius: var(--kid-radius-pill);
  border: 2px solid transparent;
  transition: background-color 0.2s, border-color 0.2s;
}

.kid-nav a:hover {
  background-color: var(--kid-white);
  border-color: var(--kid-black);
}

.kid-nav a.active {
  background-color: var(--kid-red);
  color: var(--kid-white);
  border-color: var(--kid-black);
}

Kidcore Hero Section

A loud, celebratory hero with oversized rainbow text, floating decorative elements, and a patterned background.

.kid-hero {
  min-height: 85vh;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  padding: 3rem 2rem;
  background-color: var(--kid-cyan);
  background-image:
    radial-gradient(circle, var(--kid-white) 1px, transparent 1px),
    radial-gradient(circle, var(--kid-white) 1px, transparent 1px);
  background-size: 30px 30px;
  background-position: 0 0, 15px 15px;
  border-bottom: var(--kid-outline) solid var(--kid-black);
  position: relative;
  overflow: hidden;
}

.kid-hero h1 {
  font-family: 'Bubblegum Sans', cursive;
  font-size: clamp(3rem, 10vw, 7rem);
  line-height: 1.1;
  color: var(--kid-black);
  text-shadow:
    4px 4px 0 var(--kid-yellow),
    -2px -2px 0 var(--kid-pink);
  position: relative;
  z-index: 2;
}

.kid-hero p {
  font-family: 'Patrick Hand', cursive;
  font-size: clamp(1.1rem, 2.5vw, 1.6rem);
  max-width: 50ch;
  margin-top: 1.5rem;
  color: var(--kid-black);
  position: relative;
  z-index: 2;
  background-color: rgba(255, 254, 245, 0.85);
  padding: 1rem 2rem;
  border-radius: var(--kid-radius);
  border: 2px solid var(--kid-black);
}

.kid-hero .btn-row {
  margin-top: 2rem;
  display: flex;
  flex-wrap: wrap;
  gap: 1rem;
  justify-content: center;
  position: relative;
  z-index: 2;
}

/* Floating decorative star */
.kid-hero .deco-star {
  position: absolute;
  font-size: 3rem;
  animation: float 3s ease-in-out infinite;
  z-index: 1;
  filter: drop-shadow(2px 2px 0 var(--kid-black));
}

@keyframes float {
  0%, 100% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-15px) rotate(10deg); }
}

Rainbow Divider

A full-width gradient strip that replaces boring horizontal rules with childhood energy.

.kid-divider {
  height: 8px;
  border: none;
  background: var(--kid-rainbow);
  border-top: 2px solid var(--kid-black);
  border-bottom: 2px solid var(--kid-black);
  margin: 0;
}

.kid-divider--thick {
  height: 16px;
  border-radius: 8px;
  margin: 2rem 1rem;
  border: 2px solid var(--kid-black);
}

.kid-divider--wavy {
  height: 20px;
  background: var(--kid-rainbow);
  border: 2px solid var(--kid-black);
  border-radius: 10px;
  margin: 2rem 1rem;
  position: relative;
}

Sticker Badge

Small decorative labels that mimic adhesive stickers, used for tags, categories, and decorative callouts.

.kid-sticker {
  display: inline-flex;
  align-items: center;
  gap: 0.3rem;
  font-family: 'Fredoka', cursive;
  font-weight: 600;
  font-size: 0.85rem;
  padding: 0.4rem 1rem;
  border: 2px solid var(--kid-black);
  border-radius: var(--kid-radius-pill);
  background-color: var(--kid-pink);
  color: var(--kid-black);
  box-shadow: 2px 2px 0 var(--kid-black);
  transform: rotate(-2deg);
  transition: transform 0.2s;
  white-space: nowrap;
}

.kid-sticker:hover {
  transform: rotate(2deg) scale(1.08);
}

.kid-sticker--red { background-color: var(--kid-red); color: var(--kid-white); }
.kid-sticker--blue { background-color: var(--kid-blue); color: var(--kid-white); }
.kid-sticker--green { background-color: var(--kid-green); }
.kid-sticker--yellow { background-color: var(--kid-yellow); }
.kid-sticker--purple { background-color: var(--kid-purple); color: var(--kid-white); }
.kid-sticker--orange { background-color: var(--kid-orange); }

Checkerboard Section

A patterned background section using CSS-generated checkerboard, a signature Kidcore texture.

.kid-checkerboard {
  padding: 3rem 2rem;
  background-color: var(--kid-white);
  background-image:
    linear-gradient(45deg, var(--kid-yellow) 25%, transparent 25%),
    linear-gradient(-45deg, var(--kid-yellow) 25%, transparent 25%),
    linear-gradient(45deg, transparent 75%, var(--kid-yellow) 75%),
    linear-gradient(-45deg, transparent 75%, var(--kid-yellow) 75%);
  background-size: 40px 40px;
  background-position: 0 0, 0 20px, 20px -20px, -20px 0;
  border-top: var(--kid-outline) solid var(--kid-black);
  border-bottom: var(--kid-outline) solid var(--kid-black);
}

.kid-checkerboard .content-box {
  max-width: 800px;
  margin: 0 auto;
  background-color: var(--kid-white);
  border: var(--kid-outline) solid var(--kid-black);
  border-radius: var(--kid-radius-lg);
  padding: 2.5rem;
  box-shadow: 6px 6px 0 var(--kid-black);
}

Kidcore Feature Strip

Full-width colored bands for showcasing features, alternating through the palette.

.kid-feature-strip {
  padding: 3rem 2rem;
  border-bottom: var(--kid-outline) solid var(--kid-black);
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 2rem;
}

.kid-feature-strip:nth-child(odd) { background-color: var(--kid-cotton-candy); }
.kid-feature-strip:nth-child(even) { background-color: var(--kid-lime); }

.kid-feature-strip .icon-circle {
  width: 100px;
  height: 100px;
  border-radius: 50%;
  border: var(--kid-outline) solid var(--kid-black);
  background-color: var(--kid-yellow);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 2.5rem;
  flex-shrink: 0;
  box-shadow: 4px 4px 0 var(--kid-black);
}

.kid-feature-strip .feature-text {
  flex: 1;
  min-width: 200px;
}

.kid-feature-strip .feature-text h3 {
  font-family: 'Fredoka', cursive;
  font-weight: 700;
  font-size: 1.5rem;
  margin-bottom: 0.5rem;
  color: var(--kid-black);
}

.kid-feature-strip .feature-text p {
  font-size: 1.05rem;
  line-height: 1.6;
}

Design Do’s and Don’ts

Do

Don’t


Aesthetic Relationship
Y2K Futurism Overlaps in the late-90s/early-2000s nostalgia timeline, but Y2K leans chrome, cyber, and futuristic where Kidcore stays grounded in toys and craft supplies
Maximalism Shares the more-is-more philosophy and rejection of empty space, but Maximalism draws from luxury and eclectic fine art rather than childhood play
Neubrutalism Both use thick dark outlines and hard-offset colored shadows, but Neubrutalism is geometric and adult where Kidcore is rounded and childlike
Wacky Postmodernism Related in the playful rejection of design rules and love of clashing colors, but Wacky Pomo is more ironic and intellectual in its rule-breaking
Memphis Design A direct visual ancestor through its bold geometric patterns, clashing colors, and rejection of minimalist good taste popular in 80s/90s kids products
Cottagecore Both are nostalgia-driven internet aesthetics, but Cottagecore yearns for pastoral simplicity while Kidcore celebrates urban, plastic, screen-lit childhood
Vaporwave Shares 90s nostalgia roots but processes it through irony, melancholy, and lo-fi digital artifacts rather than Kidcore’s earnest, bright optimism
Whimsigothic Both embrace maximalism and decorative excess, but Whimsigothic channels dark mysticism while Kidcore channels sunny, daytime play energy

Quick-Start HTML Template

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Playtown Creative Studio</title>
  <link rel="preconnect" href="https://fonts.googleapis.com">
  <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
  <link href="https://fonts.googleapis.com/css2?family=Bubblegum+Sans&family=Fredoka:wght@400;500;600;700&family=Patrick+Hand&display=swap" rel="stylesheet">
  <style>
    /* --- Custom Properties --- */
    :root {
      --kid-red: #FF2D2D;
      --kid-yellow: #FFD600;
      --kid-blue: #2979FF;
      --kid-green: #00C853;
      --kid-pink: #FF6EC7;
      --kid-orange: #FF6D00;
      --kid-purple: #AA00FF;
      --kid-cyan: #00E5FF;
      --kid-candy-red: #D50000;
      --kid-lime: #C6FF00;
      --kid-cotton-candy: #F8BBD0;
      --kid-royal-blue: #304FFE;
      --kid-white: #FFFEF5;
      --kid-black: #1A1A2E;
      --kid-rainbow: linear-gradient(90deg, #FF0000, #FF8800, #FFD600, #00C853, #2979FF, #AA00FF, #8B00FF);
      --kid-radius: 20px;
      --kid-radius-lg: 30px;
      --kid-radius-pill: 999px;
      --kid-outline: 3px;
      --kid-shadow-offset: 5px;
    }

    /* --- Reset & Base --- */
    *, *::before, *::after {
      box-sizing: border-box;
      margin: 0;
      padding: 0;
    }

    body {
      font-family: 'Patrick Hand', 'Comic Sans MS', 'Segoe Print', cursive;
      font-size: 18px;
      line-height: 1.7;
      color: var(--kid-black);
      background-color: var(--kid-white);
    }

    /* --- Typography --- */
    h1, h2, h3, h4 {
      font-family: 'Bubblegum Sans', 'Comic Sans MS', cursive;
      line-height: 1.2;
    }

    h2 {
      font-family: 'Fredoka', cursive;
      font-weight: 700;
    }

    h3 {
      font-family: 'Fredoka', cursive;
      font-weight: 600;
    }

    a {
      color: var(--kid-blue);
      text-decoration: underline wavy;
      text-underline-offset: 4px;
      transition: color 0.2s;
    }

    a:hover {
      color: var(--kid-pink);
    }

    /* --- Navigation --- */
    .nav {
      background-color: var(--kid-yellow);
      border-bottom: var(--kid-outline) solid var(--kid-black);
      padding: 0.75rem 1.5rem;
      position: relative;
      z-index: 100;
    }

    .nav::after {
      content: '';
      position: absolute;
      bottom: -8px;
      left: 0;
      right: 0;
      height: 5px;
      background: var(--kid-rainbow);
    }

    .nav-inner {
      max-width: 1100px;
      margin: 0 auto;
      display: flex;
      flex-wrap: wrap;
      align-items: center;
      gap: 0.5rem;
    }

    .nav .logo {
      font-family: 'Bubblegum Sans', cursive;
      font-size: 1.6rem;
      color: var(--kid-black);
      text-decoration: none;
      margin-right: auto;
      text-shadow: 2px 2px 0 var(--kid-pink);
    }

    .nav .logo:hover { text-shadow: 2px 2px 0 var(--kid-cyan); }

    .nav ul {
      list-style: none;
      display: flex;
      flex-wrap: wrap;
      gap: 0.25rem;
    }

    .nav ul a {
      display: block;
      padding: 0.4rem 1rem;
      font-family: 'Fredoka', cursive;
      font-weight: 600;
      font-size: 1rem;
      color: var(--kid-black);
      text-decoration: none;
      border-radius: var(--kid-radius-pill);
      border: 2px solid transparent;
      transition: background-color 0.2s, border-color 0.2s;
    }

    .nav ul a:hover {
      background-color: var(--kid-white);
      border-color: var(--kid-black);
    }

    /* --- Hero --- */
    .hero {
      min-height: 85vh;
      display: flex;
      flex-direction: column;
      align-items: center;
      justify-content: center;
      text-align: center;
      padding: 4rem 2rem;
      background-color: var(--kid-cyan);
      background-image:
        radial-gradient(circle, rgba(255,254,245,0.5) 2px, transparent 2px);
      background-size: 32px 32px;
      border-bottom: var(--kid-outline) solid var(--kid-black);
      position: relative;
      overflow: hidden;
    }

    .hero h1 {
      font-size: clamp(2.8rem, 9vw, 6.5rem);
      color: var(--kid-black);
      text-shadow:
        4px 4px 0 var(--kid-yellow),
        -2px -2px 0 var(--kid-pink);
      position: relative;
      z-index: 2;
    }

    .hero .subtitle {
      font-family: 'Patrick Hand', cursive;
      font-size: clamp(1.1rem, 2.5vw, 1.5rem);
      max-width: 50ch;
      margin-top: 1.5rem;
      background: rgba(255,254,245,0.88);
      padding: 1rem 2rem;
      border-radius: var(--kid-radius);
      border: 2px solid var(--kid-black);
      position: relative;
      z-index: 2;
    }

    .hero .btn-row {
      margin-top: 2rem;
      display: flex;
      flex-wrap: wrap;
      gap: 1rem;
      justify-content: center;
      position: relative;
      z-index: 2;
    }

    /* Floating decorations */
    .deco {
      position: absolute;
      font-size: 2.5rem;
      z-index: 1;
      filter: drop-shadow(2px 2px 0 var(--kid-black));
      animation: float 4s ease-in-out infinite;
    }

    .deco:nth-child(1) { top: 12%; left: 8%; animation-delay: 0s; }
    .deco:nth-child(2) { top: 20%; right: 10%; animation-delay: 0.8s; font-size: 3rem; }
    .deco:nth-child(3) { bottom: 18%; left: 12%; animation-delay: 1.5s; }
    .deco:nth-child(4) { bottom: 25%; right: 8%; animation-delay: 2.2s; font-size: 2rem; }
    .deco:nth-child(5) { top: 45%; left: 3%; animation-delay: 0.5s; font-size: 2rem; }
    .deco:nth-child(6) { top: 55%; right: 4%; animation-delay: 1.8s; }

    @keyframes float {
      0%, 100% { transform: translateY(0) rotate(0deg); }
      50% { transform: translateY(-12px) rotate(8deg); }
    }

    /* --- Buttons --- */
    .btn {
      display: inline-block;
      font-family: 'Fredoka', cursive;
      font-size: 1.1rem;
      font-weight: 600;
      padding: 0.8rem 2rem;
      border: var(--kid-outline) solid var(--kid-black);
      border-radius: var(--kid-radius-pill);
      cursor: pointer;
      text-decoration: none;
      text-align: center;
      box-shadow: 4px 4px 0 var(--kid-black);
      transition: transform 0.15s ease, box-shadow 0.15s ease;
    }

    .btn:hover {
      transform: translateY(-2px);
      box-shadow: 6px 6px 0 var(--kid-black);
      text-decoration: none;
    }

    .btn:active {
      transform: translateY(3px);
      box-shadow: 1px 1px 0 var(--kid-black);
    }

    .btn--red { background-color: var(--kid-red); color: var(--kid-white); }
    .btn--blue { background-color: var(--kid-blue); color: var(--kid-white); }
    .btn--green { background-color: var(--kid-green); color: var(--kid-black); }
    .btn--pink { background-color: var(--kid-pink); color: var(--kid-black); }
    .btn--yellow { background-color: var(--kid-yellow); color: var(--kid-black); }
    .btn--outline { background-color: var(--kid-white); color: var(--kid-black); }

    /* --- Rainbow Divider --- */
    .rainbow-divider {
      height: 8px;
      border: none;
      background: var(--kid-rainbow);
      border-top: 2px solid var(--kid-black);
      border-bottom: 2px solid var(--kid-black);
      margin: 0;
    }

    /* --- Section --- */
    .section {
      padding: 4rem 2rem;
      border-bottom: var(--kid-outline) solid var(--kid-black);
    }

    .section-inner {
      max-width: 1100px;
      margin: 0 auto;
    }

    .section h2 {
      font-size: clamp(1.8rem, 4vw, 3rem);
      margin-bottom: 0.5rem;
      text-shadow: 3px 3px 0 var(--kid-yellow);
    }

    .section .lead {
      font-size: 1.1rem;
      max-width: 60ch;
      margin-bottom: 2rem;
    }

    /* --- Card Grid --- */
    .card-grid {
      display: grid;
      grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
      gap: 1.5rem;
    }

    .card {
      background-color: var(--kid-white);
      border: var(--kid-outline) solid var(--kid-black);
      border-radius: var(--kid-radius);
      padding: 1.5rem;
      box-shadow: 5px 5px 0 var(--kid-pink);
      transition: transform 0.2s ease, box-shadow 0.2s ease;
      position: relative;
    }

    .card:nth-child(2) { box-shadow: 5px 5px 0 var(--kid-blue); }
    .card:nth-child(3) { box-shadow: 5px 5px 0 var(--kid-green); }
    .card:nth-child(4) { box-shadow: 5px 5px 0 var(--kid-orange); }
    .card:nth-child(5) { box-shadow: 5px 5px 0 var(--kid-purple); }
    .card:nth-child(6) { box-shadow: 5px 5px 0 var(--kid-cyan); }

    .card:hover {
      transform: translateY(-5px) rotate(-1deg);
    }

    .card .card-icon {
      font-size: 2.5rem;
      margin-bottom: 0.75rem;
    }

    .card h3 {
      font-size: 1.3rem;
      margin-bottom: 0.5rem;
      color: var(--kid-blue);
    }

    .card p {
      font-size: 0.95rem;
      line-height: 1.6;
      margin-bottom: 1rem;
    }

    .sticker {
      display: inline-block;
      font-family: 'Fredoka', cursive;
      font-weight: 600;
      font-size: 0.75rem;
      padding: 0.2rem 0.7rem;
      border: 2px solid var(--kid-black);
      border-radius: var(--kid-radius-pill);
      margin-right: 0.3rem;
      margin-bottom: 0.3rem;
    }

    .sticker--red { background-color: var(--kid-red); color: var(--kid-white); }
    .sticker--blue { background-color: var(--kid-blue); color: var(--kid-white); }
    .sticker--green { background-color: var(--kid-green); color: var(--kid-black); }
    .sticker--yellow { background-color: var(--kid-yellow); color: var(--kid-black); }
    .sticker--pink { background-color: var(--kid-pink); color: var(--kid-black); }
    .sticker--purple { background-color: var(--kid-purple); color: var(--kid-white); }
    .sticker--orange { background-color: var(--kid-orange); color: var(--kid-black); }

    /* --- Checkerboard Section --- */
    .checker-section {
      padding: 4rem 2rem;
      background-color: var(--kid-white);
      background-image:
        linear-gradient(45deg, var(--kid-lime) 25%, transparent 25%),
        linear-gradient(-45deg, var(--kid-lime) 25%, transparent 25%),
        linear-gradient(45deg, transparent 75%, var(--kid-lime) 75%),
        linear-gradient(-45deg, transparent 75%, var(--kid-lime) 75%);
      background-size: 40px 40px;
      background-position: 0 0, 0 20px, 20px -20px, -20px 0;
      border-bottom: var(--kid-outline) solid var(--kid-black);
    }

    .checker-section .content-box {
      max-width: 750px;
      margin: 0 auto;
      background: var(--kid-white);
      border: var(--kid-outline) solid var(--kid-black);
      border-radius: var(--kid-radius-lg);
      padding: 2.5rem;
      box-shadow: 6px 6px 0 var(--kid-black);
      text-align: center;
    }

    .checker-section .content-box h2 {
      text-shadow: 3px 3px 0 var(--kid-pink);
    }

    /* --- Feature Strips --- */
    .feature-strip {
      padding: 3rem 2rem;
      border-bottom: var(--kid-outline) solid var(--kid-black);
      display: flex;
      flex-wrap: wrap;
      align-items: center;
      gap: 2rem;
    }

    .feature-strip .strip-inner {
      max-width: 1100px;
      margin: 0 auto;
      display: flex;
      flex-wrap: wrap;
      align-items: center;
      gap: 2rem;
      width: 100%;
    }

    .feature-strip:nth-child(odd) { background-color: var(--kid-cotton-candy); }
    .feature-strip:nth-child(even) { background-color: #E1F5FE; }

    .feature-strip .icon-circle {
      width: 90px;
      height: 90px;
      border-radius: 50%;
      border: var(--kid-outline) solid var(--kid-black);
      background-color: var(--kid-yellow);
      display: flex;
      align-items: center;
      justify-content: center;
      font-size: 2.2rem;
      flex-shrink: 0;
      box-shadow: 4px 4px 0 var(--kid-black);
    }

    .feature-strip .feature-text { flex: 1; min-width: 200px; }
    .feature-strip .feature-text h3 { font-size: 1.4rem; margin-bottom: 0.4rem; }

    /* --- Testimonials --- */
    .testimonial-grid {
      display: grid;
      grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
      gap: 1.5rem;
    }

    .testimonial {
      background-color: var(--kid-cotton-candy);
      border: var(--kid-outline) solid var(--kid-black);
      border-radius: var(--kid-radius);
      padding: 1.5rem;
      box-shadow: 4px 4px 0 var(--kid-red);
      position: relative;
    }

    .testimonial:nth-child(2) {
      background-color: #E1F5FE;
      box-shadow: 4px 4px 0 var(--kid-blue);
    }

    .testimonial:nth-child(3) {
      background-color: #F1F8E9;
      box-shadow: 4px 4px 0 var(--kid-green);
    }

    .testimonial .stars {
      font-size: 1.3rem;
      margin-bottom: 0.5rem;
      letter-spacing: 2px;
    }

    .testimonial p {
      font-size: 1rem;
      line-height: 1.6;
      margin-bottom: 0.75rem;
    }

    .testimonial .author {
      font-family: 'Fredoka', cursive;
      font-weight: 600;
      font-size: 0.9rem;
      color: var(--kid-purple);
    }

    /* --- Footer --- */
    .footer {
      background-color: var(--kid-royal-blue);
      color: var(--kid-white);
      padding: 3rem 2rem;
      position: relative;
    }

    .footer::before {
      content: '';
      position: absolute;
      top: 0;
      left: 0;
      right: 0;
      height: 8px;
      background: var(--kid-rainbow);
    }

    .footer-inner {
      max-width: 1100px;
      margin: 0 auto;
      display: flex;
      flex-wrap: wrap;
      gap: 2rem;
      justify-content: space-between;
    }

    .footer h4 {
      font-family: 'Bubblegum Sans', cursive;
      font-size: 1.3rem;
      margin-bottom: 0.75rem;
      color: var(--kid-yellow);
    }

    .footer ul {
      list-style: none;
    }

    .footer ul li { margin-bottom: 0.4rem; }

    .footer a {
      color: var(--kid-white);
      text-decoration: none;
      text-underline-offset: 3px;
    }

    .footer a:hover {
      text-decoration: underline wavy;
      color: var(--kid-yellow);
    }

    .footer .copyright {
      width: 100%;
      text-align: center;
      margin-top: 2rem;
      padding-top: 1.5rem;
      border-top: 2px solid rgba(255,255,255,0.2);
      font-size: 0.9rem;
    }

    /* --- Utilities --- */
    .text-center { text-align: center; }

    /* --- Responsive --- */
    @media (max-width: 768px) {
      .hero { min-height: 70vh; padding: 3rem 1.5rem; }
      .hero h1 { font-size: clamp(2.2rem, 10vw, 4rem); }
      .deco { font-size: 1.8rem !important; }
      .section { padding: 3rem 1.5rem; }
      .feature-strip .strip-inner { flex-direction: column; text-align: center; }
      .feature-strip .icon-circle { margin: 0 auto; }
      .footer-inner { flex-direction: column; }
    }

    @media (max-width: 480px) {
      .nav-inner { justify-content: center; }
      .nav .logo { margin-right: 0; width: 100%; text-align: center; }
      .nav ul { justify-content: center; }
      .hero { min-height: 60vh; }
      .card-grid { grid-template-columns: 1fr; }
      .testimonial-grid { grid-template-columns: 1fr; }
      .btn { width: 100%; }
    }
  </style>
</head>
<body>

  <!-- NAVIGATION -->
  <nav class="nav">
    <div class="nav-inner">
      <a href="#" class="logo">Playtown Studio</a>
      <ul>
        <li><a href="#services">Services</a></li>
        <li><a href="#work">Our Work</a></li>
        <li><a href="#about">About</a></li>
        <li><a href="#reviews">Reviews</a></li>
        <li><a href="#contact">Contact</a></li>
      </ul>
    </div>
  </nav>

  <!-- HERO -->
  <section class="hero">
    <span class="deco">&#11088;</span>
    <span class="deco">&#127752;</span>
    <span class="deco">&#10084;&#65039;</span>
    <span class="deco">&#127775;</span>
    <span class="deco">&#9728;&#65039;</span>
    <span class="deco">&#127848;</span>
    <h1>Where Creativity Comes to Play!</h1>
    <p class="subtitle">
      We are Playtown Creative Studio, a design team that believes the best ideas come from play.
      We build brands, websites, and campaigns bursting with color, joy, and unapologetic fun.
    </p>
    <div class="btn-row">
      <a href="#work" class="btn btn--red">See Our Work</a>
      <a href="#contact" class="btn btn--outline">Say Hello</a>
    </div>
  </section>

  <!-- RAINBOW DIVIDER -->
  <hr class="rainbow-divider">

  <!-- SERVICES -->
  <section class="section" id="services" style="background-color: #FFF9C4;">
    <div class="section-inner">
      <h2>What We Do</h2>
      <p class="lead">
        From brand identities to full-blown digital playgrounds, we bring bold ideas to life
        with the energy of a Saturday morning cartoon marathon.
      </p>
      <div class="card-grid">
        <div class="card">
          <div class="card-icon">&#127912;</div>
          <h3>Brand Identity</h3>
          <p>Logos, color systems, and visual guidelines that make your brand impossible to ignore. We craft identities that pop off the shelf and stick in memory.</p>
          <span class="sticker sticker--red">Logos</span>
          <span class="sticker sticker--blue">Guidelines</span>
          <span class="sticker sticker--yellow">Color</span>
        </div>
        <div class="card">
          <div class="card-icon">&#128187;</div>
          <h3>Web Design</h3>
          <p>Websites that feel like an adventure. We build responsive, accessible sites with personality to spare, designed to delight every visitor who lands on the page.</p>
          <span class="sticker sticker--green">Responsive</span>
          <span class="sticker sticker--pink">Interactive</span>
        </div>
        <div class="card">
          <div class="card-icon">&#128247;</div>
          <h3>Social Media</h3>
          <p>Scroll-stopping content for every platform. We design posts, stories, and campaigns that bring your feed to life with color-drenched, thumb-pausing visuals.</p>
          <span class="sticker sticker--purple">Campaigns</span>
          <span class="sticker sticker--orange">Content</span>
        </div>
        <div class="card">
          <div class="card-icon">&#127880;</div>
          <h3>Event Design</h3>
          <p>From launch parties to trade shows, we design physical and digital event experiences that transform spaces into immersive, playful brand environments.</p>
          <span class="sticker sticker--yellow">Spaces</span>
          <span class="sticker sticker--red">Immersive</span>
        </div>
        <div class="card">
          <div class="card-icon">&#128230;</div>
          <h3>Packaging</h3>
          <p>Product packaging that kids and adults alike want to keep. We design boxes, labels, and unboxing experiences that turn products into collectible moments.</p>
          <span class="sticker sticker--blue">Unboxing</span>
          <span class="sticker sticker--green">Shelf Impact</span>
        </div>
        <div class="card">
          <div class="card-icon">&#127916;</div>
          <h3>Motion Graphics</h3>
          <p>Animated logos, explainer videos, and social media motion content that brings your brand to life with bouncy, energetic movement and vivid color.</p>
          <span class="sticker sticker--pink">Animation</span>
          <span class="sticker sticker--purple">Video</span>
        </div>
      </div>
    </div>
  </section>

  <hr class="rainbow-divider">

  <!-- CHECKERBOARD ABOUT SECTION -->
  <section class="checker-section" id="about">
    <div class="content-box">
      <h2>About Our Studio</h2>
      <p style="margin-top: 1rem;">
        Founded in 2019 by a team of designers who never outgrew their love for bold colors and
        Saturday morning cartoons, Playtown Creative Studio operates from a paint-splattered
        warehouse in Portland filled with vintage toys and an irresponsible number of marker sets.
        We believe design should spark joy first and ask questions later. Our clients range from
        indie toy companies to major snack brands, and every project gets the same treatment:
        maximum color, maximum fun, zero corporate boredom.
      </p>
      <div style="margin-top: 1.5rem; display: flex; flex-wrap: wrap; gap: 0.5rem; justify-content: center;">
        <span class="sticker sticker--red">Portland, OR</span>
        <span class="sticker sticker--blue">Est. 2019</span>
        <span class="sticker sticker--green">12 Creatives</span>
        <span class="sticker sticker--yellow">200+ Projects</span>
        <span class="sticker sticker--purple">100% Fun</span>
      </div>
    </div>
  </section>

  <hr class="rainbow-divider">

  <!-- FEATURED WORK -->
  <section class="section" id="work">
    <div class="section-inner">
      <h2>Featured Work</h2>
      <p class="lead">A handful of projects we are especially proud of. Each one started as play and ended as something wonderful.</p>
    </div>
    <div class="feature-strip" style="background-color: var(--kid-cotton-candy);">
      <div class="strip-inner">
        <div class="icon-circle">&#127850;</div>
        <div class="feature-text">
          <h3>SugarPop Candy Rebrand</h3>
          <p>Complete visual overhaul for a gummy candy company, including new packaging, a bubbly wordmark, and a social campaign that boosted their Instagram following by 340% in three months.</p>
        </div>
      </div>
    </div>
    <div class="feature-strip" style="background-color: #E1F5FE;">
      <div class="strip-inner">
        <div class="icon-circle" style="background-color: var(--kid-cyan);">&#128302;</div>
        <div class="feature-text">
          <h3>WonderBox Subscription Service</h3>
          <p>Brand identity and e-commerce website for a monthly kids' activity box. We designed the full unboxing experience from outer carton to tissue paper to the collectible sticker sheet inside.</p>
        </div>
      </div>
    </div>
    <div class="feature-strip" style="background-color: #F1F8E9;">
      <div class="strip-inner">
        <div class="icon-circle" style="background-color: var(--kid-lime);">&#127922;</div>
        <div class="feature-text">
          <h3>TinyTown Board Game Launch</h3>
          <p>Complete go-to-market design for an indie board game, including box art, rule book illustration, Kickstarter page design, and animated social teasers that helped the campaign fund in under 48 hours.</p>
        </div>
      </div>
    </div>
  </section>

  <hr class="rainbow-divider">

  <!-- TESTIMONIALS -->
  <section class="section" id="reviews" style="background-color: #FFF3E0;">
    <div class="section-inner">
      <h2>Kind Words</h2>
      <p class="lead">What our clients say about working with us.</p>
      <div class="testimonial-grid">
        <div class="testimonial">
          <div class="stars">&#11088;&#11088;&#11088;&#11088;&#11088;</div>
          <p>"Playtown completely transformed our brand. Our packaging went from forgettable to the kind of thing kids refuse to throw away. Sales jumped 28% in the first quarter after launch."</p>
          <div class="author">-- Jamie Chen, CEO of SugarPop</div>
        </div>
        <div class="testimonial">
          <div class="stars">&#11088;&#11088;&#11088;&#11088;&#11088;</div>
          <p>"They made our Kickstarter page look like a theme park. We funded in two days and backers kept telling us the page itself was half the reason they pledged. Incredible team."</p>
          <div class="author">-- Priya Sharma, TinyTown Games</div>
        </div>
        <div class="testimonial">
          <div class="stars">&#11088;&#11088;&#11088;&#11088;&#11088;</div>
          <p>"Working with Playtown felt like recess. They brought so much energy and creativity to every meeting. The final website is the most fun thing on the internet, and our subscribers agree."</p>
          <div class="author">-- Marcus Li, Founder of WonderBox</div>
        </div>
      </div>
    </div>
  </section>

  <hr class="rainbow-divider">

  <!-- CONTACT CTA -->
  <section class="checker-section" id="contact">
    <div class="content-box">
      <h2>Let's Make Something Fun!</h2>
      <p style="margin-top: 1rem; margin-bottom: 1.5rem;">
        Got a project that needs more color, more energy, more joy? We would love to hear about it.
        Drop us a line and let's turn your next big idea into a playground.
      </p>
      <div style="display: flex; flex-wrap: wrap; gap: 1rem; justify-content: center;">
        <a href="mailto:hello@playtownstudio.com" class="btn btn--pink">Email Us</a>
        <a href="#" class="btn btn--blue">Book a Call</a>
      </div>
    </div>
  </section>

  <!-- FOOTER -->
  <footer class="footer">
    <div class="footer-inner">
      <div>
        <h4>Playtown Studio</h4>
        <p>Creative design for brands<br>that refuse to be boring.</p>
      </div>
      <div>
        <h4>Services</h4>
        <ul>
          <li><a href="#">Brand Identity</a></li>
          <li><a href="#">Web Design</a></li>
          <li><a href="#">Social Media</a></li>
          <li><a href="#">Packaging</a></li>
        </ul>
      </div>
      <div>
        <h4>Connect</h4>
        <ul>
          <li><a href="#">Instagram</a></li>
          <li><a href="#">Dribbble</a></li>
          <li><a href="#">TikTok</a></li>
          <li><a href="#">LinkedIn</a></li>
        </ul>
      </div>
      <div>
        <h4>Studio</h4>
        <ul>
          <li><a href="#">About Us</a></li>
          <li><a href="#">Careers</a></li>
          <li><a href="#">Blog</a></li>
          <li><a href="#">Press Kit</a></li>
        </ul>
      </div>
      <div class="copyright">
        Made with &#10084;&#65039; and way too many stickers by Playtown Creative Studio.
      </div>
    </div>
  </footer>

</body>
</html>