/* Chitta 2.0 animated marks + UI icons */
.cmark{--s:28px;display:inline-grid;place-items:center;width:var(--s);height:var(--s);color:var(--cm);flex:none;transition:transform .25s cubic-bezier(.3,1.6,.5,1),filter .25s;vertical-align:middle}
.cmark svg{width:100%;height:100%;overflow:visible}
.cmark .cm-f{fill:color-mix(in srgb,var(--cm) 22%,transparent);stroke:var(--cm);stroke-width:1.4;stroke-linejoin:round}
.cmark .cm-l{fill:none;stroke:var(--cm);stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.cmark:hover{transform:translateY(-1px) scale(1.1);filter:drop-shadow(0 0 6px color-mix(in srgb,var(--cm) 70%,transparent))}
.cmark:active{transform:scale(.9)}
.cm-morph svg{animation:cmMorph 5s ease-in-out infinite}
.cm-spin svg{animation:cmSpin 14s linear infinite}.cm-spin-slow svg{animation:cmSpin 30s linear infinite}
.cm-glint svg{animation:cmGlint 3.6s ease-in-out infinite}
.cm-pulse svg{animation:cmPulse 2.6s ease-in-out infinite}
.cm-blink .cm-pupil{transform-origin:12px 12px;animation:cmBlink 4.5s ease-in-out infinite}
.cm-ripple .cm-r1{animation:cmFade 2.4s ease-in-out infinite}.cm-ripple .cm-r2{animation:cmFade 2.4s ease-in-out .6s infinite}
.cm-bloom .cm-petals{transform-origin:12px 12px;animation:cmBloom 6s ease-in-out infinite}
.cm-eq .cm-l,.ui-eq path{transform-box:fill-box;transform-origin:center;animation:cmEq 1.1s ease-in-out infinite}
.cm-eq .cm-b2,.ui-eq .ui-b2{animation-delay:.15s}.cm-eq .cm-b3,.ui-eq .ui-b3{animation-delay:.3s}.cm-eq .cm-b4,.ui-eq .ui-b4{animation-delay:.45s}
.cm-sort .cm-l{animation:cmSort 3s ease-in-out infinite}.cm-sort .cm-b2{animation-delay:.2s}.cm-sort .cm-b3{animation-delay:.4s}
.cm-sway svg{transform-origin:5px 19px;animation:cmSway 4s ease-in-out infinite}
.cm-swap .cm-s1{animation:cmBob 3s ease-in-out infinite}.cm-swap .cm-s2{animation:cmBob 3s ease-in-out 1.5s infinite}
.cm-orbit .cm-orb{transform-origin:12px 12px;animation:cmSpin 9s linear infinite}
.cm-zap svg{animation:cmZap 3.2s ease-in-out infinite}
.cm-gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(78px,1fr));gap:10px;margin:8px 0}
.cm-cell{display:flex;flex-direction:column;align-items:center;gap:6px;font-size:11.5px;opacity:.9;padding:8px 4px;border:1px solid var(--line,#333);border-radius:12px}
.uicon{--s:18px;display:inline-grid;place-items:center;width:var(--s);height:var(--s);flex:none;vertical-align:middle}
.uicon svg{width:100%;height:100%;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;overflow:visible;transition:transform .25s cubic-bezier(.3,1.6,.5,1)}
:hover>.uicon.ui-pop svg,.uicon.ui-pop:hover svg{transform:rotate(90deg)}
:hover>.uicon.ui-tilt svg{transform:rotate(-12deg) scale(1.08)}
:hover>.uicon.ui-lift svg{transform:translateY(-1.5px)}
:hover>.uicon.ui-spin svg{transform:rotate(60deg)}
:hover>.uicon.ui-turn svg{transform:rotate(90deg)}
:hover>.uicon.ui-nudge svg{transform:translateX(-2px)}
:hover>.uicon.ui-tick .ui-hand{transform-origin:12px 12px;animation:cmSpin 1.6s linear infinite}
:active>.uicon svg{transform:scale(.88)}
.ui-rec .ui-dot{transform-origin:12px 12px;animation:cmPulse 1.8s ease-in-out infinite;fill:#f87171;stroke:none}
.ui-pulse svg{animation:cmPulse 2.4s ease-in-out infinite}
.st-think .st-d1,.st-think .st-d2,.st-think .st-d3{animation:cmBob 1s ease-in-out infinite}.st-think .st-d2{animation-delay:.15s}.st-think .st-d3{animation-delay:.3s}
.st-check circle{transform-origin:12px 12px;animation:cmSpin 1.4s linear infinite}
.st-done{color:var(--ok,#34d399)}.st-done .st-draw{stroke-dasharray:14;stroke-dashoffset:14;animation:cmDraw .5s ease-out .1s forwards}
.cm-draw{stroke-dasharray:14;stroke-dashoffset:0;animation:cmRedraw 4s ease-in-out infinite}
.st-err{color:#f87171}.st-err svg{animation:cmShake .45s ease-in-out 2}
@keyframes cmSpin{to{transform:rotate(360deg)}}
@keyframes cmMorph{0%,100%{transform:scale(1) rotate(0)}33%{transform:scale(1.05,.95) rotate(4deg)}66%{transform:scale(.96,1.04) rotate(-3deg)}}
@keyframes cmGlint{0%,100%{filter:brightness(1)}50%{filter:brightness(1.45)}}
@keyframes cmPulse{0%,100%{transform:scale(1)}50%{transform:scale(1.07)}}
@keyframes cmBlink{0%,44%,52%,100%{transform:scaleY(1)}48%{transform:scaleY(.12)}}
@keyframes cmFade{0%,100%{opacity:.25}50%{opacity:1}}
@keyframes cmBloom{0%,100%{transform:rotate(0) scale(.96)}50%{transform:rotate(30deg) scale(1.04)}}
@keyframes cmEq{0%,100%{transform:scaleY(.55)}50%{transform:scaleY(1.15)}}
@keyframes cmSort{0%,100%{transform:translateX(0)}50%{transform:translateX(1.5px)}}
@keyframes cmSway{0%,100%{transform:rotate(-4deg)}50%{transform:rotate(4deg)}}
@keyframes cmBob{0%,100%{transform:translateY(0)}50%{transform:translateY(-1.5px)}}
@keyframes cmZap{0%,86%,100%{opacity:1}90%{opacity:.35}94%{opacity:1}97%{opacity:.5}}
@keyframes cmDraw{to{stroke-dashoffset:0}}
@keyframes cmRedraw{0%{stroke-dashoffset:14}20%,100%{stroke-dashoffset:0}}
@keyframes cmShake{0%,100%{transform:translateX(0)}25%{transform:translateX(-2px)}75%{transform:translateX(2px)}}
@media (prefers-reduced-motion:reduce){.cmark svg,.cmark svg *,.uicon svg,.uicon svg *{animation:none!important;transition:none!important}.st-done .st-draw{stroke-dashoffset:0}}
.mr-ic.has-cmark{background:none!important;border:0!important}
.team-row #teamMarks{margin-top:8px}
.cm-cell.soon{opacity:.5}
