Tropical Maximalism is a bold, exuberant design aesthetic that fuses the lush visual language of equatorial nature with the “more is more” philosophy of maximalist design. It draws from dense jungle canopies, oversized botanical prints, vibrant tropical flowers, and the overwhelming sensory richness of rainforest ecosystems. Where minimalism strips away, Tropical Maximalism piles on – layering monstera leaves over banana fronds over bird-of-paradise blooms, all rendered in vivid, saturated color. The result is a visual environment that feels alive, humid, and gloriously excessive.
The aesthetic emerged at the intersection of several cultural currents: the biophilic design movement that brought plants into every interior, the maximalist backlash against sterile minimalism, and a renewed fascination with tropical destinations as aspirational lifestyle signifiers. It owes debts to mid-century tiki culture, the botanical illustration traditions of 18th- and 19th-century naturalists, the bold textile prints of brands like Marimekko and Lilly Pulitzer, and the contemporary “tropicalcore” trend that blends vacation vibes with everyday interiors. In digital design, it translates into dense, layered compositions where botanical motifs serve as both ornament and structure – leaf shapes become containers, vine tendrils become dividers, and the entire viewport feels like peering through a greenhouse window.
The palette is anchored by deep, saturated greens (emerald, jungle, palm) paired with hot pinks, coral, mango orange, and splashes of turquoise that evoke tropical waters. Gold and warm brass accents provide a touch of glamour. Unlike restrained botanical design, which might feature a single pressed fern on a white background, Tropical Maximalism demands density – overlapping foliage, competing patterns, and backgrounds that are never left bare. Every surface should feel like it could sprout a new leaf. The mood is simultaneously luxurious and wild, curated and chaotic, polished and primal. It is the design equivalent of stepping off a plane into a Bali resort lobby: overwhelming, intoxicating, and impossible to ignore.
The Tropical Maximalism palette is built on the contrast between deep, saturated greens and vivid warm accents. Imagine the color field of a tropical rainforest: layers of green at every value, punctuated by the explosive color of flowering plants, exotic birds, and ripe fruit. Gold and brass metallics add luxury, while deep teal and turquoise reference tropical waters.
| Swatch | Hex | Role/Usage |
|---|---|---|
| Jungle Green | #1A5C2A |
Primary background, deep foliage layers |
| Monstera Leaf | #2D8B4E |
Secondary foliage, card backgrounds |
| Palm Frond | #5CAD3E |
Bright foliage accents, hover states |
| Lime Canopy | #A8D54B |
Highlight green, fresh growth accents |
| Hot Hibiscus | #E8184A |
Primary accent, call-to-action, flower motifs |
| Fuchsia Bloom | #D4327D |
Secondary pink accent, decorative elements |
| Coral Plumeria | #FF6F61 |
Warm accent, soft highlight, button hover |
| Mango Orange | #FF9A2E |
Tertiary warm accent, badges, alerts |
| Tropical Teal | #00877A |
Cool accent, links, secondary interactive |
| Turquoise Lagoon | #40C9C2 |
Water reference, info panels, hover accents |
| Bird-of-Paradise Gold | #D4A017 |
Metallic accent, borders, luxury details |
| Sunset Papaya | #FFBE5C |
Warm highlight, soft gold alternative |
| Bark Brown | #4A2C1A |
Text on light backgrounds, wood textures |
| Cream Coconut | #FFF8E8 |
Light text on dark backgrounds, card surfaces |
| Deep Canopy | #0B3D1A |
Darkest background, deep shadow layers |
:root {
/* Greens -- the foundation */
--tm-jungle: #1A5C2A;
--tm-monstera: #2D8B4E;
--tm-palm: #5CAD3E;
--tm-lime: #A8D54B;
--tm-deep-canopy: #0B3D1A;
/* Warm Accents -- the flowers */
--tm-hibiscus: #E8184A;
--tm-fuchsia: #D4327D;
--tm-coral: #FF6F61;
--tm-mango: #FF9A2E;
--tm-papaya: #FFBE5C;
/* Cool Accents -- the water */
--tm-teal: #00877A;
--tm-turquoise: #40C9C2;
/* Metallics and Neutrals */
--tm-gold: #D4A017;
--tm-bark: #4A2C1A;
--tm-coconut: #FFF8E8;
/* Functional aliases */
--tm-bg-primary: var(--tm-deep-canopy);
--tm-bg-secondary: var(--tm-jungle);
--tm-bg-card: var(--tm-monstera);
--tm-text-primary: var(--tm-coconut);
--tm-text-dark: var(--tm-bark);
--tm-accent-primary: var(--tm-hibiscus);
--tm-accent-secondary: var(--tm-fuchsia);
--tm-border-accent: var(--tm-gold);
--tm-link: var(--tm-turquoise);
--tm-link-hover: var(--tm-lime);
}
Tropical Maximalism typography balances bold, expressive display faces with readable body text. Headings should feel lush and dramatic – thick, high-contrast serifs or bold display fonts that command attention like a flowering canopy over the understory of body text. Script and decorative faces appear as accents, evoking hand-painted resort signage and vintage botanical labels. Body text uses clean, warm typefaces that remain legible against busy botanical backgrounds.
| Font | Weight(s) | Usage | Link |
|---|---|---|---|
| Playfair Display | 700, 800, 900 | Hero headings, dramatic titles | Playfair Display |
| Abril Fatface | 400 | Oversized display text, feature titles | Abril Fatface |
| Cormorant Garamond | 400, 500, 600, 700 | Subheadings, elegant secondary text | Cormorant Garamond |
| Pacifico | 400 | Tropical script accent, resort-style labels | Pacifico |
| Josefin Sans | 300, 400, 600, 700 | Body text, UI elements, navigation | Josefin Sans |
| Nunito | 400, 600, 700 | Alternate body text, rounded and warm | Nunito |
| Lora | 400, 500, 600, 700 | Long-form body text, editorial content | Lora |
| Heading | Body | Vibe |
|---|---|---|
| Playfair Display 800 | Josefin Sans 400 | Bold luxury resort editorial |
| Abril Fatface 400 | Nunito 400 | Dramatic tropical statement with soft readability |
| Cormorant Garamond 600 | Lora 400 | Elegant botanical journal feel |
| Pacifico 400 | Josefin Sans 300 | Playful beachside casual |
@import url('https://fonts.googleapis.com/css2?family=Playfair+Display:wght@700;800;900&family=Abril+Fatface&family=Cormorant+Garamond:wght@500;600&family=Pacifico&family=Josefin+Sans:wght@300;400;600&display=swap');
body {
font-family: 'Josefin Sans', 'Nunito', sans-serif;
font-size: 1.05rem;
line-height: 1.8;
color: var(--tm-coconut);
-webkit-font-smoothing: antialiased;
}
h1, h2, h3 {
font-family: 'Playfair Display', 'Georgia', serif;
font-weight: 800;
letter-spacing: 0.01em;
color: var(--tm-coconut);
text-shadow: 2px 2px 6px rgba(11, 61, 26, 0.6);
}
h1 {
font-size: clamp(3rem, 8vw, 6rem);
line-height: 1.0;
}
h2 {
font-size: clamp(1.8rem, 4vw, 3rem);
}
.tropical-script {
font-family: 'Pacifico', cursive;
font-size: 1.8rem;
color: var(--tm-papaya);
text-shadow: 1px 1px 3px rgba(11, 61, 26, 0.4);
}
.tropical-label {
font-family: 'Josefin Sans', sans-serif;
font-size: 0.75rem;
font-weight: 600;
text-transform: uppercase;
letter-spacing: 0.25em;
color: var(--tm-lime);
}
.tropical-card {
background: linear-gradient(
160deg,
rgba(45, 139, 78, 0.9) 0%,
rgba(26, 92, 42, 0.95) 100%
);
border: 2px solid var(--tm-gold);
border-radius: 16px;
padding: 2rem 2rem 2rem 2.5rem;
position: relative;
overflow: hidden;
box-shadow:
0 8px 32px rgba(11, 61, 26, 0.4),
0 2px 8px rgba(0, 0, 0, 0.2);
transition: transform 0.3s ease, box-shadow 0.3s ease;
}
/* Leaf vein texture overlay */
.tropical-card::before {
content: '';
position: absolute;
inset: 0;
background:
repeating-linear-gradient(
110deg,
transparent,
transparent 30px,
rgba(168, 213, 75, 0.06) 30px,
rgba(168, 213, 75, 0.06) 31px
),
repeating-linear-gradient(
70deg,
transparent,
transparent 45px,
rgba(255, 248, 232, 0.03) 45px,
rgba(255, 248, 232, 0.03) 46px
);
pointer-events: none;
}
/* Gold accent bar on left edge */
.tropical-card::after {
content: '';
position: absolute;
top: 16px;
bottom: 16px;
left: 0;
width: 4px;
background: linear-gradient(
180deg,
var(--tm-gold),
var(--tm-mango),
var(--tm-gold)
);
border-radius: 0 4px 4px 0;
}
.tropical-card:hover {
transform: translateY(-4px);
box-shadow:
0 16px 48px rgba(11, 61, 26, 0.5),
0 4px 12px rgba(0, 0, 0, 0.25);
}
.tropical-card h3 {
color: var(--tm-papaya);
margin-bottom: 0.75rem;
}
.tropical-card p {
color: var(--tm-coconut);
line-height: 1.7;
}
.tropical-button {
display: inline-flex;
align-items: center;
gap: 8px;
background: linear-gradient(
135deg,
var(--tm-hibiscus) 0%,
var(--tm-fuchsia) 100%
);
color: var(--tm-coconut);
border: 2px solid transparent;
border-radius: 30px;
padding: 14px 36px;
font-family: 'Josefin Sans', sans-serif;
font-size: 1rem;
font-weight: 600;
letter-spacing: 0.05em;
text-transform: uppercase;
cursor: pointer;
text-decoration: none;
position: relative;
overflow: hidden;
transition: all 0.35s ease;
box-shadow:
0 4px 16px rgba(232, 24, 74, 0.35),
inset 0 1px 0 rgba(255, 255, 255, 0.15);
}
.tropical-button::before {
content: '';
position: absolute;
inset: 0;
background: linear-gradient(
135deg,
var(--tm-mango) 0%,
var(--tm-coral) 100%
);
opacity: 0;
transition: opacity 0.35s ease;
}
.tropical-button:hover {
transform: translateY(-2px) scale(1.03);
box-shadow:
0 8px 24px rgba(232, 24, 74, 0.45),
inset 0 1px 0 rgba(255, 255, 255, 0.2);
border-color: var(--tm-gold);
}
.tropical-button:hover::before {
opacity: 1;
}
.tropical-button span {
position: relative;
z-index: 1;
}
/* Secondary / outline variant */
.tropical-button--outline {
background: transparent;
border: 2px solid var(--tm-turquoise);
color: var(--tm-turquoise);
box-shadow: none;
}
.tropical-button--outline:hover {
background: var(--tm-turquoise);
color: var(--tm-deep-canopy);
border-color: var(--tm-turquoise);
box-shadow: 0 4px 16px rgba(64, 201, 194, 0.35);
}
.tropical-nav {
background: linear-gradient(
180deg,
rgba(11, 61, 26, 0.97) 0%,
rgba(26, 92, 42, 0.95) 100%
);
backdrop-filter: blur(8px);
border-bottom: 2px solid var(--tm-gold);
padding: 0 2rem;
display: flex;
align-items: center;
justify-content: space-between;
position: sticky;
top: 0;
z-index: 100;
box-shadow: 0 4px 20px rgba(11, 61, 26, 0.5);
}
.tropical-nav .logo {
font-family: 'Pacifico', cursive;
font-size: 1.6rem;
color: var(--tm-papaya);
text-decoration: none;
padding: 1rem 0;
text-shadow: 1px 1px 3px rgba(0, 0, 0, 0.3);
}
.tropical-nav ul {
list-style: none;
display: flex;
gap: 0;
margin: 0;
padding: 0;
}
.tropical-nav a {
font-family: 'Josefin Sans', sans-serif;
font-size: 0.85rem;
font-weight: 600;
text-transform: uppercase;
letter-spacing: 0.12em;
color: var(--tm-coconut);
text-decoration: none;
padding: 1.2rem 1.4rem;
display: block;
position: relative;
transition: color 0.25s ease;
}
.tropical-nav a::after {
content: '';
position: absolute;
bottom: 0;
left: 50%;
transform: translateX(-50%);
width: 0;
height: 3px;
background: linear-gradient(
90deg,
var(--tm-hibiscus),
var(--tm-mango)
);
border-radius: 3px 3px 0 0;
transition: width 0.3s ease;
}
.tropical-nav a:hover {
color: var(--tm-lime);
}
.tropical-nav a:hover::after {
width: 80%;
}
.tropical-hero {
position: relative;
min-height: 100vh;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
text-align: center;
padding: 6rem 2rem;
overflow: hidden;
background:
/* Dappled light effect */
radial-gradient(
ellipse 300px 200px at 20% 30%,
rgba(168, 213, 75, 0.15) 0%,
transparent 70%
),
radial-gradient(
ellipse 250px 350px at 80% 60%,
rgba(212, 50, 125, 0.1) 0%,
transparent 70%
),
radial-gradient(
ellipse 200px 200px at 50% 80%,
rgba(64, 201, 194, 0.12) 0%,
transparent 70%
),
/* Deep jungle gradient */
linear-gradient(
175deg,
var(--tm-deep-canopy) 0%,
var(--tm-jungle) 40%,
#153D22 70%,
var(--tm-deep-canopy) 100%
);
}
/* Foreground leaf silhouette overlay */
.tropical-hero::before {
content: '';
position: absolute;
inset: 0;
background:
/* Simulated large leaf shapes via radial gradients */
radial-gradient(
ellipse 400px 120px at -5% 20%,
rgba(45, 139, 78, 0.5) 0%,
transparent 70%
),
radial-gradient(
ellipse 120px 400px at 95% 70%,
rgba(45, 139, 78, 0.4) 0%,
transparent 70%
),
radial-gradient(
ellipse 300px 100px at 10% 90%,
rgba(26, 92, 42, 0.6) 0%,
transparent 70%
);
pointer-events: none;
}
.tropical-hero h1 {
font-family: 'Playfair Display', serif;
font-weight: 900;
font-size: clamp(3.5rem, 10vw, 8rem);
line-height: 0.95;
color: var(--tm-coconut);
position: relative;
z-index: 2;
text-shadow:
0 2px 20px rgba(11, 61, 26, 0.7),
0 0 60px rgba(168, 213, 75, 0.15);
}
.tropical-hero .tagline {
font-family: 'Pacifico', cursive;
font-size: clamp(1.2rem, 3vw, 2rem);
color: var(--tm-papaya);
margin-top: 1.5rem;
position: relative;
z-index: 2;
}
.tropical-hero .subtitle {
font-family: 'Josefin Sans', sans-serif;
font-size: 0.8rem;
font-weight: 600;
text-transform: uppercase;
letter-spacing: 0.3em;
color: var(--tm-turquoise);
margin-top: 2rem;
position: relative;
z-index: 2;
}
/* Wave-shaped section divider with leaf-green gradient */
.tropical-divider {
position: relative;
height: 80px;
overflow: hidden;
background: var(--tm-deep-canopy);
}
.tropical-divider::before {
content: '';
position: absolute;
bottom: 0;
left: -5%;
width: 110%;
height: 100%;
background: var(--tm-jungle);
border-radius: 50% 50% 0 0 / 100% 100% 0 0;
}
/* Flat gradient strip alternative */
.tropical-strip {
height: 6px;
border: none;
margin: 0;
background: linear-gradient(
90deg,
var(--tm-deep-canopy),
var(--tm-monstera),
var(--tm-lime),
var(--tm-mango),
var(--tm-hibiscus),
var(--tm-fuchsia),
var(--tm-turquoise),
var(--tm-monstera),
var(--tm-deep-canopy)
);
}
/* Layered leaf-vein pattern using CSS gradients */
.tropical-foliage-bg {
background-color: var(--tm-deep-canopy);
background-image:
/* Diagonal leaf veins */
repeating-linear-gradient(
60deg,
transparent,
transparent 40px,
rgba(45, 139, 78, 0.08) 40px,
rgba(45, 139, 78, 0.08) 41px
),
repeating-linear-gradient(
120deg,
transparent,
transparent 40px,
rgba(92, 173, 62, 0.06) 40px,
rgba(92, 173, 62, 0.06) 41px
),
/* Dappled canopy light spots */
radial-gradient(
circle 3px at 25px 25px,
rgba(168, 213, 75, 0.07) 0%,
transparent 100%
),
radial-gradient(
circle 2px at 55px 40px,
rgba(255, 190, 92, 0.05) 0%,
transparent 100%
),
/* Deep gradient base */
linear-gradient(
180deg,
var(--tm-deep-canopy) 0%,
rgba(26, 92, 42, 0.3) 50%,
var(--tm-deep-canopy) 100%
);
background-size: 60px 60px, 60px 60px, 80px 60px, 80px 60px, 100% 100%;
}
/* Woven rattan / bamboo texture simulation */
.tropical-rattan {
background-color: #8B6D3F;
background-image:
repeating-linear-gradient(
0deg,
transparent,
transparent 8px,
rgba(74, 44, 26, 0.2) 8px,
rgba(74, 44, 26, 0.2) 10px
),
repeating-linear-gradient(
90deg,
transparent,
transparent 8px,
rgba(74, 44, 26, 0.15) 8px,
rgba(74, 44, 26, 0.15) 10px
);
border: 3px solid var(--tm-bark);
border-radius: 12px;
padding: 2rem;
color: var(--tm-coconut);
box-shadow:
inset 0 2px 4px rgba(0, 0, 0, 0.15),
0 4px 12px rgba(74, 44, 26, 0.3);
}
/* Asymmetric botanical grid layout */
.tropical-grid {
display: grid;
grid-template-columns: repeat(12, 1fr);
grid-auto-rows: minmax(100px, auto);
gap: 1.5rem;
padding: 2rem;
}
.tropical-grid-item:nth-child(1) {
grid-column: 1 / 8;
grid-row: 1 / 3;
}
.tropical-grid-item:nth-child(2) {
grid-column: 8 / 13;
grid-row: 1 / 2;
}
.tropical-grid-item:nth-child(3) {
grid-column: 8 / 13;
grid-row: 2 / 3;
}
.tropical-grid-item:nth-child(4) {
grid-column: 1 / 5;
grid-row: 3 / 4;
}
.tropical-grid-item:nth-child(5) {
grid-column: 5 / 13;
grid-row: 3 / 4;
}
.tropical-grid-item {
border-radius: 12px;
overflow: hidden;
position: relative;
background: var(--tm-jungle);
border: 2px solid rgba(212, 160, 23, 0.3);
transition: transform 0.3s ease;
}
.tropical-grid-item:hover {
transform: scale(1.02);
z-index: 2;
}
rgba(11, 61, 26, 0.4)) rather than pure black for a natural atmosphere| Aesthetic | Relationship |
|---|---|
| Maximalism | Parent philosophy; Tropical Maximalism applies the “more is more” principle specifically through botanical density and tropical motifs |
| Cottagecore | Both celebrate nature and abundance, but Cottagecore is temperate, muted, and pastoral while Tropical Maximalism is equatorial, vivid, and wild |
| Art Nouveau | Shares organic, nature-derived forms and flowing botanical lines, but Art Nouveau is more restrained and uses a muted, elegant palette |
| Cluttercore | Fellow maximalist variant; both fill every surface, but Cluttercore uses collected objects while Tropical Maximalism uses botanical layers |
| Dopamine Design | Overlapping philosophy of vivid, mood-boosting color; Tropical Maximalism channels that energy specifically through a nature-based visual language |
| Frutiger Aero | Both incorporate lush greenery and natural elements into digital design, but Frutiger Aero favors glossy, clean interfaces over maximalist density |
| Coastal Style | Shares tropical location references (ocean, sand, palm trees), but Coastal Style is minimal and breezy where Tropical Maximalism is dense and layered |
| Chinoiserie | Both use exotic botanical and fauna motifs with rich ornamentation; Chinoiserie references East Asian aesthetics while Tropical Maximalism references equatorial jungles |
| Hollywood Regency | Shares the luxury, gold accents, and bold pattern mixing; Hollywood Regency adds tropical plants as glamorous props rather than environmental immersion |
| Afrofuturism | Can overlap in lush botanical imagery and vivid saturated palettes, especially when drawing from African tropical landscapes and cultural motifs |
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Tropical Maximalism</title>
<link href="https://fonts.googleapis.com/css2?family=Playfair+Display:wght@700;800;900&family=Abril+Fatface&family=Pacifico&family=Josefin+Sans:wght@300;400;600;700&display=swap" rel="stylesheet">
<style>
*, *::before, *::after { margin: 0; padding: 0; box-sizing: border-box; }
:root {
--tm-jungle: #1A5C2A;
--tm-monstera: #2D8B4E;
--tm-palm: #5CAD3E;
--tm-lime: #A8D54B;
--tm-deep-canopy: #0B3D1A;
--tm-hibiscus: #E8184A;
--tm-fuchsia: #D4327D;
--tm-coral: #FF6F61;
--tm-mango: #FF9A2E;
--tm-papaya: #FFBE5C;
--tm-teal: #00877A;
--tm-turquoise: #40C9C2;
--tm-gold: #D4A017;
--tm-bark: #4A2C1A;
--tm-coconut: #FFF8E8;
}
body {
font-family: 'Josefin Sans', 'Helvetica Neue', sans-serif;
font-size: 1.05rem;
line-height: 1.8;
color: var(--tm-coconut);
background: var(--tm-deep-canopy);
-webkit-font-smoothing: antialiased;
}
/* Navigation */
.nav {
background: linear-gradient(180deg, rgba(11,61,26,0.97), rgba(26,92,42,0.95));
border-bottom: 2px solid var(--tm-gold);
padding: 0 2rem;
display: flex;
align-items: center;
justify-content: space-between;
position: sticky;
top: 0;
z-index: 100;
box-shadow: 0 4px 20px rgba(11, 61, 26, 0.5);
}
.nav .logo {
font-family: 'Pacifico', cursive;
font-size: 1.5rem;
color: var(--tm-papaya);
text-decoration: none;
padding: 1rem 0;
}
.nav ul { list-style: none; display: flex; }
.nav a {
font-family: 'Josefin Sans', sans-serif;
font-size: 0.8rem;
font-weight: 600;
text-transform: uppercase;
letter-spacing: 0.12em;
color: var(--tm-coconut);
text-decoration: none;
padding: 1.2rem;
display: block;
position: relative;
transition: color 0.25s ease;
}
.nav a::after {
content: '';
position: absolute;
bottom: 0;
left: 50%;
transform: translateX(-50%);
width: 0;
height: 3px;
background: linear-gradient(90deg, var(--tm-hibiscus), var(--tm-mango));
border-radius: 3px 3px 0 0;
transition: width 0.3s ease;
}
.nav a:hover { color: var(--tm-lime); }
.nav a:hover::after { width: 80%; }
/* Hero */
.hero {
position: relative;
min-height: 100vh;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
text-align: center;
padding: 6rem 2rem;
overflow: hidden;
background:
radial-gradient(ellipse 350px 200px at 15% 25%, rgba(168,213,75,0.14), transparent 70%),
radial-gradient(ellipse 250px 350px at 85% 55%, rgba(212,50,125,0.1), transparent 70%),
radial-gradient(ellipse 300px 200px at 50% 85%, rgba(64,201,194,0.1), transparent 70%),
linear-gradient(175deg, var(--tm-deep-canopy), var(--tm-jungle) 40%, #153D22 70%, var(--tm-deep-canopy));
}
.hero::before {
content: '';
position: absolute;
inset: 0;
background:
radial-gradient(ellipse 450px 130px at -5% 15%, rgba(45,139,78,0.5), transparent 70%),
radial-gradient(ellipse 130px 450px at 98% 65%, rgba(45,139,78,0.4), transparent 70%),
radial-gradient(ellipse 350px 100px at 5% 92%, rgba(26,92,42,0.55), transparent 70%);
pointer-events: none;
z-index: 1;
}
.hero h1 {
font-family: 'Playfair Display', serif;
font-weight: 900;
font-size: clamp(3.5rem, 10vw, 8rem);
line-height: 0.95;
position: relative;
z-index: 2;
text-shadow: 0 2px 20px rgba(11,61,26,0.7), 0 0 60px rgba(168,213,75,0.12);
}
.hero .tagline {
font-family: 'Pacifico', cursive;
font-size: clamp(1.2rem, 3vw, 2rem);
color: var(--tm-papaya);
margin-top: 1.5rem;
position: relative;
z-index: 2;
}
.hero .subtitle {
font-family: 'Josefin Sans', sans-serif;
font-size: 0.75rem;
font-weight: 600;
text-transform: uppercase;
letter-spacing: 0.3em;
color: var(--tm-turquoise);
margin-top: 2rem;
position: relative;
z-index: 2;
}
.hero .cta-group {
display: flex;
gap: 1rem;
margin-top: 3rem;
position: relative;
z-index: 2;
flex-wrap: wrap;
justify-content: center;
}
/* Divider */
.divider {
height: 6px;
border: none;
background: linear-gradient(90deg,
var(--tm-deep-canopy), var(--tm-monstera), var(--tm-lime),
var(--tm-mango), var(--tm-hibiscus), var(--tm-fuchsia),
var(--tm-turquoise), var(--tm-monstera), var(--tm-deep-canopy));
}
/* Buttons */
.btn {
display: inline-flex;
align-items: center;
border-radius: 30px;
padding: 14px 36px;
font-family: 'Josefin Sans', sans-serif;
font-size: 0.9rem;
font-weight: 600;
letter-spacing: 0.06em;
text-transform: uppercase;
cursor: pointer;
text-decoration: none;
transition: all 0.3s ease;
border: 2px solid transparent;
}
.btn--primary {
background: linear-gradient(135deg, var(--tm-hibiscus), var(--tm-fuchsia));
color: var(--tm-coconut);
box-shadow: 0 4px 16px rgba(232, 24, 74, 0.35);
}
.btn--primary:hover {
transform: translateY(-2px) scale(1.03);
box-shadow: 0 8px 24px rgba(232, 24, 74, 0.5);
border-color: var(--tm-gold);
}
.btn--outline {
background: transparent;
border-color: var(--tm-turquoise);
color: var(--tm-turquoise);
}
.btn--outline:hover {
background: var(--tm-turquoise);
color: var(--tm-deep-canopy);
box-shadow: 0 4px 16px rgba(64, 201, 194, 0.35);
}
/* Sections */
.section { padding: 5rem 2rem; position: relative; }
.section--jungle {
background:
repeating-linear-gradient(60deg, transparent, transparent 40px, rgba(45,139,78,0.07) 40px, rgba(45,139,78,0.07) 41px),
repeating-linear-gradient(120deg, transparent, transparent 40px, rgba(92,173,62,0.05) 40px, rgba(92,173,62,0.05) 41px),
linear-gradient(180deg, var(--tm-deep-canopy), var(--tm-jungle) 50%, var(--tm-deep-canopy));
}
.section--lagoon {
background:
radial-gradient(ellipse at 30% 50%, rgba(64,201,194,0.1), transparent 60%),
linear-gradient(180deg, var(--tm-deep-canopy), #0A2E2B 50%, var(--tm-deep-canopy));
}
.section--bloom {
background:
radial-gradient(ellipse at 70% 30%, rgba(232,24,74,0.08), transparent 50%),
radial-gradient(ellipse at 20% 70%, rgba(212,50,125,0.06), transparent 50%),
var(--tm-deep-canopy);
}
.container { max-width: 960px; margin: 0 auto; }
.section h2 {
font-family: 'Playfair Display', serif;
font-weight: 800;
font-size: clamp(2rem, 5vw, 3.5rem);
margin-bottom: 0.5rem;
text-shadow: 2px 2px 8px rgba(11, 61, 26, 0.5);
}
.section .section-accent {
font-family: 'Pacifico', cursive;
font-size: 1.2rem;
color: var(--tm-papaya);
margin-bottom: 2rem;
display: block;
}
.section p { max-width: 700px; margin-bottom: 1.5rem; color: rgba(255,248,232,0.9); }
/* Cards */
.card-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
gap: 2rem;
margin-top: 2rem;
}
.card {
background: linear-gradient(160deg, rgba(45,139,78,0.85), rgba(26,92,42,0.92));
border: 2px solid rgba(212, 160, 23, 0.4);
border-radius: 16px;
padding: 2rem 2rem 2rem 2.5rem;
position: relative;
overflow: hidden;
box-shadow: 0 8px 32px rgba(11,61,26,0.4), 0 2px 8px rgba(0,0,0,0.2);
transition: transform 0.3s ease, box-shadow 0.3s ease;
}
.card::before {
content: '';
position: absolute;
inset: 0;
background: repeating-linear-gradient(110deg, transparent, transparent 30px, rgba(168,213,75,0.05) 30px, rgba(168,213,75,0.05) 31px);
pointer-events: none;
}
.card::after {
content: '';
position: absolute;
top: 16px; bottom: 16px; left: 0; width: 4px;
background: linear-gradient(180deg, var(--tm-gold), var(--tm-mango), var(--tm-gold));
border-radius: 0 4px 4px 0;
}
.card:hover {
transform: translateY(-6px);
box-shadow: 0 16px 48px rgba(11,61,26,0.5), 0 4px 12px rgba(0,0,0,0.25);
}
.card .card-icon { font-size: 2.5rem; margin-bottom: 1rem; display: block; }
.card h3 {
font-family: 'Playfair Display', serif;
font-weight: 700;
font-size: 1.4rem;
color: var(--tm-papaya);
margin-bottom: 0.75rem;
}
.card p { color: rgba(255,248,232,0.85); font-size: 0.95rem; line-height: 1.7; }
/* Feature panel with rattan texture */
.feature-panel {
background-color: #6B5230;
background-image:
repeating-linear-gradient(0deg, transparent, transparent 8px, rgba(74,44,26,0.2) 8px, rgba(74,44,26,0.2) 10px),
repeating-linear-gradient(90deg, transparent, transparent 8px, rgba(74,44,26,0.15) 8px, rgba(74,44,26,0.15) 10px);
border: 3px solid var(--tm-bark);
border-radius: 16px;
padding: 3rem;
margin-top: 3rem;
display: flex;
align-items: center;
gap: 3rem;
box-shadow: inset 0 2px 4px rgba(0,0,0,0.15), 0 8px 24px rgba(74,44,26,0.35);
}
.feature-panel .text-side { flex: 1; }
.feature-panel h3 {
font-family: 'Abril Fatface', serif;
font-size: 2rem;
color: var(--tm-coconut);
margin-bottom: 1rem;
}
.feature-panel p { color: rgba(255,248,232,0.85); }
.feature-panel .badge {
display: inline-block;
background: var(--tm-hibiscus);
color: var(--tm-coconut);
font-size: 0.7rem;
font-weight: 700;
text-transform: uppercase;
letter-spacing: 0.1em;
padding: 4px 14px;
border-radius: 20px;
margin-bottom: 1rem;
}
.feature-panel .visual-side {
flex: 0 0 200px;
height: 200px;
border-radius: 50%;
background: linear-gradient(135deg, var(--tm-monstera), var(--tm-teal));
border: 3px solid var(--tm-gold);
display: flex;
align-items: center;
justify-content: center;
font-size: 5rem;
box-shadow: 0 8px 24px rgba(0, 0, 0, 0.3);
}
/* Quote */
.quote-block { text-align: center; padding: 3rem 2rem; }
.quote-block blockquote {
font-family: 'Playfair Display', serif;
font-weight: 700;
font-size: clamp(1.4rem, 3vw, 2.2rem);
font-style: italic;
max-width: 700px;
margin: 0 auto;
line-height: 1.5;
}
.quote-block blockquote::before {
content: '\201C';
font-size: 5rem;
color: var(--tm-gold);
display: block;
line-height: 0.5;
margin-bottom: 1rem;
opacity: 0.6;
}
.quote-block cite {
display: block;
font-family: 'Josefin Sans', sans-serif;
font-style: normal;
font-size: 0.8rem;
font-weight: 600;
text-transform: uppercase;
letter-spacing: 0.2em;
color: var(--tm-turquoise);
margin-top: 1.5rem;
}
/* Footer */
.footer {
background: var(--tm-deep-canopy);
border-top: 2px solid var(--tm-gold);
padding: 3rem 2rem;
text-align: center;
}
.footer .footer-brand {
font-family: 'Pacifico', cursive;
font-size: 1.4rem;
color: var(--tm-papaya);
margin-bottom: 1rem;
}
.footer p { font-size: 0.85rem; color: rgba(255,248,232,0.5); }
.footer .footer-links {
list-style: none;
display: flex;
justify-content: center;
gap: 2rem;
margin-top: 1rem;
}
.footer .footer-links a {
font-size: 0.8rem;
color: var(--tm-turquoise);
text-decoration: none;
transition: color 0.25s ease;
}
.footer .footer-links a:hover { color: var(--tm-lime); }
/* Responsive */
@media (max-width: 768px) {
.nav { flex-direction: column; padding: 1rem; }
.nav ul { flex-wrap: wrap; justify-content: center; }
.hero { min-height: 80vh; padding: 4rem 1.5rem; }
.feature-panel { flex-direction: column; text-align: center; }
.feature-panel .visual-side { flex: 0 0 150px; height: 150px; font-size: 3.5rem; }
.card-grid { grid-template-columns: 1fr; }
}
</style>
</head>
<body>
<!-- Navigation -->
<nav class="nav">
<a href="#" class="logo">Tropicalia</a>
<ul>
<li><a href="#explore">Explore</a></li>
<li><a href="#botanicals">Botanicals</a></li>
<li><a href="#collection">Collection</a></li>
<li><a href="#about">About</a></li>
</ul>
</nav>
<!-- Hero -->
<section class="hero">
<h1>Into the<br>Canopy</h1>
<p class="tagline">where every leaf tells a story</p>
<p class="subtitle">Bold botanical design at maximum volume</p>
<div class="cta-group">
<a href="#explore" class="btn btn--primary">Explore the Jungle</a>
<a href="#collection" class="btn btn--outline">View Collection</a>
</div>
</section>
<hr class="divider">
<!-- Section: Botanical Abundance -->
<section id="explore" class="section section--jungle">
<div class="container">
<span class="section-accent">dense, lush, alive</span>
<h2>Botanical Abundance</h2>
<p>
Every surface is a canvas for nature's excess. Monstera leaves
overlap palm fronds, hibiscus blooms burst through fern canopies,
and the air itself feels thick with green. This is design that
breathes, grows, and refuses to be contained.
</p>
<div class="card-grid">
<div class="card">
<span class="card-icon">🍃</span>
<h3>Dense Foliage</h3>
<p>Layered botanical patterns create depth and immersion.
Every pixel is a leaf, every gradient a canopy shift.</p>
</div>
<div class="card">
<span class="card-icon">🌼</span>
<h3>Vivid Blossoms</h3>
<p>Hot pinks and corals punctuate the green foundation
like tropical flowers emerging after rain.</p>
</div>
<div class="card">
<span class="card-icon">🌴</span>
<h3>Natural Luxury</h3>
<p>Gold accents and rattan textures elevate wild jungle
energy into polished, resort-worthy elegance.</p>
</div>
</div>
</div>
</section>
<hr class="divider">
<!-- Section: Feature Panel -->
<section id="botanicals" class="section section--lagoon">
<div class="container">
<span class="section-accent">from canopy to coastline</span>
<h2>Layers of Paradise</h2>
<p>
Tropical Maximalism builds its world through relentless layering.
Foreground leaves cast shadows on mid-ground flowers, which sit
atop deep-jungle backgrounds. The effect is dimensional,
immersive, and gloriously excessive.
</p>
<div class="feature-panel">
<div class="text-side">
<span class="badge">Featured</span>
<h3>The Monstera<br>Collection</h3>
<p>
Oversized split-leaf philodendrons at dramatic scale.
Bold enough to be architecture, organic enough to be alive.
</p>
<a href="#" class="btn btn--primary" style="margin-top: 1rem;">Discover More</a>
</div>
<div class="visual-side">🌿</div>
</div>
</div>
</section>
<hr class="divider">
<!-- Section: Quote -->
<section class="section section--bloom">
<div class="container">
<div class="quote-block">
<blockquote>
The jungle does not do minimalism. Neither should your design.
</blockquote>
<cite>The Tropical Maximalism Manifesto</cite>
</div>
</div>
</section>
<hr class="divider">
<!-- Footer -->
<footer class="footer">
<div class="footer-brand">Tropicalia</div>
<p>Bold botanical design. Maximum volume. Every leaf counts.</p>
<ul class="footer-links">
<li><a href="#">Explore</a></li>
<li><a href="#">Botanicals</a></li>
<li><a href="#">Collection</a></li>
<li><a href="#">About</a></li>
</ul>
</footer>
</body>
</html>
rgba(11, 61, 26, 0.4) or rgba(74, 44, 26, 0.3) to maintain the warm, organic atmosphereradial-gradient shapes with green tones to simulate leaf silhouettes in hero and background sections, as demonstrated in the hero ::before pseudo-element--tm-gold) should appear on borders, dividers, and occasional typographic details; overusing gold shifts the aesthetic toward Hollywood Regency and away from the botanical corepointer-events: none; this adds authentic foliage density without CSS-gradient limitationsrgba(11, 61, 26, 0.7)) to ensure WCAG contrast compliancefilter: saturate(1.2) brightness(0.95)) to keep them visually integrated with the vivid palette rather than looking like stock photos dropped onto a themed page