/* WORK.SPACE-merkki: neljä samankokoista ruutua painikkeen värillä (--glass), sävyt tummasta vaaleaan.
   .is-loading = lataus: tummin ruutu kiertää myötäpäivään (1,2 s) ja merkki pyörähtää välillä nopeasti (4,8 s).
   Sivupalkissa animaatio vain taustatöille; sivun oma lataus näkyy isona merkkinä sisällön keskellä (.is-page). */
.ws-brand-mark{--t:9px;--g:3px;--r:2px;display:inline-grid;grid-template-columns:repeat(2,var(--t));gap:var(--g);flex:0 0 auto;vertical-align:middle}
.ws-brand-mark i{display:block;width:var(--t);height:var(--t);border-radius:var(--r);background:var(--glass);box-shadow:inset 0 1px rgba(255,255,255,.23);transform-origin:center}
.ws-brand-mark .tl{opacity:1}.ws-brand-mark .bl{opacity:.7}.ws-brand-mark .br{opacity:.45}.ws-brand-mark .tr{opacity:.22}
.ws-brand-mark.is-small{--t:4px;--g:1.5px;--r:1px}
.ws-brand-mark.is-page{--t:15px;--g:5px;--r:3.5px}
@keyframes ws-mark-trail{0%{opacity:1;transform:scale(1)}25%{opacity:.7;transform:scale(.9)}50%{opacity:.45;transform:scale(.8)}75%{opacity:.22;transform:scale(.7)}100%{opacity:1;transform:scale(1)}}
@keyframes ws-mark-spurt{0%,84%{transform:rotate(0deg)}96%,100%{transform:rotate(360deg)}}
.ws-brand-mark.is-loading{animation:ws-mark-spurt 4.8s cubic-bezier(.7,0,.25,1) infinite}
.ws-brand-mark.is-loading i{animation:ws-mark-trail 1.2s linear infinite}
.ws-brand-mark.is-loading .tl{animation-delay:0s}.ws-brand-mark.is-loading .tr{animation-delay:-.9s}.ws-brand-mark.is-loading .br{animation-delay:-.6s}.ws-brand-mark.is-loading .bl{animation-delay:-.3s}
/* Live-teksti kirjoittuu käynnissä olevan päivityksen ajan; ruudunlukija saa koko tekstin kerran. */
.workspace-live-status[data-activity="true"]::before{display:none}
.ws-live-typing{white-space:nowrap}.ws-live-sr{position:absolute;width:1px;height:1px;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
@media(prefers-reduced-motion:reduce){.ws-brand-mark.is-loading,.ws-brand-mark.is-loading i{animation:none}}
