/* Hufi-Icons – gemeinsame Icon-Familie (pascal-schmid.com, später heyhufi.com)
   Nutzung: <span class="hi">SVG</span> oder SVG direkt mit Klasse .hi-svg. Hover/Fokus auf einem Link oder .hi startet die Animation. */
.hi-svg { overflow: visible; transition: transform .45s cubic-bezier(.34,1.56,.64,1); }
.hi-svg .akz { stroke: var(--hi-akzent, #FF6A00); transform-box: fill-box; transform-origin: center; }
.hi-svg .zug { stroke-dasharray: 100; stroke-dashoffset: 0; }
a:hover .hi-svg, a:focus-visible .hi-svg, .hi:hover .hi-svg, .karte:hover .hi-svg { transform: translateY(-1px) scale(1.08) rotate(-4deg); }
a:hover .hi-svg .zug, a:focus-visible .hi-svg .zug, .hi:hover .hi-svg .zug, .karte:hover .hi-svg .zug { animation: hi-zeichnen .8s cubic-bezier(.2,.8,.2,1); }
a:hover .hi-svg .akz, a:focus-visible .hi-svg .akz, .hi:hover .hi-svg .akz, .karte:hover .hi-svg .akz { animation: hi-puls .7s .25s cubic-bezier(.34,1.56,.64,1) both; }
@keyframes hi-zeichnen { from { stroke-dashoffset: 100; } to { stroke-dashoffset: 0; } }
@keyframes hi-puls { 0% { transform: scale(1); } 45% { transform: scale(1.35); } 100% { transform: scale(1); } }
@media (prefers-reduced-motion: reduce) { .hi-svg, .hi-svg .zug, .hi-svg .akz { animation: none !important; transition: none !important; } }
