/* Mi Salón icon micro-animations — parts fire when a [data-ico-host] ancestor is hovered */
/* icon micro-animations — each part is a named piece of the SVG, fired when its host card is hovered */
[data-ico-host] svg * { transform-box: view-box; }
[data-ico-host] svg .draw { stroke-dasharray: 1; stroke-dashoffset: 0; }
[data-ico-host]:hover svg .draw { animation: icDraw 0.5s ease-out both; }
@keyframes icDraw { from { stroke-dashoffset: 1; } to { stroke-dashoffset: 0; } }
@keyframes icDoor { 0%, 100% { transform: scaleX(1); } 50% { transform: scaleX(0.12); } }
@keyframes icShrink { 0%, 100% { transform: scaleY(1); } 50% { transform: scaleY(0.55); } }
@keyframes icGrow { 0%, 100% { transform: scaleY(1); } 50% { transform: scaleY(1.8); } }
@keyframes icRay { 0%, 100% { transform: scale(1); } 50% { transform: scale(1.8); } }
@keyframes icStackMid { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-5px); } }
@keyframes icStackBot { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-10px); } }
@keyframes icSlideL { 0%, 100% { transform: translateX(0); } 50% { transform: translateX(-7px); } }
@keyframes icSlideR { 0%, 100% { transform: translateX(0); } 50% { transform: translateX(7px); } }
@keyframes icLean { 0%, 100% { transform: rotate(0); } 50% { transform: rotate(-16deg); } }
@keyframes icPull { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-3px); } }
@keyframes icFlipPage { 0% { transform: scaleX(1); } 50% { transform: scaleX(-1); } 100% { transform: scaleX(1); } }
@keyframes icFlap { 0%, 100% { transform: scaleY(1); } 50% { transform: scaleY(0.45); } }
@keyframes icQuarter { to { transform: rotate(90deg); } }
@keyframes icHalf { to { transform: rotate(180deg); } }
@keyframes icBackFull { to { transform: rotate(-360deg); } }
@keyframes icPop { 0% { transform: scale(0); } 70% { transform: scale(1.3); } 100% { transform: scale(1); } }
@keyframes icTwinkle { 0%, 100% { transform: scale(1); opacity: 1; } 50% { transform: scale(1.6); opacity: 0.4; } }
@keyframes icTwist { 0%, 100% { transform: rotate(0); } 50% { transform: rotate(18deg); } }
@keyframes icLight { 0% { opacity: 0.2; } 100% { opacity: 1; } }
@keyframes icStretchX { 0%, 100% { transform: scaleX(1); } 50% { transform: scaleX(1.22); } }
@keyframes icHead { 0%, 100% { transform: translateX(0); } 50% { transform: translateX(3px); } }
@keyframes icUpRight { 0%, 100% { transform: translate(0, 0); } 50% { transform: translate(2.5px, -2.5px); } }
@keyframes icHop { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes icBob { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(2.5px); } }
@keyframes icWrite { 0%, 100% { transform: translate(0, 0) rotate(0); } 30% { transform: translate(-1.5px, 1.5px) rotate(-5deg); } 70% { transform: translate(1.5px, -1px) rotate(4deg); } }
@keyframes icBlink { 0%, 100% { opacity: 1; } 50% { opacity: 0; } }
@keyframes icTilt { 0%, 100% { transform: rotate(0); } 30% { transform: rotate(-9deg); } 70% { transform: rotate(9deg); } }
@keyframes icWobble { 0%, 100% { transform: rotate(0); } 30% { transform: rotate(-14deg); } 70% { transform: rotate(14deg); } }
@keyframes icStretchY { 0%, 100% { transform: scaleY(1); } 50% { transform: scaleY(1.3); } }
@keyframes icPuff { 0%, 100% { transform: scale(1); } 50% { transform: scale(1.1); } }
@keyframes icFadeIn { 0% { opacity: 0.15; } 100% { opacity: 1; } }
@keyframes icWave { 0%, 100% { opacity: 0.2; } 50% { opacity: 1; } }
@keyframes icLid { 0%, 100% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-2.5px) rotate(-12deg); } }
.E { animation-timing-function: cubic-bezier(0.34, 1.56, 0.64, 1); }
[data-ico-host]:hover .ic-House .door { animation: icDoor 0.9s ease-in-out both; }
[data-ico-host]:hover .ic-LayoutDashboard .tall { animation: icShrink 0.9s ease-in-out both; }
[data-ico-host]:hover .ic-LayoutDashboard .small { animation: icGrow 0.9s ease-in-out both; }
[data-ico-host]:hover .ic-Sun .rayA { animation: icRay 0.8s ease-in-out infinite; }
[data-ico-host]:hover .ic-Sun .rayB { animation: icRay 0.8s ease-in-out 0.4s infinite; }
[data-ico-host]:hover .ic-LayoutList .c2 { animation-delay: 0.3s; }
[data-ico-host]:hover .ic-Layers .mid { animation: icStackMid 0.8s cubic-bezier(0.34, 1.56, 0.64, 1) both; }
[data-ico-host]:hover .ic-Layers .bot { animation: icStackBot 0.8s cubic-bezier(0.34, 1.56, 0.64, 1) both; }
[data-ico-host]:hover .ic-SlidersHorizontal .k1 { animation: icSlideL 0.9s ease-in-out both; }
[data-ico-host]:hover .ic-SlidersHorizontal .k2 { animation: icSlideR 0.9s ease-in-out 0.1s both; }
[data-ico-host]:hover .ic-SlidersHorizontal .k3 { animation: icSlideL 0.9s ease-in-out 0.2s both; }
[data-ico-host]:hover .ic-Library .lean { animation: icLean 0.9s cubic-bezier(0.34, 1.56, 0.64, 1) both; }
[data-ico-host]:hover .ic-Library .b1 { animation: icPull 0.6s ease-in-out both; }
[data-ico-host]:hover .ic-Library .b2 { animation: icPull 0.6s ease-in-out 0.12s both; }
[data-ico-host]:hover .ic-Library .b3 { animation: icPull 0.6s ease-in-out 0.24s both; }
[data-ico-host]:hover .ic-BookOpen .page { animation: icFlipPage 0.9s ease-in-out both; }
[data-ico-host]:hover .ic-FolderOpen .flap { animation: icFlap 0.9s ease-in-out both; }
[data-ico-host]:hover .ic-Plus .all { animation: icQuarter 0.45s cubic-bezier(0.34, 1.56, 0.64, 1) both; }
[data-ico-host]:hover .ic-FilePlus .plus { animation: icPop 0.5s cubic-bezier(0.34, 1.56, 0.64, 1) both; }
[data-ico-host]:hover .ic-Sparkles .s1 { animation: icTwinkle 0.7s ease-in-out infinite; }
[data-ico-host]:hover .ic-Sparkles .s2 { animation: icTwinkle 0.7s ease-in-out 0.35s infinite; }
[data-ico-host]:hover .ic-Sparkles .big { animation: icTwist 0.9s ease-in-out both; }
[data-ico-host]:hover .ic-Settings2 .kA { animation: icSlideR 0.9s ease-in-out both; }
[data-ico-host]:hover .ic-Settings2 .kB { animation: icSlideL 0.9s ease-in-out both; }
[data-ico-host]:hover .ic-Building2 .w4 { animation: icLight 0.3s ease-out both; }
[data-ico-host]:hover .ic-Building2 .w3 { animation: icLight 0.3s ease-out 0.12s both; }
[data-ico-host]:hover .ic-Building2 .w2 { animation: icLight 0.3s ease-out 0.24s both; }
[data-ico-host]:hover .ic-Building2 .w1 { animation: icLight 0.3s ease-out 0.36s both; }
[data-ico-host]:hover .ic-ArrowRight .shaft { animation: icStretchX 0.7s cubic-bezier(0.34, 1.56, 0.64, 1) infinite; }
[data-ico-host]:hover .ic-ArrowRight .head { animation: icHead 0.7s cubic-bezier(0.34, 1.56, 0.64, 1) infinite; }
[data-ico-host]:hover .ic-ExternalLink .arrow { animation: icUpRight 0.7s cubic-bezier(0.34, 1.56, 0.64, 1) infinite; }
[data-ico-host]:hover .ic-UserPlus .plus { animation: icPop 0.5s cubic-bezier(0.34, 1.56, 0.64, 1) both; }
[data-ico-host]:hover .ic-UserPlus .person { animation: icHop 0.5s ease-in-out both; }
[data-ico-host]:hover .ic-ArrowUpRight .all { animation: icUpRight 0.7s cubic-bezier(0.34, 1.56, 0.64, 1) infinite; }
[data-ico-host]:hover .ic-ChevronDown .all { animation: icHalf 0.45s cubic-bezier(0.34, 1.56, 0.64, 1) both; }
[data-ico-host]:hover .ic-ChevronRight .all { animation: icQuarter 0.45s cubic-bezier(0.34, 1.56, 0.64, 1) both; }
[data-ico-host]:hover .ic-CircleChevronDown .chev { animation: icBob 0.6s ease-in-out infinite; }
[data-ico-host]:hover .ic-Pencil .pen, [data-ico-host]:hover .ic-PenLine .pen, [data-ico-host]:hover .ic-SquarePen .pen, [data-ico-host]:hover .ic-FilePen .pen { animation: icWrite 0.6s ease-in-out infinite; }
[data-ico-host]:hover .ic-TextCursorInput .cursor { animation: icBlink 0.7s steps(1) infinite; }
[data-ico-host]:hover .ic-Filter .all { animation: icTilt 0.7s ease-in-out both; }
[data-ico-host]:hover .ic-CircleHelp .q { animation: icWobble 0.7s ease-in-out both; }
[data-ico-host]:hover .ic-CircleHelp .dot { animation: icHop 0.5s ease-in-out 0.2s both; }
[data-ico-host]:hover .ic-Info .dot { animation: icHop 0.5s cubic-bezier(0.34, 1.56, 0.64, 1) both; }
[data-ico-host]:hover .ic-Info .bar { animation: icStretchY 0.5s ease-in-out both; }
[data-ico-host]:hover .ic-MessageCircleQuestion .bubble { animation: icPuff 0.6s cubic-bezier(0.34, 1.56, 0.64, 1) both; }
[data-ico-host]:hover .ic-MessageCircleQuestion .q { animation: icFadeIn 0.6s ease-out both; }
[data-ico-host]:hover .ic-Radio .wIn { animation: icWave 1s ease-in-out infinite; }
[data-ico-host]:hover .ic-Radio .wOut { animation: icWave 1s ease-in-out 0.25s infinite; }
[data-ico-host]:hover .ic-Radio .dot { animation: icPuff 1s ease-in-out infinite; }
[data-ico-host]:hover .ic-ShoppingBag .handle { animation: icStretchY 0.6s cubic-bezier(0.34, 1.56, 0.64, 1) both; }
[data-ico-host]:hover .ic-ShoppingBag .bag { animation: icHop 0.6s ease-in-out both; }
[data-ico-host]:hover .ic-X .all, [data-ico-host]:hover .ic-CircleX .x { animation: icQuarter 0.45s cubic-bezier(0.34, 1.56, 0.64, 1) both; }
[data-ico-host]:hover .ic-Trash2 .lid { animation: icLid 0.8s cubic-bezier(0.34, 1.56, 0.64, 1) both; }
[data-ico-host]:hover .ic-RotateCcw .all { animation: icBackFull 0.9s cubic-bezier(0.22, 0.61, 0.36, 1) both; }
[data-ico-host]:hover .ic-History .hands { animation: icBackFull 1s cubic-bezier(0.22, 0.61, 0.36, 1) both; }

