/* Illustrations animées des pages de fonction (maquette FeatureArt). */
@keyframes fxmove{0%{offset-distance:0%;opacity:0}12%{opacity:1}85%{opacity:1}100%{offset-distance:100%;opacity:0}}
@keyframes fxpulse{0%{transform:scale(.85);opacity:.5}100%{transform:scale(2.2);opacity:0}}
@keyframes fxflow{to{stroke-dashoffset:-32}}
@keyframes fxants{to{stroke-dashoffset:-18}}
@keyframes fxblink{0%,100%{opacity:1}50%{opacity:.3}}
@keyframes fx0{0%,28.75%{opacity:0;}36.25%,82.50%{opacity:1;}87.50%,100%{opacity:0;}}
@keyframes fx1{0%,2.50%{stroke-dashoffset:1;opacity:1}28.75%,82.50%{stroke-dashoffset:0;opacity:1}87.50%,100%{stroke-dashoffset:0;opacity:0}}
@keyframes fx2{0%,28.75%{opacity:0;transform:scale(.4);}31.87%,82.50%{opacity:1;transform:none;}87.50%,100%{opacity:0;transform:none;}}
@keyframes fx3{0%,29.37%{opacity:0;transform:scale(.4);}32.50%,82.50%{opacity:1;transform:none;}87.50%,100%{opacity:0;transform:none;}}
@keyframes fx4{0%,30.00%{opacity:0;transform:scale(.4);}33.13%,82.50%{opacity:1;transform:none;}87.50%,100%{opacity:0;transform:none;}}
@keyframes fx5{0%,30.62%{opacity:0;transform:scale(.4);}33.75%,82.50%{opacity:1;transform:none;}87.50%,100%{opacity:0;transform:none;}}
@keyframes fx6{0%,31.25%{opacity:0;transform:scale(.4);}34.38%,82.50%{opacity:1;transform:none;}87.50%,100%{opacity:0;transform:none;}}
@keyframes fx7{0%,31.87%{opacity:0;transform:scale(.4);}35.00%,82.50%{opacity:1;transform:none;}87.50%,100%{opacity:0;transform:none;}}
@keyframes fx8{0%,32.50%{opacity:0;transform:scale(.4);}35.62%,82.50%{opacity:1;transform:none;}87.50%,100%{opacity:0;transform:none;}}
@keyframes fx9{0%,33.13%{opacity:0;transform:scale(.4);}36.25%,82.50%{opacity:1;transform:none;}87.50%,100%{opacity:0;transform:none;}}
@keyframes fx10{0%,33.75%{opacity:0;transform:scale(.4);}36.88%,82.50%{opacity:1;transform:none;}87.50%,100%{opacity:0;transform:none;}}
@keyframes fx11{0%,34.38%{opacity:0;transform:scale(.4);}37.50%,82.50%{opacity:1;transform:none;}87.50%,100%{opacity:0;transform:none;}}
@keyframes fx12{0%,35.00%{opacity:0;transform:scale(.4);}38.13%,82.50%{opacity:1;transform:none;}87.50%,100%{opacity:0;transform:none;}}
@keyframes fx13{0%,35.62%{opacity:0;transform:scale(.4);}38.75%,82.50%{opacity:1;transform:none;}87.50%,100%{opacity:0;transform:none;}}
@keyframes fx14{0%,36.25%{opacity:0;transform:scale(.4);}39.38%,82.50%{opacity:1;transform:none;}87.50%,100%{opacity:0;transform:none;}}
@keyframes fx15{0%,36.88%{opacity:0;transform:scale(.4);}40.00%,82.50%{opacity:1;transform:none;}87.50%,100%{opacity:0;transform:none;}}
@keyframes fx16{0%,37.50%{opacity:0;transform:scale(.4);}40.63%,82.50%{opacity:1;transform:none;}87.50%,100%{opacity:0;transform:none;}}
@keyframes fx17{0%,38.13%{opacity:0;transform:scale(.4);}41.25%,82.50%{opacity:1;transform:none;}87.50%,100%{opacity:0;transform:none;}}
@keyframes fx18{0%,41.25%{opacity:0;}45.63%,82.50%{opacity:1;}87.50%,100%{opacity:0;}}
@keyframes fx19{0%,42.50%{opacity:0;transform:scale(.4);}45.00%,82.50%{opacity:1;transform:none;}87.50%,100%{opacity:0;transform:none;}}
@keyframes fx20{0%,43.00%{opacity:0;transform:scale(.4);}45.50%,82.50%{opacity:1;transform:none;}87.50%,100%{opacity:0;transform:none;}}
@keyframes fx21{0%,43.50%{opacity:0;transform:scale(.4);}46.00%,82.50%{opacity:1;transform:none;}87.50%,100%{opacity:0;transform:none;}}
@keyframes fx22{0%,44.00%{opacity:0;transform:scale(.4);}46.50%,82.50%{opacity:1;transform:none;}87.50%,100%{opacity:0;transform:none;}}
@keyframes fx23{0%,44.50%{opacity:0;transform:scale(.4);}47.00%,82.50%{opacity:1;transform:none;}87.50%,100%{opacity:0;transform:none;}}
@keyframes fx24{0%,45.00%{opacity:0;transform:scale(.4);}47.50%,82.50%{opacity:1;transform:none;}87.50%,100%{opacity:0;transform:none;}}
@keyframes fx25{0%,45.50%{opacity:0;transform:scale(.4);}48.00%,82.50%{opacity:1;transform:none;}87.50%,100%{opacity:0;transform:none;}}
@keyframes fx26{0%,46.00%{opacity:0;transform:scale(.4);}48.50%,82.50%{opacity:1;transform:none;}87.50%,100%{opacity:0;transform:none;}}
@keyframes fx27{0%,46.25%{opacity:0;}50.63%,82.50%{opacity:1;}87.50%,100%{opacity:0;}}
@keyframes fx28{0%,47.50%{opacity:0;transform:translate(46px,30px)}52.50%{opacity:1}62.50%,80.00%{opacity:1;transform:translate(0,0)}85.00%,100%{opacity:0;transform:translate(0,0)}}
@keyframes fx29{0%,4.05%{opacity:0;}6.55%,82.00%{opacity:1;}86.00%,100%{opacity:0;}}
@keyframes fx30{0%,6.15%{opacity:0;}8.65%,82.00%{opacity:1;}86.00%,100%{opacity:0;}}
@keyframes fx31{0%,8.25%{opacity:0;}10.75%,82.00%{opacity:1;}86.00%,100%{opacity:0;}}
@keyframes fx32{0%,10.35%{opacity:0;}12.85%,82.00%{opacity:1;}86.00%,100%{opacity:0;}}
@keyframes fx33{0%,12.45%{opacity:0;}14.95%,82.00%{opacity:1;}86.00%,100%{opacity:0;}}
@keyframes fx34{0%,14.55%{opacity:0;}17.05%,82.00%{opacity:1;}86.00%,100%{opacity:0;}}
@keyframes fx35{0%,16.65%{opacity:0;}19.15%,82.00%{opacity:1;}86.00%,100%{opacity:0;}}
@keyframes fx36{0%,18.75%{opacity:0;}21.25%,82.00%{opacity:1;}86.00%,100%{opacity:0;}}
@keyframes fx37{0%,20.85%{opacity:0;}23.35%,82.00%{opacity:1;}86.00%,100%{opacity:0;}}
@keyframes fx38{0%,22.95%{opacity:0;}25.45%,82.00%{opacity:1;}86.00%,100%{opacity:0;}}
@keyframes fx39{0%,25.05%{opacity:0;}27.55%,82.00%{opacity:1;}86.00%,100%{opacity:0;}}
@keyframes fx40{0%,27.15%{opacity:0;}29.65%,82.00%{opacity:1;}86.00%,100%{opacity:0;}}
@keyframes fx41{0%,29.25%{opacity:0;}31.75%,82.00%{opacity:1;}86.00%,100%{opacity:0;}}
@keyframes fx42{0%,31.35%{opacity:0;}33.85%,82.00%{opacity:1;}86.00%,100%{opacity:0;}}
@keyframes fx43{0%,33.45%{opacity:0;}35.95%,82.00%{opacity:1;}86.00%,100%{opacity:0;}}
@keyframes fx44{0%,35.55%{opacity:0;}38.05%,82.00%{opacity:1;}86.00%,100%{opacity:0;}}
@keyframes fx45{0%,37.65%{opacity:0;}40.15%,82.00%{opacity:1;}86.00%,100%{opacity:0;}}
@keyframes fx46{0%,39.75%{opacity:0;}42.25%,82.00%{opacity:1;}86.00%,100%{opacity:0;}}
@keyframes fx47{0%,41.85%{opacity:0;}44.35%,82.00%{opacity:1;}86.00%,100%{opacity:0;}}
@keyframes fx48{0%,43.95%{opacity:0;}46.45%,82.00%{opacity:1;}86.00%,100%{opacity:0;}}
@keyframes fx49{0%,46.05%{opacity:0;}48.55%,82.00%{opacity:1;}86.00%,100%{opacity:0;}}
@keyframes fx50{0%,48.15%{opacity:0;}50.65%,82.00%{opacity:1;}86.00%,100%{opacity:0;}}
@keyframes fx51{0%,50.25%{opacity:0;}52.75%,82.00%{opacity:1;}86.00%,100%{opacity:0;}}
@keyframes fx52{0%,52.35%{opacity:0;}54.85%,82.00%{opacity:1;}86.00%,100%{opacity:0;}}
@keyframes fx53{0%,54.45%{opacity:0;}56.95%,82.00%{opacity:1;}86.00%,100%{opacity:0;}}
@keyframes fx54{0%,1.00%{transform:translateY(42px);opacity:0}3.00%{opacity:1}55.00%{transform:translateY(250px);opacity:1}58.00%,100%{transform:translateY(250px);opacity:0}}
@keyframes fx55{0%,56.00%{opacity:0;}59.50%,82.00%{opacity:1;}86.00%,100%{opacity:0;}}
@keyframes fx56{0%,2.22%{opacity:0;transform:translateX(-14px);}7.78%,91.11%{opacity:1;transform:none;}95.56%,100%{opacity:0;transform:none;}}
@keyframes fx57{0%,4.22%{opacity:0;transform:translateX(-14px);}9.78%,91.11%{opacity:1;transform:none;}95.56%,100%{opacity:0;transform:none;}}
@keyframes fx58{0%,6.22%{opacity:0;transform:translateX(-14px);}11.78%,91.11%{opacity:1;transform:none;}95.56%,100%{opacity:0;transform:none;}}
@keyframes fx59{0%,58.89%{opacity:0;transform:translateX(-14px);}64.44%,91.11%{opacity:1;transform:none;}95.56%,100%{opacity:0;transform:none;}}
@keyframes fx60{0%,17.22%{opacity:0;transform:scale(.4);}20.00%,91.11%{opacity:1;transform:none;}95.56%,100%{opacity:0;transform:none;}}
@keyframes fx61{0%,16.00%{opacity:0;transform:scale(.4);}18.78%,91.11%{opacity:1;transform:none;}95.56%,100%{opacity:0;transform:none;}}
@keyframes fx62{0%,13.56%{opacity:0;transform:scale(.4);}16.33%,91.11%{opacity:1;transform:none;}95.56%,100%{opacity:0;transform:none;}}
@keyframes fx63{0%,12.33%{opacity:0;transform:scale(.4);}15.11%,91.11%{opacity:1;transform:none;}95.56%,100%{opacity:0;transform:none;}}
@keyframes fx64{0%,11.11%{opacity:0;transform:scale(.4);}13.89%,91.11%{opacity:1;transform:none;}95.56%,100%{opacity:0;transform:none;}}
@keyframes fx65{0%,27.00%{opacity:0;transform:scale(.4);}29.78%,91.11%{opacity:1;transform:none;}95.56%,100%{opacity:0;transform:none;}}
@keyframes fx66{0%,24.56%{opacity:0;transform:scale(.4);}27.33%,91.11%{opacity:1;transform:none;}95.56%,100%{opacity:0;transform:none;}}
@keyframes fx67{0%,20.89%{opacity:0;transform:scale(.4);}23.67%,91.11%{opacity:1;transform:none;}95.56%,100%{opacity:0;transform:none;}}
@keyframes fx68{0%,18.44%{opacity:0;transform:scale(.4);}21.22%,91.11%{opacity:1;transform:none;}95.56%,100%{opacity:0;transform:none;}}
@keyframes fx69{0%,14.78%{opacity:0;transform:scale(.4);}17.56%,91.11%{opacity:1;transform:none;}95.56%,100%{opacity:0;transform:none;}}
@keyframes fx70{0%,34.33%{opacity:0;transform:scale(.4);}37.11%,91.11%{opacity:1;transform:none;}95.56%,100%{opacity:0;transform:none;}}
@keyframes fx71{0%,30.67%{opacity:0;transform:scale(.4);}33.44%,91.11%{opacity:1;transform:none;}95.56%,100%{opacity:0;transform:none;}}
@keyframes fx72{0%,28.22%{opacity:0;transform:scale(.4);}31.00%,91.11%{opacity:1;transform:none;}95.56%,100%{opacity:0;transform:none;}}
@keyframes fx73{0%,23.33%{opacity:0;transform:scale(.4);}26.11%,91.11%{opacity:1;transform:none;}95.56%,100%{opacity:0;transform:none;}}
@keyframes fx74{0%,19.67%{opacity:0;transform:scale(.4);}22.44%,91.11%{opacity:1;transform:none;}95.56%,100%{opacity:0;transform:none;}}
@keyframes fx75{0%,38.00%{opacity:0;transform:scale(.4);}40.78%,91.11%{opacity:1;transform:none;}95.56%,100%{opacity:0;transform:none;}}
@keyframes fx76{0%,35.56%{opacity:0;transform:scale(.4);}38.33%,91.11%{opacity:1;transform:none;}95.56%,100%{opacity:0;transform:none;}}
@keyframes fx77{0%,33.11%{opacity:0;transform:scale(.4);}35.89%,91.11%{opacity:1;transform:none;}95.56%,100%{opacity:0;transform:none;}}
@keyframes fx78{0%,29.44%{opacity:0;transform:scale(.4);}32.22%,91.11%{opacity:1;transform:none;}95.56%,100%{opacity:0;transform:none;}}
@keyframes fx79{0%,22.11%{opacity:0;transform:scale(.4);}24.89%,91.11%{opacity:1;transform:none;}95.56%,100%{opacity:0;transform:none;}}
@keyframes fx80{0%,40.44%{opacity:0;transform:scale(.4);}43.22%,91.11%{opacity:1;transform:none;}95.56%,100%{opacity:0;transform:none;}}
@keyframes fx81{0%,39.22%{opacity:0;transform:scale(.4);}42.00%,91.11%{opacity:1;transform:none;}95.56%,100%{opacity:0;transform:none;}}
@keyframes fx82{0%,36.78%{opacity:0;transform:scale(.4);}39.56%,91.11%{opacity:1;transform:none;}95.56%,100%{opacity:0;transform:none;}}
@keyframes fx83{0%,31.89%{opacity:0;transform:scale(.4);}34.67%,91.11%{opacity:1;transform:none;}95.56%,100%{opacity:0;transform:none;}}
@keyframes fx84{0%,25.78%{opacity:0;transform:scale(.4);}28.56%,91.11%{opacity:1;transform:none;}95.56%,100%{opacity:0;transform:none;}}
@keyframes fx85{0%,46.67%{opacity:0;transform:scale(.4);}50.56%,91.11%{opacity:1;transform:none;}95.56%,100%{opacity:0;transform:none;}}
@keyframes fx86{0%,48.89%{opacity:0;}52.78%,91.11%{opacity:1;}95.56%,100%{opacity:0;}}
@keyframes fx87{0%,50.00%{opacity:0;transform:scale(.4);}53.89%,91.11%{opacity:1;transform:none;}95.56%,100%{opacity:0;transform:none;}}
@keyframes fx88{0%,1.11%{opacity:0;}5.00%,93.33%{opacity:1;}97.78%,100%{opacity:0;}}
@keyframes fx89{0%,14.78%{stroke-dashoffset:1;opacity:1}39.44%,92.22%{stroke-dashoffset:0;opacity:1}96.67%,100%{stroke-dashoffset:0;opacity:0}}
@keyframes fx90{0%,54.44%{stroke-dashoffset:1;opacity:1}72.22%,92.22%{stroke-dashoffset:0;opacity:1}96.67%,100%{stroke-dashoffset:0;opacity:0}}
@keyframes fx91{0%,3.33%{offset-distance:0%;opacity:0}5.56%{offset-distance:0%;opacity:1}72.22%{offset-distance:100%;opacity:1}75.56%,100%{offset-distance:100%;opacity:0}}
@keyframes fx92{0%,25.56%{opacity:0;transform:scale(.4);}29.44%,51.11%{opacity:1;transform:none;}55.56%,100%{opacity:0;transform:none;}}
@keyframes fx93{0%,26.67%{opacity:0;transform:translateY(6px);}30.56%,51.11%{opacity:1;transform:none;}55.56%,100%{opacity:0;transform:none;}}
@keyframes fx94{0%,5.56%{stroke-dashoffset:1;opacity:1}72.22%,92.22%{stroke-dashoffset:0;opacity:1}96.67%,100%{stroke-dashoffset:0;opacity:0}}
@keyframes fx95{0%,3.33%{offset-distance:0%;opacity:0}5.56%{offset-distance:0%;opacity:1}72.22%{offset-distance:100%;opacity:1}75.56%,100%{offset-distance:100%;opacity:0}}
@keyframes fx96{0%,25.00%{opacity:0;}29.38%,90.00%{opacity:1;}95.00%,100%{opacity:0;}}
@keyframes fx97{0%{d:path('M150 90Q240 74 330 90Q346 180 330 270Q240 286 150 270Q134 180 150 90Z');opacity:0}3.75%{d:path('M150 90Q240 74 330 90Q346 180 330 270Q240 286 150 270Q134 180 150 90Z');opacity:1}11.25%{d:path('M150 90Q240 74 330 90Q346 180 330 270Q240 286 150 270Q134 180 150 90Z')}25.00%,90.00%{d:path('M150 90Q240 90 330 90Q330 180 330 270Q240 270 150 270Q150 180 150 90Z');opacity:1}95.00%,100%{d:path('M150 90Q240 90 330 90Q330 180 330 270Q240 270 150 270Q150 180 150 90Z');opacity:0}}
@keyframes fx98{0%,3.75%{opacity:0;}8.12%,21.25%{opacity:1;}26.25%,100%{opacity:0;}}
@keyframes fx99{0%,25.00%{opacity:0;}29.38%,90.00%{opacity:1;}95.00%,100%{opacity:0;}}
@keyframes fx100{0%,28.75%{opacity:0;}33.13%,38.75%{opacity:1;}43.75%,100%{opacity:0;}}
@keyframes fx101{0%,53.75%{opacity:0;}60.00%,90.00%{opacity:1;}95.00%,100%{opacity:0;}}
@keyframes fx102{0%,38.75%{stroke-dashoffset:1;opacity:1}53.75%,90.00%{stroke-dashoffset:0;opacity:1}95.00%,100%{stroke-dashoffset:0;opacity:0}}
@keyframes fx103{0%,36.25%{offset-distance:0%;opacity:0}38.75%{offset-distance:0%;opacity:1}53.75%{offset-distance:100%;opacity:1}57.50%,100%{offset-distance:100%;opacity:0}}
@keyframes fx104{0%,55.00%{opacity:0;transform:scale(.4);}59.38%,90.00%{opacity:1;transform:none;}95.00%,100%{opacity:0;transform:none;}}
@keyframes fx105{0%,3.75%{opacity:0;transform:scale(.4);}6.88%,90.00%{opacity:1;transform:none;}95.00%,100%{opacity:0;transform:none;}}
@keyframes fx106{0%,11.25%{opacity:0;transform:scale(.4);}15.63%,90.00%{opacity:1;transform:none;}95.00%,100%{opacity:0;transform:none;}}
@keyframes fx107{0%,5.25%{opacity:0;transform:scale(.4);}8.38%,90.00%{opacity:1;transform:none;}95.00%,100%{opacity:0;transform:none;}}
@keyframes fx108{0%,12.50%{opacity:0;transform:scale(.4);}16.88%,90.00%{opacity:1;transform:none;}95.00%,100%{opacity:0;transform:none;}}
@keyframes fx109{0%,6.75%{opacity:0;transform:scale(.4);}9.88%,90.00%{opacity:1;transform:none;}95.00%,100%{opacity:0;transform:none;}}
@keyframes fx110{0%,13.75%{opacity:0;transform:scale(.4);}18.13%,90.00%{opacity:1;transform:none;}95.00%,100%{opacity:0;transform:none;}}
@keyframes fx111{0%,8.25%{opacity:0;transform:scale(.4);}11.37%,90.00%{opacity:1;transform:none;}95.00%,100%{opacity:0;transform:none;}}
@keyframes fx112{0%,15.00%{opacity:0;transform:scale(.4);}19.38%,90.00%{opacity:1;transform:none;}95.00%,100%{opacity:0;transform:none;}}
@keyframes fx113{0%,12.50%{opacity:0;transform:translate(-46px,30px) rotate(-9deg)}16.25%,23.75%{opacity:1;transform:translate(-46px,30px) rotate(-9deg)}36.25%,85.00%{opacity:1;transform:translate(0,0) rotate(0deg)}90.00%,100%{opacity:0;transform:translate(0,0) rotate(0deg)}}
@keyframes fx114{0%,37.50%{opacity:0;transform:scale(.4);}41.88%,90.00%{opacity:1;transform:none;}95.00%,100%{opacity:0;transform:none;}}

