/* Skjermio character universe. The characters are the original artwork cut into layers (see
   characters-sprites.css, generated by server/tools/build_characters.py). Every character is always
   moving; data-state decides what the motion means: idle, busy, success (one-shot, then idle),
   error (one-shot, then a worried loop) and sleep (waiting/offline). Motion is transforms and opacity
   only, so each layer is composited on the GPU. */
.char{position:relative;display:inline-block;flex:0 0 auto;width:var(--cs,64px);line-height:0;--spd:1;--amp:1}
.char .rig{position:absolute;inset:0;display:block;transform-origin:50% 100%}
.char i,.char u{position:absolute;display:block;background-repeat:no-repeat;pointer-events:none;transform-origin:50% 50%}
.char[data-state="busy"]{--spd:2.2}
.char[data-state="sleep"]{--spd:.45}
.char[data-vis="0"] *{animation-play-state:paused!important}

@keyframes c-bob{0%,100%{transform:translateY(0)}50%{transform:translateY(calc(var(--bob,-1.6%)*var(--amp)))}}
@keyframes c-sway{0%,100%{transform:rotate(calc(var(--sw,3deg)*-1*var(--amp)))}50%{transform:rotate(calc(var(--sw,3deg)*var(--amp)))}}
@keyframes c-wag{0%,100%{transform:rotate(calc(var(--sw,12deg)*-1*var(--amp)))}50%{transform:rotate(calc(var(--sw,12deg)*var(--amp)))}}
@keyframes c-step-a{0%,100%{transform:rotate(calc(-10deg*var(--amp)))}50%{transform:rotate(calc(10deg*var(--amp)))}}
@keyframes c-step-b{0%,100%{transform:rotate(calc(10deg*var(--amp)))}50%{transform:rotate(calc(-10deg*var(--amp)))}}
@keyframes c-hop{0%,100%{transform:translateY(0)}40%{transform:translateY(calc(var(--hop,-7%)*var(--amp)))}}
@keyframes c-shake{0%,100%{transform:translateX(0)}20%{transform:translateX(calc(-2.4%*var(--amp)))}40%{transform:translateX(calc(2.4%*var(--amp)))}60%{transform:translateX(calc(-1.6%*var(--amp)))}80%{transform:translateX(calc(1.2%*var(--amp)))}}
@keyframes c-blink{0%,90%,100%{transform:scaleY(1)}94%{transform:scaleY(.08)}}
@keyframes c-prop{0%,100%{transform:scaleX(1)}50%{transform:scaleX(.18)}}
@keyframes c-drift{0%,100%{transform:translateX(calc(-6%*var(--amp)))}50%{transform:translateX(calc(8%*var(--amp)))}}
@keyframes c-scan{0%,18%{transform:translateX(0)}30%,48%{transform:translateX(calc(22%*var(--amp)))}60%,78%{transform:translateX(calc(-20%*var(--amp)))}100%{transform:translateX(0)}}
@keyframes c-breathe{0%,100%{transform:scaleY(1)}50%{transform:scaleY(calc(1 + .035*var(--amp)))}}
@keyframes c-flick{0%,100%{opacity:0;transform:translateX(8%)}30%{opacity:1}100%{opacity:0;transform:translateX(-10%)}}
@keyframes c-puff{0%{opacity:.9;transform:translate(0,0) scale(.5)}100%{opacity:0;transform:translate(-120%,-160%) scale(1.5)}}
@keyframes c-float{0%{opacity:0;transform:translateY(0)}25%{opacity:1}100%{opacity:0;transform:translateY(-90%)}}
@keyframes c-ping{0%{opacity:.9;transform:scale(.3)}100%{opacity:0;transform:scale(1.5)}}
@keyframes c-spin{to{transform:rotate(360deg)}}
@keyframes c-loop{0%{transform:translateY(0) rotate(0)}45%{transform:translateY(-14%) rotate(-180deg)}100%{transform:translateY(0) rotate(-360deg)}}
@keyframes c-wheelie{0%,100%{transform:rotate(0)}30%,70%{transform:rotate(-11deg)}}
@keyframes c-drop{0%{transform:translateY(0) rotate(0)}100%{transform:translateY(8%) rotate(9deg)}}
@keyframes c-burst{0%{opacity:0;transform:scale(.2) rotate(0)}35%{opacity:1;transform:scale(1.1) rotate(25deg)}100%{opacity:0;transform:scale(1.6) rotate(60deg)}}
@keyframes c-dash{from{background-position:0 0}to{background-position:-48px 0}}
@keyframes c-sigh{0%,100%{transform:scale(1)}40%{transform:scale(1.06,1.1)}}

