/* Motion-only additions; no base layout rules are overridden. */
.anim-loader{position:fixed;inset:0;z-index:9999;pointer-events:none;display:grid;place-items:center;color:#f36606}
.anim-backdrop{position:absolute;inset:0;background:#060507}
.anim-loading-ring{position:relative;width:220px;height:220px;transform-origin:center}
.anim-loading-ring svg{position:absolute;inset:0;width:100%;height:100%;fill:none;stroke:currentColor;stroke-width:1}
.anim-loading-ring circle{opacity:.5}.anim-loading-ring circle:first-child{opacity:.22}
.anim-ticks{transform-origin:110px 110px;animation:anim-ticks-spin 22s linear infinite}
.anim-sweep{position:absolute;inset:16px;border-radius:50%;background:conic-gradient(from 0deg,#f3660652,transparent 22%);animation:anim-ticks-spin 5.5s linear infinite;mix-blend-mode:screen}
.anim-core{position:absolute;inset:33%;border-radius:50%;background:radial-gradient(#fefefe,#f36606);box-shadow:0 0 26px 6px #ffffffeb,0 0 72px 24px #f366068c,0 0 150px 50px #f3660638}
.anim-ecg{stroke-width:2.5;position:relative}
.anim-loader-caption{position:absolute;bottom:9%;text-align:center;font:11px/2.4 monospace;letter-spacing:.24em}
.anim-loader-caption span{font-size:18px;font-variant-numeric:tabular-nums}
.anim-chart-area{transform-box:fill-box;transform-origin:50% 100%}
.anim-chart-live .chart-dot{transform-box:fill-box;transform-origin:center;animation:anim-breathe 2.4s ease-in-out infinite}
.anim-chart-live .chart-ring{transform-box:fill-box;transform-origin:center;animation:anim-ping 2.4s ease-out infinite}
@keyframes anim-ticks-spin{to{transform:rotate(360deg)}}
@keyframes anim-breathe{0%,100%{transform:scale(1)}50%{transform:scale(1.35)}}
@keyframes anim-ping{from{transform:scale(1);opacity:.55}to{transform:scale(2.6);opacity:0}}
@media(prefers-reduced-motion:reduce){.anim-loader{display:none}.anim-chart-live .chart-dot,.anim-chart-live .chart-ring,.anim-ticks,.anim-sweep{animation:none!important}.anim-chart-area{transform:none!important}}
