/* Lienzo de seda violeta: movimiento lateral y pliegues translúcidos. */
#practicas{position:relative;isolation:isolate}
#practicas>.section-heading,#practicas>.category-grid,#practicas>.sample-note{position:relative;z-index:1}
.practice-ribbon{position:absolute;left:-28px;right:-28px;top:-6px;height:210px;z-index:0;overflow:hidden;pointer-events:none;mask-image:linear-gradient(90deg,#000 0%,#000 18%,transparent 32%,transparent 68%,#000 82%,#000 100%)}
.practice-ribbon svg{width:100%;height:100%;display:block;overflow:visible}
.silk-drift{transform-origin:center;animation:silk-flow 11s ease-in-out infinite alternate}
.silk-shape{animation:silk-wave 9s ease-in-out infinite alternate}
.silk-fold{animation:silk-fold-breathe 9s ease-in-out infinite alternate}
.silk-shimmer{animation:silk-travel 15s linear infinite}
@keyframes silk-flow{from{transform:translate(-18px,4px)}to{transform:translate(24px,-6px)}}
@keyframes silk-fold-breathe{from{opacity:.45;transform:translateY(3px)}to{opacity:.85;transform:translateY(-3px)}}
@keyframes silk-travel{from{transform:translateX(0)}to{transform:translateX(2700px)}}
@keyframes silk-wave{to{d:path('M-100 102C40 138 75 60 180 88S280 135 398 96 530 67 680 102 850 117 1000 87 1160 70 1310 105 1450 118 1570 65 1710 58 1810 103 1910 95 2010 74L2010 113C1890 140 1880 124 1790 142S1660 95 1565 101 1400 148 1295 140 1130 114 1002 122 820 150 675 138 520 115 402 127 267 157 166 130 61 169-100 135Z')}}
.practice-ribbon.is-still *{animation:none!important}
@media(max-width:1150px){.practice-ribbon{left:-20px;right:-20px;mask-image:linear-gradient(90deg,#000 0%,transparent 23%,transparent 77%,#000 100%);height:195px;top:3px}}
@media(max-width:560px){.practice-ribbon{left:-16px;right:-16px;top:0;height:150px;opacity:.6;mask-image:linear-gradient(90deg,#000,transparent 16%,transparent 84%,#000)}.silk-drift{animation-duration:14s}}
@media(prefers-reduced-motion:reduce){.practice-ribbon *{animation:none!important}}
