Author SHA1 Message Date
jmartin efc2ef442c feat(vitrine): proposition « Horizon nuit » (nocturne, or, serif)
- Cormorant Garamond + Sora, fond profond et halos discrets
- Accueil en colonnes : prose vitrée, principes en file or, zone constellation
- Nav minimaliste caps, menu mobile, CTA en contours dorés
- Pages intérieures en panneau translucide

Made-with: Cursor
2026-04-22 19:00:31 +02:00
8 changed files with 384 additions and 338 deletions
+8 -9
View File
@@ -1,21 +1,20 @@
--- ---
title: "P'titsPas : La solution publique pour accompagner la Petite Enfance de votre territoire" title: "P'titsPas : la petite enfance, vue du large."
description: "Solution numérique publique pour les collectivités : gestion transparente des relations parents-assistantes maternelles, sans notation ni algorithme opaque. Égalité et neutralité garanties." description: "Solution numérique publique pour les collectivités : gestion transparente des relations parents-assistantes maternelles, sans notation ni algorithme opaque. Égalité et neutralité garanties."
keywords: ["P'titsPas", "ptitspas", "p'tits pas", "ptits pas", "petitspas", "petit pas", "petits pas", "opetitspas", "pitispas", "ptitpas", "p'titpas", "Ptitspas", "PTITSPAS", "petite enfance", "assistante maternelle", "collectivité", "commune", "garde enfant", "RPE", "relais petite enfance", "plateforme publique", "transparence", "neutralité", "gestion municipale petite enfance", "plateforme numérique collectivité", "mise en relation parents assistante maternelle", "solution publique garde enfant", "service public petite enfance", "accompagnement parental collectivité", "transparence service public", "égalité accès garde enfant", "politique municipale enfance", "dématérialisation services municipaux"] keywords: ["P'titsPas", "ptitspas", "p'tits pas", "ptits pas", "petitspas", "petit pas", "petits pas", "opetitspas", "pitispas", "ptitpas", "p'titpas", "Ptitspas", "PTITSPAS", "petite enfance", "assistante maternelle", "collectivité", "commune", "garde enfant", "RPE", "relais petite enfance", "plateforme publique", "transparence", "neutralité", "gestion municipale petite enfance", "plateforme numérique collectivité", "mise en relation parents assistante maternelle", "solution publique garde enfant", "service public petite enfance", "accompagnement parental collectivité", "transparence service public", "égalité accès garde enfant", "politique municipale enfance", "dématérialisation services municipaux"]
date: 2025-05-17T12:00:00+02:00 date: 2025-05-17T12:00:00+02:00
hero_image: "/images/page_login_4.1.png" hero_image: "/images/page_login_4.1.png"
hero_image_alt: "Logo P'titsPas" hero_image_alt: "Illustration P'titsPas"
hero_tagline: "Zéro algo opaque · Zéro notation · 100 % collectivité" hero_tagline: "Clarté · neutralité · territoire"
intro_md: | intro_md: |
**Modernisez la mise en relation Parents - Assistantes Maternelles avec une plateforme 100% éthique, conçue pour les collectivités.** **Modernisez la mise en relation Parents - Assistantes Maternelles** avec une plateforme conçue pour les collectivités — sans notation des professionnels, sans algorithme opaque.
Les RPE sont saturés, la gestion administrative est lourde et les parents peinent à trouver une information fiable ? Les RPE portent une charge immense : **P'titsPas** apaise le quotidien administratif tout en laissant la collectivité piloter le service rendu aux familles.
**P'titsPas** centralise et sécurise tout le parcours d'accueil individuel, tout en redonnant la main à la collectivité.
Plus qu'un outil de gestion, c'est la garantie d'un **Service Public Numérique** exemplaire. Une même règle du jeu pour tous : **service public numérique** exigeant.
ethics: ethics:
- title: "Sans notation" - title: "Sans notation"
detail: " des pros" detail: " des professionnels"
- title: "Sans algorithme opaque" - title: "Sans algorithme opaque"
detail: " de sélection" detail: " de sélection"
- title: "100 % conforme" - title: "100 % conforme"
@@ -29,5 +28,5 @@ why_md: |
* **⚖️ Équité Territoriale :** Offrez la même qualité de service à tous les administrés, quel que soit leur quartier. * **⚖️ Équité Territoriale :** Offrez la même qualité de service à tous les administrés, quel que soit leur quartier.
* **🤝 Valorisation des RPE :** Libérez vos agents des tâches chronophages pour qu'ils se concentrent sur l'accompagnement humain. * **🤝 Valorisation des RPE :** Libérez vos agents des tâches chronophages pour qu'ils se concentrent sur l'accompagnement humain.
* **📱 Simplicité d'Usage :** Une interface pensée pour tous (parents, assistantes mat', agents), accessible sur mobile et PC. * **📱 Simplicité d'Usage :** Une interface pensée pour tous (parents, assistantes mat', agents), accessible sur mobile et PC.
cta_title: "Reprenez la main sur votre politique petite enfance" cta_title: "Un horizon commun pour votre politique petite enfance"
--- ---
+9 -9
View File
@@ -57,19 +57,19 @@
}); });
</script> </script>
</head> </head>
<body class="theme-cahier-pop"> <body class="theme-horizon-nuit">
<a class="skip-link" href="#contenu-principal">Aller au contenu</a> <a class="skip-link" href="#contenu-principal">Aller au contenu</a>
<header class="cp-header"> <header class="hn-header">
<div class="cp-header__inner"> <div class="hn-header__inner">
<a class="cp-logo" href="{{ "/" | relURL }}">P'titsPas</a> <a class="hn-brand" href="{{ "/" | relURL }}">P'tits<span class="hn-brand__gold">Pas</span></a>
<nav class="cp-nav" id="cp-nav" aria-label="Navigation principale"> <nav class="hn-nav" id="hn-nav" aria-label="Navigation principale">
<button type="button" class="cp-nav-toggle" id="cp-nav-toggle" aria-expanded="false" aria-controls="cp-nav-panel" aria-label="Ouvrir le menu"> <button type="button" class="hn-nav-toggle" id="hn-nav-toggle" aria-expanded="false" aria-controls="hn-nav-panel" aria-label="Ouvrir le menu">
<span aria-hidden="true"></span> <span aria-hidden="true"></span>
<span aria-hidden="true"></span> <span aria-hidden="true"></span>
<span aria-hidden="true"></span> <span aria-hidden="true"></span>
</button> </button>
<div class="cp-nav-panel" id="cp-nav-panel"> <div class="hn-nav-panel" id="hn-nav-panel">
<ul class="cp-nav-list"> <ul class="hn-nav-list">
{{ range .Site.Menus.main }} {{ range .Site.Menus.main }}
<li><a href="{{ .URL | relURL }}">{{ .Name }}</a></li> <li><a href="{{ .URL | relURL }}">{{ .Name }}</a></li>
{{ end }} {{ end }}
@@ -78,7 +78,7 @@
</nav> </nav>
</div> </div>
</header> </header>
<main id="contenu-principal" class="cp-main"> <main id="contenu-principal" class="hn-main">
{{ block "main" . }}{{ .Content }}{{ end }} {{ block "main" . }}{{ .Content }}{{ end }}
</main> </main>
{{ partial "footer.html" . }} {{ partial "footer.html" . }}
+1 -1
View File
@@ -1,5 +1,5 @@
{{ define "main" }} {{ define "main" }}
<div class="cp-page"> <div class="hn-panel">
{{ .Content }} {{ .Content }}
</div> </div>
{{ end }} {{ end }}
+1 -1
View File
@@ -1,5 +1,5 @@
{{ define "main" }} {{ define "main" }}
<div class="cp-page"> <div class="hn-panel">
<article class="content"> <article class="content">
{{ .Content }} {{ .Content }}
</article> </article>
+23 -21
View File
@@ -1,34 +1,36 @@
{{ define "main" }} {{ define "main" }}
<div class="cp-home"> <div class="hn-home">
<section class="cp-hero"> <section class="hn-hero" aria-label="Accroche">
<figure class="cp-polaroid"> <p class="hn-hero__kicker">{{ .Params.hero_tagline | default "Plateforme publique — petite enfance" }}</p>
<h1>{{ .Title }}</h1>
<div class="hn-hero__visual">
<img src="{{ (.Params.hero_image | default "/images/page_login_4.1.png") | relURL }}" alt="{{ .Params.hero_image_alt | default "Illustration P'titsPas" }}" width="900" height="560" fetchpriority="high"> <img src="{{ (.Params.hero_image | default "/images/page_login_4.1.png") | relURL }}" alt="{{ .Params.hero_image_alt | default "Illustration P'titsPas" }}" width="900" height="560" fetchpriority="high">
</figure>
<div class="cp-hero-copy">
<p class="cp-tagline">{{ .Params.hero_tagline | default "Service public numérique — petite enfance" }}</p>
<h1>{{ .Title }}</h1>
</div> </div>
</section> </section>
<div class="cp-zine-grid"> <div class="hn-dual">
<div class="cp-panel cp-panel--mint"> <div class="hn-panel hn-prose">
{{ with .Params.intro_md }}{{ . | markdownify }}{{ end }} {{ with .Params.intro_md }}{{ . | markdownify }}{{ end }}
</div> </div>
<div class="cp-panel"> <aside class="hn-ethics" aria-label="Engagements">
<div class="cp-stickers" aria-label="Engagements"> <h2>Principes</h2>
<ul>
{{ range .Params.ethics }} {{ range .Params.ethics }}
<div class="cp-sticker"><strong>{{ .title }}</strong>{{ .detail }}</div> <li><strong>{{ .title }}</strong>{{ .detail }}</li>
{{ end }} {{ end }}
</div> </ul>
</aside>
</div>
<section class="hn-constellation">
<div class="hn-constellation-inner hn-prose">
{{ with .Params.why_md }}{{ . | markdownify }}{{ end }}
</div> </div>
</div> </section>
<div class="cp-band"> <section class="hn-cta" aria-labelledby="hn-cta-title">
{{ with .Params.why_md }}{{ . | markdownify }}{{ end }} <h2 id="hn-cta-title">{{ .Params.cta_title | default "Échanger avec nous" }}</h2>
</div> <p>Parcours clair · données maîtrisées · service public</p>
<section class="cp-cta" aria-labelledby="cp-cta-title">
<h2 id="cp-cta-title">{{ .Params.cta_title | default "Passer à l'action" }}</h2>
<div> <div>
<a class="cp-btn" href="{{ "fonctionnalites" | relURL }}">Fonctionnalités</a> <a class="hn-btn" href="{{ "fonctionnalites" | relURL }}">Fonctionnalités</a>
<a class="cp-btn" href="{{ "contact" | relURL }}">Demander une démo</a> <a class="hn-btn" href="{{ "contact" | relURL }}">Demander une démo</a>
</div> </div>
</section> </section>
</div> </div>
+1 -1
View File
@@ -1,4 +1,4 @@
<footer class="cp-footer"> <footer class="hn-footer">
<p>&copy; {{ now.Year }} P'titsPas</p> <p>&copy; {{ now.Year }} P'titsPas</p>
<nav aria-label="Liens de pied de page"> <nav aria-label="Liens de pied de page">
<a href="{{ "mentions-legales" | relURL }}">Mentions légales</a> <a href="{{ "mentions-legales" | relURL }}">Mentions légales</a>
+337 -292
View File
@@ -1,22 +1,27 @@
/* Proposition « Cahier pop » — néo-galet / fanzine (très différent de la vitrine classique) */ /* Proposition « Horizon nuit » — nocturne, lumière et serif (contraste maximal avec « Cahier pop ») */
@import url("https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:wght@400;600&family=Syne:wght@400;600;700;800&display=swap"); @import url("https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,400;0,500;0,600;0,700;1,400&family=Sora:wght@300;400;500;600&display=swap");
:root { :root {
--ink: #14110f; --hn-void: #06080c;
--paper: #fffef7; --hn-deep: #0e1219;
--tape: #ffeb80; --hn-mist: rgba(230, 223, 209, 0.92);
--mint-pop: #7dd3c0; --hn-mist-dim: rgba(200, 190, 175, 0.75);
--peach-pop: #ffb4a2; --hn-gold: #e8c547;
--lav-pop: #c4b5fd; --hn-gold-soft: rgba(232, 197, 71, 0.35);
--border: 3px solid var(--ink); --hn-aurora: rgba(120, 190, 255, 0.12);
--shadow-hard: 6px 6px 0 var(--ink); --hn-line: rgba(232, 197, 71, 0.22);
--shadow-soft: 4px 4px 0 rgba(20, 17, 15, 0.35); --font-serif: "Cormorant Garamond", Georgia, serif;
--font-display: "Syne", system-ui, sans-serif; --font-sans: "Sora", system-ui, sans-serif;
--font-mono: "IBM Plex Mono", ui-monospace, monospace;
--nav-cut: 52rem; --nav-cut: 52rem;
} }
.hn-brand__gold {
color: var(--hn-gold);
font-style: italic;
font-weight: 400;
}
@media (prefers-reduced-motion: reduce) { @media (prefers-reduced-motion: reduce) {
*, *,
*::before, *::before,
@@ -37,451 +42,491 @@ html {
scroll-behavior: smooth; scroll-behavior: smooth;
} }
body.theme-cahier-pop { body.theme-horizon-nuit {
margin: 0; margin: 0;
font-family: var(--font-display); font-family: var(--font-sans);
font-size: clamp(1rem, 0.92rem + 0.35vw, 1.1rem); font-weight: 300;
line-height: 1.55; font-size: clamp(0.95rem, 0.9rem + 0.25vw, 1.05rem);
color: var(--ink); line-height: 1.7;
background-color: var(--paper); color: var(--hn-mist);
background: var(--hn-void);
background-image: background-image:
radial-gradient(circle at 12% 18%, rgba(255, 180, 162, 0.35) 0%, transparent 42%), radial-gradient(ellipse 120% 80% at 50% -30%, var(--hn-gold-soft), transparent 55%),
radial-gradient(circle at 88% 8%, rgba(196, 181, 253, 0.4) 0%, transparent 38%), radial-gradient(ellipse 70% 50% at 100% 20%, var(--hn-aurora), transparent 50%),
radial-gradient(circle at 1px 1px, rgba(20, 17, 15, 0.07) 1px, transparent 0); radial-gradient(ellipse 50% 40% at 0% 80%, rgba(180, 120, 255, 0.06), transparent 45%);
background-size: auto, auto, 18px 18px; background-attachment: fixed;
min-height: 100vh;
} }
:focus-visible { :focus-visible {
outline: 3px solid var(--mint-pop); outline: 2px solid var(--hn-gold);
outline-offset: 3px; outline-offset: 3px;
} }
.skip-link { .skip-link {
position: absolute; position: absolute;
left: -9999px; left: -9999px;
z-index: 2000; z-index: 3000;
padding: 0.75rem 1rem; padding: 0.65rem 1rem;
background: var(--ink); background: var(--hn-deep);
color: var(--paper); color: var(--hn-gold);
font-weight: 700; border: 1px solid var(--hn-line);
text-decoration: none; text-decoration: none;
border: var(--border); font-family: var(--font-sans);
box-shadow: var(--shadow-hard); font-size: 0.75rem;
letter-spacing: 0.2em;
text-transform: uppercase;
} }
.skip-link:focus { .skip-link:focus {
left: 0.75rem; left: 1rem;
top: 0.75rem; top: 1rem;
} }
/* Header */ /* Header */
.cp-header { .hn-header {
position: sticky; position: sticky;
top: 0; top: 0;
z-index: 100; z-index: 100;
background: var(--tape); backdrop-filter: blur(14px);
border-bottom: var(--border); background: color-mix(in srgb, var(--hn-deep) 82%, transparent);
box-shadow: 0 4px 0 rgba(20, 17, 15, 0.12); border-bottom: 1px solid var(--hn-line);
} }
.cp-header__inner { .hn-header__inner {
max-width: 72rem; max-width: 80rem;
margin: 0 auto; margin: 0 auto;
padding: 0.75rem 1rem; padding: 1rem 1.25rem;
display: flex; display: flex;
align-items: center; align-items: center;
justify-content: space-between; justify-content: space-between;
gap: 1rem; gap: 1rem;
flex-wrap: wrap;
} }
.cp-logo { .hn-brand {
font-weight: 800; font-family: var(--font-serif);
font-size: clamp(1.15rem, 1rem + 0.6vw, 1.5rem); font-weight: 500;
letter-spacing: -0.03em; font-size: clamp(1.35rem, 1.1rem + 1vw, 1.85rem);
text-transform: uppercase; letter-spacing: 0.02em;
text-decoration: none; text-decoration: none;
color: var(--ink); color: var(--hn-mist);
border: var(--border);
padding: 0.35rem 0.65rem;
background: #fff;
box-shadow: var(--shadow-soft);
transform: rotate(-1.5deg);
} }
.cp-logo:hover { .hn-nav {
transform: rotate(0deg) translate(-2px, -2px);
box-shadow: var(--shadow-hard);
}
.cp-nav {
position: relative; position: relative;
display: flex; display: flex;
align-items: center; align-items: center;
justify-content: flex-end;
} }
.cp-nav-toggle { .hn-nav-toggle {
display: flex; display: flex;
flex-direction: column; flex-direction: column;
justify-content: center; justify-content: center;
gap: 5px; gap: 5px;
width: 2.75rem; width: 2.6rem;
height: 2.75rem; height: 2.6rem;
padding: 0; padding: 0;
border: var(--border); border: 1px solid var(--hn-line);
background: #fff; border-radius: 50%;
background: transparent;
color: var(--hn-mist);
cursor: pointer; cursor: pointer;
box-shadow: var(--shadow-soft);
} }
.cp-nav-toggle span { .hn-nav-toggle span {
display: block; display: block;
width: 1.1rem; width: 1rem;
height: 3px; height: 1px;
margin: 0 auto; margin: 0 auto;
background: var(--ink); background: currentColor;
} }
.cp-nav-panel { .hn-nav-panel {
overflow: hidden;
max-height: 0; max-height: 0;
transition: max-height 0.35s ease; overflow: hidden;
transition: max-height 0.4s cubic-bezier(0.4, 0, 0.2, 1);
} }
.cp-nav.is-open .cp-nav-panel { .hn-nav.is-open .hn-nav-panel {
max-height: 22rem; max-height: 24rem;
} }
.cp-nav-list { .hn-nav-list {
list-style: none; list-style: none;
margin: 0; margin: 0;
padding: 0.75rem 0 0; padding: 0;
display: flex; display: flex;
flex-wrap: wrap; flex-wrap: wrap;
gap: 0.5rem; gap: 0.25rem 1.25rem;
justify-content: flex-end; justify-content: flex-end;
} }
.cp-nav-list a { .hn-nav-list a {
font-family: var(--font-mono); font-size: 0.7rem;
font-size: 0.8rem; font-weight: 500;
font-weight: 600; letter-spacing: 0.22em;
text-transform: uppercase; text-transform: uppercase;
letter-spacing: 0.06em;
text-decoration: none; text-decoration: none;
color: var(--ink); color: var(--hn-mist-dim);
border: var(--border); padding: 0.35rem 0;
padding: 0.45rem 0.65rem; border-bottom: 1px solid transparent;
background: #fff; transition: color 0.2s ease, border-color 0.2s ease;
display: inline-block;
box-shadow: 3px 3px 0 var(--ink);
} }
.cp-nav-list a:hover { .hn-nav-list a:hover {
transform: translate(-2px, -2px); color: var(--hn-gold);
box-shadow: 5px 5px 0 var(--ink); border-bottom-color: var(--hn-gold);
} }
@media (min-width: 52rem) { @media (min-width: 52rem) {
.cp-nav-toggle { .hn-nav-toggle {
display: none; display: none;
} }
.cp-nav-panel { .hn-nav-panel {
max-height: none !important; max-height: none !important;
overflow: visible; overflow: visible;
padding-top: 0;
}
.cp-nav-list {
padding-top: 0;
} }
} }
@media (max-width: 51.99rem) { @media (max-width: 51.99rem) {
.cp-nav-panel { .hn-nav-panel {
position: absolute; position: absolute;
right: 0; right: 0;
top: calc(100% + 0.35rem); top: calc(100% + 0.75rem);
left: 0; left: 0;
background: var(--paper); background: color-mix(in srgb, var(--hn-deep) 96%, black);
border: var(--border); border: 1px solid var(--hn-line);
box-shadow: var(--shadow-hard); padding: 1rem 1.25rem;
padding: 0.75rem;
} }
.cp-nav-list { .hn-nav-list {
flex-direction: column; flex-direction: column;
align-items: stretch; align-items: flex-start;
gap: 0.75rem;
} }
} }
/* Main shell */ /* Main */
.cp-main { .hn-main {
max-width: 72rem; max-width: 80rem;
margin: 0 auto; margin: 0 auto;
padding: 1.5rem 1rem 3rem; padding: 0 1rem 4rem;
} }
.cp-page { .hn-panel {
border: var(--border); border: 1px solid var(--hn-line);
background: #fff; background: color-mix(in srgb, var(--hn-deep) 75%, transparent);
box-shadow: var(--shadow-hard); backdrop-filter: blur(8px);
padding: clamp(1.25rem, 3vw, 2.25rem); border-radius: 2px;
padding: clamp(1.25rem, 3vw, 2.5rem);
} }
.cp-page .content { .hn-panel .content {
max-width: 48rem; max-width: 42rem;
margin: 0 auto; margin: 0 auto;
} }
/* Home */ /* Home */
.cp-hero { .hn-hero {
display: grid; min-height: clamp(22rem, 55vh, 36rem);
gap: 1.5rem; display: flex;
margin-bottom: 2rem; flex-direction: column;
align-items: start; justify-content: flex-end;
padding: 3rem 0 2.5rem;
margin-bottom: 0;
position: relative;
} }
@media (min-width: 52rem) { .hn-hero::after {
.cp-hero { content: "";
grid-template-columns: 1fr 1.05fr; position: absolute;
} left: 5%;
right: 5%;
bottom: 0;
height: 1px;
background: linear-gradient(90deg, transparent, var(--hn-gold), transparent);
opacity: 0.5;
} }
.cp-polaroid { .hn-hero__kicker {
border: var(--border); font-size: 0.65rem;
background: #fff; letter-spacing: 0.35em;
padding: 0.75rem 0.75rem 2.25rem;
box-shadow: var(--shadow-hard);
transform: rotate(-2.2deg);
max-width: 22rem;
margin: 0 auto;
}
@media (min-width: 52rem) {
.cp-polaroid {
margin: 0;
}
}
.cp-polaroid img {
display: block;
width: 100%;
height: auto;
border: var(--border);
}
.cp-hero-copy h1 {
font-size: clamp(1.75rem, 1.1rem + 2.8vw, 2.85rem);
line-height: 1.08;
margin: 0 0 0.75rem;
letter-spacing: -0.04em;
}
.cp-tagline {
font-family: var(--font-mono);
font-size: 0.85rem;
text-transform: uppercase; text-transform: uppercase;
letter-spacing: 0.12em; color: var(--hn-gold);
border: var(--border);
display: inline-block;
padding: 0.35rem 0.5rem;
background: var(--lav-pop);
box-shadow: 3px 3px 0 var(--ink);
margin-bottom: 1rem; margin-bottom: 1rem;
} }
.cp-zine-grid { .hn-hero h1 {
display: grid; font-family: var(--font-serif);
gap: 1rem; font-weight: 500;
margin-bottom: 2rem; font-size: clamp(2.4rem, 1.2rem + 5vw, 4.2rem);
line-height: 1.05;
max-width: 18ch;
margin: 0 0 1.5rem;
color: var(--hn-mist);
} }
@media (min-width: 40rem) { .hn-hero__visual {
.cp-zine-grid { margin-top: 2rem;
grid-template-columns: 1.35fr 1fr; max-width: 28rem;
border: 1px solid var(--hn-line);
padding: 0.35rem;
background: color-mix(in srgb, var(--hn-deep) 90%, transparent);
}
.hn-hero__visual img {
display: block;
width: 100%;
height: auto;
filter: saturate(0.92) contrast(1.05);
}
.hn-dual {
display: grid;
gap: 1.25rem;
margin: 2.5rem 0;
}
@media (min-width: 48rem) {
.hn-dual {
grid-template-columns: 1.2fr 1fr;
align-items: start;
} }
} }
.cp-panel { .hn-prose {
border: var(--border); font-weight: 300;
background: #fff;
padding: 1.25rem;
box-shadow: var(--shadow-soft);
} }
.cp-panel--mint { .hn-prose strong {
background: color-mix(in srgb, var(--mint-pop) 55%, #fff); font-weight: 500;
color: var(--hn-mist);
} }
.cp-stickers { .hn-ethics {
display: flex; border-left: 1px solid var(--hn-line);
flex-direction: column; padding-left: 1.25rem;
gap: 0.65rem;
} }
.cp-sticker { .hn-ethics h2 {
font-family: var(--font-mono); font-family: var(--font-sans);
font-size: 0.78rem; font-size: 0.65rem;
font-weight: 600; letter-spacing: 0.28em;
border: var(--border); text-transform: uppercase;
padding: 0.55rem 0.65rem; font-weight: 500;
background: var(--peach-pop); color: var(--hn-gold);
box-shadow: 3px 3px 0 var(--ink); margin: 0 0 1rem;
transform: rotate(var(--rot, 0deg));
} }
.cp-sticker:nth-child(1) { .hn-ethics ul {
--rot: -0.8deg; list-style: none;
margin: 0;
padding: 0;
} }
.cp-sticker:nth-child(2) { .hn-ethics li {
--rot: 1deg; position: relative;
background: var(--lav-pop); padding: 0.65rem 0 0.65rem 1.25rem;
border-bottom: 1px solid rgba(255, 255, 255, 0.06);
font-size: 0.9rem;
color: var(--hn-mist-dim);
} }
.cp-sticker:nth-child(3) { .hn-ethics li::before {
--rot: -0.4deg; content: "";
background: var(--tape); position: absolute;
left: 0;
top: 50%;
width: 6px;
height: 6px;
margin-top: -3px;
border-radius: 50%;
background: var(--hn-gold);
opacity: 0.85;
} }
.cp-sticker strong { .hn-ethics strong {
display: block; display: block;
font-family: var(--font-display); color: var(--hn-mist);
font-size: 0.95rem; font-weight: 500;
text-transform: none;
letter-spacing: 0;
margin-bottom: 0.15rem; margin-bottom: 0.15rem;
} }
.cp-band { .hn-constellation {
border: var(--border); position: relative;
background: var(--ink); padding: 2.5rem 0;
color: var(--paper); margin: 2rem 0;
padding: 1.5rem 1.25rem;
box-shadow: var(--shadow-hard);
margin-bottom: 2rem;
} }
.cp-band h2 { .hn-constellation::before {
content: "";
position: absolute;
inset: 0;
background-image: radial-gradient(1px 1px at 20% 30%, rgba(255, 255, 255, 0.35), transparent),
radial-gradient(1px 1px at 70% 20%, rgba(255, 255, 255, 0.25), transparent),
radial-gradient(1px 1px at 40% 70%, rgba(255, 255, 255, 0.2), transparent),
radial-gradient(1px 1px at 88% 65%, rgba(232, 197, 71, 0.4), transparent),
radial-gradient(1px 1px at 12% 80%, rgba(255, 255, 255, 0.18), transparent);
pointer-events: none;
opacity: 0.7;
}
.hn-constellation-inner {
position: relative;
z-index: 1;
max-width: 40rem;
margin: 0 auto;
}
.hn-constellation-inner h2 {
font-family: var(--font-serif);
font-size: clamp(1.75rem, 1.2rem + 1.5vw, 2.35rem);
font-weight: 500;
margin-top: 0; margin-top: 0;
color: var(--tape); color: var(--hn-mist);
font-size: clamp(1.35rem, 1rem + 1.2vw, 1.75rem);
} }
.cp-band a { .hn-constellation-inner a {
color: var(--mint-pop); color: var(--hn-gold);
} }
.cp-cta { .hn-cta {
text-align: center; text-align: center;
border: var(--border); padding: 3rem 1.5rem;
padding: 1.75rem 1rem; margin-top: 2rem;
background: linear-gradient(135deg, var(--peach-pop), var(--tape)); border: 1px solid var(--hn-line);
box-shadow: var(--shadow-hard); background: linear-gradient(160deg, color-mix(in srgb, var(--hn-deep) 90%, transparent), rgba(232, 197, 71, 0.06));
} }
.cp-cta h2 { .hn-cta h2 {
font-family: var(--font-serif);
font-weight: 500;
font-size: clamp(1.6rem, 1.2rem + 1vw, 2rem);
margin-top: 0; margin-top: 0;
color: var(--hn-mist);
} }
.cp-btn { .hn-cta p {
font-family: var(--font-mono); font-size: 0.8rem;
font-size: 0.82rem; letter-spacing: 0.12em;
font-weight: 600;
text-transform: uppercase; text-transform: uppercase;
letter-spacing: 0.08em; color: var(--hn-mist-dim);
text-decoration: none; margin-bottom: 1.5rem;
color: var(--ink); }
border: var(--border);
padding: 0.65rem 1.1rem; .hn-btn {
background: #fff;
display: inline-block; display: inline-block;
margin: 0.35rem; margin: 0.35rem 0.5rem;
box-shadow: var(--shadow-soft); padding: 0.65rem 1.4rem;
font-size: 0.68rem;
font-weight: 500;
letter-spacing: 0.2em;
text-transform: uppercase;
text-decoration: none;
color: var(--hn-gold);
border: 1px solid var(--hn-gold);
background: transparent;
transition: background 0.2s ease, color 0.2s ease;
} }
.cp-btn:hover { .hn-btn:hover {
transform: translate(-3px, -3px); background: var(--hn-gold);
box-shadow: var(--shadow-hard); color: var(--hn-void);
} }
/* Legacy content pages */ /* Inner pages */
body.theme-cahier-pop .logo-accueil img { body.theme-horizon-nuit h1,
border: var(--border); body.theme-horizon-nuit h2,
box-shadow: var(--shadow-hard); body.theme-horizon-nuit h3 {
font-family: var(--font-serif);
font-weight: 500;
color: var(--hn-mist);
} }
body.theme-cahier-pop .content-section { body.theme-horizon-nuit .logo-accueil img {
border: var(--border); border: 1px solid var(--hn-line);
background: #fff; padding: 0.25rem;
background: color-mix(in srgb, var(--hn-deep) 80%, transparent);
}
body.theme-horizon-nuit .content-section {
border: 1px solid var(--hn-line);
background: color-mix(in srgb, var(--hn-deep) 70%, transparent);
padding: 1.25rem; padding: 1.25rem;
margin-bottom: 1.25rem; margin-bottom: 1.25rem;
box-shadow: var(--shadow-soft);
} }
body.theme-cahier-pop h1, body.theme-horizon-nuit a {
body.theme-cahier-pop h2, color: var(--hn-gold);
body.theme-cahier-pop h3 {
font-family: var(--font-display);
letter-spacing: -0.02em;
} }
body.theme-cahier-pop a { body.theme-horizon-nuit .cta-button {
color: var(--ink); font-family: var(--font-sans);
font-weight: 600; font-size: 0.68rem;
text-decoration-thickness: 2px; letter-spacing: 0.18em;
}
body.theme-cahier-pop .cta-button {
font-family: var(--font-mono);
font-size: 0.82rem;
text-transform: uppercase; text-transform: uppercase;
letter-spacing: 0.06em; border: 1px solid var(--hn-gold);
border: var(--border); background: transparent;
background: var(--tape); color: var(--hn-gold);
color: var(--ink); padding: 0.6rem 1.2rem;
padding: 0.6rem 1rem;
box-shadow: var(--shadow-soft);
border-radius: 0; border-radius: 0;
} }
body.theme-cahier-pop .cta-button:hover { body.theme-horizon-nuit .cta-button:hover {
transform: translate(-2px, -2px); background: var(--hn-gold);
box-shadow: var(--shadow-hard); color: var(--hn-void);
} }
body.theme-cahier-pop form input, body.theme-horizon-nuit form label {
body.theme-cahier-pop form textarea { font-size: 0.75rem;
border: var(--border); letter-spacing: 0.12em;
font-family: var(--font-display);
}
body.theme-cahier-pop button,
body.theme-cahier-pop input[type="submit"] {
font-family: var(--font-mono);
text-transform: uppercase; text-transform: uppercase;
border: var(--border); color: var(--hn-mist-dim);
box-shadow: var(--shadow-soft); }
body.theme-horizon-nuit form input,
body.theme-horizon-nuit form textarea {
background: color-mix(in srgb, var(--hn-void) 60%, transparent);
border: 1px solid var(--hn-line);
color: var(--hn-mist);
}
body.theme-horizon-nuit button,
body.theme-horizon-nuit input[type="submit"] {
font-family: var(--font-sans);
font-size: 0.68rem;
letter-spacing: 0.18em;
text-transform: uppercase;
border: 1px solid var(--hn-gold);
background: transparent;
color: var(--hn-gold);
padding: 0.55rem 1.1rem;
cursor: pointer; cursor: pointer;
} }
/* Footer */ /* Footer */
.cp-footer { .hn-footer {
border-top: var(--border); margin-top: 3rem;
background: var(--ink); padding: 2rem 1rem;
color: var(--paper); border-top: 1px solid var(--hn-line);
padding: 1.5rem 1rem;
text-align: center; text-align: center;
font-size: 0.72rem;
letter-spacing: 0.15em;
text-transform: uppercase;
color: var(--hn-mist-dim);
} }
.cp-footer a { .hn-footer nav {
color: var(--mint-pop); margin-top: 0.75rem;
font-family: var(--font-mono); }
font-size: 0.78rem;
text-transform: uppercase; .hn-footer a {
letter-spacing: 0.08em; color: var(--hn-mist-dim);
margin: 0 0.5rem; text-decoration: none;
margin: 0 0.75rem;
}
.hn-footer a:hover {
color: var(--hn-gold);
} }
+4 -4
View File
@@ -1,7 +1,7 @@
(function () { (function () {
var nav = document.getElementById("cp-nav"); var nav = document.getElementById("hn-nav");
if (!nav) return; if (!nav) return;
var toggle = document.getElementById("cp-nav-toggle"); var toggle = document.getElementById("hn-nav-toggle");
var mq = window.matchMedia("(max-width: 51.99rem)"); var mq = window.matchMedia("(max-width: 51.99rem)");
function setOpen(open) { function setOpen(open) {
@@ -17,7 +17,7 @@
var next = !nav.classList.contains("is-open"); var next = !nav.classList.contains("is-open");
setOpen(next); setOpen(next);
if (next) { if (next) {
var first = nav.querySelector(".cp-nav-list a"); var first = nav.querySelector(".hn-nav-list a");
if (first) requestAnimationFrame(function () { first.focus(); }); if (first) requestAnimationFrame(function () { first.focus(); });
} }
}); });
@@ -30,7 +30,7 @@
} }
}); });
nav.querySelectorAll(".cp-nav-list a").forEach(function (a) { nav.querySelectorAll(".hn-nav-list a").forEach(function (a) {
a.addEventListener("click", function () { a.addEventListener("click", function () {
if (mq.matches) setOpen(false); if (mq.matches) setOpen(false);
}); });