/* ---------- Accueil : cadre des illustrations des pages de fonction ---------- */
.b-art-family {
	position: relative;
	aspect-ratio: 16 / 10;
	overflow: hidden;
	border: 1px solid #E3E7F0;
	border-radius: 18px;
	background: #F7F9FC radial-gradient(circle at 1px 1px, #DCE2EE 1px, transparent 0);
	background-size: 16px 16px;
}

/* ---------- Accueil : aperçu (cœur tracé puis gravé) ---------- */
@keyframes b-g-draw { 0% { stroke-dashoffset: 430; opacity: 1; } 25% { stroke-dashoffset: 0; } 36% { stroke: #6E9BFF; } 42% { stroke: #6E9BFF; } 66% { stroke: #6E9BFF; opacity: 1; } 72% { opacity: .22; } 94% { opacity: .22; stroke-dashoffset: 0; } 100% { opacity: 0; stroke-dashoffset: 0; } }
@keyframes b-g-chip { 0%, 36% { opacity: 0; transform: translateY(8px); } 42%, 94% { opacity: 1; transform: none; } 100% { opacity: 0; } }
@keyframes b-g-wood { 0%, 62% { opacity: 0; } 68%, 94% { opacity: 1; } 100% { opacity: 0; } }
@keyframes b-g-burn { 0%, 66% { stroke-dashoffset: 430; opacity: 1; } 92% { stroke-dashoffset: 0; opacity: 1; } 96% { opacity: 1; } 100% { stroke-dashoffset: 0; opacity: 0; } }
@keyframes b-g-head { 0%, 65.9% { offset-distance: 0%; opacity: 0; } 66% { offset-distance: 0%; opacity: 1; } 92% { offset-distance: 100%; opacity: 1; } 93%, 100% { offset-distance: 100%; opacity: 0; } }
@keyframes b-spn { to { transform: rotate(360deg); } }
@keyframes b-pls { 0% { transform: scale(.2); opacity: .7; } 100% { transform: scale(1); opacity: 0; } }

.b-ha__wood {
	position: absolute;
	left: 50%;
	top: 40px;
	width: 300px;
	height: 216px;
	border-radius: 8px;
	background: #B98A5E repeating-linear-gradient(172deg, rgba(120, 78, 40, .22) 0 2px, transparent 2px 15px);
	opacity: 0;
	transform: translateX(-50%);
	animation: b-g-wood 9s linear infinite;
}

.b-ha__svg {
	position: absolute;
	left: 50%;
	top: 60px;
	overflow: visible;
	transform: translateX(-50%);
}

.b-ha__draw {
	fill: none;
	stroke: #6E9BFF;
	stroke-width: 2.5;
	stroke-linejoin: round;
	stroke-dasharray: 430;
	animation: b-g-draw 9s linear infinite;
}

.b-ha__burn {
	fill: none;
	stroke: #3A1E0E;
	stroke-width: 3;
	stroke-linejoin: round;
	stroke-dasharray: 430;
	animation: b-g-burn 9s linear infinite;
}

.b-ha__head {
	opacity: 0;
	offset-rotate: 0deg;
	animation: b-g-head 9s linear infinite;
}

.b-ha__chip {
	position: absolute;
	left: 16px;
	bottom: 16px;
	display: flex;
	align-items: center;
	gap: 8px;
	padding: 7px 11px;
	border: 1px solid #36363D;
	border-radius: 8px;
	background: #26262B;
	color: #E8E4DC;
	font: 400 12px/1.4 ui-monospace, Menlo, Consolas, monospace;
	animation: b-g-chip 9s linear infinite;
}

.b-ha__chip i {
	width: 10px;
	height: 10px;
	border-radius: 3px;
	background: #6E9BFF;
}

.b-ha__time {
	position: absolute;
	right: 16px;
	top: 14px;
	font: 400 11px/1.4 ui-monospace, Menlo, Consolas, monospace;
	color: #8F8A82;
}

/* ---------- Accueil : connexion (radar) ---------- */
.b-hc {
	position: absolute;
	left: 50%;
	top: 50%;
	width: 280px;
	height: 280px;
	transform: translate(-50%, -50%);
}

.b-hc__ring,
.b-hc__sweep,
.b-hc__pulse {
	position: absolute;
	inset: 0;
	border-radius: 50%;
	border: 1px solid rgba(247, 244, 238, .1);
}

.b-hc__ring.is-2 { inset: 46px; }

.b-hc__ring.is-3 { inset: 92px; }

.b-hc__sweep {
	border: 0;
	background: conic-gradient(from 0deg, rgba(255, 106, 43, 0) 0deg, rgba(255, 106, 43, 0) 280deg, rgba(255, 106, 43, .34) 359deg, rgba(255, 106, 43, 0) 360deg);
	animation: b-spn 2.6s linear infinite;
}

.b-hc__pulse {
	border: 2px solid rgba(255, 106, 43, .5);
	animation: b-pls 2.6s ease-out infinite;
}

.b-hc__spark {
	position: absolute;
	left: 128px;
	top: 122px;
	fill: #F7F4EE;
}

.b-hc__dot {
	position: absolute;
	display: flex;
	align-items: center;
	gap: 6px;
	font: 400 12px/1.4 var(--b-font, sans-serif);
}

.b-hc__dot.is-usb { left: 28px; top: 54px; }

.b-hc__dot.is-net { right: 10px; bottom: 70px; }

.b-hc__dot i {
	width: 12px;
	height: 12px;
	border-radius: 50%;
	background: #FF6A2B;
	box-shadow: 0 0 0 5px rgba(255, 106, 43, .22);
}

.b-hc__dot span {
	padding: 3px 8px;
	border-radius: 6px;
	background: #26262B;
	color: #F7F4EE;
}

.b-hc__label {
	position: absolute;
	left: 0;
	right: 0;
	bottom: 14px;
	margin: 0;
	font: 400 13px/1.4 var(--b-font, sans-serif);
	color: #B4AFA6;
	text-align: center;
}

/* ---------- Logo animé du héros ---------- */
@keyframes b-t2800 { from { stroke-dashoffset: 2800; } to { stroke-dashoffset: 0; } }
@keyframes b-t3300 { from { stroke-dashoffset: 3300; } to { stroke-dashoffset: 0; } }
@keyframes b-mv { 0% { offset-distance: 0%; opacity: 1; } 94% { offset-distance: 100%; opacity: 1; } 100% { offset-distance: 100%; opacity: 0; } }
@keyframes b-fd { from { opacity: 0; } to { opacity: 1; } }

.b-logo-anim { position: relative; overflow: visible; }

.b-logo-anim .is-fill { fill: #0B0F19; opacity: 0; }

.b-logo-anim .is-fill.is-spark { animation: b-fd .6s 1.4s ease both; }

.b-logo-anim .is-fill.is-b { animation: b-fd .6s 2.3s ease both; }

.b-logo-anim .is-stroke {
	fill: none;
	stroke: var(--b-ac, #1D4ED8);
	stroke-width: 9;
	stroke-linejoin: round;
	opacity: 0;
}

.b-logo-anim .is-stroke.is-spark {
	stroke-dasharray: 2800;
	animation: b-t2800 1.2s .25s cubic-bezier(.45, 0, .25, 1) both, b-fd .3s .25s both, b-fd .5s 2.4s ease reverse both;
}

.b-logo-anim .is-stroke.is-b {
	stroke-dasharray: 3300;
	animation: b-t3300 1.5s .9s cubic-bezier(.45, 0, .25, 1) both, b-fd .3s .9s both, b-fd .5s 2.4s ease reverse both;
}

.b-logo-anim .is-dot {
	opacity: 0;
	offset-rotate: 0deg;
}

.b-logo-anim .is-dot.is-spark { animation: b-mv 1.2s .25s cubic-bezier(.45, 0, .25, 1) forwards; }

.b-logo-anim .is-dot.is-b { animation: b-mv 1.5s .9s cubic-bezier(.45, 0, .25, 1) forwards; }

/* ---------- Mouvement réduit : illustrations figées sur une image complète ---------- */
@media (prefers-reduced-motion: reduce) {
	.b-art *,
	.b-art-family * {
		animation-delay: -6.5s !important;
		animation-play-state: paused !important;
	}

	.b-logo-anim .is-fill { animation: none !important; opacity: 1; }

	.b-logo-anim .is-stroke,
	.b-logo-anim .is-dot { display: none; }
}

/* ---------- Page Machines : tête laser ---------- */
@keyframes b-glide { 0% { transform: translateX(-50px); } 50% { transform: translateX(50px); } 100% { transform: translateX(-50px); } }
@keyframes b-flick { 0%, 100% { opacity: .95; } 50% { opacity: .55; } }

.b-art--machines-head {
	height: 300px;
	border-radius: 20px;
}

.b-mh {
	position: absolute;
	left: 50%;
	top: 0;
	transform: translateX(-50%);
}

.b-mh__head { animation: b-glide 4s ease-in-out infinite; }

.b-mh__beam { animation: b-flick .35s ease-in-out infinite; }

.b-art__caption {
	position: absolute;
	left: 0;
	right: 0;
	bottom: 12px;
	margin: 0;
	font: 500 13px/1.4 var(--b-font, sans-serif);
	color: #B4AFA6;
	text-align: center;
}