/* Eyes blink on every character; sleeping eyes are closed; worried eyes are wide. */
.char [data-part="eyes"],.char [data-part="eye"],.char [data-part="tv-eyes"]{animation:c-blink 4.6s ease-in-out infinite}
.char[data-state="sleep"] [data-part="eyes"],.char[data-state="sleep"] [data-part="eye"],.char[data-state="sleep"] [data-part="tv-eyes"]{animation:none;transform:scaleY(.1)}
.char[data-state="error"] [data-part="eyes"],.char[data-state="error"] [data-part="eye"]{animation:none;transform:scale(1.15)}
.char [data-part="speed"],.char [data-part="ticks"]{opacity:0}
.char[data-state="busy"] [data-part="speed"],.char[data-state="busy"] [data-part="ticks"]{animation:c-flick calc(.9s / var(--spd)) linear infinite}
.char[data-state="error"] [data-part="ticks"]{animation:c-flick .6s linear infinite}
.char [data-fx]{opacity:0}

/* Sveve and Flytte: box helicopters. */
.char-sveve .rig,.char-flytte .rig{animation:c-bob calc(2.4s / var(--spd)) ease-in-out infinite;--bob:-2.6%}
.char-sveve [data-part="rotor"],.char-flytte [data-part="rotor"]{animation:c-prop calc(.3s / var(--spd)) linear infinite}
.char-sveve [data-part="load"],.char-flytte [data-part="load"]{animation:c-sway calc(2.8s / var(--spd)) ease-in-out infinite;--sw:2.4deg}
.char-sveve [data-part="arm"]{animation:c-sway calc(2.2s / var(--spd)) ease-in-out infinite;--sw:9deg}
.char-sveve [data-part="legs"],.char-flytte [data-part="legs"]{animation:c-sway calc(1.6s / var(--spd)) ease-in-out infinite;--sw:3deg}
.char-sveve [data-part="cloud-a"],.char-flytte [data-part="cloud-a"]{animation:c-drift calc(7s / var(--spd)) ease-in-out infinite}
.char-sveve [data-part="cloud-b"],.char-flytte [data-part="cloud-b"]{animation:c-drift calc(9s / var(--spd)) ease-in-out infinite reverse}
.char-sveve[data-state="busy"] .rig,.char-flytte[data-state="busy"] .rig{animation:c-bob .55s ease-in-out infinite;rotate:4deg}
.char-sveve[data-state="success"] .rig,.char-flytte[data-state="success"] .rig{animation:c-loop 1.3s ease-in-out 1,c-bob 2.4s ease-in-out 1.3s infinite;--bob:-2.6%}
.char-sveve[data-state="error"] .rig,.char-flytte[data-state="error"] .rig{animation:c-shake .55s ease-in-out 2,c-bob 3s ease-in-out 1.1s infinite;--bob:-1%}
.char-sveve[data-state="error"] [data-part="load"],.char-flytte[data-state="error"] [data-part="load"]{animation:c-drop .8s ease-out 1 forwards,c-sway 1.1s ease-in-out .8s infinite;--sw:8deg}
.char-sveve[data-state="error"] [data-part="rotor"],.char-flytte[data-state="error"] [data-part="rotor"]{animation:c-prop .8s linear infinite}
.char-sveve[data-state="sleep"] [data-part="rotor"],.char-flytte[data-state="sleep"] [data-part="rotor"]{animation:c-prop 1.8s linear infinite}