/* Resource-type icons */
@keyframes icPrint { 0% { transform: translateY(-5px); opacity: 0.2; } 100% { transform: translateY(0); opacity: 1; } }
@keyframes icGrowBar { 0% { transform: scaleY(0); } 100% { transform: scaleY(1); } }
@keyframes icSnipA { 0%, 100% { transform: rotate(0); } 50% { transform: rotate(-12deg); } }
@keyframes icSnipB { 0%, 100% { transform: rotate(0); } 50% { transform: rotate(12deg); } }
@keyframes icClap { 0%, 100% { transform: rotate(0); } 40% { transform: rotate(-22deg); } }
@keyframes icPress { 0%, 100% { transform: scale(1); } 40% { transform: scale(0.82); } }
@keyframes icSlideNext { 0% { transform: translateX(0); } 45% { transform: translateX(-9px); opacity: 0; } 55% { transform: translateX(9px); opacity: 0; } 100% { transform: translateX(0); opacity: 1; } }
[data-ico-host]:hover svg .draw.d2 { animation-delay: 0.15s; }
[data-ico-host]:hover svg .draw.d3 { animation-delay: 0.3s; }
[data-ico-host]:hover .ic-Printer .paper { animation: icPrint 0.7s cubic-bezier(0.22, 0.61, 0.36, 1) both; }
[data-ico-host]:hover .ic-FileDown .arrow { animation: icBob 0.6s ease-in-out infinite; }
[data-ico-host]:hover .ic-Scissors .bladeA { animation: icSnipA 0.5s ease-in-out infinite; }
[data-ico-host]:hover .ic-Scissors .bladeB { animation: icSnipB 0.5s ease-in-out infinite; }
[data-ico-host]:hover .ic-Play .all { animation: icPuff 0.7s cubic-bezier(0.34, 1.56, 0.64, 1) infinite; }
[data-ico-host]:hover .ic-Video .cam { animation: icTilt 0.8s ease-in-out both; }
[data-ico-host]:hover .ic-Clapperboard .top { animation: icClap 0.7s cubic-bezier(0.34, 1.56, 0.64, 1) both; }
[data-ico-host]:hover .ic-MonitorPlay .tri { animation: icPop 0.5s cubic-bezier(0.34, 1.56, 0.64, 1) both; }
[data-ico-host]:hover .ic-Film .f1 { animation: icWave 0.8s ease-in-out infinite; }
[data-ico-host]:hover .ic-Film .f2 { animation: icWave 0.8s ease-in-out 0.4s infinite; }
[data-ico-host]:hover .ic-Presentation .all { animation: icTilt 0.9s ease-in-out both; }
[data-ico-host]:hover .ic-GalleryHorizontal .all { animation: icSlideNext 0.8s ease-in-out both; }
[data-ico-host]:hover .ic-Projector .r1 { animation: icTwinkle 0.7s ease-in-out infinite; }
[data-ico-host]:hover .ic-Projector .r2 { animation: icTwinkle 0.7s ease-in-out 0.2s infinite; }
[data-ico-host]:hover .ic-Projector .r3 { animation: icTwinkle 0.7s ease-in-out 0.4s infinite; }
[data-ico-host]:hover .ic-LayoutTemplate .top { animation: icShrink 0.8s ease-in-out both; }
[data-ico-host]:hover .ic-LayoutTemplate .bl { animation: icPull 0.6s ease-in-out both; }
[data-ico-host]:hover .ic-LayoutTemplate .br { animation: icPull 0.6s ease-in-out 0.15s both; }
[data-ico-host]:hover .ic-ChartSlide .b1, [data-ico-host]:hover .ic-BarChart .b1 { animation: icGrowBar 0.5s cubic-bezier(0.34, 1.56, 0.64, 1) both; }
[data-ico-host]:hover .ic-ChartSlide .b2, [data-ico-host]:hover .ic-BarChart .b2 { animation: icGrowBar 0.5s cubic-bezier(0.34, 1.56, 0.64, 1) 0.12s both; }
[data-ico-host]:hover .ic-ChartSlide .b3, [data-ico-host]:hover .ic-BarChart .b3 { animation: icGrowBar 0.5s cubic-bezier(0.34, 1.56, 0.64, 1) 0.24s both; }
[data-ico-host]:hover .ic-MousePointerClick .ptr { animation: icPress 0.6s ease-in-out both; }
[data-ico-host]:hover .ic-MousePointerClick .spark { animation: icPop 0.5s cubic-bezier(0.34, 1.56, 0.64, 1) 0.25s both; }
[data-ico-host]:hover .ic-Puzzle .piece { animation: icWobble 0.8s ease-in-out both; }
[data-ico-host]:hover .ic-Gamepad2 .all { animation: icWobble 0.8s ease-in-out both; }
[data-ico-host]:hover .ic-Gamepad2 .btn { animation: icBlink 0.4s steps(1) infinite; }
[data-ico-host]:hover .ic-Gamepad2 .b2 { animation-delay: 0.2s; }
[data-ico-host]:hover .ic-Move .u { animation: icHop 0.7s ease-in-out infinite; }
[data-ico-host]:hover .ic-Move .d { animation: icBob 0.7s ease-in-out infinite; }
[data-ico-host]:hover .ic-Move .l { animation: icSlideL 0.7s ease-in-out infinite; transform-origin: 4px 12px; }
[data-ico-host]:hover .ic-Move .r { animation: icSlideR 0.7s ease-in-out infinite; }
[data-ico-host]:hover .ic-Shapes .tri { animation: icTwist 0.8s ease-in-out both; }
[data-ico-host]:hover .ic-Shapes .sq { animation: icHop 0.6s ease-in-out 0.1s both; }
[data-ico-host]:hover .ic-Shapes .ci { animation: icPuff 0.6s cubic-bezier(0.34, 1.56, 0.64, 1) 0.2s both; }
[data-ico-host]:hover .ic-Package .all { animation: icHop 0.6s cubic-bezier(0.34, 1.56, 0.64, 1) both; }
[data-ico-host]:hover .ic-Blocks .b1 { animation: icPull 0.7s cubic-bezier(0.34, 1.56, 0.64, 1) both; }
[data-ico-host]:hover .ic-Magnet .all { animation: icWobble 0.8s ease-in-out both; }
[data-ico-host]:hover .ic-Tiles .t1 { animation: icPop 0.45s cubic-bezier(0.34, 1.56, 0.64, 1) both; }
[data-ico-host]:hover .ic-Tiles .t2 { animation: icPop 0.45s cubic-bezier(0.34, 1.56, 0.64, 1) 0.1s both; }
[data-ico-host]:hover .ic-Tiles .t3 { animation: icPop 0.45s cubic-bezier(0.34, 1.56, 0.64, 1) 0.2s both; }
[data-ico-host]:hover .ic-Tiles .t4 { animation: icPop 0.45s cubic-bezier(0.34, 1.56, 0.64, 1) 0.3s both; }
[data-ico-host]:hover .ic-Backpack .all { animation: icHop 0.6s ease-in-out both; }
[data-ico-host]:hover .ic-Backpack .strap { animation: icStretchY 0.6s ease-in-out both; }
[data-ico-host]:hover .ic-Ruler .all { animation: icTilt 0.8s ease-in-out both; }
[data-ico-host]:hover .ic-Target .r2 { animation: icPuff 0.8s ease-in-out infinite; }
[data-ico-host]:hover .ic-Target .r1 { animation: icPuff 0.8s ease-in-out 0.2s infinite; }
[data-ico-host]:hover .ic-Users .p1 { animation: icHop 0.6s ease-in-out both; }
[data-ico-host]:hover .ic-Users .p2 { animation: icHop 0.6s ease-in-out 0.15s both; }
[data-ico-host]:hover .ic-Heart .all { animation: icPuff 0.6s cubic-bezier(0.34, 1.56, 0.64, 1) infinite; }
[data-ico-host]:hover .ic-HandHeart .heart { animation: icPuff 0.6s cubic-bezier(0.34, 1.56, 0.64, 1) infinite; }
[data-ico-host]:hover .ic-Mailbox .flag { animation: icStretchY 0.6s cubic-bezier(0.34, 1.56, 0.64, 1) both; }
[data-ico-host]:hover .ic-Baby .all { animation: icWobble 0.8s ease-in-out both; }
[data-ico-host]:hover .ic-ArrowLeft .head { animation: icSlideL 0.7s cubic-bezier(0.34, 1.56, 0.64, 1) infinite; transform-origin: 12px 12px; }
[data-ico-host]:hover .ic-Eye .pupil { animation: icPuff 0.6s ease-in-out both; }
[data-ico-host]:hover .ic-Search .all { animation: icWobble 0.7s ease-in-out both; }
