The Polish Poster School (Polska Szkoła Plakatu) is an internationally renowned graphic design movement that flourished in Poland from the 1950s through the 1980s. It fuses fine art expressionism with poster communication, rejecting Western commercial conventions (the “floating heads” approach) in favor of surreal, symbolic, and deeply metaphorical imagery. Emerging under Soviet-era constraints where foreign film posters received relaxed censorship, Polish artists transformed advertising into a vehicle for artistic subversion, intellectual provocation, and emotional storytelling. The style is defined by painterly gesture, morbid wit, allegorical symbolism, and a stark tension between folk color vibrancy and oppressive gray atmospheres. Key figures include Henryk Tomaszewski, Jan Lenica, Franciszek Starowieyski, Waldemar Świerzy, Roman Cieślewicz, and Andrzej Pągowski.
The Polish Poster School uses vivid, expressionistic color drawn from folk art traditions, applied in isolated bursts against muted, oppressive grounds. The palette oscillates between vibrant saturated hues and somber, desaturated tones to create emotional tension.
| Color Name | Hex | Role / Usage |
|---|---|---|
| Poster Red | #CC2936 |
Primary accent, dominant symbolic element, blood and urgency |
| Deep Crimson | #8B1A1A |
Darker red for shadows, depth within red forms, morbid undertones |
| Folk Yellow | #E8B630 |
Warm accent, isolated highlights, folk art reference |
| Ochre | #C4913D |
Earthy warm tone, aged paper feel, secondary warmth |
| Cobalt Blue | #1B4B8A |
Cool contrast accent, symbolic depth, dreamlike atmosphere |
| Slate Blue | #3D5A80 |
Muted cool secondary, transitional tone |
| Bone White | #E8E0D0 |
Exposed paper ground, negative space, skull and skeletal forms |
| Parchment | #D5C9B1 |
Aged poster stock, warm neutral ground |
| Charcoal | #2B2B2B |
Dense blacks for outlines, text, oppressive atmosphere |
| Soot Black | #1A1A1A |
Maximum-darkness ground, ink-heavy areas |
| Ash Gray | #6B6B6B |
Muted urban atmosphere, Soviet-era drabness |
| Warm Gray | #8C8378 |
Desaturated mid-tone, gritty poster texture |
| Verdigris | #3D7B6F |
Cool accent, oxidized/aged quality, secondary symbolic color |
| Dried Blood | #5C1A1A |
Darkest morbid tone, deep shadows, decay |
| Ink Violet | #3D2B56 |
Bruised, nocturnal accent, surreal atmosphere |
:root {
/* Vivid accents (folk art-derived) */
--pps-red: #cc2936;
--pps-crimson: #8b1a1a;
--pps-yellow: #e8b630;
--pps-ochre: #c4913d;
--pps-blue: #1b4b8a;
--pps-slate-blue: #3d5a80;
/* Dark tones */
--pps-charcoal: #2b2b2b;
--pps-black: #1a1a1a;
--pps-dried-blood: #5c1a1a;
--pps-ink-violet: #3d2b56;
/* Neutrals (muted, oppressive) */
--pps-ash: #6b6b6b;
--pps-warm-gray: #8c8378;
--pps-bone: #e8e0d0;
--pps-parchment: #d5c9b1;
/* Secondary accents */
--pps-verdigris: #3d7b6f;
/* Functional assignments */
--pps-bg-primary: var(--pps-charcoal);
--pps-bg-light: var(--pps-bone);
--pps-bg-dark: var(--pps-black);
--pps-text-primary: var(--pps-bone);
--pps-text-dark: var(--pps-charcoal);
--pps-accent: var(--pps-red);
--pps-accent-warm: var(--pps-yellow);
--pps-accent-cool: var(--pps-blue);
}
Polish Poster School typography is defined by:
| Font | Style | Best For |
|---|---|---|
| Caveat | Handwritten, expressive | Headlines that need hand-drawn quality |
| Permanent Marker | Bold hand-lettered | Display titles with raw, gestural energy |
| Amatic SC | Thin hand-drawn, uppercase | Lighter hand-lettered secondary text |
| Oswald | Condensed geometric sans | Formal headlines with Eastern European poster feel |
| Bebas Neue | Bold condensed uppercase | Strong poster titles when hand-drawn feel is not needed |
| Teko | Condensed, angular, geometric | Headlines with blocky, stencil-like quality |
| Stint Ultra Expanded | Ultra-wide, heavy | Display text with monumental, unusual proportions |
| Roboto Condensed | Condensed grotesque | Supporting text, credits, secondary information |
| PT Sans | Humanist sans, Cyrillic heritage | Body text with Eastern European typographic DNA |
| Source Serif 4 | Transitional serif | Body text when a more literary, intellectual tone is needed |
| Heading Font | Body Font | Character |
|---|---|---|
| Permanent Marker (400) | PT Sans (400) | Raw, hand-lettered impact with readable Eastern European body |
| Caveat (700) | Roboto Condensed (400) | Expressive, personal headlines with clean condensed body |
| Oswald (700) | Source Serif 4 (400) | Formal poster strength with intellectual, literary body text |
| Teko (600) | PT Sans (400) | Angular, stencil-like headlines with approachable body |
/* Import fonts */
@import url('https://fonts.googleapis.com/css2?family=Permanent+Marker&family=Caveat:wght@400;700&family=Oswald:wght@500;700&family=PT+Sans:wght@400;700&family=Source+Serif+4:wght@400;600&display=swap');
/* Headlines -- hand-drawn, expressive, integrated with composition */
h1, h2, h3 {
font-family: 'Permanent Marker', 'Caveat', cursive;
letter-spacing: 0.02em;
color: var(--pps-accent);
line-height: 1.1;
}
/* Display / Hero text -- maximum poster impact with hand-rendered feel */
.pps-display {
font-family: 'Permanent Marker', cursive;
font-size: clamp(3rem, 10vw, 8rem);
line-height: 0.95;
color: var(--pps-bone);
text-shadow: 3px 3px 0 var(--pps-black);
}
/* Alternative formal headline -- Eastern European poster style */
.pps-headline-formal {
font-family: 'Oswald', 'Teko', sans-serif;
font-weight: 700;
font-size: clamp(2rem, 6vw, 5rem);
text-transform: uppercase;
letter-spacing: 0.08em;
line-height: 1.0;
color: var(--pps-yellow);
}
/* Body text */
body {
font-family: 'PT Sans', 'Source Serif 4', sans-serif;
font-weight: 400;
font-size: 1rem;
line-height: 1.7;
color: var(--pps-text-primary);
}
/* Credit / attribution text (small, understated) */
.pps-credit {
font-family: 'PT Sans', sans-serif;
font-weight: 400;
font-size: 0.75rem;
letter-spacing: 0.12em;
text-transform: uppercase;
color: var(--pps-ash);
}
Polish Poster School layout follows the logic of an expressive, single-image poster – one dominant symbolic form commands the space, surrounded by charged negative space, with text emerging from or dissolving into the image.
clamp() – they should feel monumental on desktop, still bold on mobile/* Aged, worn poster ground with noise and staining */
.pps-poster-bg {
background-color: var(--pps-charcoal);
background-image:
radial-gradient(
ellipse at 30% 20%,
rgba(200, 180, 150, 0.06) 0%,
transparent 50%
),
radial-gradient(
ellipse at 70% 80%,
rgba(92, 26, 26, 0.05) 0%,
transparent 40%
),
linear-gradient(
to bottom,
rgba(0, 0, 0, 0.08) 0%,
transparent 15%,
transparent 85%,
rgba(0, 0, 0, 0.1) 100%
);
position: relative;
}
/* Grain/noise overlay for print texture */
.pps-poster-bg::after {
content: '';
position: absolute;
inset: 0;
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.04'/%3E%3C/svg%3E");
pointer-events: none;
mix-blend-mode: multiply;
}
.pps-poster {
min-height: 100vh;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
background: var(--pps-bg-primary);
color: var(--pps-text-primary);
text-align: center;
padding: 4rem 2rem;
position: relative;
overflow: hidden;
}
.pps-poster__symbol {
max-width: 50vw;
max-height: 55vh;
object-fit: contain;
position: relative;
z-index: 2;
filter: contrast(1.1) saturate(0.9);
/* Slightly desaturated, high-contrast for poster print feel */
}
.pps-poster__title {
font-family: 'Permanent Marker', cursive;
font-size: clamp(3rem, 10vw, 8rem);
color: var(--pps-bone);
position: relative;
z-index: 2;
text-shadow:
2px 2px 0 var(--pps-black),
4px 4px 8px rgba(0, 0, 0, 0.4);
line-height: 0.95;
}
.pps-poster__credit {
font-family: 'PT Sans', sans-serif;
font-size: 0.8rem;
letter-spacing: 0.15em;
text-transform: uppercase;
color: var(--pps-ash);
position: relative;
z-index: 2;
margin-top: 2rem;
}
/* Each section is a distinct poster mood */
.pps-section {
padding: 6rem 2rem;
text-align: center;
display: flex;
flex-direction: column;
align-items: center;
gap: 2rem;
position: relative;
}
.pps-section--dark {
background: var(--pps-black);
color: var(--pps-bone);
}
.pps-section--bone {
background: var(--pps-bone);
color: var(--pps-charcoal);
}
.pps-section--red {
background: var(--pps-crimson);
color: var(--pps-bone);
}
.pps-section--blue {
background: var(--pps-blue);
color: var(--pps-bone);
}
.pps-section--gray {
background: var(--pps-ash);
color: var(--pps-bone);
}
/* Headings adapt to section mood */
.pps-section--dark h2 { color: var(--pps-red); }
.pps-section--bone h2 { color: var(--pps-crimson); }
.pps-section--red h2 { color: var(--pps-yellow); }
.pps-section--blue h2 { color: var(--pps-bone); }
.pps-section--gray h2 { color: var(--pps-yellow); }
/* Organic, rough divider -- not a clean line */
.pps-divider {
height: 6px;
background: var(--pps-red);
width: 100%;
position: relative;
clip-path: polygon(
0% 20%, 3% 80%, 7% 10%, 12% 70%, 18% 30%, 23% 90%,
28% 15%, 35% 85%, 40% 25%, 47% 75%, 52% 20%, 58% 80%,
63% 10%, 70% 70%, 75% 30%, 80% 85%, 85% 15%, 90% 75%,
95% 30%, 100% 60%, 100% 100%, 0% 100%
);
}
/* Thicker, more dramatic variant */
.pps-divider--heavy {
height: 12px;
background: var(--pps-yellow);
}
/* Icons should feel hand-rendered, not polished */
.pps-symbol {
width: 120px;
height: 120px;
display: flex;
align-items: center;
justify-content: center;
position: relative;
}
.pps-symbol svg {
fill: var(--pps-red);
width: 100%;
height: 100%;
filter: url(#rough-edges); /* Apply SVG filter for imperfect edges */
}
/* Symbol on a rough background block */
.pps-symbol-block {
width: 160px;
height: 160px;
background: var(--pps-charcoal);
display: flex;
align-items: center;
justify-content: center;
position: relative;
/* Slightly irregular shape suggesting torn paper or rough cut */
clip-path: polygon(
2% 0%, 98% 1%, 100% 3%, 99% 97%, 97% 100%, 3% 99%, 0% 97%, 1% 2%
);
}
.pps-symbol-block svg {
fill: var(--pps-yellow);
width: 55%;
height: 55%;
}
.pps-card {
background: var(--pps-charcoal);
color: var(--pps-bone);
padding: 2.5rem 2rem;
position: relative;
text-align: left;
border-left: 4px solid var(--pps-red);
max-width: 480px;
}
/* Rough top-edge accent */
.pps-card::before {
content: '';
position: absolute;
top: 0;
left: 0;
right: 0;
height: 3px;
background: var(--pps-yellow);
clip-path: polygon(
0% 0%, 5% 100%, 10% 0%, 15% 100%, 20% 0%, 25% 100%,
30% 0%, 35% 100%, 40% 0%, 45% 100%, 50% 0%, 55% 100%,
60% 0%, 65% 100%, 70% 0%, 75% 100%, 80% 0%, 85% 100%,
90% 0%, 95% 100%, 100% 0%
);
}
.pps-card__title {
font-family: 'Permanent Marker', cursive;
font-size: 1.5rem;
color: var(--pps-yellow);
margin-bottom: 0.75rem;
}
.pps-card__text {
font-family: 'PT Sans', sans-serif;
font-size: 0.95rem;
line-height: 1.7;
color: var(--pps-bone);
opacity: 0.85;
}
.pps-button {
display: inline-block;
background: var(--pps-red);
color: var(--pps-bone);
border: none;
padding: 14px 40px;
font-family: 'Oswald', sans-serif;
font-weight: 700;
font-size: 1.1rem;
letter-spacing: 0.1em;
text-transform: uppercase;
cursor: pointer;
text-decoration: none;
position: relative;
transition: background 0.2s ease, transform 0.1s ease;
/* Slightly irregular shape -- not a perfect rectangle */
clip-path: polygon(
1% 0%, 100% 2%, 99% 100%, 0% 98%
);
}
.pps-button:hover {
background: var(--pps-crimson);
transform: translate(1px, 1px);
}
/* Outline variant for light backgrounds */
.pps-button--outline {
background: transparent;
color: var(--pps-red);
border: 3px solid var(--pps-red);
clip-path: none;
}
.pps-button--outline:hover {
background: var(--pps-red);
color: var(--pps-bone);
}
/* Decorative paint splatter using radial gradients */
.pps-splatter {
position: absolute;
width: 200px;
height: 200px;
pointer-events: none;
opacity: 0.15;
background:
radial-gradient(circle at 30% 40%, var(--pps-red) 0%, var(--pps-red) 8%, transparent 9%),
radial-gradient(circle at 70% 25%, var(--pps-red) 0%, var(--pps-red) 5%, transparent 6%),
radial-gradient(circle at 50% 60%, var(--pps-red) 0%, var(--pps-red) 12%, transparent 13%),
radial-gradient(circle at 20% 75%, var(--pps-red) 0%, var(--pps-red) 4%, transparent 5%),
radial-gradient(circle at 80% 70%, var(--pps-red) 0%, var(--pps-red) 6%, transparent 7%),
radial-gradient(circle at 45% 30%, var(--pps-red) 0%, var(--pps-red) 3%, transparent 4%);
}
.pps-nav {
display: flex;
align-items: center;
justify-content: space-between;
padding: 20px 40px;
background: var(--pps-black);
border-bottom: 2px solid var(--pps-ash);
}
.pps-nav__brand {
font-family: 'Permanent Marker', cursive;
font-size: 1.3rem;
color: var(--pps-red);
text-decoration: none;
}
.pps-nav__links {
display: flex;
gap: 28px;
list-style: none;
margin: 0;
padding: 0;
}
.pps-nav__links a {
font-family: 'PT Sans', sans-serif;
font-weight: 400;
font-size: 0.85rem;
letter-spacing: 0.06em;
text-transform: uppercase;
color: var(--pps-ash);
text-decoration: none;
transition: color 0.15s ease;
}
.pps-nav__links a:hover {
color: var(--pps-bone);
}
.pps-nav__links a.active {
color: var(--pps-yellow);
}
Physical Polish Poster School materials and their web equivalents:
| Physical Material | Web Equivalent |
|---|---|
| Rough poster stock | Warm neutral backgrounds (#e8e0d0, #d5c9b1) with subtle noise/grain overlay |
| Lithographic ink on paper | High-contrast flat CSS color fills with slight texture variation |
| Brush-applied gouache/tempera | Uneven background-color with painted-edge clip-path shapes |
| Hand-drawn ink lines | Irregular SVG paths and hand-drawn-style borders |
| Woodcut / linocut prints | Bold silhouette SVGs with rough edges, single-color fills |
| Aged, stained paper | Radial gradient stains and tonal variation overlaid on neutral grounds |
| Screen-printed layers | Slightly offset, overlapping CSS shapes suggesting misregistration |
| Torn paper collage | Irregular clip-path edges on content blocks and images |
| Pencil and charcoal marks | Thin, textured lines using SVG stroke-dasharray and grain |
| Aesthetic | Relationship to Polish Poster School |
|---|---|
| Heroic Realism | Predecessor in the Soviet bloc; Polish Poster School rejected its literal, propagandistic realism in favor of symbolic, personal expression |
| Plakatstil | German poster tradition; shares commitment to bold simplification and single-subject dominance, but Plakatstil is clean and commercial where Polish Poster School is expressionistic and surreal |
| Expressionism | Major artistic influence; the painterly gesture, emotional color, and distorted forms are directly inherited from German and Polish expressionist traditions |
| Surrealism | Core stylistic pillar; dream logic, impossible imagery, and psychological ambiguity are central to the Polish Poster School visual language |
| Constructivism | Contemporary parallel in Soviet graphic design; shares geometric reduction but Polish Poster School rejects Constructivism’s rationality for emotional subjectivity |
| Psychedelic Art | Parallel 1960s movement; shares expressive color, surreal imagery, and hand-drawn typography, but emerges from different cultural and political contexts |
| DIY Punk | Shares the raw, hand-made aesthetic, anti-commercial ethos, and rough printing quality; punk inherited some of the same rejection of polish and convention |
| Ostalgie | Nostalgic aesthetic drawing on Eastern Bloc visual culture; Polish Poster School is a primary source for Ostalgie’s graphic references |
| New Wave | 1980s graphic design movement; shares experimental typography and rejection of Swiss Style rationalism, though New Wave is postmodern where Polish Poster School is existential |
| Mission School | San Francisco art movement sharing the hand-rendered, folk-influenced, rough-edged visual character |
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Polish Poster School Page</title>
<link href="https://fonts.googleapis.com/css2?family=Permanent+Marker&family=Caveat:wght@400;700&family=Oswald:wght@500;700&family=PT+Sans:wght@400;700&display=swap" rel="stylesheet">
<style>
:root {
--pps-red: #cc2936;
--pps-crimson: #8b1a1a;
--pps-yellow: #e8b630;
--pps-ochre: #c4913d;
--pps-blue: #1b4b8a;
--pps-charcoal: #2b2b2b;
--pps-black: #1a1a1a;
--pps-ash: #6b6b6b;
--pps-bone: #e8e0d0;
--pps-parchment: #d5c9b1;
--pps-ink-violet: #3d2b56;
}
* { margin: 0; padding: 0; box-sizing: border-box; }
body {
background: var(--pps-charcoal);
color: var(--pps-bone);
font-family: 'PT Sans', sans-serif;
font-weight: 400;
line-height: 1.7;
}
h1, h2, h3 {
font-family: 'Permanent Marker', cursive;
line-height: 1.1;
}
/* Navigation */
nav {
display: flex;
align-items: center;
justify-content: space-between;
padding: 20px 40px;
background: var(--pps-black);
border-bottom: 2px solid var(--pps-ash);
}
nav a.brand {
font-family: 'Permanent Marker', cursive;
font-size: 1.3rem;
color: var(--pps-red);
text-decoration: none;
}
nav ul {
display: flex;
gap: 28px;
list-style: none;
}
nav ul a {
font-family: 'PT Sans', sans-serif;
font-size: 0.85rem;
letter-spacing: 0.06em;
text-transform: uppercase;
color: var(--pps-ash);
text-decoration: none;
transition: color 0.15s ease;
}
nav ul a:hover { color: var(--pps-bone); }
/* Hero -- full-viewport poster with symbolic image */
.hero {
min-height: 100vh;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
background: var(--pps-charcoal);
text-align: center;
padding: 4rem 2rem;
gap: 2rem;
position: relative;
}
/* Subtle aged stain on poster ground */
.hero::before {
content: '';
position: absolute;
inset: 0;
background:
radial-gradient(ellipse at 25% 30%, rgba(200, 180, 150, 0.06) 0%, transparent 50%),
radial-gradient(ellipse at 75% 70%, rgba(92, 26, 26, 0.04) 0%, transparent 40%);
pointer-events: none;
}
.hero h1 {
font-size: clamp(3rem, 10vw, 8rem);
color: var(--pps-bone);
text-shadow:
2px 2px 0 var(--pps-black),
4px 4px 8px rgba(0, 0, 0, 0.4);
position: relative;
z-index: 2;
}
/* Symbolic element -- skull-like form as CSS shape */
.hero .symbol {
width: clamp(100px, 25vw, 220px);
height: clamp(120px, 30vw, 260px);
background: var(--pps-red);
border-radius: 50% 50% 45% 45% / 55% 55% 40% 40%;
position: relative;
z-index: 2;
}
/* Eye sockets */
.hero .symbol::before,
.hero .symbol::after {
content: '';
position: absolute;
width: 28%;
height: 22%;
background: var(--pps-charcoal);
border-radius: 50%;
top: 35%;
}
.hero .symbol::before { left: 18%; }
.hero .symbol::after { right: 18%; }
.hero .subtitle {
font-family: 'Caveat', cursive;
font-size: clamp(1.2rem, 3vw, 2rem);
color: var(--pps-yellow);
position: relative;
z-index: 2;
}
/* Rough brushstroke divider */
.rough-divider {
height: 6px;
background: var(--pps-red);
width: 100%;
clip-path: polygon(
0% 20%, 3% 80%, 7% 10%, 12% 70%, 18% 30%, 23% 90%,
28% 15%, 35% 85%, 40% 25%, 47% 75%, 52% 20%, 58% 80%,
63% 10%, 70% 70%, 75% 30%, 80% 85%, 85% 15%, 90% 75%,
95% 30%, 100% 60%, 100% 100%, 0% 100%
);
}
/* Content section on light ground */
.poster-section {
padding: 6rem 2rem;
text-align: center;
display: flex;
flex-direction: column;
align-items: center;
gap: 2rem;
}
.poster-section--bone {
background: var(--pps-bone);
color: var(--pps-charcoal);
}
.poster-section--bone h2 {
color: var(--pps-crimson);
font-size: clamp(2rem, 6vw, 5rem);
}
.poster-section--dark {
background: var(--pps-black);
color: var(--pps-bone);
}
.poster-section--dark h2 {
color: var(--pps-yellow);
font-size: clamp(2rem, 6vw, 5rem);
}
.poster-section p {
font-size: 1.1rem;
max-width: 50ch;
opacity: 0.85;
}
/* Feature panels -- stacked poster sequence */
.features {
display: flex;
flex-direction: column;
}
.feature {
padding: 5rem 2rem;
display: flex;
flex-direction: column;
align-items: center;
gap: 1.5rem;
text-align: left;
max-width: 600px;
margin: 0 auto;
width: 100%;
}
.feature:nth-child(1) { background: var(--pps-charcoal); color: var(--pps-bone); }
.feature:nth-child(2) { background: var(--pps-crimson); color: var(--pps-bone); }
.feature:nth-child(3) { background: var(--pps-ink-violet); color: var(--pps-bone); }
.feature h3 {
font-size: 1.5rem;
color: var(--pps-yellow);
align-self: flex-start;
}
.feature p {
font-size: 0.95rem;
max-width: 45ch;
opacity: 0.85;
}
/* CTA */
.cta {
background: var(--pps-bone);
color: var(--pps-charcoal);
text-align: center;
padding: 6rem 2rem;
}
.cta h2 {
font-size: clamp(2.5rem, 7vw, 6rem);
color: var(--pps-red);
margin-bottom: 2rem;
}
.btn {
display: inline-block;
background: var(--pps-red);
color: var(--pps-bone);
border: none;
padding: 14px 40px;
font-family: 'Oswald', sans-serif;
font-weight: 700;
font-size: 1.1rem;
letter-spacing: 0.1em;
text-transform: uppercase;
text-decoration: none;
cursor: pointer;
transition: background 0.2s ease, transform 0.1s ease;
clip-path: polygon(1% 0%, 100% 2%, 99% 100%, 0% 98%);
}
.btn:hover {
background: var(--pps-crimson);
transform: translate(1px, 1px);
}
/* Footer */
footer {
background: var(--pps-black);
color: var(--pps-ash);
text-align: center;
padding: 28px;
font-size: 0.75rem;
letter-spacing: 0.08em;
text-transform: uppercase;
border-top: 2px solid var(--pps-ash);
}
@media (max-width: 768px) {
nav { padding: 16px 20px; }
nav ul { gap: 18px; }
.hero { padding: 3rem 1.5rem; }
.poster-section { padding: 4rem 1.5rem; }
.feature { padding: 3rem 1.5rem; }
.cta { padding: 4rem 1.5rem; }
}
</style>
</head>
<body>
<nav>
<a href="#" class="brand">Plakat</a>
<ul>
<li><a href="#">Work</a></li>
<li><a href="#">About</a></li>
<li><a href="#">Contact</a></li>
</ul>
</nav>
<section class="hero">
<h1>Polska Szkoła</h1>
<div class="symbol"></div>
<div class="subtitle">The Art of Subversion</div>
</section>
<div class="rough-divider"></div>
<section class="poster-section poster-section--bone">
<h2>Symbol Over Surface</h2>
<p>One image. One idea. The poster speaks through metaphor, not description. The viewer must meet the artist halfway.</p>
</section>
<div class="features">
<div class="feature">
<h3>Surreal Symbolism</h3>
<p>A skull represents war. A cage represents censorship. Literal depiction is abandoned in favor of concise visual metaphor that rewards interpretation.</p>
</div>
<div class="feature">
<h3>Expressionistic Color</h3>
<p>Vivid folk-art hues -- red, yellow, blue -- erupt from gray, oppressive grounds. Color is emotional, never decorative.</p>
</div>
<div class="feature">
<h3>The Hand of the Artist</h3>
<p>Every stroke is visible. Every edge is imperfect. The human touch is the aesthetic, not a flaw to be corrected.</p>
</div>
</div>
<div class="rough-divider" style="background: var(--pps-yellow);"></div>
<section class="cta">
<h2>See the Work</h2>
<a href="#" class="btn">Enter the Gallery</a>
</section>
<footer>
<p>Designed in the tradition of the Polish Poster School. Symbolic. Expressive. Uncompromising.</p>
</footer>
</body>
</html>