diff --git a/layouts/index.html b/layouts/index.html
index 4781dcf..ebb9730 100644
--- a/layouts/index.html
+++ b/layouts/index.html
@@ -1,9 +1,20 @@
{{ define "main" }}
-
+
+
+
+
+
+
-
-

-
diff --git a/static/css/style.css b/static/css/style.css
index 22cf492..8966791 100644
--- a/static/css/style.css
+++ b/static/css/style.css
@@ -229,78 +229,62 @@ body {
text-decoration: underline;
}
-/* Hero — desktop large (2 colonnes), mobile compact */
+/*
+ Hero aligné sur le login app :
+ paper2 (body) + river_logo_desktop (rivière + wordmark ensemble).
+ Pas de dégradé coloré.
+*/
.hero {
position: relative;
min-height: calc(100vh - var(--header-h));
min-height: calc(100dvh - var(--header-h));
- display: flex;
- flex-direction: column;
+ display: grid;
+ grid-template-columns: 1fr;
align-items: center;
- justify-content: center;
+ gap: 1.5rem;
overflow: hidden;
- padding: 2rem 1.25rem 5rem;
+ padding: 1.5rem 1.25rem 2.5rem;
+ max-width: var(--max);
+ margin: 0 auto;
+ width: 100%;
+ box-sizing: border-box;
}
-.hero__bg {
- position: absolute;
- inset: 0;
- background: linear-gradient(180deg, rgba(247,241,232,0.55) 0%, rgba(247,241,232,0.15) 45%, rgba(174,225,205,0.28) 100%);
- pointer-events: none;
+.hero__visual {
+ position: relative;
+ z-index: 0;
+ animation: heroIn 0.9s var(--ease) both;
+}
+.hero__brand-img {
+ display: block;
+ width: 100%;
+ height: auto;
+ max-height: min(72vh, 38rem);
+ object-fit: contain;
+ object-position: left center;
}
.hero__copy {
position: relative;
z-index: 1;
text-align: center;
- width: min(52rem, 92vw);
- animation: heroIn 0.8s var(--ease) both;
-}
-.hero__river {
- position: absolute;
- left: 50%;
- bottom: -4%;
- width: min(120vw, 72rem);
- transform: translateX(-50%);
- opacity: 0.95;
- pointer-events: none;
- z-index: 0;
- animation: riverIn 1.1s var(--ease) both;
-}
-.hero__river img {
- width: 100%;
- height: auto;
- display: block;
- filter: drop-shadow(0 8px 24px rgba(42, 38, 34, 0.12));
-}
-@keyframes riverIn {
- from { opacity: 0; transform: translateX(-50%) translateY(1.5rem); }
- to { opacity: 0.95; transform: translateX(-50%) translateY(0); }
+ animation: heroIn 0.8s var(--ease) 0.08s both;
}
@keyframes heroIn {
- from { opacity: 0; transform: translateY(0.75rem); }
+ from { opacity: 0; transform: translateY(0.6rem); }
to { opacity: 1; transform: translateY(0); }
}
-.hero__brand {
- font-family: var(--font-brand);
- font-size: clamp(2.4rem, 1.5rem + 3.5vw, 4.25rem);
- font-weight: 700;
- margin: 0 0 0.85rem;
- letter-spacing: -0.03em;
- color: var(--ink);
-}
.hero__title {
font-family: var(--font-brand);
- font-size: clamp(1.45rem, 1.1rem + 1.8vw, 2.35rem);
+ font-size: clamp(1.45rem, 1.1rem + 1.6vw, 2.4rem);
font-weight: 600;
line-height: 1.22;
- margin: 0 auto 0.85rem;
- max-width: 28ch;
+ margin: 0 0 0.75rem;
+ color: var(--ink);
}
.hero__tagline {
- margin: 0 auto 1.75rem;
+ margin: 0 0 1.5rem;
color: var(--ink-soft);
- font-size: clamp(1.05rem, 0.95rem + 0.4vw, 1.25rem);
+ font-size: clamp(1.02rem, 0.95rem + 0.35vw, 1.2rem);
line-height: 1.45;
- max-width: 38rem;
}
.hero__actions {
display: flex;
@@ -310,66 +294,50 @@ body {
margin: 0;
}
+/* Desktop : comme le login — image rivière+logo à gauche, message à droite */
@media (min-width: 64rem) {
.hero {
- display: grid;
- grid-template-columns: minmax(0, 1.05fr) minmax(0, 0.95fr);
+ grid-template-columns: minmax(0, 1.15fr) minmax(0, 0.85fr);
+ column-gap: 2rem;
+ padding: 2rem 2.5rem 3rem;
align-items: center;
- column-gap: 3rem;
- max-width: var(--max);
- margin: 0 auto;
- width: 100%;
- padding: 3.5rem 2.5rem 4rem;
- box-sizing: border-box;
}
- .hero__bg { border-radius: 0; }
+ .hero__visual {
+ align-self: stretch;
+ display: flex;
+ align-items: center;
+ }
+ .hero__brand-img {
+ max-height: calc(100vh - var(--header-h) - 4rem);
+ width: 100%;
+ }
.hero__copy {
- width: auto;
- max-width: none;
text-align: left;
- justify-self: stretch;
+ padding-right: 1rem;
}
.hero__title {
- margin: 0 0 0.85rem;
- max-width: none;
- font-size: clamp(2rem, 1.5rem + 1.2vw, 2.85rem);
+ font-size: clamp(1.85rem, 1.4rem + 1.1vw, 2.6rem);
+ margin-bottom: 1rem;
}
.hero__tagline {
- margin: 0 0 1.5rem;
- max-width: 36rem;
+ margin-bottom: 1.75rem;
+ max-width: 28rem;
}
.hero__actions { justify-content: flex-start; }
- .hero__river {
- position: relative;
- left: auto;
- bottom: auto;
- width: 100%;
- max-width: 34rem;
- transform: none;
- justify-self: end;
- animation: riverInDesk 1.1s var(--ease) both;
- }
- @keyframes riverInDesk {
- from { opacity: 0; transform: translateX(1.25rem); }
- to { opacity: 0.95; transform: none; }
- }
}
@media (max-width: 40rem) {
.hero {
min-height: auto;
- padding: 1.75rem 1.1rem 3.5rem;
- align-items: flex-start;
+ padding: 1rem 1rem 2rem;
+ gap: 1rem;
}
- .hero__copy { width: 100%; }
- .hero__river {
- width: 130vw;
- bottom: -8%;
- opacity: 0.75;
+ .hero__brand-img {
+ max-height: 48vh;
+ margin: 0 auto;
}
- .hero__brand { font-size: 2rem; }
- .hero__title { font-size: 1.25rem; max-width: none; }
- .hero__tagline { font-size: 0.98rem; margin-bottom: 1.25rem; }
+ .hero__title { font-size: 1.3rem; }
+ .hero__tagline { font-size: 0.98rem; margin-bottom: 1.2rem; }
}
/* Sections */
@@ -444,7 +412,9 @@ body {
.exp-card a:hover { text-decoration: underline; }
.pilotage-teaser {
- background: linear-gradient(135deg, rgba(230, 230, 250, 0.55), rgba(174, 225, 205, 0.4));
+ background: rgba(255, 252, 247, 0.55);
+ border-top: 1px solid rgba(42, 38, 34, 0.06);
+ border-bottom: 1px solid rgba(42, 38, 34, 0.06);
}
.pilotage-teaser p { color: var(--ink-soft); }
diff --git a/static/images/app/river_logo_desktop.png b/static/images/app/river_logo_desktop.png
new file mode 100644
index 0000000..3ba957f
Binary files /dev/null and b/static/images/app/river_logo_desktop.png differ
diff --git a/static/images/app/river_logo_mobile.png b/static/images/app/river_logo_mobile.png
new file mode 100644
index 0000000..1488461
Binary files /dev/null and b/static/images/app/river_logo_mobile.png differ