/* OVIO Space: the OVIO Services element ([ovio_services]), in four styles: glass panels, orbits, signal scan and floating boxes.
   Glass panels: A row of the site's glass boxes (.box-style-dark / -light, drawn
   by the Glass UI with its lights and 3-D tilt), one per service. The open one widens: its title, in the middle of a closed panel,
   rises from the middle to the top left, and its description appears below. Sizes come from the settings as variables on .ovio-svcs:
   --svc-h-d (height), --svc-h-m / --svc-hc-m (an open / a closed panel on phones), --svc-open (the open panel's share of the row),
   --svc-to (the titles), --svc-ds (the description), --svc-gap, --svc-a (the glow, as r, g, b).
   The script sets --cw / --ow (the room for the title in a closed / the open panel), --svc-tf (the titles made smaller to keep whole
   words, with many services) and --p (how far the timer has run). Every style: --svc-is (the icons), --svc-n (how many services),
   --i on each (its place in the row), --svc-cy (the signal scan's sweep). */
.ovio-svcs { --svc-a: 255, 176, 140; --svc-pad: 30px; --svc-ease: cubic-bezier(.65, 0, .35, 1); position: relative; color: #fff; }
.ovio-svcs-light { color: #0e1222; }

/* the heading: the category's name, and its line */
.ovio-svcs-head { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 14px 48px; margin: 0 0 34px; }
.ovio-svcs-head-stack { flex-direction: column; align-items: flex-start; }
.ovio-svcs-name { display: flex; flex-direction: column; gap: 10px; }
.ovio-svcs-eyebrow { font-size: 13px; letter-spacing: .24em; text-transform: uppercase; opacity: .72; }
.ovio-svcs-title { margin: 0; font-size: clamp(28px, 2.8vw, 42px); font-weight: 300; line-height: 1.12; color: inherit; }
.ovio-svcs-tag { margin: 0; max-width: 470px; font-size: 16px; line-height: 1.7; opacity: .8; }

/* the row, and each panel: a glass box (the Glass UI gives it its glass, edge lights, glints, hover glow and tilt) */
.ovio-svcs-panels .ovio-svcs-row { display: flex; gap: var(--svc-gap, 16px); height: var(--svc-h-d, 420px); }
.ovio-svcs .ovio-svc { position: relative; flex: 1 1 0; min-width: 0; height: 100%; margin: 0; padding: 0 !important; box-sizing: border-box; transition: flex .85s var(--svc-ease); }
.ovio-svcs .ovio-svc.is-on { flex: 0 0 var(--svc-open, 42%); }
/* while a panel grows or shrinks its glass is held (the script adds gx-hold: the Glass UI stretches the glass rather than redrawing it at
   every step). Its edge lights run round the outline it had, so they fade out meanwhile, and back once it has settled on its new outline */
.ovio-svcs .ovio-svc .gx-edge { transition: opacity .45s ease; }
.ovio-svcs .ovio-svc.gx-hold .gx-edge { opacity: 0; transition: opacity .12s ease; }
/* the panel's own button fills the glass; its glow and the text sit inside, clipped to the glass's corners */
.ovio-svc-btn { position: absolute; inset: 0; z-index: 1; display: block; width: 100%; height: 100%; margin: 0; padding: 0; border: 0; border-radius: inherit; overflow: hidden;
  background: none; color: inherit; font: inherit; text-align: left; cursor: pointer; -webkit-tap-highlight-color: transparent; }
.ovio-svc-btn:focus { outline: none; }
.ovio-svc-btn:focus-visible { outline: 2px solid rgba(var(--svc-a), .95); outline-offset: 3px; }
/* the open panel, its own touch: a soft glow of the row's colour drifting in its corner, a fine ring of it on the glass */
.ovio-svc-glow { position: absolute; width: 380px; height: 380px; right: -140px; top: -160px; border-radius: 50%; pointer-events: none;
  background: radial-gradient(circle, rgba(var(--svc-a), .5), transparent 66%); opacity: 0; transition: opacity .9s ease; animation: ovio-svc-drift 9s ease-in-out infinite alternate; }
.ovio-svc.is-on .ovio-svc-glow { opacity: 1; }
.ovio-svc-btn::after { content: ""; position: absolute; inset: 0; border-radius: inherit; pointer-events: none; opacity: 0; transition: opacity .8s ease;
  box-shadow: inset 0 0 0 1px rgba(var(--svc-a), .5), inset 0 0 40px -10px rgba(var(--svc-a), .45); }
.ovio-svc.is-on .ovio-svc-btn::after { opacity: 1; }

/* the icon, where the styles once had a number (its size from the settings: --svc-is) */
.ovio-svcs .ovio-svc-i { display: inline-flex; align-items: center; justify-content: center; line-height: 1; color: rgb(var(--svc-a)); }
.ovio-svcs .ovio-svc-i svg { width: var(--svc-is, 30px); height: var(--svc-is, 30px); fill: none; stroke: currentColor; stroke-width: 1.5; stroke-linecap: round; stroke-linejoin: round; }
.ovio-svcs .ovio-svc-i i { font-size: var(--svc-is, 30px); }

/* glass panels: the title at the top left in every panel, the same size open or closed (the icon above it); the open one's description
   appears below it. A title's lines change once, as its panel's width changes, at the bottom of a quick dip (so the change never shows) */
.ovio-svc-in { position: absolute; left: var(--svc-pad); top: var(--svc-pad); width: var(--cw, calc(100% - 60px)); display: flex; flex-direction: column; align-items: flex-start; }
.ovio-svc.is-wide .ovio-svc-in { width: var(--ow, calc(100% - 60px)); }
.ovio-svc-in > .ovio-svc-i { margin-bottom: 18px; }
.ovio-svc .ovio-svc-t { display: block; font-size: var(--svc-tf, var(--svc-to, 22px)); font-weight: 300; line-height: 1.25; text-align: left; overflow-wrap: normal; word-break: normal; hyphens: manual; }
.ovio-svc.is-moving .ovio-svc-t { animation: ovio-svc-dip .85s var(--svc-ease); }
.ovio-svc .ovio-svc-d { display: grid; grid-template-rows: 0fr; margin-top: 0; opacity: 0; font-size: var(--svc-ds, 15px); line-height: 1.7;
  transition: grid-template-rows .35s ease, margin-top .35s ease, opacity .25s ease; }
.ovio-svc .ovio-svc-d > span { min-height: 0; overflow: hidden; }
.ovio-svc.is-on.is-wide .ovio-svc-d { grid-template-rows: 1fr; margin-top: 18px; opacity: 1; transition: grid-template-rows .6s ease .1s, margin-top .6s ease .1s, opacity .6s ease .25s; }
.ovio-svcs-dark :is(.ovio-svc, .ovio-fl) .ovio-svc-d { color: rgba(255, 255, 255, .82); }
.ovio-svcs-light :is(.ovio-svc, .ovio-fl) .ovio-svc-d { color: rgba(14, 18, 34, .78); }

/* the timer: a fine line along the foot of the open panel */
.ovio-svc-bar { position: absolute; left: var(--svc-pad); right: var(--svc-pad); bottom: 0; height: 2px; border-radius: 2px; overflow: hidden; background: rgba(255, 255, 255, .12); opacity: 0; transition: opacity .5s; }
.ovio-svcs-light .ovio-svc-bar { background: rgba(14, 18, 34, .1); }
.ovio-svc-bar i { display: block; height: 100%; background: rgb(var(--svc-a)); box-shadow: 0 0 10px rgb(var(--svc-a)); transform: scaleX(var(--p, 0)); transform-origin: left; }
.ovio-svc.is-on .ovio-svc-bar { opacity: 1; }
.ovio-svcs.is-still .ovio-svc-bar { opacity: 0; }

@keyframes ovio-svc-dip { 0% { opacity: 1; } 32%, 48% { opacity: 0; } 100% { opacity: 1; } }
@keyframes ovio-svc-drift { to { transform: translate(-60px, 50px); } }

/* phones: the panels stack, each closed one a short bar with its title lying flat across it, the open one tall */
@media (max-width: 767px) {
  .ovio-svcs { --svc-pad: 22px; }
  .ovio-svcs-head { flex-direction: column; align-items: flex-start; margin-bottom: 24px; }
  .ovio-svcs-panels .ovio-svcs-row { flex-direction: column; height: auto; }
  .ovio-svcs .ovio-svc, .ovio-svcs .ovio-svc.is-on { flex: none; height: var(--svc-hc-m, 84px); transition: height .7s var(--svc-ease); }
  .ovio-svcs .ovio-svc.is-on { height: var(--svc-h-m, 360px); }
  .ovio-svc.is-moving .ovio-svc-t { animation: none; }
}
@media (prefers-reduced-motion: reduce) {
  .ovio-svcs .ovio-svc, .ovio-svc-d { transition: none !important; }
  .ovio-svc-glow, .ovio-svc.is-moving .ovio-svc-t { animation: none; }
  .ovio-svc-bar { display: none; }
}

/* ---------------- orbits: a glass circle (the Glass UI's, with its moon) in a slowly turning dashed ring with a satellite; the title
   below; pointing at one (or a tap) speeds its ring and shows its description ---------------- */
.ovio-svcs-orbits { --svc-fg: 255, 255, 255; }
.ovio-svcs-orbits.ovio-svcs-light { --svc-fg: 14, 18, 34; }
.ovio-svcs-orbits .ovio-svcs-row { display: grid; grid-template-columns: repeat(var(--svc-n, 4), minmax(0, 1fr)); gap: 40px var(--svc-gap, 16px); }
.ovio-orb-btn { gap: 22px; width: 100%; margin: 0; padding: 6px 0; border: 0; background: none; color: inherit; font: inherit; text-align: center; cursor: pointer; }
.ovio-orb-btn:focus { outline: none; }
.ovio-orb-btn:focus-visible .ovio-orb-o { outline: 2px solid rgba(var(--svc-a), .9); outline-offset: 8px; border-radius: 50%; }
.ovio-orb-btn > .ovio-orb-o, .ovio-orb-btn > .ovio-orb-core { grid-area: 1 / 1; }
.ovio-orb-btn { display: grid; justify-items: center; }
.ovio-orb-o { position: relative; width: 190px; height: 190px; pointer-events: none; animation: ovio-orb-bob 6s ease-in-out infinite; animation-delay: calc(var(--i, 0) * -1.4s); }
.ovio-orb-ring { position: absolute; inset: 0; border-radius: 50%; border: 1px dashed rgba(var(--svc-a), .5); animation: ovio-orb-spin 26s linear infinite; animation-delay: calc(var(--i, 0) * -6.5s); }
.ovio-orb-ring2 { position: absolute; inset: 20px; border-radius: 50%; border: 1px solid rgba(var(--svc-fg), .1); animation: ovio-orb-spin 15s linear infinite reverse; }
.ovio-orb-sat { position: absolute; left: 50%; top: -4px; width: 8px; height: 8px; margin-left: -4px; border-radius: 50%; background: #fff; box-shadow: 0 0 10px 3px rgba(var(--svc-a), .9), 0 0 26px 8px rgba(var(--svc-a), .4); }
.ovio-orb-btn:hover .ovio-orb-ring, .ovio-orb.is-on .ovio-orb-ring { animation-duration: 7s; }
.ovio-svcs .ovio-orb-core { position: relative; align-self: center; width: 116px !important; height: 116px !important; min-width: 0 !important; max-width: none !important; margin: 0 !important; padding: 0 !important; justify-self: center;
  display: grid !important; place-items: center; animation: ovio-orb-bob 6s ease-in-out infinite; animation-delay: calc(var(--i, 0) * -1.4s); }
.ovio-orb-dot { width: 12px; height: 12px; border-radius: 50%; background: #fff; box-shadow: 0 0 12px 4px rgba(var(--svc-a), .85), 0 0 34px 10px rgba(var(--svc-a), .35); }
.ovio-orb-core .ovio-svc-i { position: relative; z-index: 2; }
.ovio-orb .ovio-svc-t { font-size: var(--svc-to, 22px); font-weight: 300; line-height: 1.3; max-width: 260px; }
.ovio-orb .ovio-svc-d { display: grid; grid-template-rows: 0fr; opacity: 0; max-width: 270px; font-size: var(--svc-ds, 15px); line-height: 1.7; color: rgba(var(--svc-fg), .8); margin-top: -8px;
  transition: grid-template-rows .5s ease, opacity .4s ease; }
.ovio-orb .ovio-svc-d > span { min-height: 0; overflow: hidden; }
.ovio-orb-btn:hover .ovio-svc-d, .ovio-orb-btn:focus-visible .ovio-svc-d, .ovio-orb.is-on .ovio-svc-d { grid-template-rows: 1fr; opacity: 1; }
@keyframes ovio-orb-spin { to { transform: rotate(360deg); } }
@keyframes ovio-orb-bob { 0%, 100% { translate: 0 0; } 50% { translate: 0 -6px; } }

/* ---------------- signal scan: a beam runs along the track under the row; as it passes each service, its node flares, its icon lights
   and a line draws in, then settle (its words stay at full strength throughout, so every one reads the same) ---------------- */
.ovio-svcs-signal { --svc-fg: 255, 255, 255; }
.ovio-svcs-signal.ovio-svcs-light { --svc-fg: 14, 18, 34; }
.ovio-sig-stage { position: relative; padding-bottom: 64px; }
.ovio-svcs-signal .ovio-svcs-row { position: relative; z-index: 1; display: grid; grid-template-columns: repeat(var(--svc-n, 4), minmax(0, 1fr)); gap: 40px; }
.ovio-sig { position: relative; display: flex; flex-direction: column; align-items: flex-start; gap: 14px;
  /* when the beam passes it: its middle along a sweep that starts a quarter of the row before the row and ends at its far side */
  --at: calc(((var(--i, 0) + .5) / var(--svc-n, 4) * 100 + 13) / 126); --d: calc(var(--svc-cy, 8s) * var(--at)); }
.ovio-svcs-rtl .ovio-sig { --d: calc(var(--svc-cy, 8s) * (1 - var(--at))); }
.ovio-sig .ovio-svc-i { color: rgba(var(--svc-fg), .45); animation: ovio-sig-icon var(--svc-cy, 8s) linear infinite; animation-delay: var(--d); }
.ovio-sig .ovio-svc-i svg, .ovio-sig .ovio-svc-i i { width: calc(var(--svc-is, 30px) * 1.3); height: calc(var(--svc-is, 30px) * 1.3); font-size: calc(var(--svc-is, 30px) * 1.3); }
.ovio-sig .ovio-svc-t { margin: 0; font-size: calc(var(--svc-to, 22px) * .82); font-weight: 400; letter-spacing: .06em; text-transform: uppercase; line-height: 1.45; color: rgb(var(--svc-fg)); }
.ovio-sig .ovio-svc-d { margin: 0; font-size: var(--svc-ds, 15px); line-height: 1.7; color: rgba(var(--svc-fg), .85); }
.ovio-sig-u { display: block; width: 100%; height: 1px; background: linear-gradient(90deg, rgb(var(--svc-a)), rgba(var(--svc-fg), .5)); transform: scaleX(0); transform-origin: left; animation: ovio-sig-line var(--svc-cy, 8s) linear infinite; animation-delay: var(--d); }
.ovio-sig-track { position: absolute; left: 0; right: 0; bottom: 24px; height: 1px; background: linear-gradient(90deg, transparent, rgba(var(--svc-fg), .22) 8%, rgba(var(--svc-fg), .22) 92%, transparent); }
.ovio-sig-node { position: absolute; left: 0; bottom: -45px; width: 11px; height: 11px; border-radius: 50%; background: rgba(28, 21, 48, .9); box-shadow: inset 0 0 0 1px rgba(var(--svc-fg), .5); animation: ovio-sig-node var(--svc-cy, 8s) linear infinite; animation-delay: var(--d); }
.ovio-sig-beam { position: absolute; left: 0; bottom: 24px; width: 26%; height: 440px; pointer-events: none; animation: ovio-sig-sweep var(--svc-cy, 8s) linear infinite; }   /* (v2.9: swept by a transform, so the compositor slides it and its blurred glow is drawn once; v2 animated left, which laid out and re-blurred it every frame) */
.ovio-svcs-rtl .ovio-sig-beam { animation-name: ovio-sig-sweep-r; }
.ovio-sig-beam::before { content: ""; position: absolute; left: 0; right: 0; bottom: -1px; height: 2px; border-radius: 2px; background: linear-gradient(90deg, transparent, rgba(var(--svc-a), .9) 55%, #fff 80%, transparent); box-shadow: 0 0 14px 2px rgba(var(--svc-a), .65); }
.ovio-svcs-rtl .ovio-sig-beam::before { background: linear-gradient(270deg, transparent, rgba(var(--svc-a), .9) 55%, #fff 80%, transparent); }
.ovio-sig-beam::after { content: ""; position: absolute; inset: 0 18% 0 38%; background: linear-gradient(0deg, rgba(var(--svc-a), .2), transparent 85%); filter: blur(18px); }
@keyframes ovio-sig-sweep { from { transform: translateX(-100%); } to { transform: translateX(384.6154%); } }   /* (its own width is 26% of the panel: from -26% to 100% of the panel, as before) */
@keyframes ovio-sig-sweep-r { from { transform: translateX(384.6154%); } to { transform: translateX(-100%); } }
@keyframes ovio-sig-node { 0% { background: #fff; box-shadow: 0 0 0 6px rgba(var(--svc-a), .25), 0 0 22px 6px rgba(var(--svc-a), .9); transform: scale(1.25); } 25% { background: rgba(var(--svc-a), .9); box-shadow: inset 0 0 0 1px rgba(var(--svc-a), .8), 0 0 10px rgba(var(--svc-a), .5); transform: scale(1); } 100% { background: rgba(28, 21, 48, .9); box-shadow: inset 0 0 0 1px rgba(var(--svc-fg), .5); } }
@keyframes ovio-sig-icon { 0% { color: #fff; filter: drop-shadow(0 0 10px rgba(var(--svc-a), .9)); } 35% { color: rgb(var(--svc-a)); filter: none; } 55%, 100% { color: rgba(var(--svc-fg), .45); } }
@keyframes ovio-sig-line { 0% { transform: scaleX(0); opacity: 1; } 8%, 35% { transform: scaleX(1); opacity: 1; } 50%, 100% { transform: scaleX(1); opacity: 0; } }

/* ---------------- floating boxes: the site's glass boxes, gently tilted and floating, overlapping a little; pointing at one (or moving
   to it with the keyboard) brings it to the front, straightens it and makes it bigger ---------------- */
.ovio-svcs-floating .ovio-svcs-row { display: flex; align-items: flex-start; padding: 26px 0 40px; }
.ovio-fl { position: relative; z-index: 1; flex: 1 1 0; min-width: 0; margin-left: -22px; rotate: var(--r, 0deg); translate: 0 var(--y, 0px);
  transition: rotate .6s cubic-bezier(.2, 1.2, .4, 1), scale .6s cubic-bezier(.2, 1.2, .4, 1), z-index 0s .3s; }
.ovio-fl:first-child { margin-left: 0; }
.ovio-fl:nth-child(4n + 1) { --r: -2.5deg; --y: 0px; }
.ovio-fl:nth-child(4n + 2) { --r: 1.8deg; --y: 46px; }
.ovio-fl:nth-child(4n + 3) { --r: -1.4deg; --y: 10px; }
.ovio-fl:nth-child(4n + 4) { --r: 2.6deg; --y: 52px; }
.ovio-fl-card { display: flex !important; flex-direction: column; align-items: flex-start; gap: 16px; min-height: var(--fl-h, 290px); box-sizing: border-box; outline: none;
  animation: ovio-fl-bob 6s ease-in-out infinite; animation-delay: calc(var(--i, 0) * -1.5s); }
.ovio-fl:hover, .ovio-fl:focus-within { z-index: 10; rotate: 0deg; scale: 1.12; transition: rotate .6s cubic-bezier(.2, 1.2, .4, 1), scale .6s cubic-bezier(.2, 1.2, .4, 1), z-index 0s; }
.ovio-fl:hover .ovio-fl-card, .ovio-fl:focus-within .ovio-fl-card { animation-play-state: paused; }
.ovio-fl-card:focus-visible { outline: 2px solid rgba(var(--svc-a), .9); outline-offset: 4px; }
.ovio-fl .ovio-svc-i svg, .ovio-fl .ovio-svc-i i { width: calc(var(--svc-is, 30px) * 1.15); height: calc(var(--svc-is, 30px) * 1.15); font-size: calc(var(--svc-is, 30px) * 1.15); }
.ovio-fl .ovio-svc-t { margin: 0; font-size: calc(var(--svc-to, 22px) * .9); font-weight: 400; line-height: 1.35; }
.ovio-fl .ovio-svc-d { margin: 0; font-size: var(--svc-ds, 15px); line-height: 1.7; }
@keyframes ovio-fl-bob { 0%, 100% { translate: 0 0; } 50% { translate: 0 -10px; } }
/* their height: fixed (--fl-h at least), equal (as tall as the one with the most content; on narrower screens every row as tall as the
   tallest) or each fitting its own content, with the glass's own padding round it */
.ovio-fl-equal .ovio-svcs-row { align-items: stretch; }
.ovio-fl-equal .ovio-fl { display: flex; flex-direction: column; }
.ovio-fl-equal .ovio-fl-card, .ovio-fl-content .ovio-fl-card { min-height: 0; }
.ovio-fl-equal .ovio-fl-card { flex: 1 1 auto; }

/* ---------------- jigsaw pieces: the floating boxes as glass jigsaw pieces. Each piece's tabs and blanks match its neighbours' (the script
   works out which and draws the outline: the Glass UI cuts the glass to it and runs its lights round it); --jk is the depth of a tab ---------------- */
.ovio-svcs-jigsaw { --jk: 20px; }
.ovio-svcs .ovio-jig-card { padding: calc(var(--jk) * 2 + 8px) calc(var(--jk) * 2 + 6px) !important; }
.ovio-jig-card:not(.gx-on) { clip-path: var(--jig-clip, none); }
/* a piece shows once its outline is drawn (never as a plain box first), fading in */
.ovio-jig { transition: rotate .6s cubic-bezier(.2, 1.2, .4, 1), scale .6s cubic-bezier(.2, 1.2, .4, 1), z-index 0s .3s, opacity .5s ease; }
.ovio-jig:has(> .ovio-jig-card:not([data-gx-path])) { opacity: 0; transition: none; animation: ovio-jig-late 0s 3s forwards; }
@keyframes ovio-jig-late { to { opacity: 1; } }   /* (if the script never runs, the boxes still show) */
.ovio-svcs-jigsaw .ovio-fl { margin-left: calc(var(--jk) * -2 + 8px); }
.ovio-svcs-jigsaw .ovio-fl:first-child { margin-left: 0; }
/* (closer together than the boxes, as pieces of one puzzle) */
.ovio-svcs-jigsaw .ovio-fl:nth-child(4n + 2) { --y: 20px; }
.ovio-svcs-jigsaw .ovio-fl:nth-child(4n + 3) { --y: 4px; }
.ovio-svcs-jigsaw .ovio-fl:nth-child(4n + 4) { --y: 24px; }

@media (max-width: 1000px) {
  .ovio-svcs-orbits .ovio-svcs-row, .ovio-svcs-signal .ovio-svcs-row { grid-template-columns: repeat(2, minmax(0, 1fr)); row-gap: 64px; }
  .ovio-svcs-floating .ovio-svcs-row { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; padding: 10px 0; }
  .ovio-fl { margin-left: 0; --y: 0px !important; }
  .ovio-fl-equal .ovio-svcs-row { grid-auto-rows: 1fr; }
  .ovio-svcs-jigsaw .ovio-svcs-row { gap: 6px; margin-bottom: var(--jfoot, 0px); }
  .ovio-svcs-jigsaw .ovio-fl { margin-left: 0; left: var(--jx, 0px); top: var(--jy, 0px); }
  .ovio-sig .ovio-sig-node { bottom: -30px; }
}
@media (max-width: 767px) {
  .ovio-orb .ovio-svc-d { grid-template-rows: 1fr; opacity: 1; }
}
@media (max-width: 560px) {
  .ovio-svcs-orbits .ovio-svcs-row, .ovio-svcs-signal .ovio-svcs-row, .ovio-svcs-floating .ovio-svcs-row { grid-template-columns: minmax(0, 1fr); }
  .ovio-fl { rotate: 0deg; }
  .ovio-sig-beam, .ovio-sig-track, .ovio-sig-node { display: none; }
}
@media (prefers-reduced-motion: reduce) {
  .ovio-orb-o, .ovio-orb-ring, .ovio-orb-ring2, .ovio-svcs .ovio-orb-core, .ovio-fl-card { animation: none; }
  .ovio-sig-beam { display: none; }
  .ovio-sig .ovio-svc-i, .ovio-sig-u, .ovio-sig-node { animation: none; }
}