/* Levere: the courier cat. */
.char-levere .rig{transform-origin:41% 90%;animation:c-bob .14s ease-in-out infinite;--bob:-.35%}
.char-levere [data-part="head"]{animation:c-sway calc(1.8s / var(--spd)) ease-in-out infinite;--sw:4deg}
.char-levere [data-part="cargo"]{animation:c-sway calc(2.6s / var(--spd)) ease-in-out infinite;--sw:1.2deg}
.char-levere [data-part="dust"]{transform-origin:100% 100%;animation:c-breathe calc(2.2s / var(--spd)) ease-in-out infinite}
.char-levere[data-state="busy"] .rig{animation:c-bob .34s ease-in-out infinite;--bob:-1.4%}
.char-levere[data-state="busy"] [data-part="cargo"]{--sw:3deg}
.char-levere[data-state="busy"] [data-part="head"]{--sw:6deg}
.char-levere[data-state="busy"] [data-part="dust"]{animation:c-drift .6s ease-in-out infinite}
.char-levere[data-state="success"] .rig{animation:c-wheelie 1.5s ease-in-out 1,c-bob .14s ease-in-out 1.5s infinite;--bob:-.35%}
.char-levere[data-state="success"] [data-part="head"]{animation:c-sway .4s ease-in-out 4,c-sway 1.8s ease-in-out 1.6s infinite;--sw:7deg}
.char-levere[data-state="error"] .rig{animation:c-shake .5s ease-in-out 3}
.char-levere[data-state="error"] [data-part="cargo"]{animation:c-sway 1.2s ease-in-out infinite;--sw:5deg;rotate:3deg}
.char-levere[data-state="sleep"] .rig{animation:none}
.char-levere[data-state="sleep"] [data-part="head"]{animation:c-sway 3.4s ease-in-out infinite;--sw:9deg}
.char-levere [data-fx="wheel-a"],.char-levere [data-fx="wheel-b"]{width:20.5%;height:18.8%;border-radius:50%;background:repeating-conic-gradient(rgba(16,24,39,.5) 0 10deg,transparent 10deg 30deg)}
.char-levere [data-fx="wheel-a"]{left:30.9%;top:77.2%}
.char-levere [data-fx="wheel-b"]{left:73.2%;top:77.7%}
.char-levere[data-state="busy"] [data-fx^="wheel"]{opacity:1;animation:c-spin .35s linear infinite}
.char-levere [data-fx="road"]{left:0;bottom:-1%;width:100%;height:1.6%;background:repeating-linear-gradient(90deg,#f0b27a 0 14px,transparent 14px 48px);background-size:48px 100%}
.char-levere[data-state="busy"] [data-fx="road"]{opacity:1;animation:c-dash .4s linear infinite}
.char-levere [data-fx^="smoke"]{left:20%;top:77%;width:4.6%;height:4.2%;border-radius:50%;background:#fff9ed;border:2px solid #101827;animation:c-puff calc(2s / var(--spd)) ease-out infinite;opacity:1}
.char-levere [data-fx="smoke-b"]{left:17%;top:73%;width:3.4%;height:3.1%;animation-delay:.7s}
.char-levere [data-fx^="star"]{width:6%;height:5.6%;background:#fbd126;clip-path:polygon(50% 0,61% 35%,98% 35%,68% 57%,79% 91%,50% 70%,21% 91%,32% 57%,2% 35%,39% 35%)}
.char-levere [data-fx="star-a"]{left:44%;top:4%}.char-levere [data-fx="star-b"]{left:80%;top:12%}.char-levere [data-fx="star-c"]{left:22%;top:14%}
.char-levere[data-state="success"] [data-fx^="star"]{animation:c-burst 1.1s ease-out 2}
.char-levere [data-fx="drop"]{left:84%;top:46%;width:3.4%;height:5.2%;border-radius:50% 50% 50% 50%/65% 65% 35% 35%;background:#219ff1;border:2px solid #101827}
.char-levere[data-state="error"] [data-fx="drop"],.char-levere[data-state="sleep"] [data-fx="drop"]{opacity:1;animation:c-float 1.6s ease-in infinite}

/* Overvåke: the watcher. */
.char-overvake .rig{animation:c-bob calc(1.8s / var(--spd)) ease-in-out infinite;--bob:-1.4%}
.char-overvake [data-part="leg-a"],.char-overvake [data-part="leg-c"],.char-overvake [data-part="leg-e"]{animation:c-step-a calc(.9s / var(--spd)) ease-in-out infinite}
.char-overvake [data-part="leg-b"],.char-overvake [data-part="leg-d"]{animation:c-step-b calc(.9s / var(--spd)) ease-in-out infinite}
.char-overvake [data-part="tail"]{animation:c-wag calc(1.4s / var(--spd)) ease-in-out infinite;--sw:5deg}
.char-overvake [data-part="eyes"]{animation:c-scan calc(4.8s / var(--spd)) ease-in-out infinite,c-blink 4.6s ease-in-out infinite}
.char-overvake [data-fx="ping"]{left:36%;top:-2%;width:18%;height:25%;border-radius:50%;border:3px solid #f19aba}
.char-overvake [data-fx="zz"],.char-slappe [data-fx="zz"]{font:700 18px/1 system-ui,sans-serif;color:#101827;left:62%;top:8%;width:auto;height:auto}
.char-overvake [data-fx="zz"]::before,.char-slappe [data-fx="zz"]::before{content:"z Z"}
.char-overvake[data-state="busy"] [data-fx="ping"]{opacity:1;animation:c-ping calc(2.4s / var(--spd)) ease-out infinite}
.char-overvake[data-state="sleep"] [data-part^="leg"]{animation:none}
.char-overvake[data-state="sleep"] .rig{animation:c-breathe 3.6s ease-in-out infinite}
.char-overvake[data-state="sleep"] [data-part="eyes"]{animation:none;transform:scaleY(.1)}
.char-overvake[data-state="sleep"] [data-fx="zz"]{animation:c-float 2.8s ease-in infinite}
.char-overvake[data-state="success"] .rig{animation:c-hop .7s ease-out 2;--hop:-8%}
.char-overvake[data-state="error"] .rig{animation:c-shake .45s ease-in-out 3}
.char-overvake[data-state="error"] [data-part="eyes"]{animation:none;transform:scale(1.25)}

/* Hjelpe: the logo character, and only the logo. */
.char-hjelpe .rig{animation:c-hop calc(1.6s / var(--spd)) ease-in-out infinite;--hop:-3%}
.char-hjelpe [data-part="leg-a"]{animation:c-step-a calc(.5s / var(--spd)) ease-in-out infinite}
.char-hjelpe [data-part="leg-b"]{animation:c-step-b calc(.5s / var(--spd)) ease-in-out infinite}
.char-hjelpe [data-part="plug"]{animation:c-wag calc(.9s / var(--spd)) ease-in-out infinite;--sw:9deg}
.char-hjelpe [data-part="cable-r"]{animation:c-sway calc(1.2s / var(--spd)) ease-in-out infinite;--sw:6deg}
.char-hjelpe [data-part="cable-l"]{animation:c-sway calc(1.9s / var(--spd)) ease-in-out infinite;--sw:2.5deg}
.char-hjelpe[data-state="success"] .rig{animation:c-hop .5s ease-out 3;--hop:-9%}
.char-hjelpe[data-state="error"] .rig{animation:c-shake .45s ease-in-out 3}
.char-hjelpe[data-state="error"] [data-part="plug"]{animation:none;rotate:28deg}

/* Snuse: the dog. */
.char-snuse .rig{animation:c-bob calc(1s / var(--spd)) ease-in-out infinite;--bob:-.9%}
.char-snuse [data-part="head"]{animation:c-sway calc(.55s / var(--spd)) ease-in-out infinite;--sw:3.2deg}
.char-snuse [data-part="cap"]{animation:c-sway calc(.55s / var(--spd)) ease-in-out infinite;--sw:3.2deg;transform-origin:30% 100%}
.char-snuse [data-part="ear"]{animation:c-sway calc(.7s / var(--spd)) ease-in-out infinite;--sw:8deg}
.char-snuse [data-part="tail"]{animation:c-wag calc(.4s / var(--spd)) ease-in-out infinite;--sw:9deg}
.char-snuse [data-part="cable"]{animation:c-bob calc(1.2s / var(--spd)) ease-in-out infinite;--bob:2.4%}
.char-snuse[data-state="busy"] .rig{animation:c-shake 1.2s ease-in-out infinite}
.char-snuse[data-state="success"] .rig{animation:c-hop .55s ease-out 3;--hop:-12%}
.char-snuse[data-state="error"] [data-part="head"]{animation:c-shake .5s ease-in-out 3}
.char-snuse[data-state="error"] [data-part="tail"]{animation:none;rotate:25deg}
.char-snuse[data-state="sleep"] .rig{animation:c-breathe 3s ease-in-out infinite}

/* Samle: the bird and its little screens. */
.char-samle .rig{animation:c-bob calc(.8s / var(--spd)) ease-in-out infinite;--bob:-1.2%}
.char-samle [data-part="head"]{animation:c-sway calc(1.6s / var(--spd)) ease-in-out infinite;--sw:6deg}
.char-samle [data-part="tail"]{animation:c-wag calc(1.2s / var(--spd)) ease-in-out infinite;--sw:8deg}
.char-samle [data-part="leg-a"]{animation:c-step-a calc(.8s / var(--spd)) ease-in-out infinite}
.char-samle [data-part="leg-b"]{animation:c-step-b calc(.8s / var(--spd)) ease-in-out infinite}
.char-samle [data-part="mini-a"]{animation:c-hop calc(1.2s / var(--spd)) ease-in-out infinite;--hop:-8%}
.char-samle [data-part="mini-b"]{animation:c-hop calc(1.2s / var(--spd)) ease-in-out .2s infinite;--hop:-8%}
.char-samle [data-part="mini-c"]{animation:c-hop calc(1.2s / var(--spd)) ease-in-out .4s infinite;--hop:-8%}
.char-samle [data-part="mini-d"]{animation:c-hop calc(1.2s / var(--spd)) ease-in-out .6s infinite;--hop:-8%}
.char-samle[data-state="success"] [data-part^="mini"]{animation:c-hop .5s ease-out 3;--hop:-18%}
.char-samle[data-state="error"] [data-part^="mini"]{animation:c-shake .45s ease-in-out 3}

/* Resirkullere: the cart. */
.char-resirkullere .rig{animation:c-sway calc(1.6s / var(--spd)) ease-in-out infinite;--sw:.9deg}
.char-resirkullere [data-part^="wheel"]{animation:c-spin calc(1.3s / var(--spd)) linear infinite}
.char-resirkullere [data-part="arm"]{animation:c-sway calc(1.2s / var(--spd)) ease-in-out infinite;--sw:6deg}
.char-resirkullere [data-part="items"]{animation:c-bob calc(1.4s / var(--spd)) ease-in-out infinite;--bob:-2.4%}
.char-resirkullere [data-part="handle"]{animation:c-sway calc(1.8s / var(--spd)) ease-in-out infinite;--sw:2deg}
.char-resirkullere[data-state="success"] .rig{animation:c-hop .55s ease-out 3;--hop:-8%}
.char-resirkullere[data-state="error"] .rig{animation:c-shake .5s ease-in-out 3}

/* Stable: the slug and its tower, and the gull on its own. */
.char-stable .rig{animation:c-breathe calc(2.6s / var(--spd)) ease-in-out infinite}
.char-stable [data-part="stack"]{animation:c-sway calc(3s / var(--spd)) ease-in-out infinite;--sw:1.2deg}
.char-stable [data-part="gull"],.char-stable-mini [data-part="gull"]{animation:c-hop calc(1.2s / var(--spd)) ease-in-out infinite;--hop:-5%}
.char-stable-mini .rig{animation:c-sway calc(1.6s / var(--spd)) ease-in-out infinite;--sw:2deg}
.char-stable [data-part="tail"]{animation:c-wag calc(1.1s / var(--spd)) ease-in-out infinite;--sw:12deg}
.char-stable[data-state="busy"] .rig{animation:c-shake 1.4s ease-in-out infinite}
.char-stable[data-state="success"] [data-part="stack"]{animation:c-hop .6s ease-out 2;--hop:-4%}
.char-stable[data-state="error"] [data-part="stack"]{animation:c-sway .5s ease-in-out infinite;--sw:4deg}

/* Skjule: the hider. */
.char-skjule .rig{animation:c-breathe calc(2.2s / var(--spd)) ease-in-out infinite}
.char-skjule [data-part="eyes"]{animation:c-bob calc(3.2s / var(--spd)) ease-in-out infinite,c-blink 4.6s ease-in-out infinite;--bob:-20%}
.char-skjule [data-part="panel-a"]{animation:c-sway calc(2.6s / var(--spd)) ease-in-out infinite;--sw:1.2deg}
.char-skjule [data-part="panel-b"]{animation:c-sway calc(3.1s / var(--spd)) ease-in-out infinite reverse;--sw:1.2deg}
.char-skjule[data-state="success"] [data-part="eyes"]{animation:c-hop .6s ease-out 2;--hop:-45%}
.char-skjule[data-state="error"] [data-part="eyes"]{animation:c-shake .45s ease-in-out 3}

/* Slappe av: resting in the cart. */
.char-slappe [data-part="blob"]{animation:c-breathe calc(3s / var(--spd)) ease-in-out infinite}
.char-slappe [data-part="eyes"]{animation:c-blink 5.5s ease-in-out infinite}
.char-slappe [data-part="tv"]{animation:c-sway calc(2.2s / var(--spd)) ease-in-out infinite;--sw:1.6deg}
.char-slappe [data-part="dust"]{animation:c-bob calc(1.1s / var(--spd)) ease-in-out infinite;--bob:-8%}
.char-slappe [data-part="ticks"]{animation:c-flick 1.4s linear infinite}
.char-slappe [data-part="cup"]{animation:c-sway calc(2.6s / var(--spd)) ease-in-out infinite;--sw:2deg;transform-origin:50% 100%}
.char-slappe [data-fx="zz"]{left:22%;top:0;animation:c-float calc(3s / var(--spd)) ease-in infinite}
.char-slappe[data-state="success"] [data-part="blob"]{animation:c-sigh 1.4s ease-in-out 2,c-breathe 3s ease-in-out 2.8s infinite}

/* Motion settings: full (default), calm (default when the system asks for reduced motion: small, slow
   and without spinning or shaking) and off. A footer control stores the choice. */
html[data-motion="calm"] .char{--amp:.3;--spd:.55}
html[data-motion="calm"] .char[data-state="busy"]{--spd:.9}
html[data-motion="calm"] .char [data-part="rotor"]{animation:c-prop 1.6s linear infinite}
html[data-motion="calm"] .char [data-part^="wheel"],html[data-motion="calm"] .char [data-fx]{animation:none!important;opacity:0}
html[data-motion="calm"] .char .rig{animation:c-bob 3s ease-in-out infinite;--bob:-.8%;rotate:0deg}
html[data-motion="calm"] .char [data-part="speed"],html[data-motion="calm"] .char [data-part="ticks"]{animation:none;opacity:0}
html[data-motion="off"] .char,html[data-motion="off"] .char *{animation:none!important}
html[data-motion="off"] .char [data-fx]{opacity:0}
.motion-control{display:inline-flex;gap:.5rem;align-items:center;margin-left:1rem}

/* Publication courier card (the cat). */
.publication-courier { display:flex; align-items:center; gap:20px; margin:24px 0 0; padding:16px 20px; border:1px solid var(--line); border-radius:16px; }
.publication-courier[hidden] { display:none; }
.publication-courier .courier-art { width:190px; flex:0 0 190px; }
.publication-courier .courier-art .char { --cs:190px; }
.publication-courier p { margin:4px 0; }
.publication-courier .courier-detail { font-size:.875rem; opacity:.75; }
@media(max-width:540px) { .publication-courier { gap:12px; padding:12px; } .publication-courier .courier-art { width:128px; flex-basis:128px; } .publication-courier .courier-art .char { --cs:128px; } }
@media(forced-colors:active) { .publication-courier { border-color:CanvasText; } }

/* Placements. Small characters move proportionally more so the motion reads at any size. */
.brand .char{--cs:88px;--amp:1.6;margin:-14px 0}
.media-character .char{--cs:84px;--amp:1.4}
.media-preview-pending .media-character .char{--cs:128px;--amp:1.2}
.upload-progress .media-character .char,.media-progress .media-character .char{--cs:84px;--amp:1.5}
.playlist-preview .media-character .char{--cs:150px;--amp:1.2}
.signal .char{--cs:96px;--amp:1.3}
.screen-char{display:inline-flex;margin-right:.35rem}.screen-char .char{--cs:80px;--amp:1.4}
.pdf-working .media-character .char{--cs:120px;--amp:1.2}
.connect-link{display:inline-flex;align-items:center;gap:.25rem}.connect-link .btn-char{margin-right:0}
.btn-char{display:inline-flex;vertical-align:middle;margin-right:.25rem}.btn-char .char{--cs:36px;--amp:1.5;margin:-6px 0}
.char-stage{display:flex;justify-content:center;margin:12px 0}.char-stage .char{--cs:190px;--amp:1.1}
.upload-progress .char [data-part^="cloud"],.media-progress .char [data-part^="cloud"],.signal .char [data-part^="cloud"],.screen-char .char [data-part^="cloud"],.brand .char [data-part^="cloud"]{display:none}
