/* Short transitions support exploration; no continuous decorative animation. */
.connections path { stroke-dasharray:900; stroke-dashoffset:0; animation:map-enter 1.6s ease-out both; }
.map-card { animation:canvas-enter .8s ease-out both; }
.bt-map-node,.ai-map-node,.bt-edges path { transition:background .25s,border-color .25s,opacity .25s,stroke .25s; }
.bt-panel:not([hidden]) { animation:panel-enter .35s ease-out; }
#resources .case { position:relative; padding-bottom:56px; }
#resources .case a { text-decoration:none; }
#resources .case a::after { content:'↗'; position:absolute; bottom:20px; left:0; font-size:28px; }
#resources .case a:hover { text-decoration:underline; text-underline-offset:5px; }
html[lang=fr] .nav { gap:20px; }
html[lang=fr] .bt-edge-label { font-size:10px; }
html[lang=fr] .ai-map-node { padding-inline:8px; }
@keyframes map-enter { from { stroke-dashoffset:900; } to { stroke-dashoffset:0; } }
@keyframes canvas-enter { from { opacity:.3; transform:translateY(18px); } to { opacity:1; transform:translateY(0); } }
@keyframes panel-enter { from { opacity:.4; transform:translateY(8px); } to { opacity:1; transform:translateY(0); } }
@media(prefers-reduced-motion:reduce) {
 html { scroll-behavior:auto; }
 .connections path,.map-card,.bt-panel:not([hidden]) { animation:none; }
 .bt-map-node,.ai-map-node,.bt-edges path { transition:none; }
}
