/* industry-proptech.html — hero animation (prefix: pt-)
   Theme: Property listing card → applicant risk score → maintenance queue → lease signed */
@keyframes ptGlow { 0%,100% { opacity: 0.08; } 50% { opacity: 0.2; } }
@keyframes ptFade { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: translateY(0); } }
@keyframes ptWindow { 0%,100% { opacity: 0.4; } 50% { opacity: 0.9; } }
@keyframes ptMeter { from { width: 0; } to { width: 92px; } }
@keyframes ptFlow { 0% { stroke-dashoffset: 16; opacity: 0; } 25% { opacity: 1; } 75% { opacity: 1; } 100% { stroke-dashoffset: 0; opacity: 0; } }
@keyframes ptSig { from { stroke-dashoffset: 120; } to { stroke-dashoffset: 0; } }
.pt-glow    { animation: ptGlow 3.5s ease-in-out infinite; }
.pt-listing { animation: ptFade 0.5s var(--ease-spring) 0.4s both; }
.pt-windows rect:nth-child(odd)  { animation: ptWindow 3s ease-in-out 1.2s infinite; }
.pt-windows rect:nth-child(3n)   { animation: ptWindow 3.6s ease-in-out 1.5s infinite; }
.pt-score   { animation: ptFade 0.5s var(--ease-spring) 0.7s both; }
.pt-meter   { animation: ptMeter 1s var(--ease-out) 1.3s both; }
.pt-ops     { animation: ptFade 0.5s var(--ease-spring) 0.95s both; }
.pt-lease   { animation: ptFade 0.5s var(--ease-spring) 1.2s both; }
.pt-sig     { stroke-dasharray: 120; animation: ptSig 1.4s ease-out 1.7s both; }
.pt-flow    { stroke-dasharray: 6; }
.pt-f1 { animation: ptFlow 2.4s linear 1.5s infinite; }
.pt-f2 { animation: ptFlow 2.4s linear 1.7s infinite; }
.pt-f3 { animation: ptFlow 2.4s linear 1.9s infinite; }
