/* ==========================================================================
   DigitalCrafting Neon : feuille unique
   Règle de mouvement : on n'anime que transform, opacity et clip-path ;
   toutes les boucles sont mises en pause hors écran (JS) et coupées
   quand le système demande moins d'animations.
   ========================================================================== */

:root {
	--iron: var(--wp--preset--color--iron, #05070D);
	--sand: var(--wp--preset--color--sand, #0A0E17);
	--sand-2: var(--wp--preset--color--sand-2, #0F1522);
	--groove: var(--wp--preset--color--groove, #1B2537);
	--steel: var(--wp--preset--color--steel, #8FA0B8);
	--text: var(--wp--preset--color--text, #E8F3FF);
	--melt: var(--wp--preset--color--melt, #C9FAFF);
	--pour: var(--wp--preset--color--pour, #2FE6FF);
	--hot: var(--wp--preset--color--hot, #FF7F2A);
	--glow: rgba(47, 230, 255, .45);
	--hot-glow: rgba(255, 127, 42, .5);
	--body-2: #C9D5E6;
	--f-display: var(--wp--preset--font-family--display);
	--f-body: var(--wp--preset--font-family--body);
	--f-label: var(--wp--preset--font-family--label);
	--f-code: var(--wp--preset--font-family--code);
	--ease-out: cubic-bezier(.23, 1, .32, 1);
	--ease-in-out: cubic-bezier(.77, 0, .175, 1);
	--ease-pour: cubic-bezier(.45, 0, .2, 1);
	--gutter: var(--wp--style--root--padding-left, clamp(16px, 4vw, 56px));
	color-scheme: dark;
}

/* ---------- Base ---------- */
html { scroll-behavior: smooth; scroll-padding-top: 84px; }
body { -webkit-font-smoothing: antialiased; caret-color: var(--pour); scrollbar-color: var(--groove) var(--iron); overflow-x: clip; }
::selection { background: var(--pour); color: #02131A; }
::-webkit-scrollbar { width: 10px; }
::-webkit-scrollbar-track { background: var(--iron); }
::-webkit-scrollbar-thumb { background: var(--groove); border-radius: 10px; border: 2px solid var(--iron); }
:focus-visible { outline: 2px solid var(--melt); outline-offset: 3px; border-radius: 2px; }
a { text-underline-offset: .22em; text-decoration-thickness: 1px; }
img, svg, video { max-width: 100%; height: auto; }
.num { font-variant-numeric: tabular-nums; }
.dc-lbl, .dc-cat, .dc-fmt, .is-style-label {
	font-family: var(--f-label); font-weight: 600; font-size: .75rem; letter-spacing: .14em; text-transform: uppercase;
}
.is-style-label { color: var(--steel); }
.screen-reader-text:focus { background: var(--sand); color: var(--text); }
body::before { /* grain de sable, tuile générée une fois par le script */
	content: ""; position: fixed; inset: 0; pointer-events: none; z-index: 60;
	background-image: var(--grain, none); background-size: 180px; opacity: .06; mix-blend-mode: overlay;
}
.wp-site-blocks { position: relative; }
main { position: relative; isolation: isolate; }

/* Titres : le texte surligné (format « Surlignage ») devient du néon */
mark, .has-inline-color mark { background: none !important; }
h1 mark, h2 mark, h3 mark, .dc-neon {
	color: var(--melt) !important;
	text-shadow: 0 0 3px var(--pour), 0 0 14px var(--pour), 0 0 38px var(--glow);
}
h1 mark.dc-hot, h2 mark.dc-hot, mark[style*="hot"] { color: #FFE2D6 !important; text-shadow: 0 0 4px var(--hot), 0 0 14px var(--hot), 0 0 40px var(--hot-glow); }
.is-style-neon { color: var(--melt); text-shadow: 0 0 3px var(--pour), 0 0 14px var(--glow); }
p mark { color: var(--melt); }

/* ---------- Glitch (ajouté par le script sur les mots néon des grands titres) ---------- */
.dc-glitch { position: relative; display: inline-block; }
.dc-glitch::before, .dc-glitch::after {
	content: attr(data-text); position: absolute; left: 0; top: 0; right: 0; pointer-events: none; opacity: 0; white-space: nowrap;
}
.dc-glitch::before { color: var(--hot); text-shadow: 0 0 10px var(--hot-glow); }
.dc-glitch::after { color: #fff; text-shadow: 0 0 10px var(--pour); }
.dc-glitch { animation: dc-jit 6s steps(1, end) 2s infinite; }
.dc-glitch::before { animation: dc-sliceA 6s steps(1, end) 2s infinite; }
.dc-glitch::after { animation: dc-sliceB 6s steps(1, end) 2s infinite; }
.dc-glitch.g2, .dc-glitch.g2::before, .dc-glitch.g2::after { animation-delay: 4.9s; }
@keyframes dc-jit { 0%, 85%, 100% { transform: none; } 86% { transform: translateX(3px) skewX(-10deg); } 88% { transform: translateX(-2px); } 90% { transform: none; } 93% { transform: translateX(2px) skewX(6deg); } 94% { transform: none; } }
@keyframes dc-sliceA { 0%, 85%, 100% { opacity: 0; clip-path: inset(0 0 100% 0); } 86% { opacity: .95; clip-path: inset(10% 0 62% 0); transform: translateX(-7px); } 88% { clip-path: inset(58% 0 18% 0); transform: translateX(5px); } 90% { clip-path: inset(32% 0 44% 0); transform: translateX(-4px); } 92% { opacity: .95; clip-path: inset(78% 0 4% 0); transform: translateX(6px); } 94% { opacity: 0; } }
@keyframes dc-sliceB { 0%, 85%, 100% { opacity: 0; clip-path: inset(0 0 100% 0); } 87% { opacity: .9; clip-path: inset(62% 0 12% 0); transform: translateX(6px); } 89% { clip-path: inset(8% 0 70% 0); transform: translateX(-5px); } 91% { clip-path: inset(40% 0 38% 0); transform: translateX(4px); } 93% { opacity: 0; } }
.dc-ignite { animation: dc-ignite 1400ms steps(1, end) 250ms both; }
@keyframes dc-ignite { 0% { opacity: .08; } 8% { opacity: 1; } 12% { opacity: .2; } 20% { opacity: .9; } 24% { opacity: .3; } 34%, 100% { opacity: 1; } }

/* ---------- En-tête ---------- */
.dc-mast {
	position: sticky; top: 0; z-index: 40; background: var(--iron); border-bottom: 1px solid var(--groove);
	padding-inline: var(--gutter);
}
.admin-bar .dc-mast { top: var(--wp-admin--admin-bar--height, 32px); }
.dc-mast__in { max-width: var(--wp--style--global--wide-size, 1240px); margin-inline: auto !important; min-height: 64px; gap: 20px; }
.dc-brand { display: flex; align-items: center; gap: 12px; text-decoration: none; flex: none; }
.dc-brand img.anvil { width: 56px; height: auto; filter: drop-shadow(0 0 10px rgba(55, 213, 255, .25)); }
.dc-brand img.wordmark { width: 176px; height: auto; display: block; }
.dc-brand small { display: block; color: var(--steel); margin-top: 5px; font-size: 10.5px; letter-spacing: .16em; white-space: nowrap; }
.dc-mast .wp-block-navigation a { color: var(--steel); text-decoration: none; padding: 8px 10px; border-radius: 3px; transition: color 160ms ease, background-color 160ms ease; white-space: nowrap; }
.dc-mast .wp-block-navigation .current-menu-item > a, .dc-mast .wp-block-navigation a[aria-current="page"] { color: var(--melt); text-shadow: 0 0 12px var(--glow); }
@media (hover: hover) and (pointer: fine) { .dc-mast .wp-block-navigation a:hover { color: var(--text); background: var(--sand); } }
.dc-mast .wp-block-navigation__responsive-container.is-menu-open { background: var(--iron) !important; color: var(--text) !important; padding: 24px var(--gutter); }
.dc-mast .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container { gap: 6px; }
.dc-mast .wp-block-navigation__responsive-container.is-menu-open a { font-size: 1rem; padding: 12px 0; }
.dc-mast .wp-block-navigation__responsive-container-open, .dc-mast .wp-block-navigation__responsive-container-close { color: var(--text); }
.dc-mast .wp-block-buttons { flex: none; }
.dc-progress {
	position: absolute; left: 0; right: 0; bottom: -1px; height: 2px; background: var(--pour); box-shadow: 0 0 10px var(--glow);
	transform-origin: left; transform: scaleX(var(--p, 0));
}
@supports (animation-timeline: scroll()) {
	.dc-progress { animation: dc-fill linear both; animation-timeline: scroll(root); }
	@keyframes dc-fill { from { transform: scaleX(0); } to { transform: scaleX(1); } }
}
@media (max-width: 1280px) { .dc-brand small { display: none; } }
@media (max-width: 1100px) { .dc-mast .dc-cta-head { display: none; } }
@media (max-width: 520px) { .dc-brand img.wordmark { width: 140px; } .dc-brand img.anvil { width: 46px; } }

/* ---------- Boutons ---------- */
.wp-block-button__link, .dc-btn {
	display: inline-flex; align-items: center; gap: 10px; white-space: nowrap; text-decoration: none; cursor: pointer;
	box-shadow: 0 0 18px -2px var(--glow);
	transition: transform 160ms var(--ease-out), background-color 200ms ease, color 200ms ease, border-color 200ms ease, box-shadow 200ms ease;
}
.wp-block-button__link:active, .dc-btn:active { transform: scale(.97); }
.dc-btn {
	--bg: transparent; --fg: var(--text); --bd: var(--groove);
	min-height: 46px; padding: 0 20px; background: var(--bg); color: var(--fg); border: 1.5px solid var(--bd); border-radius: 3px;
	font-family: var(--f-label); font-weight: 600; font-size: .84rem; letter-spacing: .14em; text-transform: uppercase; box-shadow: none;
}
.dc-btn svg, .wp-block-button__link svg { width: 18px; height: 18px; transition: transform 200ms var(--ease-out); }
.dc-btn--hot { --bg: var(--pour); --fg: #02131A; --bd: var(--pour); box-shadow: 0 0 18px -2px var(--glow); }
.is-style-cold .wp-block-button__link { background: transparent !important; color: var(--text) !important; border: 1.5px solid var(--groove); box-shadow: none; }
@media (hover: hover) and (pointer: fine) {
	.wp-block-button:not(.is-style-cold) .wp-block-button__link:hover, .dc-btn--hot:hover { --bg: #7DF0FF; --bd: #7DF0FF; box-shadow: 0 0 28px 2px var(--glow); animation: dc-btnjit 420ms steps(1, end) 1; }
	.is-style-cold .wp-block-button__link:hover, .dc-btn--cold:hover { border-color: var(--pour) !important; box-shadow: 0 0 16px -4px var(--glow); }
	.dc-btn:hover svg { transform: translateX(4px); }
}
@keyframes dc-btnjit { 0% { transform: translateX(2px) skewX(-6deg); } 25% { transform: translateX(-2px); } 50% { transform: skewX(4deg); } 75%, 100% { transform: none; } }

/* ---------- Pastilles de rubrique ---------- */
.dc-cat { --c: var(--pour); display: inline-flex; align-items: center; gap: 7px; color: var(--c); text-decoration: none; }
.dc-cat::before { content: ""; width: 7px; height: 7px; background: var(--c); box-shadow: 0 0 8px var(--c); transform: rotate(45deg); flex: none; }
.dc-cat--big::before { width: 14px; height: 14px; margin-right: 10px; }
.c-odoo { --c: #2FE6FF; } .c-wp { --c: #7FA8FF; } .c-data { --c: #5CFFB0; } .c-geo { --c: #FFB84D; } .c-ia { --c: #FF6BD6; }
.dc-fmt { color: var(--steel); border: 1px solid var(--groove); padding: 3px 7px; border-radius: 2px; text-decoration: none; }
.dc-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 14px; color: var(--steel); }
.dc-meta .dc-lbl { color: var(--steel); }

/* ---------- Héros de page : sol quadrillé + formes ---------- */
.dc-pagehero { position: relative; overflow: hidden; isolation: isolate; border-bottom: 1px solid var(--groove); }
.dc-floor { position: absolute; left: -20%; right: -20%; bottom: 0; height: 70%; z-index: -1; perspective: 420px; pointer-events: none;
	-webkit-mask-image: linear-gradient(to top, #000 5%, transparent 90%); mask-image: linear-gradient(to top, #000 5%, transparent 90%); }
.dc-floor i { position: absolute; inset: -100% 0 0 0; transform-origin: 50% 100%; transform: rotateX(66deg);
	background-image: linear-gradient(rgba(47, 230, 255, .24) 1px, transparent 1px), linear-gradient(90deg, rgba(47, 230, 255, .18) 1px, transparent 1px);
	background-size: 64px 64px; animation: dc-run 3.2s linear infinite; }
@keyframes dc-run { from { transform: rotateX(66deg) translateY(0); } to { transform: rotateX(66deg) translateY(64px); } }
.dc-shapes { position: absolute; inset: 0; z-index: -1; pointer-events: none; overflow: hidden; }
.dc-shape { position: absolute; left: var(--x); top: var(--y); width: var(--s); height: var(--s); animation: dc-float var(--t, 9s) ease-in-out infinite alternate; animation-delay: var(--dl, 0s); }
.dc-shape > * { width: 100%; height: 100%; display: block; animation: dc-spin calc(var(--t, 9s) * 2.2) linear infinite; animation-direction: var(--dir, normal); }
.dc-shape svg { overflow: visible; }
.dc-shape .tube { fill: none; stroke: var(--c, var(--pour)); stroke-width: 1.6; vector-effect: non-scaling-stroke; }
.dc-shape .halo { fill: none; stroke: var(--c, var(--pour)); stroke-width: 7; opacity: .14; vector-effect: non-scaling-stroke; }
@keyframes dc-float { from { transform: translate3d(0, 0, 0); } to { transform: translate3d(var(--fx, 14px), var(--fy, -22px), 0); } }
@keyframes dc-spin { to { transform: rotate(360deg); } }
.dc-scan { position: absolute; inset: 0; z-index: -1; pointer-events: none; overflow: hidden; }
.dc-scan i { position: absolute; inset: 0; background: linear-gradient(to bottom, transparent 0 46%, rgba(47, 230, 255, .05) 49%, rgba(47, 230, 255, .13) 50%, transparent 51%); animation: dc-sweep 7s linear infinite; }
@keyframes dc-sweep { from { transform: translateY(-55%); } to { transform: translateY(55%); } }
.dc-rings { position: absolute; right: calc(var(--gutter) - 60px); top: 50%; width: min(660px, 62vw); aspect-ratio: 1; translate: 0 -50%; opacity: .5; }
.dc-rings svg { position: absolute; inset: 0; width: 100%; height: 100%; }
.dc-rings .r1 { animation: dc-spin 40s linear infinite; } .dc-rings .r2 { animation: dc-spin 26s linear infinite reverse; } .dc-rings .r3 { animation: dc-spin 60s linear infinite; }
.is-paused .dc-floor i, .is-paused .dc-shape, .is-paused .dc-shape > *, .is-paused .dc-scan i, .is-paused .dc-rings svg,
.is-paused .dc-glitch, .is-paused .dc-glitch::before, .is-paused .dc-glitch::after, .is-paused .ch .drop, .is-paused .src .heat,
.is-paused .dc-morph i, .is-paused .dc-pipe::after, .is-paused .spin { animation-play-state: paused !important; }

.dc-crumbs { display: flex; flex-wrap: wrap; gap: 10px; color: var(--steel); }
.dc-crumbs a { color: var(--steel); text-decoration: none; }
.dc-crumbs a:hover { color: var(--text); }
.dc-page-title { margin: 0; font-size: clamp(2.8rem, 8vw, 6.4rem); line-height: .92; font-stretch: 80%; display: block; }
.dc-lede, .is-style-lede { color: var(--steel); font-size: clamp(1.05rem, 1.4vw, 1.2rem); max-width: 62ch; }

/* ---------- Motif de rubrique en fond (articles, rubriques) ---------- */
.dc-bgmotif { position: fixed; inset: 65px 0 0 0; z-index: -1; pointer-events: none; overflow: hidden;
	-webkit-mask-image: linear-gradient(90deg, #000 0, rgba(0, 0, 0, .7) 12%, transparent 26%, transparent 74%, rgba(0, 0, 0, .7) 88%, #000 100%);
	mask-image: linear-gradient(90deg, #000 0, rgba(0, 0, 0, .7) 12%, transparent 26%, transparent 74%, rgba(0, 0, 0, .7) 88%, #000 100%); }
.dc-bgmotif .m { position: absolute; aspect-ratio: 400 / 220; will-change: transform; }
.dc-bgmotif .spin { width: 100%; height: 100%; animation: dc-drift 38s ease-in-out infinite alternate; }
.dc-bgmotif svg { width: 100%; height: 100%; overflow: visible; }
.dc-bgmotif .ln { fill: none; stroke: var(--c); stroke-width: 1.2; vector-effect: non-scaling-stroke; opacity: .3; }
.dc-bgmotif .hl { fill: none; stroke: var(--c); stroke-width: 8; opacity: .035; vector-effect: non-scaling-stroke; }
.dc-bgmotif .dot { fill: var(--c); opacity: .35; }
.dc-bgmotif .hot { fill: var(--hot); opacity: .45; }
.dc-bgmotif .m1 { right: -22vw; top: 4vh; width: min(78vw, 1250px); rotate: -14deg; }
.dc-bgmotif .m2 { left: -26vw; top: 44vh; width: min(70vw, 1100px); rotate: 11deg; }
.dc-bgmotif .m3 { right: -30vw; top: 108vh; width: min(72vw, 1150px); rotate: 6deg; }
@keyframes dc-drift { from { transform: translate3d(0, 0, 0) scale(1); } to { transform: translate3d(-3%, 2%, 0) scale(1.06); } }
@supports (animation-timeline: scroll()) {
	.dc-bgmotif .m1 { animation: dc-par1 linear both; animation-timeline: scroll(root); }
	.dc-bgmotif .m2 { animation: dc-par2 linear both; animation-timeline: scroll(root); }
	.dc-bgmotif .m3 { animation: dc-par3 linear both; animation-timeline: scroll(root); }
	@keyframes dc-par1 { to { transform: translateY(-55vh); } }
	@keyframes dc-par2 { to { transform: translateY(-95vh); } }
	@keyframes dc-par3 { to { transform: translateY(-150vh); } }
}
.admin-bar .dc-bgmotif { top: calc(65px + var(--wp-admin--admin-bar--height, 32px)); }
@media (max-width: 960px) {
	.dc-bgmotif { -webkit-mask-image: none; mask-image: none; opacity: .14; }
	.dc-bgmotif .m1 { width: 150vw; right: -70vw; } .dc-bgmotif .m2 { width: 140vw; left: -80vw; } .dc-bgmotif .m3 { width: 150vw; right: -80vw; }
}

/* ---------- Couvertures génératives ---------- */
.dc-cover { --c: var(--pour); position: relative; overflow: hidden; background: var(--sand); border: 1px solid var(--groove); border-radius: 8px; margin: 0; aspect-ratio: 16 / 9; }
.dc-cover > a, .dc-cover .dc-cover__svg { display: block; width: 100%; height: 100%; }
.dc-cover.dc-cover--image img { width: 100%; height: 100%; object-fit: cover; }
.dc-cover .g { transform-box: view-box; transition: transform 600ms var(--ease-out); }
.dc-cover .grid { fill: none; stroke: var(--c); stroke-width: 1; opacity: .07; vector-effect: non-scaling-stroke; }
.dc-cover .ln { fill: none; stroke: var(--c); stroke-width: 1.4; vector-effect: non-scaling-stroke; opacity: .85; }
.dc-cover .ln.main { stroke-width: 2; opacity: 1; filter: drop-shadow(0 0 6px var(--c)); }
.dc-cover .hl { fill: none; stroke: var(--c); stroke-width: 6; opacity: .12; vector-effect: non-scaling-stroke; }
.dc-cover .fill { fill: var(--c); opacity: .06; }
.is-thumb.dc-cover, .dc-rel .dc-cover { aspect-ratio: 16 / 10; }
@media (hover: hover) and (pointer: fine) { a:hover .dc-cover .g, .dc-row:hover .dc-cover .g, .dc-cover:hover .g { transform: scale(1.08) rotate(4deg); } }

/* ==========================================================================
   Sections génériques
   ========================================================================== */
.dc-sec { padding-block: clamp(56px, 8vw, 104px) !important; border-bottom: 1px solid var(--groove); }
.dc-sec-head { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 20px 48px; align-items: end; margin-bottom: clamp(28px, 4vw, 48px) !important; }
.dc-sec-head > * { margin: 0 !important; }
.dc-sec-head h2 { font-size: clamp(2.3rem, 5vw, 3.9rem); line-height: .95; text-wrap: balance; font-stretch: 88%; }
.dc-sec-head p { color: var(--steel); max-width: 48ch; }
.dc-sec-head h2.is-in { animation: dc-glin 700ms steps(1, end) both; }
@keyframes dc-glin { 0% { opacity: .35; transform: translateX(-10px) skewX(14deg); } 14% { opacity: 1; transform: translateX(7px) skewX(-8deg); } 28% { opacity: .5; transform: translateX(-3px); } 42% { opacity: 1; transform: none; } 56% { opacity: .7; } 70%, 100% { opacity: 1; transform: none; } }
h1, h2, h3 { font-stretch: 88%; }
.wp-block-heading { text-wrap: balance; }

/* ==========================================================================
   Accueil
   ========================================================================== */
.dc-hero__grid { display: grid !important; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(24px, 4vw, 56px); align-items: center; padding-block: clamp(36px, 5vw, 72px); }
.dc-hero__grid > * { margin: 0 !important; }
.dc-hero-title { font-size: clamp(2.6rem, 5.4vw, 4.5rem) !important; line-height: .94 !important; font-stretch: 80%; margin: 0 0 24px !important; }
.dc-hero-title mark { display: inline-block; }

.dc-mould { position: relative; margin: 0; background: rgba(10, 14, 23, .82); border: 1px solid var(--groove); border-radius: 10px; padding: clamp(10px, 2vw, 18px);
	box-shadow: 0 0 0 1px rgba(47, 230, 255, .08), 0 30px 80px -30px rgba(47, 230, 255, .25); }
.dc-mould svg { width: 100%; height: auto; overflow: visible; display: block; }
.dc-mould .readout { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: baseline; gap: 6px 16px; border-top: 1px solid var(--groove); margin-top: 10px; padding-top: 12px; min-height: 3.2em; }
.readout .k { color: var(--steel); }
.readout .v { font-family: var(--f-label); font-size: 15px; transition: opacity 180ms ease, filter 180ms ease; }
.readout .v.swap { opacity: 0; filter: blur(3px); }
.readout .v b { color: var(--melt); font-weight: 600; }
.src { cursor: pointer; }
.src .crucible { fill: var(--sand-2); stroke: #2A3A55; stroke-width: 2; transition: stroke 200ms ease; }
.src text { fill: var(--text); font-family: var(--f-label); font-weight: 600; font-size: 17px; letter-spacing: .08em; text-transform: uppercase; }
.src .heat { fill: var(--pour); animation: dc-breathe 3.2s ease-in-out infinite; }
@keyframes dc-breathe { 0%, 100% { opacity: .6; } 50% { opacity: 1; } }
.dst text { fill: var(--steel); font-family: var(--f-label); font-weight: 600; font-size: 16px; letter-spacing: .08em; text-transform: uppercase; transition: fill 200ms ease; }
.dst .ingot { fill: var(--sand-2); stroke: var(--groove); stroke-width: 2; transition: stroke 200ms ease; }
.dst .ingot-hot { fill: var(--pour); opacity: 0; }
.cavity { fill: var(--iron); stroke: var(--hot); stroke-width: 2.5; }
.cavity-halo { fill: none; stroke: var(--hot); stroke-width: 12; opacity: .16; }
.cavity-hot { fill: var(--hot); opacity: 0; }
.cavity-label { fill: var(--text); font-family: var(--f-display); font-weight: 800; font-size: 26px; letter-spacing: .02em; text-transform: uppercase; }
.cavity-sub { fill: var(--steel); font-family: var(--f-label); font-size: 12.5px; letter-spacing: .06em; text-transform: uppercase; }
.ch .groove { fill: none; stroke: var(--iron); stroke-width: 12; stroke-linejoin: round; }
.ch .melt { fill: none; stroke: var(--pour); stroke-width: 3.5; stroke-linejoin: round; stroke-dasharray: 1; stroke-dashoffset: 1; animation: dc-pour 1300ms var(--ease-pour) forwards; animation-delay: calc(200ms + var(--d, 0) * 1ms); }
.ch .halo { fill: none; stroke: var(--pour); stroke-width: 16; stroke-linejoin: round; opacity: 0; animation: dc-haloin 900ms ease-out forwards; animation-delay: calc(700ms + var(--d, 0) * 1ms); }
.ch .drop { fill: none; stroke: #fff; stroke-width: 4; stroke-linecap: round; stroke-dasharray: .035 .965; stroke-dashoffset: 1; opacity: 0; animation: dc-flow 2.6s linear infinite; animation-delay: calc(2600ms + var(--d, 0) * 1ms); }
.ch { transition: opacity 220ms ease; }
.cavity-hot { animation: dc-quench 2600ms var(--ease-out) 1250ms both; }
.dst .ingot-hot { animation: dc-quench2 2200ms var(--ease-out) both; animation-delay: calc(1900ms + var(--d, 0) * 1ms); }
@keyframes dc-pour { to { stroke-dashoffset: 0; } }
@keyframes dc-haloin { to { opacity: .16; } }
@keyframes dc-flow { 0% { stroke-dashoffset: 1; opacity: 1; } 96% { opacity: 1; } 100% { stroke-dashoffset: 0; opacity: 0; } }
@keyframes dc-quench { 0% { opacity: 0; } 18% { opacity: .85; } 100% { opacity: .12; } }
@keyframes dc-quench2 { 0% { opacity: 0; } 20% { opacity: .9; } 100% { opacity: 0; } }
svg[data-src] .ch { opacity: .18; }
svg[data-src] .dst text { fill: #5E656D; }
svg[data-src="odoo"] .ch.odoo, svg[data-src="mailjet"] .ch.mailjet, svg[data-src="matomo"] .ch.matomo, svg[data-src="wp"] .ch.wp { opacity: 1; }
svg[data-src="odoo"] .dst.odoo text, svg[data-src="mailjet"] .dst.mailjet text, svg[data-src="matomo"] .dst.matomo text, svg[data-src="wp"] .dst.wp text { fill: var(--melt); }
svg[data-src="odoo"] .dst.odoo .ingot, svg[data-src="mailjet"] .dst.mailjet .ingot, svg[data-src="matomo"] .dst.matomo .ingot, svg[data-src="wp"] .dst.wp .ingot,
svg[data-src="odoo"] .src.odoo .crucible, svg[data-src="mailjet"] .src.mailjet .crucible, svg[data-src="matomo"] .src.matomo .crucible, svg[data-src="wp"] .src.wp .crucible { stroke: var(--pour); }

/* Du creuset à la pièce */
.dc-run { position: relative; height: 6px; background: var(--iron); border: 1px solid var(--groove); border-radius: 6px; overflow: hidden; margin-block: 0 !important; }
.dc-run i { position: absolute; inset: 0; background: var(--pour); box-shadow: 0 0 12px var(--glow); transform-origin: left; }
@supports (animation-timeline: view()) { .dc-run i { animation: dc-runfill linear both; animation-timeline: view(); animation-range: entry 20% cover 45%; } @keyframes dc-runfill { from { transform: scaleX(0); } to { transform: scaleX(1); } } }
.dc-chain { gap: 0 !important; margin-top: 0 !important; }
.dc-chain > .wp-block-column { padding: 24px 28px 28px 0; }
.dc-chain > .wp-block-column + .wp-block-column { padding-left: 28px; border-left: 1px solid var(--groove); }
.dc-chain .is-style-label { color: var(--pour); margin: 0; }
.dc-chain h3 { margin: 8px 0 10px; font-size: clamp(1.6rem, 2.6vw, 2.1rem); }
.dc-chain p:not(.is-style-label) { color: var(--steel); margin: 0; }
.dc-chain strong { color: var(--text); font-weight: 600; }

/* L'outillage */
.dc-colh, .dc-tool { display: grid !important; grid-template-columns: minmax(0, 1.15fr) minmax(0, 1.6fr) minmax(0, 1fr) minmax(0, .9fr); gap: 8px 28px; }
.dc-colh { padding: 10px 0; color: var(--steel); margin-block: 0 !important; }
.dc-tools { border-top: 1px solid var(--text); gap: 0 !important; }
.dc-tools > * { margin: 0 !important; }
.dc-tool { position: relative; padding: 20px 0; border-bottom: 1px solid var(--groove); align-items: baseline; }
.dc-tool > * { margin: 0 !important; }
.dc-tool::after { content: ""; position: absolute; left: 0; right: 0; bottom: -1px; height: 2px; background: var(--pour); box-shadow: 0 0 10px var(--glow); transform: scaleX(0); transform-origin: left; transition: transform 420ms var(--ease-out); }
.dc-tool h3 { font-size: clamp(1.35rem, 2.2vw, 1.75rem); line-height: 1.02; transition: transform 260ms var(--ease-out), color 200ms ease; }
.dc-tool p { color: var(--steel); font-size: 15.5px; }
.dc-tool .dc-mat { font-family: var(--f-label); font-size: 14.5px; color: var(--text); }
.dc-tags { display: flex; flex-wrap: wrap; gap: 6px; }
.dc-tag { font-family: var(--f-label); font-weight: 600; font-size: 11.5px; letter-spacing: .1em; text-transform: uppercase; padding: 4px 8px; border: 1px solid var(--groove); border-radius: 3px; color: var(--steel); transition: border-color 200ms ease, color 200ms ease; }
.dc-tag.on { border-color: var(--pour); color: var(--melt); }
@media (hover: hover) and (pointer: fine) { .dc-tool:hover::after { transform: scaleX(1); } .dc-tool:hover h3 { transform: translateX(6px); color: var(--melt); } }

.dc-who { margin-top: clamp(36px, 5vw, 56px); display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.3fr); gap: 24px 48px; align-items: start; }
.dc-who h3 { margin: 0 0 14px; font-size: 1.6rem; }
.dc-seg { position: relative; display: inline-grid; grid-auto-flow: column; border: 1px solid var(--groove); border-radius: 4px; background: var(--sand); max-width: 100%; }
.dc-seg button, .dc-seg .copy span { font-family: var(--f-label); font-weight: 600; font-size: 13px; letter-spacing: .12em; text-transform: uppercase; padding: 13px 16px; white-space: nowrap; line-height: 1; }
.dc-seg button { background: none; border: 0; color: var(--steel); cursor: pointer; }
.dc-seg .copy { position: absolute; inset: 0; display: grid; grid-auto-flow: column; pointer-events: none; background: var(--pour); color: #02131A; border-radius: 3px;
	clip-path: inset(0 var(--r, 66.66%) 0 var(--l, 0%) round 3px); transition: clip-path 320ms var(--ease-in-out); }
.dc-seg .copy span { display: block; }
.dc-pitch { min-height: 7.5em; font-size: clamp(18px, 1.7vw, 21px); line-height: 1.55; margin: 0; max-width: 48ch; transition: opacity 220ms ease, filter 220ms ease; }
.dc-pitch.swap { opacity: 0; filter: blur(4px); }

/* La fabrication */
.dc-stages { gap: 0 !important; border-top: 1px solid var(--text); }
.dc-stages > .wp-block-column { padding: 20px 18px 28px 0; }
.dc-stages > .wp-block-column + .wp-block-column { padding-left: 18px; border-left: 1px solid var(--groove); }
.dc-stages .dc-n { display: block; font-family: var(--f-display); font-weight: 900; font-size: 58px; line-height: 1; color: var(--groove); font-stretch: 130%; margin: 0; transition: color 300ms ease; }
.dc-stages h3 { margin: 10px 0 8px; font-size: 1.5rem; }
.dc-stages p:not(.dc-n) { margin: 0; font-size: 15px; color: var(--steel); line-height: 1.55; }
@supports (animation-timeline: view()) { .dc-stages .dc-n { animation: dc-hotn linear both; animation-timeline: view(); animation-range: entry 35% cover 55%; } @keyframes dc-hotn { to { color: var(--pour); } } }
@media (hover: hover) and (pointer: fine) { .dc-stages .wp-block-column:hover .dc-n { animation: dc-jit 900ms steps(1, end) -780ms 1; } }

/* Réalisations (boucle de projets) */
.dc-projects .wp-block-post-template { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; list-style: none; padding: 0; margin: 0; }
.dc-project { display: grid; gap: 12px; align-content: start; }
.dc-project > * { margin: 0 !important; }
.dc-project .wp-block-post-title { font-size: 1.35rem; line-height: 1.1; }
.dc-project .wp-block-post-title a { color: var(--text); text-decoration: none; }
.dc-project .wp-block-post-excerpt { color: var(--steel); font-size: 15.5px; }
.dc-project .wp-block-post-excerpt__more-link { color: var(--melt); font-family: var(--f-label); font-weight: 600; letter-spacing: .12em; text-transform: uppercase; font-size: 12px; }
@media (hover: hover) and (pointer: fine) { .dc-project:hover .wp-block-post-title a { color: var(--melt); } }

/* Commande */
.dc-contact { display: grid !important; grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr); gap: clamp(28px, 5vw, 72px); align-items: start; }
.dc-contact > * { margin: 0 !important; }
.dc-contact h2 { margin: 0 0 18px; font-size: clamp(2.6rem, 5.6vw, 4.4rem); line-height: .92; }
.dc-contact p { color: var(--steel); max-width: 40ch; }
.dc-mailto { font-family: var(--f-label); font-weight: 600; letter-spacing: .06em; color: var(--melt); user-select: all; }
.dc-morph { position: relative; width: clamp(120px, 14vw, 190px); aspect-ratio: 1; margin: 0 0 26px; }
.dc-morph i { position: absolute; inset: 0; animation: dc-morph 12s var(--ease-in-out) infinite; }
.dc-morph i:nth-of-type(1) { background: var(--pour); opacity: .9; }
.dc-morph i:nth-of-type(2) { inset: 3px; background: var(--iron); }
.dc-morph i:nth-of-type(3) { inset: 14px; background: var(--hot); opacity: .08; animation-delay: -.4s; }
.dc-morph b { position: absolute; inset: -30%; border-radius: 50%; background: radial-gradient(closest-side, rgba(47, 230, 255, .22), transparent); z-index: -1; }
@keyframes dc-morph {
	0%, 20% { clip-path: polygon(50% 0%, 93% 25%, 93% 75%, 50% 100%, 7% 75%, 7% 25%); transform: rotate(0); }
	25%, 45% { clip-path: polygon(50% 4%, 75% 50%, 100% 94%, 50% 94%, 0% 94%, 25% 50%); transform: rotate(60deg); }
	50%, 70% { clip-path: polygon(50% 8%, 92% 8%, 92% 50%, 92% 92%, 8% 92%, 8% 8%); transform: rotate(90deg); }
	75%, 95% { clip-path: polygon(50% 0%, 75% 25%, 100% 50%, 50% 100%, 0% 50%, 25% 25%); transform: rotate(180deg); }
	100% { clip-path: polygon(50% 0%, 93% 25%, 93% 75%, 50% 100%, 7% 75%, 7% 25%); transform: rotate(360deg); }
}

/* ---------- Formulaires (plugin DigitalCrafting Core) ---------- */
.dc-form { display: grid; gap: 16px; background: var(--sand); border: 1px solid var(--groove); border-radius: 10px; padding: clamp(18px, 3vw, 30px); }
.dc-form .field { display: grid; gap: 7px; min-width: 0; }
.dc-form *, .dc-form *::before, .dc-form *::after { box-sizing: border-box; }
.dc-form label, .dc-form legend { font-family: var(--f-label); font-weight: 600; font-size: 12px; letter-spacing: .14em; text-transform: uppercase; color: var(--steel); }
.dc-form input:not([type=checkbox]):not([type=hidden]), .dc-form textarea, .dc-form select {
	width: 100%; box-sizing: border-box; min-width: 0; font: inherit; font-size: 16px; color: var(--text); background: var(--iron); border: 1.5px solid var(--groove); border-radius: 3px; padding: 12px 14px;
	transition: border-color 160ms ease, box-shadow 160ms ease;
}
.dc-form textarea { min-height: 120px; resize: vertical; }
.dc-form ::placeholder { color: #6F7F96; }
.dc-form input:focus, .dc-form textarea:focus, .dc-form select:focus { outline: none; border-color: var(--pour); box-shadow: 0 0 0 3px rgba(47, 230, 255, .18), 0 0 18px -4px var(--glow); }
.dc-form .row2 { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.dc-form .err { font-size: 13.5px; color: #FF8F6B; }
.dc-form [aria-invalid="true"] { border-color: var(--hot) !important; }
.dc-form .note { font-size: 13px; color: #6F7F96; margin: 0; }
.dc-form .hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; }
.dc-form .dc-btn { justify-self: start; }
.dc-form .dc-btn .t { transition: opacity 200ms ease, filter 200ms ease; }
.dc-form .swap .t { opacity: .3; filter: blur(3px); }
.dc-notice { border: 1px solid var(--groove); border-radius: 8px; padding: 14px 16px; font-size: 15px; }
.dc-notice.ok { border-color: #1E5A45; color: #5CFFB0; background: rgba(92, 255, 176, .05); }
.dc-notice.ko { border-color: #5A2A1E; color: #FF8F6B; background: rgba(255, 127, 42, .05); }
.dc-chips { border: 0; padding: 0; margin: 0; display: flex; flex-wrap: wrap; gap: 6px; }
.dc-chips label { display: inline-flex; align-items: center; gap: 6px; font-size: 13px; text-transform: none; letter-spacing: 0; font-family: var(--f-body); font-weight: 400; color: var(--steel); border: 1px solid var(--groove); border-radius: 3px; padding: 6px 9px; cursor: pointer; }
.dc-chips input { accent-color: var(--pour); margin: 0; }
.dc-chips label:has(input:checked) { border-color: #2E4A66; color: var(--text); }

/* ==========================================================================
   La veille (blog) et archives
   ========================================================================== */
.dc-bhero { padding-block: clamp(36px, 5vw, 64px) clamp(28px, 4vw, 44px); }
.dc-bhero > * { margin-block: 0 !important; }
.dc-bhero .dc-page-title { margin: 18px 0 !important; }
.dc-bhero .dc-lede { margin: 0 0 26px !important; }
.dc-tools-row { display: flex !important; flex-wrap: wrap; gap: 14px; align-items: center; justify-content: space-between; }
.dc-filters { display: flex; flex-wrap: wrap; gap: 6px; }
.dc-filters a { background: rgba(10, 14, 23, .8); border: 1px solid var(--groove); color: var(--steel); padding: 10px 13px; border-radius: 3px; text-decoration: none;
	transition: border-color 180ms ease, color 180ms ease, box-shadow 180ms ease, transform 160ms var(--ease-out); }
.dc-filters a:active { transform: scale(.97); }
.dc-filters a[aria-current="page"] { border-color: var(--pour); color: var(--melt); box-shadow: 0 0 16px -4px var(--glow), inset 0 0 12px -6px var(--glow); }
@media (hover: hover) and (pointer: fine) { .dc-filters a:hover { border-color: #2E3D57; color: var(--text); } }
.dc-tools-row .wp-block-search { margin: 0; min-width: min(320px, 100%); }
.wp-block-search__inside-wrapper { background: rgba(10, 14, 23, .8); border: 1px solid var(--groove) !important; border-radius: 3px; padding: 0 !important; transition: border-color 160ms ease, box-shadow 160ms ease; }
.wp-block-search__inside-wrapper:focus-within { border-color: var(--pour) !important; box-shadow: 0 0 16px -4px var(--glow); }
.wp-block-search__input { background: none !important; border: 0 !important; color: var(--text) !important; font: inherit; font-size: 15px; padding: 11px 12px !important; }
.wp-block-search__input:focus { outline: none; }
.wp-block-search__button { margin: 3px !important; padding: 8px 12px !important; box-shadow: none !important; }

.dc-featured .wp-block-post-template { list-style: none; margin: 0; padding: 0; }
.dc-featured__in { display: grid !important; grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr); gap: clamp(20px, 4vw, 48px); align-items: center; padding-block: clamp(32px, 5vw, 56px); border-bottom: 1px solid var(--groove); }
.dc-featured__in > * { margin: 0 !important; }
.dc-featured .dc-cover { box-shadow: 0 30px 80px -40px var(--glow); }
.dc-featured .wp-block-post-title { font-size: clamp(1.8rem, 3.2vw, 2.6rem); line-height: 1.02; margin: 14px 0 12px; }
.dc-featured .wp-block-post-title a { color: var(--text); text-decoration: none; }
.dc-featured .wp-block-post-excerpt { color: var(--steel); max-width: 52ch; }
.dc-hotlbl { color: #FFD9CB; text-shadow: 0 0 10px var(--hot-glow); }

.dc-board { display: grid !important; grid-template-columns: minmax(0, 1fr) 330px; gap: clamp(28px, 4vw, 56px); padding-block: clamp(36px, 5vw, 64px) clamp(56px, 7vw, 96px); align-items: start; }
.dc-board > * { margin: 0 !important; }
.dc-list-head { display: flex !important; justify-content: space-between; align-items: baseline; border-bottom: 1px solid var(--text); padding-bottom: 12px; margin: 0 !important; }
.dc-list-head h2 { margin: 0; font-size: clamp(1.5rem, 2.6vw, 2rem); }
.dc-rows .wp-block-post-template { list-style: none; margin: 0; padding: 0; }
.dc-row { position: relative; display: grid !important; grid-template-columns: 76px 150px minmax(0, 1fr) auto; gap: 18px 22px; align-items: start; padding: 20px 0; border-bottom: 1px solid var(--groove); }
.dc-row > * { margin: 0 !important; }
.dc-row::after { content: ""; position: absolute; left: 0; right: 0; bottom: -1px; height: 1.5px; background: var(--pour); box-shadow: 0 0 10px var(--glow); transform: scaleX(0); transform-origin: left; transition: transform 420ms var(--ease-out); }
.dc-row .wp-block-post-date { font-family: var(--f-label); font-weight: 600; font-size: 12px; letter-spacing: .14em; text-transform: uppercase; color: var(--steel); padding-top: 3px; }
.dc-row .dc-cover { aspect-ratio: 16 / 10; }
.dc-row .wp-block-post-title { margin: 8px 0 6px !important; font-weight: 750; font-stretch: 92%; font-size: clamp(1.15rem, 1.7vw, 1.4rem); line-height: 1.18; text-transform: none; }
.dc-row .wp-block-post-title a { color: var(--text); text-decoration: none; transition: color 200ms ease; }
.dc-row .wp-block-post-title a::after { content: ""; position: absolute; inset: 0; }
.dc-row .dc-meta a, .dc-row .dc-cover a { position: relative; z-index: 1; }
.dc-row .wp-block-post-excerpt { color: var(--steel); font-size: 15.5px; max-width: 62ch; margin: 0 !important; }
.dc-row .wp-block-post-excerpt p { margin: 0; }
.dc-row .dc-rt { color: var(--steel); padding-top: 3px; white-space: nowrap; }
@media (hover: hover) and (pointer: fine) { .dc-row:hover::after { transform: scaleX(1); } .dc-row:hover .wp-block-post-title a { color: var(--melt); } }
.wp-block-query-pagination { margin-top: 28px !important; gap: 6px; font-family: var(--f-label); font-weight: 600; letter-spacing: .14em; text-transform: uppercase; font-size: 12px; }
.wp-block-query-pagination a, .wp-block-query-pagination .page-numbers { display: inline-flex; min-width: 42px; justify-content: center; padding: 10px 12px; border: 1px solid var(--groove); border-radius: 3px; text-decoration: none; color: var(--steel); }
.wp-block-query-pagination .page-numbers.current { border-color: var(--pour); color: var(--melt); box-shadow: 0 0 14px -4px var(--glow); }
.wp-block-query-no-results { color: var(--steel); }

.dc-side { display: grid !important; gap: 18px; align-content: start; position: sticky; top: 90px; }
.dc-side > * { margin: 0 !important; }
.dc-panel, .is-style-panel { background: var(--sand); border: 1px solid var(--groove); border-radius: 8px; padding: 18px !important; }
.dc-panel > * { margin-block: 0 0 12px; }
.dc-panel > *:last-child { margin-bottom: 0; }
.dc-panel h2 { font-family: var(--f-label); font-weight: 600; font-size: 12px; letter-spacing: .14em; color: var(--melt); margin: 0 0 10px; }
.dc-panel p { color: var(--steel); font-size: 15px; }
.dc-notes { list-style: none; margin: 0; padding: 0; }
.dc-notes li { padding: 12px 0; border-top: 1px solid var(--groove); color: var(--steel); font-size: 14.5px; line-height: 1.5; }
.dc-notes li:first-child { border-top: 0; padding-top: 2px; }
.dc-notes .dc-cat { display: flex; margin-bottom: 6px; }
.dc-cats { list-style: none; margin: 0; padding: 0; }
.dc-cats li { display: flex; justify-content: space-between; align-items: center; padding: 9px 0; border-top: 1px solid var(--groove); font-size: 15px; }
.dc-cats li:first-child { border-top: 0; }
.dc-cats .num { color: var(--steel); font-size: 13px; }
code, .wp-block-code code { font-family: var(--f-code); }
:not(pre) > code { font-size: .88em; color: var(--melt); background: #0B1A24; border: 1px solid #16303F; border-radius: 3px; padding: 1px 5px; }

/* ==========================================================================
   Article
   ========================================================================== */
.dc-ahead { padding-block: clamp(32px, 5vw, 60px) clamp(28px, 4vw, 44px); }
.dc-ahead > * { margin-block: 0 !important; }
.dc-ahead .dc-meta { margin-top: 18px !important; }
.dc-article-title { margin: 16px 0 !important; font-size: clamp(2.2rem, 5vw, 4rem) !important; line-height: .98; font-stretch: 82%; }
.dc-standfirst, .dc-standfirst p { max-width: 62ch; color: var(--steel); font-size: clamp(1.1rem, 1.5vw, 1.25rem); margin: 0 0 26px !important; }
.dc-byline { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 18px; font-size: 15px; line-height: 1.35; }
.dc-byline .dc-lbl { color: var(--steel); font-size: 11.5px; }
.dc-byline .dc-sep { padding-left: 18px; border-left: 1px solid var(--groove); }
.dc-avatar { --s: 46px; position: relative; width: var(--s); height: var(--s); flex: none; display: inline-grid; place-items: center; }
.dc-avatar svg { position: absolute; inset: 0; fill: #0B1A24; stroke: var(--pour); stroke-width: 3; filter: drop-shadow(0 0 6px var(--glow)); }
.dc-avatar b { position: relative; font-family: var(--f-display); font-weight: 800; font-size: calc(var(--s) * .32); color: var(--melt); }
.dc-banner.dc-cover { aspect-ratio: 21 / 7; box-shadow: 0 30px 90px -50px var(--glow); margin-top: clamp(20px, 3vw, 32px) !important; }

.dc-layout { display: grid !important; grid-template-columns: 220px minmax(0, 70ch); gap: clamp(28px, 5vw, 72px); justify-content: center; padding-block: clamp(32px, 5vw, 56px); }
.dc-layout > * { margin: 0 !important; }
.dc-toc { position: sticky; top: 96px; display: grid; gap: 14px; }
.dc-toc > p { margin: 0; color: var(--melt); }
.dc-toc ol { list-style: none; margin: 0; padding: 0; border-left: 1px solid var(--groove); }
.dc-toc a { position: relative; display: block; padding: 6px 0 6px 14px; font-size: 14px; line-height: 1.35; color: var(--steel); text-decoration: none; transition: color 180ms ease; }
.dc-toc a::before { content: ""; position: absolute; left: -1px; top: 4px; bottom: 4px; width: 2px; background: var(--pour); box-shadow: 0 0 10px var(--glow); transform: scaleY(0); transition: transform 240ms var(--ease-out); }
.dc-toc a[aria-current="true"] { color: var(--melt); }
.dc-toc a[aria-current="true"]::before { transform: scaleY(1); }
@media (hover: hover) and (pointer: fine) { .dc-toc a:hover { color: var(--text); } }
.dc-share { justify-content: center; font-size: 12px; min-height: 40px; }
.dc-share .t, .dc-copy { transition: opacity 200ms ease, filter 200ms ease; }
.swap .t { opacity: .3; filter: blur(3px); }

.dc-prose { font-size: 18px; line-height: 1.72; min-width: 0; }
.dc-prose .wp-block-post-content > p, .dc-prose .wp-block-post-content li { color: var(--body-2); }
.dc-prose strong { color: var(--text); font-weight: 600; }
.dc-prose .wp-block-post-content > h2 { font-size: clamp(1.5rem, 2.4vw, 1.9rem); line-height: 1.08; margin: 2.2em 0 .6em; }
.dc-prose .wp-block-post-content > h3 { font-size: 1.3rem; text-transform: none; font-stretch: 92%; margin: 1.8em 0 .5em; }
.dc-prose h2.flash { animation: dc-hflash 900ms steps(1, end) 1; }
@keyframes dc-hflash { 0% { color: var(--melt); text-shadow: 0 0 14px var(--pour); } 20% { transform: translateX(3px) skewX(-8deg); } 35% { transform: none; } 100% { color: inherit; text-shadow: none; } }
.dc-prose ul, .dc-prose ol { padding-left: 1.1em; }
.dc-prose li { margin: .35em 0; }
.dc-prose li::marker { color: var(--pour); }
.dc-prose a { color: var(--melt); }
.is-style-check { list-style: none; padding-left: 0 !important; }
.is-style-check li { position: relative; padding-left: 1.6em; }
.is-style-check li::before { content: ""; position: absolute; left: 0; top: .55em; width: .8em; height: .45em; border-left: 2px solid #5CFFB0; border-bottom: 2px solid #5CFFB0; transform: rotate(-45deg); }

.is-style-en-bref { border: 1px solid var(--pour); border-radius: 8px; padding: 18px 22px !important; background: rgba(47, 230, 255, .035); box-shadow: 0 0 24px -12px var(--glow), inset 0 0 20px -14px var(--glow); }
.is-style-en-bref > :first-child { margin-top: 0; }
.is-style-en-bref > h2, .is-style-en-bref > p:first-child { font-family: var(--f-label) !important; font-size: 12px !important; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: var(--melt); margin: 0 0 6px !important; }
.is-style-en-bref li { font-size: 16.5px; }
.is-style-astuce { position: relative; margin: 1.6em 0; padding: 16px 18px 16px 58px !important; border: 1px solid #3A2A1F; border-radius: 8px; background: rgba(255, 127, 42, .05); }
.is-style-astuce::before { content: ""; position: absolute; left: 18px; top: 18px; width: 24px; height: 24px; background: var(--hot); filter: drop-shadow(0 0 6px var(--hot-glow));
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9 18h6M10 21h4M12 3a6 6 0 00-3.6 10.8c.6.5 1 1.2 1 2V16h5.2v-.2c0-.8.4-1.5 1-2A6 6 0 0012 3z'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9 18h6M10 21h4M12 3a6 6 0 00-3.6 10.8c.6.5 1 1.2 1 2V16h5.2v-.2c0-.8.4-1.5 1-2A6 6 0 0012 3z'/%3E%3C/svg%3E") center / contain no-repeat; }
.is-style-astuce > :first-child { margin-top: 0; font-family: var(--f-label); font-weight: 600; letter-spacing: .12em; text-transform: uppercase; font-size: 12.5px; color: #FFD9CB; }
.is-style-astuce p { font-size: 16px; color: var(--body-2); margin: .3em 0 0; }
.is-style-neon { border: 1px solid var(--pour); border-radius: 8px; padding: 22px !important; box-shadow: 0 0 36px -18px var(--glow); background: rgba(47, 230, 255, .03); }

.wp-block-table { overflow-x: auto; border: 1px solid var(--groove); border-radius: 8px; margin: 1.4em 0; }
.wp-block-table table { border-collapse: collapse; width: 100%; min-width: 540px; font-size: 15px; }
.wp-block-table th, .wp-block-table td { text-align: left; padding: 11px 14px; border: 0; border-bottom: 1px solid var(--groove); vertical-align: top; color: var(--body-2); }
.wp-block-table th { font-family: var(--f-label); font-size: 12px; letter-spacing: .12em; text-transform: uppercase; color: var(--melt); background: var(--sand); }
.wp-block-table tr:last-child td { border-bottom: 0; }
.wp-block-table thead { border-bottom: 0; }
@media (hover: hover) and (pointer: fine) { .wp-block-table tbody tr:hover td { background: rgba(47, 230, 255, .04); } }
.wp-block-code { position: relative; padding: 44px 18px 16px !important; overflow-x: auto; box-shadow: 0 0 30px -20px var(--glow); line-height: 1.65; }
.wp-block-code .dc-copy { position: absolute; top: 8px; right: 10px; background: none; border: 1px solid var(--groove); color: var(--steel); border-radius: 3px; padding: 5px 10px; cursor: pointer; font-family: var(--f-label); font-weight: 600; font-size: 11px; letter-spacing: .12em; text-transform: uppercase; }
.wp-block-code .dc-copy.done { color: #5CFFB0; border-color: #1E5A45; }
.wp-block-image img { border-radius: 8px; }
.wp-block-image figcaption, figure figcaption { color: var(--steel); font-size: 14.5px; }

.wp-block-details { border-top: 1px solid var(--groove); padding: 0; }
.wp-block-details + .wp-block-details { margin-top: 0 !important; }
.wp-block-details:last-of-type { border-bottom: 1px solid var(--groove); }
.wp-block-details summary { list-style: none; cursor: pointer; padding: 16px 36px 16px 0; position: relative; font-weight: 600; color: var(--text); font-size: 17px; }
.wp-block-details summary::-webkit-details-marker { display: none; }
.wp-block-details summary::after { content: ""; position: absolute; right: 6px; top: 50%; width: 12px; height: 12px; margin-top: -8px; border-right: 2px solid var(--pour); border-bottom: 2px solid var(--pour); transform: rotate(45deg); transition: transform 240ms var(--ease-out); }
.wp-block-details[open] summary::after { transform: rotate(225deg); margin-top: -2px; }
.wp-block-details > :not(summary) { margin: 0 0 16px; color: var(--body-2); font-size: 16.5px; }
.wp-block-details[open] > :not(summary) { animation: dc-reveal 320ms var(--ease-out); }
@keyframes dc-reveal { from { opacity: 0; transform: translateY(-6px); } to { opacity: 1; transform: none; } }

.dc-author { display: grid; grid-template-columns: 64px minmax(0, 1fr); gap: 18px; margin-top: 2.6em; padding: 22px; border: 1px solid var(--groove); border-radius: 8px; background: var(--sand); }
.dc-author p { margin: 0; font-size: 16px; color: var(--body-2); }
.dc-author .dc-lbl { color: var(--steel); }
.dc-author__name { font-family: var(--f-display); font-weight: 800; text-transform: uppercase; font-size: 1.5rem !important; color: var(--text) !important; margin: 4px 0 6px !important; }
.dc-ctabox { display: flex; flex-wrap: wrap; gap: 18px 28px; align-items: center; justify-content: space-between; margin-top: 22px; padding: 24px; border: 1px solid var(--pour); border-radius: 8px; background: rgba(47, 230, 255, .04); box-shadow: 0 0 36px -18px var(--glow); }
.dc-ctabox p { margin: 0; color: var(--steel); font-size: 16px; }
.dc-ctabox .dc-lbl { color: var(--melt); }
.dc-ctabox__t { font-family: var(--f-display); font-weight: 800; text-transform: uppercase; font-size: clamp(1.35rem, 2.2vw, 1.75rem) !important; line-height: 1.05; color: var(--text) !important; margin: 6px 0 !important; max-width: 26ch; }
.dc-related { padding-block: clamp(40px, 6vw, 72px); border-top: 1px solid var(--groove); }
.dc-related h2 { margin: 0 0 22px; font-size: clamp(1.5rem, 2.6vw, 2rem); }
.dc-rel { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 22px; }
.dc-rel__item { text-decoration: none; display: grid; gap: 10px; align-content: start; }
.dc-rel__t { font-family: var(--f-display); font-weight: 750; font-stretch: 92%; font-size: 19px; line-height: 1.2; color: var(--text); transition: color 200ms ease; }
@media (hover: hover) and (pointer: fine) { .dc-rel__item:hover .dc-rel__t { color: var(--melt); } }

/* Pages */
.dc-page-head { padding-block: clamp(32px, 5vw, 60px) clamp(24px, 3vw, 36px); }
.dc-page-head > * { margin-block: 0 !important; }
.dc-page-head .dc-page-title { margin-top: 16px !important; }
.dc-page-head .dc-lede { margin-top: 18px !important; }
.dc-page-head .wp-block-buttons { margin-top: 26px !important; }
.dc-page-body { padding-block: clamp(28px, 4vw, 48px) clamp(56px, 7vw, 96px); }
.dc-404 { text-align: left; padding-block: clamp(64px, 10vw, 140px); }

/* ---------- Pied de page ---------- */
.dc-foot { border-top: 1px solid var(--groove); padding-block: 28px 40px !important; font-size: 13px; color: var(--steel); }
.dc-foot__in { display: flex !important; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 14px; }
.dc-foot__in > * { margin: 0 !important; }
.dc-foot strong { color: var(--text); font-weight: 600; }
.dc-foot a { color: var(--steel); text-decoration: none; }
.dc-foot a:hover { color: var(--text); }
.dc-foot-sign { display: flex; align-items: center; gap: 14px; }
.dc-foot-sign img { width: 44px; height: auto; }
.dc-foot nav { display: flex; flex-wrap: wrap; gap: 6px 18px; }

/* ==========================================================================
   Responsive
   ========================================================================== */
@media (max-width: 960px) {
	.dc-hero__grid, .dc-sec-head, .dc-who, .dc-contact, .dc-featured__in, .dc-board, .dc-layout { grid-template-columns: minmax(0, 1fr); }
	.dc-chain, .dc-stages { flex-direction: column; }
	.dc-chain > .wp-block-column, .dc-chain > .wp-block-column + .wp-block-column, .dc-stages > .wp-block-column, .dc-stages > .wp-block-column + .wp-block-column { padding: 20px 0; border-left: 0; border-bottom: 1px solid var(--groove); }
	.dc-colh { display: none !important; }
	.dc-tool { grid-template-columns: minmax(0, 1fr); }
	.dc-side, .dc-toc { position: static; }
	.dc-toc ol { display: none; }
	.dc-row { grid-template-columns: 110px minmax(0, 1fr); }
	.dc-row .wp-block-post-date { grid-column: 1 / -1; grid-row: 1; padding: 0; }
	.dc-row .dc-rt { display: none; }
	.dc-projects .wp-block-post-template, .dc-rel { grid-template-columns: minmax(0, 1fr); }
	.dc-banner.dc-cover { aspect-ratio: 16 / 7; }
	.dc-byline .dc-sep { border-left: 0; padding-left: 0; }
}
@media (max-width: 520px) {
	.dc-form .row2 { grid-template-columns: 1fr; }
	.dc-seg { display: grid; grid-auto-flow: row; width: 100%; }
	.dc-seg .copy { grid-auto-flow: row; clip-path: inset(var(--t, 0%) 0 var(--b, 66.66%) 0 round 3px); }
	.dc-row { grid-template-columns: minmax(0, 1fr); }
	.dc-row .dc-cover { display: none; }
	.dc-tools-row .wp-block-search { min-width: 100%; }
}

/* ==========================================================================
   Moins d'animations : on garde les états, on retire le mouvement.
   ========================================================================== */
@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	*, *::before, *::after { animation-duration: 1ms !important; animation-iteration-count: 1 !important; animation-delay: 0ms !important; scroll-behavior: auto !important; }
	.dc-glitch::before, .dc-glitch::after, .dc-floor, .dc-scan, .ch .drop { display: none; }
	.dc-shape, .dc-shape > *, .dc-rings svg, .dc-bgmotif .m, .dc-bgmotif .spin, .dc-morph i, .src .heat { animation: none !important; }
	.ch .melt { stroke-dashoffset: 0; } .ch .halo { opacity: .16; } .cavity-hot { opacity: .12; }
	.dc-tool:hover h3 { transform: none; }
}

/* Contenu éditable de l'accueil (FAQ, en bref) ; masqué s'il est vide. */
.dc-home-content:not(:has(.dc-prose > *)) { display: none; }
.dc-home-content .dc-prose > h2:first-child { margin-top: 0; }

/* ---------- Accueil : ligne factuelle et disponibilité ---------- */
.dc-kicker { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 16px; margin: 0 0 22px !important; font-family: var(--f-label); font-weight: 600; font-size: 13px; letter-spacing: .14em; text-transform: uppercase; }
.dc-kicker__who { color: var(--pour); }
.dc-dispo { display: inline-flex; align-items: center; gap: 9px; padding: 7px 12px; border: 1px solid rgba(255, 127, 42, .45); border-radius: 999px; background: rgba(255, 127, 42, .08); color: #FFD9C2; letter-spacing: .1em; }
.dc-dispo i { width: 8px; height: 8px; border-radius: 50%; background: var(--hot); box-shadow: 0 0 0 0 rgba(255, 127, 42, .6); animation: dc-dispo 2.4s ease-out infinite; }
@keyframes dc-dispo { 0% { box-shadow: 0 0 0 0 rgba(255, 127, 42, .55); } 70%, 100% { box-shadow: 0 0 0 10px rgba(255, 127, 42, 0); } }

/* ---------- Accueil : Vous êtes… ---------- */
.dc-sec--tight { padding-block: clamp(48px, 6vw, 80px) !important; }
.dc-profiles { display: grid !important; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(16px, 2vw, 24px); }
.dc-profiles > * { margin: 0 !important; }
.dc-profile { --c: var(--pour); position: relative; display: flex; flex-direction: column; padding: clamp(22px, 2.4vw, 30px) !important; background: var(--sand); border: 1px solid var(--groove); border-radius: 10px; overflow: hidden;
	transition: border-color 220ms ease, transform 220ms var(--ease-out), box-shadow 220ms ease; }
.dc-profile--editeur { --c: #FFB84D; }
.dc-profile--pme { --c: #5CFFB0; }
.dc-profile::before { content: ""; position: absolute; inset: 0 0 auto; height: 2px; background: linear-gradient(90deg, transparent, var(--c), transparent); opacity: .7; }
.dc-profile:hover { border-color: color-mix(in srgb, var(--c) 55%, var(--groove)); transform: translateY(-3px); box-shadow: 0 18px 40px -24px var(--c); }
.dc-profile > * { margin-block: 0 !important; }
.dc-profile > * + * { margin-top: 12px !important; }
.dc-profile__ico { width: 34px; height: 34px; fill: none; stroke: var(--c); stroke-width: 5; filter: drop-shadow(0 0 6px var(--c)); margin-bottom: 6px; }
.dc-profile .is-style-label { color: var(--c); }
.dc-profile h3 { font-size: clamp(1.25rem, 1.8vw, 1.5rem); line-height: 1.05; }
.dc-profile p:not([class]) { color: var(--steel); font-size: 15.5px; }
.dc-profile ul { font-size: 15px; }
.dc-profile .dc-profile__go { margin-top: auto !important; padding-top: 14px; }
.dc-profile__go a { font-family: var(--f-label); font-weight: 600; font-size: 13px; letter-spacing: .12em; text-transform: uppercase; color: var(--c, var(--pour)); text-decoration: none; border-bottom: 1px solid currentColor; padding-bottom: 3px; }
.dc-profile__go a span { display: inline-block; transition: transform 200ms var(--ease-out); }
.dc-profile__go a:hover span { transform: translateX(4px); }

/* ---------- Accueil : le forgeron ---------- */
.dc-smith { display: grid !important; grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); gap: clamp(28px, 5vw, 72px); align-items: center; }
.dc-smith > * { margin: 0 !important; }
.dc-smith__id > * { margin-block: 0 !important; }
.dc-smith__id > * + * { margin-top: 12px !important; }
.dc-smith__hex { position: relative; width: clamp(120px, 14vw, 170px); aspect-ratio: 1; display: grid; place-items: center; margin-bottom: 18px !important; }
.dc-smith__hex svg { position: absolute; inset: 0; animation: dc-spin 40s linear infinite; }
.dc-smith__hex .halo { fill: none; stroke: var(--pour); stroke-width: 7; opacity: .25; filter: blur(4px); }
.dc-smith__hex .tube { fill: #0B1A24; stroke: var(--pour); stroke-width: 2.5; }
.dc-smith__hex b { position: relative; font-family: var(--f-display); font-weight: 800; font-size: clamp(2.2rem, 3.4vw, 3rem); color: var(--melt); text-shadow: 0 0 14px var(--glow); }
@keyframes dc-spin { to { transform: rotate(360deg); } }
.dc-smith h2 { font-size: clamp(2.2rem, 4.6vw, 3.6rem); line-height: .95; }
.dc-smith__role { color: var(--steel); font-family: var(--f-label); letter-spacing: .12em; text-transform: uppercase; font-size: 13px; }
.dc-smith__body > * { margin-block: 0 !important; }
.dc-smith__body > * + * { margin-top: 18px !important; }
.dc-smith__body p:not([class]) { color: var(--steel); }
.dc-stack { list-style: none; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.dc-stack li { font-family: var(--f-code); font-size: 13px; color: var(--melt); padding: 7px 11px; border: 1px solid var(--groove); border-radius: 4px; background: rgba(15, 21, 34, .7); }
.is-paused .dc-smith__hex svg, .is-paused .dc-dispo i { animation-play-state: paused; }

@media (max-width: 960px) {
	.dc-profiles, .dc-smith { grid-template-columns: minmax(0, 1fr); }
}
@media (prefers-reduced-motion: reduce) {
	.dc-smith__hex svg, .dc-dispo i { animation: none !important; }
	.dc-profile:hover { transform: none; }
}

/* ---------- Article : sources et « pour aller plus loin » ---------- */
.dc-sources, .dc-further { margin-top: 2.4em !important; padding: clamp(18px, 2.4vw, 26px) !important; border: 1px solid var(--groove); border-radius: 8px; background: var(--sand); }
.dc-sources { border-left: 3px solid var(--steel); }
.dc-further { border-left: 3px solid var(--pour); }
.dc-sources > h2, .dc-further > h2 { margin: 0 0 12px !important; font-size: 1.05rem !important; letter-spacing: .12em; font-family: var(--f-label); font-weight: 600; color: var(--steel); }
.dc-further > h2 { color: var(--pour); }
.dc-sources ul, .dc-further ul { margin: 0; padding-left: 1.1em; font-size: 15px; }
.dc-sources li, .dc-further li { margin: .35em 0; }
.dc-sources li::marker { color: var(--steel); }
.dc-further li::marker { color: var(--pour); content: "→  "; }
.dc-src-note { color: #6F7F96; font-size: 13px; }
.dc-src-note::before { content: "· "; }
.dc-sources .dc-src-date { margin: 12px 0 0 !important; font-size: 13px; color: #6F7F96; }
.dc-sources a::after { content: " ↗"; font-size: .85em; opacity: .6; }

/* Droit d'opposition à la mesure d'audience */
.dc-optout { margin: 1.2em 0 0; padding: 16px 18px; border: 1px solid var(--groove); border-radius: 8px; background: var(--sand); }
.dc-optout__label { display: flex; gap: 10px; align-items: flex-start; cursor: pointer; }
.dc-optout__label input { margin-top: .3em; accent-color: var(--pour); width: 18px; height: 18px; }
.dc-optout__status { margin: 10px 0 0 !important; font-size: 14px; color: var(--steel); }
