Paper Cut Design Reference
Overview
Paper Cut is a design aesthetic that simulates the look and feel of hand-cut paper art translated into digital interfaces. Rooted in centuries-old paper cutting traditions -- from Chinese jianzhi and Polish wycinanki to Japanese kirigami and German scherenschnitte -- this style leverages layered, stacked shapes with carefully orchestrated shadows to create tactile, three-dimensional depth on flat screens. Each element appears to be a discrete sheet of colored paper, physically elevated above the layers beneath it, casting realistic shadows that establish a clear spatial hierarchy.
The aesthetic emerged as a significant graphic design trend in the late 2010s and has continued to evolve, appearing in product landing pages, children's brand identities, editorial illustration, greeting card design, and immersive hero sections. Its appeal lies in the warmth and approachability of handmade craft combined with clean, geometric precision. Unlike skeuomorphism, which attempts photorealistic simulation of materials, Paper Cut embraces an obviously stylized, illustrative quality -- surfaces read as construction paper, not marble or leather. Colors tend to be bold yet slightly muted, evoking the natural pigmentation of dyed cardstock rather than digital neons.
In web and UI design, the Paper Cut aesthetic translates through multiple stacked box-shadow layers, clip-path silhouettes, layered z-index compositions, and subtle gradient overlays that suggest the way light falls across paper edges. Wavy or organic section dividers replace hard horizontal lines, making page transitions feel like one paper layer peeling away to reveal the next. Illustrations built from overlapping colored shapes -- mountains, clouds, cityscapes, foliage -- serve as hero backgrounds, replacing photography with a warmer, more whimsical visual language.
The style works particularly well for brands that want to communicate creativity, craftsmanship, approachability, and a handmade sensibility without sacrificing modern polish. It pairs naturally with bold sans-serif typography and generous whitespace, allowing the layered depth effects to breathe rather than compete for attention.
Visual Characteristics
Core Design Traits
- Stacked paper layers -- multiple overlapping shapes at different z-depths create a tangible sense of elevation and physical hierarchy
- Layered drop shadows -- each paper tier casts a soft, realistic shadow onto the layer beneath it, reinforcing the illusion of physical separation
- Bold, flat color fills -- shapes use solid, saturated colors reminiscent of construction paper or dyed cardstock rather than gradients or photographic textures
- Organic silhouette edges -- wavy, curved, or irregularly cut contours define layer boundaries, mimicking hand-cut paper shapes
- Craft-inspired illustrations -- scenery, characters, and decorative elements are composed from overlapping paper-like shapes (mountains, trees, clouds, animals)
- Subtle paper texture -- faint grain or fiber overlay on surfaces suggests the tactile quality of real paper stock
- Dimensional typography -- letterforms appear cut from paper, sometimes with shadow offsets or layered color behind them to suggest physical depth
- Section dividers as terrain -- wavy SVG or
clip-pathborders between page sections look like one paper sheet laid atop another - Limited depth palette -- typically three to five visible layers of depth, enough to feel dimensional without becoming chaotic
- Rounded, soft geometry -- corners and edges tend toward gentle curves rather than harsh right angles, maintaining the handmade quality
- Negative space as a design element -- cut-away areas reveal underlying layers or background colors, echoing the subtractive nature of paper cutting
Design Principles
- Depth should feel physically plausible -- shadow distances and blur radii must correspond to the implied elevation of each layer
- Each layer should read as a single, flat sheet of colored paper with no internal gradients (gradients appear only where light falls across edges)
- Maintain a consistent light source direction across all elements so shadows align coherently
- Use color contrast between adjacent layers to ensure clear visual separation at every depth level
- Illustrations should be constructed from simple, overlapping shapes rather than detailed linework
- Whitespace is essential -- paper layers need room to cast their shadows and establish spatial relationships
- Animation, when present, should mimic physical paper motion: gentle lifting, settling, or peeling rather than digital effects like fading or morphing
- Accessibility remains paramount -- ensure text contrast meets WCAG AA standards even when placed on colored paper layers
Color Palette
Paper Cut palettes draw from the natural pigmentation of craft paper, construction paper, and specialty cardstock. Colors are bold but slightly desaturated, warm but never neon. The palette typically includes a light background (the "table" or "backing board"), several mid-tone layer colors, and a few accent shades for detail and emphasis.
| Swatch | Hex | Role/Usage |
|---|---|---|
| Cream Canvas | #FAF3E8 |
Base background, the surface beneath all layers |
| Kraft Brown | #C9A96E |
Secondary background, exposed underlayer, earthy grounding |
| Paper White | #F5F0EB |
Top-level card surfaces, clean foreground panels |
| Sky Blue | #6BAFE2 |
Sky layers in illustrations, calm accent, link color |
| Forest Green | #3D8B5F |
Foliage, nature layers, success states |
| Goldenrod | #E8B84B |
Warm accent, highlights, call-to-action elements |
| Terracotta | #C85A3A |
Bold accent, buttons, energetic layer |
| Dusty Rose | #D4808A |
Soft accent, decorative layers, secondary buttons |
| Deep Navy | #2A3D5C |
Text color, dark layer elements, contrast |
| Sage Green | #8DB48E |
Mid-tone foliage, subtle backgrounds, tags |
| Sunset Orange | #E8844A |
Warm mid-accent, illustration details |
| Cloud Lavender | #B8A9D4 |
Soft accent, decorative background layers |
| Charcoal Paper | #3E4147 |
Dark text, shadow-heavy elements |
| Soft Coral | #F0A898 |
Light warm accent, hover states |
| Pine Dark | #2D5E45 |
Deep green contrast, footer backgrounds |
CSS Custom Properties
:root {
/* Base surfaces */
--paper-canvas: #faf3e8;
--paper-kraft: #c9a96e;
--paper-white: #f5f0eb;
/* Primary palette */
--paper-sky: #6bafe2;
--paper-forest: #3d8b5f;
--paper-goldenrod: #e8b84b;
--paper-terracotta: #c85a3a;
--paper-rose: #d4808a;
/* Secondary palette */
--paper-navy: #2a3d5c;
--paper-sage: #8db48e;
--paper-sunset: #e8844a;
--paper-lavender: #b8a9d4;
--paper-coral: #f0a898;
--paper-pine: #2d5e45;
/* Text */
--paper-text-primary: #2a3d5c;
--paper-text-secondary: #5a6475;
--paper-text-light: #f5f0eb;
--paper-text-dark: #3e4147;
/* Shadows */
--paper-shadow-sm: 0 2px 4px rgba(42, 61, 92, 0.10);
--paper-shadow-md: 0 4px 8px rgba(42, 61, 92, 0.12), 0 2px 4px rgba(42, 61, 92, 0.08);
--paper-shadow-lg: 0 8px 16px rgba(42, 61, 92, 0.14), 0 4px 8px rgba(42, 61, 92, 0.08);
--paper-shadow-xl: 0 12px 24px rgba(42, 61, 92, 0.16), 0 6px 12px rgba(42, 61, 92, 0.10);
--paper-shadow-float: 0 16px 32px rgba(42, 61, 92, 0.18), 0 8px 16px rgba(42, 61, 92, 0.10);
/* Depth layer elevations */
--paper-layer-1: 0 1px 3px rgba(42, 61, 92, 0.08);
--paper-layer-2: 0 3px 6px rgba(42, 61, 92, 0.10), 0 1px 3px rgba(42, 61, 92, 0.06);
--paper-layer-3: 0 6px 12px rgba(42, 61, 92, 0.12), 0 3px 6px rgba(42, 61, 92, 0.06);
--paper-layer-4: 0 10px 20px rgba(42, 61, 92, 0.14), 0 4px 8px rgba(42, 61, 92, 0.08);
--paper-layer-5: 0 14px 28px rgba(42, 61, 92, 0.16), 0 6px 12px rgba(42, 61, 92, 0.08);
}
Typography
Paper Cut typography balances the handmade warmth of the aesthetic with modern readability. Display headings can lean into craft-inspired character -- rounded, bold, and slightly playful -- while body text stays clean and legible. The contrast between a whimsical display face and a grounded body font reinforces the "crafted but polished" personality of the style.
Recommended Google Fonts
| Font | Style | Usage |
|---|---|---|
| Fredoka | Rounded, bold, friendly sans-serif | Hero headlines, display text |
| Baloo 2 | Rounded, bubbly display sans | Section headings, feature titles |
| Nunito | Rounded sans-serif, soft terminals | Body text, subheadings |
| Quicksand | Rounded geometric sans-serif | UI labels, navigation, buttons |
| Poppins | Geometric sans-serif, versatile | Body text alternative, captions |
| Comfortaa | Rounded geometric, friendly | Logo text, decorative headings |
| DM Sans | Clean geometric sans-serif | Small text, metadata, footnotes |
Font Pairing Recommendations
| Heading Font | Body Font | Mood |
|---|---|---|
| Fredoka (700) | Nunito (400, 600) | Playful, warm, approachable |
| Baloo 2 (600, 700) | Poppins (400, 500) | Bold, modern, energetic |
| Comfortaa (600) | Quicksand (400, 500) | Gentle, soft, minimal |
| Fredoka (600) | DM Sans (400, 500) | Crafty headline, professional body |
CSS Example
/* Import fonts */
@import url('https://fonts.googleapis.com/css2?family=Fredoka:wght@400;500;600;700&family=Nunito:wght@400;600;700&family=Quicksand:wght@400;500;600;700&display=swap');
/* Hero / Display headings */
h1 {
font-family: 'Fredoka', 'Nunito', sans-serif;
font-weight: 700;
font-size: clamp(2.5rem, 6vw, 4.5rem);
color: var(--paper-text-primary);
line-height: 1.1;
letter-spacing: -0.01em;
}
/* Section headings */
h2 {
font-family: 'Fredoka', 'Nunito', sans-serif;
font-weight: 600;
font-size: clamp(1.6rem, 3.5vw, 2.4rem);
color: var(--paper-text-primary);
line-height: 1.25;
}
/* Subsection headings */
h3 {
font-family: 'Nunito', sans-serif;
font-weight: 700;
font-size: clamp(1.2rem, 2.5vw, 1.6rem);
color: var(--paper-terracotta);
line-height: 1.3;
}
/* Body text */
body {
font-family: 'Nunito', 'Quicksand', sans-serif;
font-weight: 400;
font-size: 1rem;
line-height: 1.7;
color: var(--paper-text-primary);
}
/* UI labels and buttons */
.paper-label {
font-family: 'Quicksand', sans-serif;
font-weight: 600;
font-size: 0.85rem;
letter-spacing: 0.03em;
text-transform: uppercase;
}
/* Paper-cut display text with shadow offset */
.paper-cut-text {
font-family: 'Fredoka', sans-serif;
font-weight: 700;
font-size: clamp(3rem, 8vw, 6rem);
color: var(--paper-white);
text-shadow:
2px 2px 0 var(--paper-terracotta),
4px 4px 0 rgba(42, 61, 92, 0.15);
line-height: 1.05;
}
Layout Principles
- Layered z-axis composition -- design the page as a stack of paper sheets at varying elevations; foreground content sits on the topmost layer while decorative elements recede behind
- Wavy section dividers -- replace horizontal rules or hard section breaks with organic, curved
clip-pathor SVG shapes that suggest one paper layer overlapping the next - Generous padding and margins -- paper layers need breathing room to cast visible shadows; cramped layouts collapse the dimensional illusion
- Card-based content grouping -- individual content blocks live on their own "paper sheets," each with its own shadow and slight elevation
- Illustration-driven hero sections -- large paper-cut landscape or abstract scenes constructed from overlapping colored shapes serve as immersive entry points
- Asymmetric, organic placement -- elements can overlap, peek from behind other layers, or extend beyond their container to reinforce the physical paper metaphor
- Consistent light direction -- all shadows must fall in the same direction (typically bottom-right) to maintain the illusion of a single overhead light source
- Limited depth tiers -- restrict designs to three to five distinct elevation levels to keep the spatial hierarchy readable
- Responsive layer simplification -- on smaller screens, reduce the number of visible paper layers and shadow intensity to maintain performance and clarity
- Full-bleed color sections -- alternate background colors between sections to represent different "sheets" of colored paper spanning the full viewport width
CSS / Design Techniques
Paper Layer with Stacked Shadows
The foundational technique for Paper Cut design. Each element gets multi-layered box-shadow to simulate physical paper elevation.
/* Base paper layer system */
.paper-layer {
position: relative;
background: var(--paper-white);
border-radius: 12px;
}
.paper-layer--1 {
box-shadow: 0 1px 3px rgba(42, 61, 92, 0.08);
z-index: 1;
}
.paper-layer--2 {
box-shadow:
0 3px 6px rgba(42, 61, 92, 0.10),
0 1px 3px rgba(42, 61, 92, 0.06);
z-index: 2;
}
.paper-layer--3 {
box-shadow:
0 6px 12px rgba(42, 61, 92, 0.12),
0 3px 6px rgba(42, 61, 92, 0.06);
z-index: 3;
}
.paper-layer--4 {
box-shadow:
0 10px 20px rgba(42, 61, 92, 0.14),
0 4px 8px rgba(42, 61, 92, 0.08);
z-index: 4;
}
.paper-layer--5 {
box-shadow:
0 14px 28px rgba(42, 61, 92, 0.16),
0 6px 12px rgba(42, 61, 92, 0.08);
z-index: 5;
}
/* Paper texture overlay */
.paper-texture::before {
content: '';
position: absolute;
inset: 0;
border-radius: inherit;
background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)' opacity='0.03'/%3E%3C/svg%3E");
pointer-events: none;
z-index: 0;
}
Card Component
Cards are the primary content container in Paper Cut design, styled as individual paper sheets floating above the background.
.paper-card {
background: var(--paper-white);
border-radius: 16px;
padding: 2rem 2.5rem;
position: relative;
transition: transform 0.3s ease, box-shadow 0.3s ease;
box-shadow:
0 4px 8px rgba(42, 61, 92, 0.10),
0 2px 4px rgba(42, 61, 92, 0.06);
}
.paper-card:hover {
transform: translateY(-4px);
box-shadow:
0 12px 24px rgba(42, 61, 92, 0.14),
0 4px 8px rgba(42, 61, 92, 0.08);
}
/* Colored card variants */
.paper-card--sky {
background: var(--paper-sky);
color: var(--paper-text-light);
}
.paper-card--forest {
background: var(--paper-forest);
color: var(--paper-text-light);
}
.paper-card--terracotta {
background: var(--paper-terracotta);
color: var(--paper-text-light);
}
.paper-card--goldenrod {
background: var(--paper-goldenrod);
color: var(--paper-text-primary);
}
/* Stacked paper card -- shows additional sheets behind */
.paper-card--stacked {
position: relative;
}
.paper-card--stacked::before,
.paper-card--stacked::after {
content: '';
position: absolute;
left: 4px;
right: 4px;
height: 100%;
border-radius: 16px;
z-index: -1;
}
.paper-card--stacked::before {
bottom: -6px;
background: rgba(42, 61, 92, 0.04);
box-shadow: 0 2px 4px rgba(42, 61, 92, 0.06);
transform: rotate(0.5deg);
}
.paper-card--stacked::after {
bottom: -12px;
left: 8px;
right: 8px;
background: rgba(42, 61, 92, 0.03);
box-shadow: 0 1px 3px rgba(42, 61, 92, 0.04);
transform: rotate(-0.5deg);
}
Button Styles
Buttons in Paper Cut design look like small, clickable paper pieces that lift further on hover.
.paper-btn {
display: inline-block;
padding: 0.75rem 1.75rem;
font-family: 'Quicksand', 'Nunito', sans-serif;
font-weight: 600;
font-size: 0.95rem;
border: none;
border-radius: 10px;
cursor: pointer;
position: relative;
transition: transform 0.2s ease, box-shadow 0.2s ease;
}
.paper-btn--primary {
background: var(--paper-terracotta);
color: var(--paper-text-light);
box-shadow:
0 3px 6px rgba(200, 90, 58, 0.25),
0 1px 3px rgba(200, 90, 58, 0.15);
}
.paper-btn--primary:hover {
transform: translateY(-2px);
box-shadow:
0 6px 12px rgba(200, 90, 58, 0.30),
0 3px 6px rgba(200, 90, 58, 0.15);
}
.paper-btn--primary:active {
transform: translateY(1px);
box-shadow:
0 1px 3px rgba(200, 90, 58, 0.20),
0 1px 2px rgba(200, 90, 58, 0.10);
}
.paper-btn--secondary {
background: var(--paper-goldenrod);
color: var(--paper-text-primary);
box-shadow:
0 3px 6px rgba(232, 184, 75, 0.25),
0 1px 3px rgba(232, 184, 75, 0.15);
}
.paper-btn--secondary:hover {
transform: translateY(-2px);
box-shadow:
0 6px 12px rgba(232, 184, 75, 0.30),
0 3px 6px rgba(232, 184, 75, 0.15);
}
.paper-btn--outline {
background: transparent;
color: var(--paper-terracotta);
border: 2px solid var(--paper-terracotta);
box-shadow: none;
}
.paper-btn--outline:hover {
background: var(--paper-terracotta);
color: var(--paper-text-light);
transform: translateY(-2px);
box-shadow:
0 4px 8px rgba(200, 90, 58, 0.20);
}
/* Paper-fold corner accent on button */
.paper-btn--folded::after {
content: '';
position: absolute;
top: 0;
right: 0;
width: 16px;
height: 16px;
background: linear-gradient(
225deg,
var(--paper-canvas) 50%,
rgba(42, 61, 92, 0.08) 50%
);
border-radius: 0 10px 0 0;
}
Navigation Bar
A navigation bar styled as a paper strip floating above the page content.
.paper-nav {
position: sticky;
top: 0;
z-index: 100;
background: var(--paper-white);
padding: 1rem 2rem;
display: flex;
align-items: center;
justify-content: space-between;
box-shadow:
0 4px 8px rgba(42, 61, 92, 0.08),
0 2px 4px rgba(42, 61, 92, 0.04);
}
.paper-nav__brand {
font-family: 'Fredoka', sans-serif;
font-weight: 700;
font-size: 1.4rem;
color: var(--paper-terracotta);
text-decoration: none;
}
.paper-nav__links {
display: flex;
gap: 2rem;
list-style: none;
margin: 0;
padding: 0;
}
.paper-nav__link {
font-family: 'Quicksand', sans-serif;
font-weight: 600;
font-size: 0.95rem;
color: var(--paper-text-primary);
text-decoration: none;
padding: 0.4rem 0.8rem;
border-radius: 8px;
transition: background 0.2s ease, color 0.2s ease, box-shadow 0.2s ease;
}
.paper-nav__link:hover {
background: var(--paper-goldenrod);
color: var(--paper-text-primary);
box-shadow: 0 2px 4px rgba(232, 184, 75, 0.25);
}
.paper-nav__link--active {
background: var(--paper-terracotta);
color: var(--paper-text-light);
box-shadow: 0 2px 4px rgba(200, 90, 58, 0.20);
}
/* Wavy bottom edge on nav */
.paper-nav--wavy {
clip-path: polygon(
0 0, 100% 0, 100% 75%,
95% 85%, 90% 78%, 85% 88%, 80% 80%,
75% 90%, 70% 82%, 65% 92%, 60% 84%,
55% 90%, 50% 80%, 45% 88%, 40% 78%,
35% 86%, 30% 80%, 25% 90%, 20% 82%,
15% 88%, 10% 78%, 5% 85%, 0 75%
);
padding-bottom: 2rem;
}
Hero Section
A paper-cut landscape hero section with layered mountain/wave silhouettes.
.paper-hero {
position: relative;
min-height: 80vh;
display: flex;
align-items: center;
justify-content: center;
text-align: center;
padding: 4rem 2rem 8rem;
background: var(--paper-sky);
color: var(--paper-text-light);
overflow: hidden;
}
.paper-hero__content {
position: relative;
z-index: 10;
max-width: 700px;
}
.paper-hero__title {
font-family: 'Fredoka', sans-serif;
font-weight: 700;
font-size: clamp(2.8rem, 7vw, 5rem);
line-height: 1.1;
margin-bottom: 1rem;
text-shadow: 2px 3px 0 rgba(42, 61, 92, 0.15);
}
.paper-hero__subtitle {
font-family: 'Nunito', sans-serif;
font-size: 1.2rem;
font-weight: 400;
opacity: 0.9;
margin-bottom: 2rem;
}
/* Layered mountain silhouettes */
.paper-hero__layer {
position: absolute;
left: 0;
right: 0;
bottom: 0;
width: 100%;
}
.paper-hero__layer--back {
height: 35%;
background: var(--paper-sage);
clip-path: polygon(
0 60%, 5% 50%, 10% 55%, 15% 40%, 20% 48%,
25% 35%, 30% 42%, 35% 30%, 40% 38%, 45% 28%,
50% 35%, 55% 25%, 60% 32%, 65% 22%, 70% 30%,
75% 20%, 80% 28%, 85% 35%, 90% 25%, 95% 40%,
100% 30%, 100% 100%, 0 100%
);
z-index: 2;
filter: drop-shadow(0 -3px 4px rgba(42, 61, 92, 0.08));
}
.paper-hero__layer--mid {
height: 28%;
background: var(--paper-forest);
clip-path: polygon(
0 65%, 8% 50%, 15% 58%, 22% 42%, 28% 55%,
35% 38%, 42% 48%, 48% 35%, 55% 45%, 62% 30%,
68% 42%, 75% 32%, 82% 45%, 88% 35%, 95% 50%,
100% 40%, 100% 100%, 0 100%
);
z-index: 3;
filter: drop-shadow(0 -4px 6px rgba(42, 61, 92, 0.10));
}
.paper-hero__layer--front {
height: 20%;
background: var(--paper-pine);
clip-path: polygon(
0 70%, 10% 55%, 20% 65%, 30% 50%, 40% 60%,
50% 45%, 60% 55%, 70% 42%, 80% 55%, 90% 48%,
100% 58%, 100% 100%, 0 100%
);
z-index: 4;
filter: drop-shadow(0 -5px 8px rgba(42, 61, 92, 0.12));
}
/* Sun/Moon circle element */
.paper-hero__sun {
position: absolute;
top: 15%;
right: 18%;
width: 80px;
height: 80px;
border-radius: 50%;
background: var(--paper-goldenrod);
box-shadow:
0 4px 12px rgba(232, 184, 75, 0.40),
0 0 40px rgba(232, 184, 75, 0.15);
z-index: 1;
}
/* Cloud cutout */
.paper-hero__cloud {
position: absolute;
width: 120px;
height: 40px;
background: var(--paper-white);
border-radius: 40px;
opacity: 0.8;
z-index: 1;
box-shadow: 0 2px 6px rgba(42, 61, 92, 0.06);
}
.paper-hero__cloud::before,
.paper-hero__cloud::after {
content: '';
position: absolute;
background: var(--paper-white);
border-radius: 50%;
}
.paper-hero__cloud::before {
width: 50px;
height: 50px;
top: -20px;
left: 20px;
}
.paper-hero__cloud::after {
width: 35px;
height: 35px;
top: -15px;
left: 55px;
}
Wavy Section Divider
Organic, paper-like dividers between page sections.
/* Wavy divider -- one paper layer overlapping the next */
.paper-divider {
position: relative;
height: 80px;
margin-top: -80px;
z-index: 5;
}
.paper-divider svg {
display: block;
width: 100%;
height: 100%;
}
/* CSS-only wavy divider alternative */
.paper-divider--css {
position: relative;
height: 60px;
margin-top: -60px;
z-index: 5;
background: var(--paper-canvas);
clip-path: polygon(
0 40%, 2% 35%, 5% 42%, 8% 30%, 12% 38%,
16% 25%, 20% 35%, 24% 20%, 28% 32%, 32% 22%,
36% 30%, 40% 18%, 44% 28%, 48% 15%, 52% 25%,
56% 18%, 60% 30%, 64% 20%, 68% 28%, 72% 15%,
76% 25%, 80% 18%, 84% 30%, 88% 22%, 92% 32%,
96% 25%, 100% 35%, 100% 100%, 0 100%
);
}
/* Smooth wave using SVG inline */
.paper-wave {
width: 100%;
height: 80px;
overflow: hidden;
position: relative;
margin-top: -1px;
}
.paper-wave svg {
display: block;
width: 100%;
height: 100%;
}
Paper Fold / Dog-Ear Corner
A folded corner detail that appears on cards and containers.
/* Dog-ear fold corner effect */
.paper-fold {
position: relative;
overflow: hidden;
}
.paper-fold::after {
content: '';
position: absolute;
top: 0;
right: 0;
width: 0;
height: 0;
border-style: solid;
border-width: 0 40px 40px 0;
border-color: transparent var(--paper-canvas) transparent transparent;
filter: drop-shadow(-2px 2px 3px rgba(42, 61, 92, 0.10));
}
/* Inner triangle shadow for realism */
.paper-fold::before {
content: '';
position: absolute;
top: 0;
right: 0;
width: 40px;
height: 40px;
background: linear-gradient(
225deg,
transparent 50%,
rgba(42, 61, 92, 0.06) 50%
);
z-index: 1;
}
Torn Paper Edge
Simulating a torn or ripped paper edge using clip-path.
/* Torn paper top edge */
.paper-torn--top {
clip-path: polygon(
0% 4%, 2% 1%, 4% 3%, 7% 0%, 10% 2%, 13% 1%,
16% 3%, 19% 0%, 22% 2%, 25% 1%, 28% 4%, 31% 1%,
34% 3%, 37% 0%, 40% 2%, 43% 1%, 46% 3%, 49% 0%,
52% 2%, 55% 1%, 58% 4%, 61% 1%, 64% 3%, 67% 0%,
70% 2%, 73% 1%, 76% 3%, 79% 0%, 82% 2%, 85% 1%,
88% 4%, 91% 1%, 94% 3%, 97% 0%, 100% 2%,
100% 100%, 0% 100%
);
padding-top: 1.5rem;
}
/* Torn paper bottom edge */
.paper-torn--bottom {
clip-path: polygon(
0 0, 100% 0,
100% 96%, 98% 99%, 96% 97%, 93% 100%, 90% 98%,
87% 99%, 84% 97%, 81% 100%, 78% 98%, 75% 99%,
72% 96%, 69% 99%, 66% 97%, 63% 100%, 60% 98%,
57% 99%, 54% 97%, 51% 100%, 48% 98%, 45% 99%,
42% 96%, 39% 99%, 36% 97%, 33% 100%, 30% 98%,
27% 99%, 24% 97%, 21% 100%, 18% 98%, 15% 99%,
12% 96%, 9% 99%, 6% 97%, 3% 100%, 0 98%
);
padding-bottom: 1.5rem;
}
Design Do's and Don'ts
Do's
- Do maintain a consistent shadow direction across all elements to suggest a single, believable light source
- Do use multi-layered box-shadows (tight near-shadow plus softer far-shadow) for realistic paper elevation
- Do embrace organic, wavy, and curved edges to differentiate from typical boxy web layouts
- Do restrict your depth to three to five distinct layers to keep the hierarchy readable and intuitive
- Do apply subtle paper grain or noise textures to surfaces to reinforce the tactile, physical quality
- Do use bold, flat colors inspired by construction paper and craft materials rather than gradients or photographic fills
- Do test all text-on-color combinations for WCAG AA contrast, especially with colored paper backgrounds
Don'ts
- Don't apply gradient fills within paper shapes -- real construction paper is a single, solid color per sheet
- Don't use glossy or metallic effects -- the aesthetic is matte, fibrous, and handmade, not slick or digital
- Don't stack more than five depth layers in a single composition, as it becomes visually overwhelming and spatially confusing
- Don't mix shadow directions -- a shadow falling down-right on one element and down-left on another breaks the physical illusion
- Don't neglect performance -- excessive
box-shadowlayers andfilter: drop-shadowon animated elements can cause jank, especially on mobile - Don't use hard geometric patterns or pixel-sharp edges -- the aesthetic demands soft, organic, slightly irregular forms
- Don't clutter the composition with too many overlapping layers -- leave enough negative space for shadows to be visible and the depth to be readable
- Don't forget to simplify the layered effects on smaller viewports -- shadows and depth that look great on desktop can become muddy on mobile
Related Aesthetics
| Aesthetic | Relationship to Paper Cut |
|---|---|
| Flat Design | Shares the emphasis on bold, solid color shapes and simple geometry; Paper Cut adds the dimensional depth that Flat Design explicitly avoids |
| Material Design | Google's system also uses layered elevation and shadow to create hierarchy; Paper Cut applies a warmer, more illustrative, craft-inspired take on the same principle |
| Claymorphism | Both create tactile, three-dimensional effects; Claymorphism inflates surfaces like clay while Paper Cut stacks flat sheets with edge shadows |
| Craftcore | Shares the handmade, artisanal sensibility; Craftcore is rooted in textile and fiber arts while Paper Cut draws from paper-cutting traditions specifically |
| Skeuomorphism | Paper Cut borrows the idea of mimicking physical materials but stays stylized and illustrative rather than photorealistic |
| Glassmorphism | Both create depth through layered surfaces; Glassmorphism uses transparency and blur while Paper Cut uses opaque, solid-color sheets |
| Light Skeuomorphism | A subtler relative that also uses soft shadows and physical-object metaphors, but with less emphasis on the craft/illustration dimension |
| Kirigami / Origami UI | A close cousin focused specifically on folding and 3D paper geometry rather than flat cut layers |
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>Paper Cut Design</title>
<link href="https://fonts.googleapis.com/css2?family=Fredoka:wght@400;500;600;700&family=Nunito:wght@400;600;700&family=Quicksand:wght@400;500;600;700&display=swap" rel="stylesheet">
<style>
:root {
--paper-canvas: #faf3e8;
--paper-white: #f5f0eb;
--paper-sky: #6bafe2;
--paper-forest: #3d8b5f;
--paper-goldenrod: #e8b84b;
--paper-terracotta: #c85a3a;
--paper-rose: #d4808a;
--paper-navy: #2a3d5c;
--paper-sage: #8db48e;
--paper-pine: #2d5e45;
--paper-text-primary: #2a3d5c;
--paper-text-light: #f5f0eb;
}
*, *::before, *::after { margin: 0; padding: 0; box-sizing: border-box; }
body {
background: var(--paper-canvas);
color: var(--paper-text-primary);
font-family: 'Nunito', sans-serif;
line-height: 1.7;
overflow-x: hidden;
}
h1, h2, h3 { font-family: 'Fredoka', sans-serif; line-height: 1.2; }
a { color: var(--paper-sky); text-decoration: none; }
a:hover { text-decoration: underline; }
/* -- Navigation -- */
.nav {
position: sticky; top: 0; z-index: 100;
background: var(--paper-white);
padding: 1rem 2rem;
display: flex; align-items: center; justify-content: space-between;
box-shadow: 0 4px 8px rgba(42,61,92,.08), 0 2px 4px rgba(42,61,92,.04);
}
.nav__brand {
font-family: 'Fredoka', sans-serif; font-weight: 700;
font-size: 1.5rem; color: var(--paper-terracotta); text-decoration: none;
}
.nav__links { display: flex; gap: 1.5rem; list-style: none; }
.nav__link {
font-family: 'Quicksand', sans-serif; font-weight: 600; font-size: 0.9rem;
color: var(--paper-text-primary); text-decoration: none;
padding: 0.35rem 0.75rem; border-radius: 8px;
transition: background .2s, color .2s, box-shadow .2s;
}
.nav__link:hover {
background: var(--paper-goldenrod);
box-shadow: 0 2px 4px rgba(232,184,75,.25); text-decoration: none;
}
/* -- Hero with paper-cut landscape -- */
.hero {
position: relative; min-height: 85vh;
display: flex; align-items: center; justify-content: center; text-align: center;
padding: 4rem 2rem 10rem;
background: linear-gradient(180deg, #7fc4ed 0%, var(--paper-sky) 100%);
overflow: hidden;
}
.hero__content { position: relative; z-index: 10; max-width: 650px; }
.hero__title {
font-size: clamp(2.5rem, 7vw, 5rem); font-weight: 700;
color: var(--paper-white); text-shadow: 2px 3px 0 rgba(42,61,92,.12);
margin-bottom: 1rem;
}
.hero__subtitle {
font-size: 1.15rem; color: rgba(245,240,235,.9);
margin-bottom: 2rem; max-width: 500px; margin-inline: auto;
}
.hero__sun {
position: absolute; top: 12%; right: 15%; width: 90px; height: 90px;
border-radius: 50%; background: var(--paper-goldenrod);
box-shadow: 0 4px 12px rgba(232,184,75,.4), 0 0 50px rgba(232,184,75,.15);
z-index: 1;
}
.hero__cloud {
position: absolute; background: var(--paper-white);
border-radius: 40px; opacity: .7; z-index: 2;
box-shadow: 0 2px 6px rgba(42,61,92,.05);
}
.hero__cloud::before, .hero__cloud::after {
content: ''; position: absolute; background: var(--paper-white); border-radius: 50%;
}
.hero__cloud--1 { width: 120px; height: 36px; top: 20%; left: 10%; }
.hero__cloud--1::before { width: 48px; height: 48px; top: -22px; left: 18px; }
.hero__cloud--1::after { width: 32px; height: 32px; top: -14px; left: 52px; }
.hero__cloud--2 { width: 100px; height: 30px; top: 30%; right: 30%; }
.hero__cloud--2::before { width: 40px; height: 40px; top: -18px; left: 14px; }
.hero__cloud--2::after { width: 28px; height: 28px; top: -12px; left: 44px; }
/* Mountain layers */
.hero__mountains { position: absolute; left: 0; right: 0; bottom: 0; }
.mountain-layer { position: absolute; left: 0; right: 0; bottom: 0; width: 100%; }
.mountain-layer--back {
height: 40%; background: var(--paper-sage); z-index: 3;
clip-path: polygon(0 55%,6% 42%,12% 50%,18% 35%,24% 45%,30% 30%,36% 40%,42% 28%,48% 38%,54% 25%,60% 35%,66% 22%,72% 33%,78% 20%,84% 30%,90% 38%,96% 28%,100% 38%,100% 100%,0 100%);
filter: drop-shadow(0 -3px 5px rgba(42,61,92,.08));
}
.mountain-layer--mid {
height: 32%; background: var(--paper-forest); z-index: 4;
clip-path: polygon(0 60%,8% 45%,16% 55%,24% 38%,32% 50%,38% 35%,44% 48%,52% 32%,58% 42%,66% 28%,72% 40%,80% 30%,88% 42%,94% 35%,100% 45%,100% 100%,0 100%);
filter: drop-shadow(0 -4px 6px rgba(42,61,92,.10));
}
.mountain-layer--front {
height: 22%; background: var(--paper-pine); z-index: 5;
clip-path: polygon(0 65%,10% 50%,20% 60%,30% 45%,40% 55%,50% 40%,60% 52%,70% 38%,80% 50%,90% 42%,100% 55%,100% 100%,0 100%);
filter: drop-shadow(0 -5px 8px rgba(42,61,92,.12));
}
/* -- Shared section styles -- */
.wave-divider { display: block; width: 100%; height: auto; margin-top: -2px; }
.section { padding: 5rem 2rem; }
.section__inner { max-width: 1100px; margin: 0 auto; }
.section__heading {
text-align: center; font-size: clamp(1.8rem, 4vw, 2.8rem);
font-weight: 700; color: var(--paper-text-primary); margin-bottom: 3rem;
}
.grid { display: grid; gap: 2rem; }
.grid--3 { grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); }
/* -- Card -- */
.card {
background: var(--paper-white); border-radius: 16px; padding: 2rem;
position: relative;
transition: transform .3s ease, box-shadow .3s ease;
box-shadow: 0 4px 8px rgba(42,61,92,.10), 0 2px 4px rgba(42,61,92,.06);
}
.card:hover {
transform: translateY(-5px);
box-shadow: 0 12px 24px rgba(42,61,92,.14), 0 4px 8px rgba(42,61,92,.08);
}
.card__icon {
width: 56px; height: 56px; border-radius: 14px;
display: flex; align-items: center; justify-content: center;
font-size: 1.6rem; margin-bottom: 1.25rem;
box-shadow: 0 2px 4px rgba(42,61,92,.08);
}
.card__icon--sky { background: var(--paper-sky); }
.card__icon--forest { background: var(--paper-forest); }
.card__icon--goldenrod { background: var(--paper-goldenrod); }
.card__title {
font-family: 'Fredoka', sans-serif; font-weight: 600;
font-size: 1.25rem; margin-bottom: .75rem;
}
.card__text { font-size: .95rem; color: #5a6475; line-height: 1.65; }
/* Stacked-paper pseudo-layers behind card */
.card--stacked::before, .card--stacked::after {
content: ''; position: absolute; left: 5px; right: 5px;
height: 100%; border-radius: 16px; z-index: -1;
}
.card--stacked::before {
bottom: -7px; background: rgba(42,61,92,.04);
box-shadow: 0 2px 4px rgba(42,61,92,.05); transform: rotate(.6deg);
}
.card--stacked::after {
bottom: -13px; left: 10px; right: 10px;
background: rgba(42,61,92,.025);
box-shadow: 0 1px 3px rgba(42,61,92,.03); transform: rotate(-.6deg);
}
/* -- Colored showcase section -- */
.showcase {
background: var(--paper-forest); color: var(--paper-text-light);
padding: 5rem 2rem;
}
.showcase__inner {
max-width: 900px; margin: 0 auto;
display: grid; grid-template-columns: 1fr 1fr; gap: 3rem; align-items: center;
}
.showcase__heading { font-size: clamp(1.8rem, 4vw, 2.6rem); font-weight: 700; margin-bottom: 1rem; }
.showcase__text { opacity: .9; line-height: 1.75; margin-bottom: 1.5rem; }
.showcase__sheet {
padding: 1.25rem 1.5rem; border-radius: 12px;
font-family: 'Quicksand', sans-serif; font-weight: 600; font-size: .9rem;
}
.showcase__sheet--1 { background: var(--paper-goldenrod); color: var(--paper-text-primary); z-index: 4; box-shadow: 0 4px 8px rgba(42,61,92,.15); transform: rotate(-1deg); }
.showcase__sheet--2 { background: var(--paper-terracotta); color: var(--paper-text-light); z-index: 3; margin-top: -8px; margin-left: 12px; box-shadow: 0 3px 6px rgba(42,61,92,.12); transform: rotate(.8deg); }
.showcase__sheet--3 { background: var(--paper-sky); color: var(--paper-text-light); z-index: 2; margin-top: -8px; margin-left: 6px; box-shadow: 0 2px 4px rgba(42,61,92,.10); transform: rotate(-.5deg); }
.showcase__sheet--4 { background: var(--paper-rose); color: var(--paper-text-light); z-index: 1; margin-top: -8px; margin-left: 18px; box-shadow: 0 1px 3px rgba(42,61,92,.08); transform: rotate(1.2deg); }
/* -- Buttons -- */
.btn {
display: inline-block; padding: .75rem 1.75rem;
font-family: 'Quicksand', sans-serif; font-weight: 600; font-size: .95rem;
border: none; border-radius: 10px; cursor: pointer; text-decoration: none;
transition: transform .2s ease, box-shadow .2s ease;
}
.btn--primary {
background: var(--paper-terracotta); color: var(--paper-text-light);
box-shadow: 0 3px 6px rgba(200,90,58,.25), 0 1px 3px rgba(200,90,58,.15);
}
.btn--primary:hover { transform: translateY(-2px); box-shadow: 0 6px 12px rgba(200,90,58,.30), 0 3px 6px rgba(200,90,58,.15); text-decoration: none; }
.btn--secondary {
background: var(--paper-goldenrod); color: var(--paper-text-primary);
box-shadow: 0 3px 6px rgba(232,184,75,.25), 0 1px 3px rgba(232,184,75,.15);
}
.btn--secondary:hover { transform: translateY(-2px); box-shadow: 0 6px 12px rgba(232,184,75,.30), 0 3px 6px rgba(232,184,75,.15); text-decoration: none; }
.btn--white {
background: var(--paper-white); color: var(--paper-text-primary);
box-shadow: 0 3px 6px rgba(42,61,92,.12), 0 1px 3px rgba(42,61,92,.06);
}
.btn--white:hover { transform: translateY(-2px); box-shadow: 0 6px 12px rgba(42,61,92,.16), 0 3px 6px rgba(42,61,92,.08); text-decoration: none; }
/* -- Testimonial -- */
.testimonial {
background: var(--paper-white); border-radius: 16px; padding: 2rem;
box-shadow: 0 4px 8px rgba(42,61,92,.10), 0 2px 4px rgba(42,61,92,.06);
border-left: 5px solid var(--paper-goldenrod);
}
.testimonial__quote { font-style: italic; color: #5a6475; line-height: 1.7; margin-bottom: 1.25rem; }
.testimonial__author { font-family: 'Quicksand', sans-serif; font-weight: 700; font-size: .9rem; }
.testimonial__role { font-size: .8rem; color: #8a93a5; }
/* -- Footer -- */
.footer {
background: var(--paper-navy); color: rgba(245,240,235,.8);
padding: 3rem 2rem; text-align: center;
}
.footer__inner { max-width: 800px; margin: 0 auto; }
.footer__brand { font-family: 'Fredoka', sans-serif; font-weight: 700; font-size: 1.4rem; color: var(--paper-goldenrod); margin-bottom: .5rem; }
.footer__text { font-size: .9rem; opacity: .7; }
.footer__links { display: flex; justify-content: center; gap: 1.5rem; list-style: none; margin-top: 1.5rem; }
.footer__link { color: rgba(245,240,235,.6); font-family: 'Quicksand', sans-serif; font-weight: 600; font-size: .85rem; text-decoration: none; transition: color .2s; }
.footer__link:hover { color: var(--paper-goldenrod); text-decoration: none; }
/* -- Responsive -- */
@media (max-width: 768px) {
.nav__links { gap: .75rem; }
.nav__link { font-size: .8rem; padding: .3rem .5rem; }
.hero { min-height: 70vh; padding-bottom: 8rem; }
.showcase__inner { grid-template-columns: 1fr; text-align: center; }
.grid--3 { grid-template-columns: 1fr; }
}
</style>
</head>
<body>
<!-- Navigation -->
<nav class="nav">
<a href="#" class="nav__brand">PaperCraft</a>
<ul class="nav__links">
<li><a href="#features" class="nav__link">Features</a></li>
<li><a href="#showcase" class="nav__link">Showcase</a></li>
<li><a href="#testimonials" class="nav__link">Voices</a></li>
<li><a href="#" class="nav__link btn btn--primary" style="color:var(--paper-text-light)">Get Started</a></li>
</ul>
</nav>
<!-- Hero with paper-cut landscape -->
<section class="hero">
<div class="hero__sun"></div>
<div class="hero__cloud hero__cloud--1"></div>
<div class="hero__cloud hero__cloud--2"></div>
<div class="hero__content">
<h1 class="hero__title">Crafted with Layers</h1>
<p class="hero__subtitle">
Beautiful depth through stacked paper cutouts,
colored layers, and craft-inspired 3D shadows.
</p>
<a href="#features" class="btn btn--white">Explore</a>
</div>
<div class="hero__mountains">
<div class="mountain-layer mountain-layer--back"></div>
<div class="mountain-layer mountain-layer--mid"></div>
<div class="mountain-layer mountain-layer--front"></div>
</div>
</section>
<!-- Wave Divider -->
<svg class="wave-divider" viewBox="0 0 1440 80" preserveAspectRatio="none" xmlns="http://www.w3.org/2000/svg">
<path d="M0,40 C120,65 240,10 360,35 C480,60 600,15 720,40 C840,65 960,20 1080,40 C1200,60 1320,25 1440,45 L1440,80 L0,80 Z" fill="#faf3e8"/>
</svg>
<!-- Features -->
<section class="section" id="features">
<div class="section__inner">
<h2 class="section__heading">Why Paper Cut?</h2>
<div class="grid grid--3">
<div class="card card--stacked">
<div class="card__icon card__icon--sky">☁</div>
<h3 class="card__title">Tactile Depth</h3>
<p class="card__text">Stacked layers with realistic shadows create a physical, three-dimensional feel that flat design cannot achieve.</p>
</div>
<div class="card card--stacked">
<div class="card__icon card__icon--forest">☘</div>
<h3 class="card__title">Craft Warmth</h3>
<p class="card__text">Inspired by centuries of paper cutting traditions, every surface feels handmade, approachable, and authentically crafted.</p>
</div>
<div class="card card--stacked">
<div class="card__icon card__icon--goldenrod">★</div>
<h3 class="card__title">Bold Simplicity</h3>
<p class="card__text">Solid color sheets and clean shapes keep the design readable while the layered depth adds visual richness.</p>
</div>
</div>
</div>
</section>
<!-- Colored Showcase Section -->
<section class="showcase" id="showcase">
<div class="showcase__inner">
<div>
<h2 class="showcase__heading">Stacked Paper Layers</h2>
<p class="showcase__text">Each layer is a discrete sheet of colored paper at its own elevation. Shadows fall consistently, building a clear hierarchy from back to front.</p>
<a href="#" class="btn btn--secondary">Learn More</a>
</div>
<div>
<div class="showcase__sheet showcase__sheet--1">Layer 1 -- Goldenrod</div>
<div class="showcase__sheet showcase__sheet--2">Layer 2 -- Terracotta</div>
<div class="showcase__sheet showcase__sheet--3">Layer 3 -- Sky Blue</div>
<div class="showcase__sheet showcase__sheet--4">Layer 4 -- Dusty Rose</div>
</div>
</div>
</section>
<!-- Wave Divider -->
<svg class="wave-divider" viewBox="0 0 1440 80" preserveAspectRatio="none" xmlns="http://www.w3.org/2000/svg">
<path d="M0,30 C180,55 360,5 540,30 C720,55 900,10 1080,35 C1200,50 1320,15 1440,40 L1440,80 L0,80 Z" fill="#faf3e8"/>
</svg>
<!-- Testimonials -->
<section class="section" id="testimonials">
<div class="section__inner">
<h2 class="section__heading">What Designers Say</h2>
<div class="grid grid--3">
<div class="testimonial">
<p class="testimonial__quote">"The layered paper approach gives our brand a warmth and dimensionality that no gradient or glass effect could match."</p>
<p class="testimonial__author">Elara Chen</p>
<p class="testimonial__role">Brand Director, Folio Studio</p>
</div>
<div class="testimonial">
<p class="testimonial__quote">"Clients love the tactile quality. It feels like you could reach into the screen and peel back each layer."</p>
<p class="testimonial__author">Marcus Webb</p>
<p class="testimonial__role">UI Designer, CraftLab</p>
</div>
<div class="testimonial">
<p class="testimonial__quote">"Paper Cut is the sweet spot between playful and professional. It brings craft into corporate without losing credibility."</p>
<p class="testimonial__author">Sofia Reyes</p>
<p class="testimonial__role">Creative Lead, Origami Digital</p>
</div>
</div>
</div>
</section>
<!-- Footer -->
<footer class="footer">
<div class="footer__inner">
<p class="footer__brand">PaperCraft</p>
<p class="footer__text">Layered paper cutout depth effects -- stacked shadows, colored layers, craft-inspired 3D.</p>
<ul class="footer__links">
<li><a href="#" class="footer__link">About</a></li>
<li><a href="#" class="footer__link">Portfolio</a></li>
<li><a href="#" class="footer__link">Contact</a></li>
<li><a href="#" class="footer__link">Blog</a></li>
</ul>
</div>
</footer>
</body>
</html>
Implementation Tips
- Layer your shadows progressively -- start with
0 1px 3pxfor the closest layer and increase offset and blur for each subsequent elevation. Use a consistent scale (e.g., doubling the offset per level) so the spatial hierarchy reads naturally. - Use
filter: drop-shadow()for non-rectangular shapes --box-shadowonly works on the bounding rectangle;drop-shadow()follows the actual shape outline created byclip-path, making it essential for wavy dividers and irregular silhouettes. - Keep
clip-pathpoints minimal for performance -- overly complex polygon values slow down rendering, particularly on mobile. Aim for 20-30 points maximum per divider; use SVG elements for more detailed shapes. - Provide a paper texture subtly -- use an inline SVG
feTurbulencenoise filter at 2-4% opacity as a::beforepseudo-element overlay. This adds tactile warmth without requiring an external image asset or noticeable rendering cost. - Simplify layers on mobile -- reduce the number of visible depth tiers from five to two or three on screens below 768px, and decrease shadow blur values proportionally. This prevents visual muddiness on smaller displays.
- Animate with
transformonly -- when adding hover or scroll interactions, stick totranslateY,scale, androtatefor paper-lifting effects. Avoid animatingbox-shadowdirectly; instead, layer the hover shadow on a::afterpseudo-element and animate itsopacityfor GPU-accelerated transitions. - Test shadow rendering across browsers -- multiple stacked
box-shadowvalues can render slightly differently in Safari versus Chrome; validate the layered depth appearance on both WebKit and Blink engines. - Consider
prefers-reduced-motion-- wrap all hover-lift and parallax animations in a@media (prefers-reduced-motion: no-preference)block so users who are sensitive to motion see a static version that retains the paper-cut visual style without the movement.