Les 4 niveaux du Capacity Score — Nous Sommes Vivants
* {
margin: 0;
padding: 0;
box-sizing: border-box;
}
:root {
–color-limiter: #f59e0b;
–color-reduire: #ff9800;
–color-restaurer: #42a5f5;
–color-regenerer: #7cb342;
–overlay-dark: rgba(0, 0, 0, 0.65);
}
body {
font-family: ‘Work Sans’, sans-serif;
background: linear-gradient(135deg, #0f172a 0%, #1e293b 100%);
min-height: 100vh;
display: flex;
align-items: center;
justify-content: center;
padding: 40px 20px;
position: relative;
overflow-x: hidden;
}
body::before {
content: »;
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
background:
radial-gradient(circle at 20% 30%, rgba(124, 179, 66, 0.08) 0%, transparent 50%),
radial-gradient(circle at 80% 70%, rgba(66, 165, 245, 0.08) 0%, transparent 50%);
pointer-events: none;
}
.container {
max-width: 1600px;
width: 100%;
position: relative;
z-index: 1;
}
.header {
text-align: center;
margin-bottom: 60px;
animation: fadeInDown 0.8s ease-out;
}
.header-badge {
display: inline-block;
background: linear-gradient(135deg, #7cb342, #9ccc65);
color: white;
padding: 8px 24px;
border-radius: 50px;
font-size: 13px;
font-weight: 600;
letter-spacing: 1px;
text-transform: uppercase;
margin-bottom: 20px;
box-shadow: 0 4px 20px rgba(124, 179, 66, 0.3);
}
.main-title {
font-family: ‘Crimson Pro’, serif;
font-size: clamp(2.5rem, 5vw, 4rem);
font-weight: 700;
color: white;
line-height: 1.1;
margin-bottom: 16px;
}
.subtitle {
font-size: clamp(1rem, 2vw, 1.3rem);
color: rgba(255, 255, 255, 0.7);
font-weight: 300;
max-width: 800px;
margin: 0 auto;
}
.grid {
display: grid;
grid-template-columns: repeat(2, 1fr);
gap: 24px;
animation: fadeInUp 0.8s ease-out 0.2s backwards;
}
.card {
position: relative;
height: 500px;
border-radius: 20px;
overflow: hidden;
cursor: pointer;
transition: transform 0.4s cubic-bezier(0.34, 1.56, 0.64, 1),
box-shadow 0.4s ease;
box-shadow: 0 10px 40px rgba(0, 0, 0, 0.3);
}
.card::before {
content: »;
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
background: var(–overlay-dark);
transition: background 0.4s ease;
z-index: 1;
}
.card:hover {
transform: translateY(-8px) scale(1.02);
box-shadow: 0 20px 60px rgba(0, 0, 0, 0.5);
}
.card:hover::before {
background: rgba(0, 0, 0, 0.45);
}
.card-bg {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
object-fit: cover;
transition: transform 0.6s ease;
}
.card:hover .card-bg {
transform: scale(1.1);
}
.card-content {
position: relative;
z-index: 2;
height: 100%;
padding: 40px;
display: flex;
flex-direction: column;
justify-content: space-between;
color: white;
}
.card-header {
display: flex;
align-items: flex-start;
gap: 20px;
}
.level-badge {
flex-shrink: 0;
width: 70px;
height: 70px;
border-radius: 16px;
display: flex;
align-items: center;
justify-content: center;
font-family: ‘Crimson Pro’, serif;
font-size: 32px;
font-weight: 700;
box-shadow: 0 8px 24px rgba(0, 0, 0, 0.3);
transition: transform 0.4s ease;
}
.card:hover .level-badge {
transform: scale(1.1) rotate(5deg);
}
.card-1 .level-badge {
background: linear-gradient(135deg, var(–color-limiter), #fbbf24);
color: white;
}
.card-2 .level-badge {
background: linear-gradient(135deg, var(–color-reduire), #fb923c);
color: white;
}
.card-3 .level-badge {
background: linear-gradient(135deg, var(–color-restaurer), #60a5fa);
color: white;
}
.card-4 .level-badge {
background: linear-gradient(135deg, var(–color-regenerer), #9ccc65);
color: white;
}
.card-title-group {
flex: 1;
}
.card-subtitle {
font-size: 13px;
font-weight: 600;
letter-spacing: 1.5px;
text-transform: uppercase;
opacity: 0.9;
margin-bottom: 8px;
}
.card-1 .card-subtitle { color: var(–color-limiter); }
.card-2 .card-subtitle { color: var(–color-reduire); }
.card-3 .card-subtitle { color: var(–color-restaurer); }
.card-4 .card-subtitle { color: var(–color-regenerer); }
.card-title {
font-family: ‘Crimson Pro’, serif;
font-size: clamp(1.8rem, 3vw, 2.5rem);
font-weight: 700;
line-height: 1.2;
margin-bottom: 12px;
}
.card-description {
font-size: clamp(1rem, 1.5vw, 1.2rem);
line-height: 1.6;
opacity: 0.95;
font-weight: 300;
}
.card-footer {
display: flex;
align-items: center;
justify-content: space-between;
padding-top: 20px;
border-top: 1px solid rgba(255, 255, 255, 0.2);
}
.capacity-label {
font-size: 13px;
text-transform: uppercase;
letter-spacing: 1px;
font-weight: 600;
opacity: 0.8;
}
.icon-arrow {
width: 40px;
height: 40px;
border-radius: 50%;
background: rgba(255, 255, 255, 0.15);
backdrop-filter: blur(10px);
display: flex;
align-items: center;
justify-content: center;
transition: all 0.3s ease;
}
.card:hover .icon-arrow {
background: rgba(255, 255, 255, 0.25);
transform: translateX(5px);
}
.icon-arrow svg {
width: 20px;
height: 20px;
stroke: white;
stroke-width: 2;
fill: none;
}
.footer-note {
text-align: center;
margin-top: 60px;
color: rgba(255, 255, 255, 0.5);
font-size: 14px;
animation: fadeIn 1s ease-out 0.6s backwards;
}
@keyframes fadeInDown {
from {
opacity: 0;
transform: translateY(-30px);
}
to {
opacity: 1;
transform: translateY(0);
}
}
@keyframes fadeInUp {
from {
opacity: 0;
transform: translateY(30px);
}
to {
opacity: 1;
transform: translateY(0);
}
}
@keyframes fadeIn {
from { opacity: 0; }
to { opacity: 1; }
}
@media (max-width: 1024px) {
.grid {
grid-template-columns: 1fr;
gap: 20px;
}
.card {
height: 400px;
}
.header {
margin-bottom: 40px;
}
}
@media (max-width: 768px) {
body {
padding: 20px;
}
.card {
height: 350px;
}
.card-content {
padding: 30px;
}
.level-badge {
width: 60px;
height: 60px;
font-size: 28px;
}
}
Se conformer aux règles pour éviter les risques et préserver l’activité à court terme, sans transformer le modèle.
Optimiser les processus pour réduire les impacts négatifs et les risques, tout en maintenant le modèle économique existant.
Adapter le modèle pour réparer les écosystèmes dégradés et sécuriser durablement la continuité de l’activité.
Transformer le modèle pour renforcer durablement les capacités du vivant et faire de la contribution un levier de viabilité.
Laisser un commentaire