/* Vaia: grainy, softly moving gradients with big white eyes.
   Independent colors and silhouettes. Grain stays still over the moving light, so the
   texture feels soft rather than flickering. Size with --s.
   Shared by the app, landing and marketplace (their assets/vorb.css files are copies). */
.vorb{--shape:46% 54% 48% 52% / 55% 43% 57% 45%;--s:64px;--c1:#29EEFF;--c2:#176DFF;--c3:#5B0CFF;--accent:#FF37C7;--glow:50,115,255;
  position:relative;display:inline-block;flex:none;width:var(--s);height:var(--s);font-size:var(--s);
  isolation:isolate;-webkit-tap-highlight-color:transparent;user-select:none;vertical-align:middle}
.vorb--prism {--shape:43% 57% 46% 54% / 54% 40% 60% 46%;--c1:#FFF27A;--c2:#FF23BC;--c3:#5422FF;--accent:#00F8E8;--glow:168,70,255}
.vorb--prism .vo-body{background:radial-gradient(ellipse at 20% 20%,#FFF16A,transparent 48%),radial-gradient(ellipse at 80% 74%,#00F7DF,transparent 52%),linear-gradient(135deg,#FF29B4 18%,#9124FF 60%,#2475FF)}
.vorb--pearl  {--shape:44% 56% 62% 38% / 49% 42% 58% 51%;--c1:#FFFFFF;--c2:#C5CEDD;--c3:#64718C;--accent:#E8DEFF;--glow:216,222,255}
.vorb--cobalt {--shape:38% 62% 47% 53% / 50% 43% 57% 50%;--c1:#29EEFF;--c2:#176DFF;--c3:#5B0CFF;--accent:#FF37C7;--glow:50,115,255}
.vorb--violet {--shape:31% 45% 34% 48% / 39% 32% 47% 36%;--c1:#FF4DEB;--c2:#A916FF;--c3:#3C27FF;--accent:#25DBFF;--glow:167,35,255}
.vorb--rose   {--shape:57% 43% 40% 60% / 39% 48% 52% 61%;--c1:#FFAF39;--c2:#FF147B;--c3:#9C0CFF;--accent:#FF503B;--glow:255,35,132}
.vorb--amber  {--shape:64% 36% 54% 46% / 70% 45% 55% 30%;--c1:#FFF23B;--c2:#FF9B0A;--c3:#FF2A48;--accent:#FF3BC8;--glow:255,151,18}
.vorb--emerald{--shape:39% 61% 63% 37% / 33% 50% 50% 67%;--c1:#BFFF3B;--c2:#02F3A6;--c3:#007CF4;--accent:#18F5FF;--glow:20,242,174}

/* everything moves inside this, so whatever positions the orb outside keeps its transform */
.vo-in{position:absolute;inset:0;animation:vo-float 6.4s cubic-bezier(.45,0,.55,1) infinite;
  rotate:0deg;scale:1;translate:0 0;transform-origin:50% 62%;
  transition:rotate .55s cubic-bezier(.2,1.65,.35,1),scale .45s cubic-bezier(.2,1.65,.35,1),translate .5s cubic-bezier(.2,1.45,.35,1)}
.vorb:nth-of-type(2n) .vo-in{animation-duration:7.3s;animation-delay:-2.1s}
.vorb:nth-of-type(3n) .vo-in{animation-duration:5.9s;animation-delay:-3.7s}

/* A close, faint aura keeps nearby text and neighboring avatars clean. */
.vo-glow{position:absolute;inset:-12%;z-index:-1;border-radius:50%;pointer-events:none;opacity:.16;
  background:radial-gradient(closest-side,rgba(var(--glow),.72),rgba(var(--glow),.27) 55%,transparent 100%);
  filter:blur(calc(var(--s) * .065));animation:vo-breathe 5.6s ease-in-out infinite}

/* Bright, saturated colour fields retain a soft, grainy finish. */
.vo-body{position:absolute;inset:0;border-radius:var(--shape);overflow:hidden;isolation:isolate;filter:saturate(1.45);
  background:radial-gradient(ellipse at 28% 20%,var(--c1) 0%,var(--c2) 42%,var(--c3) 90%);
  box-shadow:inset 0 calc(var(--s) * -.12) calc(var(--s) * .24) rgba(3,4,10,.18),
             0 calc(var(--s) * .1) calc(var(--s) * .26) calc(var(--s) * -.08) rgba(0,0,0,.5)}
.vorb--pearl .vo-body{filter:none}
/* Slow, blurred ribbons of light; the fine grain is a separate, static layer. */
.vo-flow,.vo-flow2{position:absolute;inset:-30%;border-radius:50%;pointer-events:none}
.vo-flow{background:conic-gradient(from 20deg,transparent 0 12%,var(--c1) 22%,transparent 38% 56%,var(--c2) 70%,transparent 86%);
  opacity:.48;mix-blend-mode:normal;filter:blur(calc(var(--s) * .12));animation:vo-turn 18s linear infinite}
.vo-flow2{background:radial-gradient(ellipse at 30% 65%,var(--accent) 8%,transparent 55%),radial-gradient(ellipse at 75% 30%,var(--c1) 10%,transparent 60%);
  opacity:.75;filter:blur(calc(var(--s) * .08));animation:vo-turn 24s linear infinite reverse}
.vo-body::after{content:"";position:absolute;inset:0;pointer-events:none;border-radius:inherit;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='128' height='128'%3E%3Cfilter id='n' x='0' y='0' width='100%25' height='100%25'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3CfeComponentTransfer%3E%3CfeFuncR type='linear' slope='3' intercept='-1'/%3E%3CfeFuncG type='linear' slope='3' intercept='-1'/%3E%3CfeFuncB type='linear' slope='3' intercept='-1'/%3E%3C/feComponentTransfer%3E%3C/filter%3E%3Cpath fill='%23808080' filter='url(%23n)' d='M0 0h128v128H0z'/%3E%3C/svg%3E");
  background-size:128px 128px;mix-blend-mode:soft-light;opacity:.65}
/* A soft silhouette, without the old glass reflections. */
.vo-rim{position:absolute;inset:0;border-radius:var(--shape);pointer-events:none;
  box-shadow:inset 0 0 calc(var(--s) * .035) rgba(255,255,255,.12)}
.vo-spec{display:none}

/* Big white eyes stay crisp above the textured body. */
.vo-eyes{position:absolute;left:50%;top:46%;display:flex;gap:max(.13em,3px);pointer-events:none;
  transform:translate(calc(-50% + var(--gx,0) * .045em),calc(-50% + var(--gy,0) * .04em));transition:transform .4s cubic-bezier(.2,.8,.2,1)}
.vo-eye{width:max(.19em,5px);height:max(.29em,7.5px);border-radius:999px;background:#FFF;
  box-shadow:0 .014em .045em rgba(4,5,12,.35);transform-origin:50% 60%;animation:vo-blink 5.2s infinite}
.vorb:nth-of-type(2n) .vo-eye{animation-duration:6.7s;animation-delay:-1.9s}
.vorb:nth-of-type(3n) .vo-eye{animation-duration:4.6s;animation-delay:-3.2s}

/* Host-driven hover works even when the icon itself has pointer-events:none.
   Individual transforms spring independently of the float and birth animations. */
@media (any-hover:hover){.vorb.vo-hover .vo-in{rotate:var(--vo-tilt,-3deg);scale:1.1 .98;translate:0 -3%}}
.vorb.vo-tap .vo-in{scale:1.08 .86;rotate:0deg;translate:0 3%}
.vorb.vo-tap .vo-eye{animation:none;transform:scaleY(.3) translateY(.02em)}

@keyframes vo-float{0%,100%{transform:translateY(0) rotate(0)}50%{transform:translateY(calc(var(--s) * -.07)) rotate(-2deg)}}
@keyframes vo-breathe{0%,100%{opacity:.13;transform:scale(1)}50%{opacity:.18;transform:scale(1.03)}}
@keyframes vo-turn{to{transform:rotate(360deg)}}
@keyframes vo-blink{0%,93%,100%{transform:scaleY(1)}95.5%{transform:scaleY(.08)}}

@media (prefers-reduced-motion:reduce){
  .vo-in,.vo-glow,.vo-flow,.vo-flow2,.vo-eye{animation:none}
  .vorb .vo-in,.vorb:is(.vo-hover,.vo-tap) .vo-in{transition:none;rotate:0deg;scale:1;translate:0 0}.vo-eyes{transition:none}
}

/* Independent silhouettes: a soft asymmetric spark, pebble, drop, bloom and capsule. */
.vo-eyes{gap:max(.075em,2px);top:48%}
.vo-eye{width:max(.23em,5.5px);height:max(.17em,4px);border-radius:60% 45% 55% 45%;rotate:-8deg}
.vo-eye:last-child{height:max(.2em,5px);border-radius:45% 60% 45% 55%;rotate:8deg}
.vorb--prism .vo-eyes{gap:.055em;top:49%}.vorb--prism .vo-eye{width:.205em}
.vorb--prism .vo-flow{opacity:.22}.vorb--prism .vo-flow2{opacity:.34}
.vorb[data-vshape="spark"]{--vo-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'%3E%3Cpath fill='white' d='M26 9C38 4 47 14 57 13C69 13 78 4 84 11C89 17 81 26 85 35C89 43 97 49 94 61C91 73 79 75 70 79C61 84 62 95 51 96C40 97 35 87 27 84C16 80 5 78 5 66C4 57 13 51 12 42C10 29 13 16 26 9Z'/%3E%3C/svg%3E")}
.vorb[data-vshape="pebble"]{--vo-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'%3E%3Cpath fill='white' d='M25 10C42 3 71 9 84 25C97 41 96 65 83 80C69 97 40 99 22 86C5 74 1 53 8 34C11 24 17 14 25 10Z'/%3E%3C/svg%3E")}
.vorb[data-vshape="drop"]{--vo-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'%3E%3Cpath fill='white' d='M58 4C64 2 67 15 76 25C88 39 96 53 90 70C84 90 67 97 48 94C25 91 9 76 10 56C11 37 30 27 43 17C50 12 53 6 58 4Z'/%3E%3C/svg%3E")}
.vorb[data-vshape="bloom"]{--vo-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'%3E%3Cpath fill='white' d='M45 7C57 1 65 10 68 20C80 12 94 21 91 35C103 42 97 59 87 65C94 79 82 92 68 87C62 101 44 99 38 88C22 97 8 86 14 71C-1 65 0 46 13 40C5 23 19 11 33 19C34 13 39 9 45 7Z'/%3E%3C/svg%3E")}
.vorb[data-vshape="capsule"]{--vo-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'%3E%3Cpath fill='white' d='M20 12C31 5 73 5 84 16C95 27 94 72 82 84C70 96 29 94 17 83C5 72 7 27 20 12Z'/%3E%3C/svg%3E")}
.vorb .vo-body,.vorb .vo-rim{border-radius:0;-webkit-mask:var(--vo-mask) center/100% 100% no-repeat;mask:var(--vo-mask) center/100% 100% no-repeat}
/* The character is the button. Pointer taps must not paint a blue disk or a
   second focus ring underneath its silhouette. Keyboard focus stays visible. */
button:is(.vo-host,.ag-avatar){background:transparent!important;box-shadow:none!important;-webkit-tap-highlight-color:transparent;outline:none;border:0!important}
button:is(.vo-host,.ag-avatar):focus:not(:focus-visible){outline:none!important;box-shadow:none!important}
button:is(.vo-host,.ag-avatar):focus-visible{outline:1.5px solid #d7dfff!important;outline-offset:5px!important;border-radius:14px}
button:is(.vo-host,.ag-avatar)>.vorb,button:is(.vo-host,.ag-avatar) .vo-in{outline:none!important;box-shadow:none!important}
button:is(#tbvaia,#tbvaiam):focus:not(:focus-visible){outline:none!important;box-shadow:none!important}
button:is(#tbvaia,#tbvaiam):focus-visible{outline:1.5px solid #d7dfff;outline-offset:3px;box-shadow:none}
.vaia-birth .vo-in,.vorb.vaia-birth .vo-in{animation:vo-arrive .85s cubic-bezier(.2,.8,.2,1) both,vo-float 6.4s .85s cubic-bezier(.45,0,.55,1) infinite}
@keyframes vo-arrive{0%{opacity:0;transform:translateY(18%) scale(.25) rotate(-18deg)}55%{opacity:1;transform:translateY(-6%) scale(1.13) rotate(7deg)}80%{transform:translateY(0) scale(.96) rotate(-2deg)}100%{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){.vaia-birth .vo-in,.vorb.vaia-birth .vo-in{animation:none}}

/* Tonal color families: luminous shades of one hue; blends are chosen explicitly. */
.vorb--prism{--c1:#fff27a;--c2:#ff23bc;--c3:#5422ff;--accent:#00f8e8;--glow:255,35,188}
.vorb--pearl{--c1:#ffffff;--c2:#cbd4e2;--c3:#798499;--accent:#ffffff;--glow:203,212,226}
.vorb--ruby{--c1:#ff6670;--c2:#f52242;--c3:#980a30;--accent:#ff6670;--glow:245,34,66}
.vorb--coral{--c1:#ffad92;--c2:#ff675a;--c3:#c92744;--accent:#ffad92;--glow:255,103,90}
.vorb--tangerine{--c1:#ffc16b;--c2:#ff7b13;--c3:#b83e0b;--accent:#ffc16b;--glow:255,123,19}
.vorb--honey{--c1:#ffe6a0;--c2:#ffc02a;--c3:#b87408;--accent:#ffe6a0;--glow:255,192,42}
.vorb--lemon{--c1:#fff9b8;--c2:#ffea25;--c3:#bfaa08;--accent:#fff9b8;--glow:255,234,37}
.vorb--lime{--c1:#e4ffa2;--c2:#b3ed27;--c3:#5f9a0a;--accent:#e4ffa2;--glow:179,237,39}
.vorb--jade{--c1:#a0ffc9;--c2:#20dd7f;--c3:#067c46;--accent:#a0ffc9;--glow:32,221,127}
.vorb--emerald{--c1:#6effc3;--c2:#05d793;--c3:#037552;--accent:#6effc3;--glow:5,215,147}
.vorb--teal{--c1:#9bfff0;--c2:#14d6c1;--c3:#047c81;--accent:#9bfff0;--glow:20,214,193}
.vorb--azure{--c1:#9deaff;--c2:#25b7ff;--c3:#0867b9;--accent:#9deaff;--glow:37,183,255}
.vorb--cobalt{--c1:#97c4ff;--c2:#367aff;--c3:#1735aa;--accent:#97c4ff;--glow:54,122,255}
.vorb--indigo{--c1:#b4b3ff;--c2:#6760ff;--c3:#3225a5;--accent:#b4b3ff;--glow:103,96,255}
.vorb--violet{--c1:#dab1ff;--c2:#a14bff;--c3:#5a1aab;--accent:#dab1ff;--glow:161,75,255}
.vorb--lavender{--c1:#ecd5ff;--c2:#c594ff;--c3:#8053be;--accent:#ecd5ff;--glow:197,148,255}
.vorb--orchid{--c1:#f2b3ff;--c2:#d45aff;--c3:#832399;--accent:#f2b3ff;--glow:212,90,255}
.vorb--rose{--c1:#ffb9d9;--c2:#ff4b99;--c3:#ad174d;--accent:#ffb9d9;--glow:255,75,153}
.vorb--blush{--c1:#ffe0e9;--c2:#ff9fbb;--c3:#c75a7e;--accent:#ffe0e9;--glow:255,159,187}
.vorb--amber{--c1:#ffe19a;--c2:#ffaf25;--c3:#af6509;--accent:#ffe19a;--glow:255,175,37}
.vorb--ember{--c1:#ffb02a;--c2:#ff5417;--c3:#bf1633;--accent:#ffb02a;--glow:255,84,23}
.vorb--solar{--c1:#fff786;--c2:#ffcc17;--c3:#f5660f;--accent:#fff786;--glow:255,204,23}
.vorb--lagoon{--c1:#afff98;--c2:#09dbc4;--c3:#2078ef;--accent:#afff98;--glow:9,219,196}
.vorb--aurora{--c1:#82ffc9;--c2:#31a9e8;--c3:#a62ef0;--accent:#5bff99;--glow:49,169,232}
.vorb--dusk{--c1:#ffb1d4;--c2:#ef53be;--c3:#6d45ed;--accent:#ffb1d4;--glow:239,83,190}
 .vorb:not(.vorb--prism) .vo-body{filter:saturate(1.12)}

/* Every silhouette can wear every gradient. */
.vorb[data-vshape="comet"]{--vo-mask:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%20100%20100%27%3E%3Cpath%20fill%3D%27white%27%20d%3D%27M81%206C73%2031%2083%2039%2091%2050C102%2068%2089%2091%2067%2095C42%20100%2017%2088%209%2068C-1%2040%2030%2027%2081%206Z%27%2F%3E%3C%2Fsvg%3E")}
.vorb[data-vshape="cloud"]{--vo-mask:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%20100%20100%27%3E%3Cpath%20fill%3D%27white%27%20d%3D%27M23%2032C15%2011%2040%203%2052%2019C67%201%2091%2019%2083%2036C105%2043%2099%2075%2081%2079L24%2085C3%2084%20-4%2055%2013%2043C10%2036%2017%2031%2023%2032Z%27%2F%3E%3C%2Fsvg%3E")}
.vorb[data-vshape="leaf"]{--vo-mask:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%20100%20100%27%3E%3Cpath%20fill%3D%27white%27%20d%3D%27M85%207C99%2040%2095%2076%2071%2089C45%20104%2016%2089%208%2066C-3%2034%2036%2011%2085%207Z%27%2F%3E%3C%2Fsvg%3E")}
.vorb[data-vshape="flame"]{--vo-mask:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%20100%20100%27%3E%3Cpath%20fill%3D%27white%27%20d%3D%27M54%203C68%2017%2071%2032%2064%2040C78%2034%2081%2027%2081%2027C102%2053%2096%2080%2076%2091C53%20105%2018%2093%2010%2071C1%2048%2018%2028%2031%2020C28%2042%2044%2041%2045%2029C46%2018%2049%209%2054%203Z%27%2F%3E%3C%2Fsvg%3E")}
.vorb[data-vshape="heart"]{--vo-mask:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%20100%20100%27%3E%3Cpath%20fill%3D%27white%27%20d%3D%27M50%2020C32%20-3%205%2012%205%2034C4%2057%2028%2078%2050%2095C73%2077%2097%2056%2095%2032C94%209%2069%20-1%2050%2020Z%27%2F%3E%3C%2Fsvg%3E")}
.vorb[data-vshape="gem"]{--vo-mask:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%20100%20100%27%3E%3Cpath%20fill%3D%27white%27%20d%3D%27M28%208L72%208Q78%208%2082%2015L95%2039Q98%2045%2092%2052L57%2091Q50%2099%2043%2091L8%2052Q2%2045%205%2039L18%2015Q22%208%2028%208Z%27%2F%3E%3C%2Fsvg%3E")}
.vorb[data-vshape="crescent"]{--vo-mask:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%20100%20100%27%3E%3Cpath%20fill%3D%27white%27%20d%3D%27M77%2010C47%20-2%2012%2017%207%2047C0%2078%2028%2099%2057%2094C78%2091%2094%2077%2097%2058C78%2074%2054%2062%2052%2044C49%2026%2061%2015%2077%2010Z%27%2F%3E%3C%2Fsvg%3E")}
.vorb[data-vshape="bean"]{--vo-mask:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%20100%20100%27%3E%3Cpath%20fill%3D%27white%27%20d%3D%27M43%207C68%201%2095%2018%2095%2044C95%2058%2085%2062%2075%2060C58%2057%2065%2079%2051%2090C29%20106%207%2090%205%2067C2%2043%2016%2015%2043%207Z%27%2F%3E%3C%2Fsvg%3E")}
.vorb[data-vshape="clover"]{--vo-mask:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%20100%20100%27%3E%3Cpath%20fill%3D%27white%27%20d%3D%27M49%2020C43%20-1%2012%202%2013%2023C-8%2027%200%2056%2019%2055C0%2075%2021%2099%2039%2084C45%20105%2077%2099%2075%2079C98%2089%20109%2057%2089%2047C106%2026%2079%204%2062%2019C58%2010%2052%2012%2049%2020Z%27%2F%3E%3C%2Fsvg%3E")}
.vorb[data-vshape="lotus"]{--vo-mask:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%20100%20100%27%3E%3Cpath%20fill%3D%27white%27%20d%3D%27M50%205C62%2017%2065%2028%2064%2038C72%2024%2084%2024%2091%2023C95%2039%2092%2049%2085%2058C96%2054%2098%2059%2097%2068C92%2088%2071%2098%2050%2096C26%2098%207%2085%203%2067C1%2058%206%2053%2015%2058C7%2045%207%2033%2010%2023C24%2025%2032%2029%2036%2038C35%2024%2043%2011%2050%205Z%27%2F%3E%3C%2Fsvg%3E")}
.vorb[data-vshape="shell"]{--vo-mask:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%20100%20100%27%3E%3Cpath%20fill%3D%27white%27%20d%3D%27M15%2080C-5%2057%204%2028%2025%2017C53%20-1%2084%2010%2094%2037C106%2067%2087%2093%2060%2096L18%2094Q9%2090%2015%2080Z%27%2F%3E%3C%2Fsvg%3E")}
.vorb[data-vshape="bolt"],.vorb:not([data-vshape]){--vo-mask:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%20100%20100%27%3E%3Cpath%20fill%3D%27white%27%20d%3D%27M49%206Q55%201%2059%209L55%2035L86%2032Q100%2033%2090%2045L48%2094Q40%20104%2041%2089L45%2064L13%2066Q1%2064%2010%2053Z%27%2F%3E%3C%2Fsvg%3E")}
.vorb[data-vshape="wave"]{--vo-mask:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%20100%20100%27%3E%3Cpath%20fill%3D%27white%27%20d%3D%27M6%2069C16%2040%2025%2011%2055%207C77%202%2093%2018%2094%2035C79%2026%2064%2030%2062%2041C60%2055%2080%2065%2095%2059C91%2087%2072%2098%2045%2094C29%2091%2015%2079%206%2069Z%27%2F%3E%3C%2Fsvg%3E")}
.vorb[data-vshape="lantern"]{--vo-mask:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%20100%20100%27%3E%3Cpath%20fill%3D%27white%27%20d%3D%27M30%208Q50%201%2070%208L88%2030Q99%2048%2088%2071L70%2092Q50%2099%2030%2092L12%2071Q1%2049%2012%2030Z%27%2F%3E%3C%2Fsvg%3E")}
.vorb[data-vshape="kite"]{--vo-mask:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%20100%20100%27%3E%3Cpath%20fill%3D%27white%27%20d%3D%27M44%205Q50%200%2057%207L90%2038Q97%2046%2091%2056L62%2092Q53%20102%2044%2093L9%2059Q1%2050%207%2041Z%27%2F%3E%3C%2Fsvg%3E")}

/* Creative specialists retain the family grain and eyes, with recognizable tools. */
.vorb[data-vshape="camera"]{--vo-mask:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%20100%20100%27%3E%3Cpath%20fill%3D%27white%27%20d%3D%27M17%2028H28L34%2017Q37%2012%2043%2012H59Q66%2012%2069%2018L75%2028H83Q95%2028%2095%2040V77Q95%2090%2082%2090H18Q5%2090%205%2077V41Q5%2028%2017%2028Z%27%2F%3E%3C%2Fsvg%3E")}
.vorb[data-vshape="clapper"]{--vo-mask:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%20100%20100%27%3E%3Cpath%20fill%3D%27white%27%20d%3D%27M9%2040H91V78Q91%2091%2078%2091H22Q9%2091%209%2078ZM10%2027L82%207Q89%205%2091%2012L95%2025L13%2047L8%2033Q7%2029%2010%2027Z%27%2F%3E%3C%2Fsvg%3E")}
.vorb:is([data-vshape="camera"],[data-vshape="clapper"]) .vo-spec{display:block;position:absolute;inset:0;pointer-events:none;background-position:center;background-size:100% 100%;background-repeat:no-repeat}
.vorb[data-vshape="camera"] .vo-spec{background-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%20100%20100%27%3E%3Ccircle%20cx%3D%2750%27%20cy%3D%2759%27%20r%3D%2728%27%20fill%3D%27%23060814%27%20fill-opacity%3D%27.18%27%20stroke%3D%27%23060814%27%20stroke-opacity%3D%27.32%27%20stroke-width%3D%273%27%2F%3E%3Ccircle%20cx%3D%2750%27%20cy%3D%2759%27%20r%3D%2724%27%20fill%3D%27none%27%20stroke%3D%27white%27%20stroke-opacity%3D%27.3%27%20stroke-width%3D%271.5%27%2F%3E%3Crect%20x%3D%2742%27%20y%3D%2718%27%20width%3D%2718%27%20height%3D%277%27%20rx%3D%272.5%27%20fill%3D%27%23060814%27%20fill-opacity%3D%27.4%27%2F%3E%3Crect%20x%3D%2778%27%20y%3D%2735%27%20width%3D%2710%27%20height%3D%276%27%20rx%3D%272%27%20fill%3D%27white%27%20fill-opacity%3D%27.8%27%2F%3E%3C%2Fsvg%3E")}
.vorb[data-vshape="clapper"] .vo-spec{background-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%20100%20100%27%3E%3Cdefs%3E%3CclipPath%20id%3D%27bar%27%3E%3Cpath%20d%3D%27M10%2027L82%207Q89%205%2091%2012L95%2025L13%2047L8%2033Q7%2029%2010%2027Z%27%2F%3E%3C%2FclipPath%3E%3C%2Fdefs%3E%3Cg%20clip-path%3D%27url%28%23bar%29%27%3E%3Cpath%20d%3D%27M10%2027L82%207Q89%205%2091%2012L95%2025L13%2047L8%2033Q7%2029%2010%2027Z%27%20fill%3D%27%23060814%27%20fill-opacity%3D%27.42%27%2F%3E%3Cpath%20d%3D%27M13%2022L24%2019L39%2041L28%2044ZM39%2015L50%2012L65%2034L54%2037ZM65%208L76%205L91%2027L80%2030Z%27%20fill%3D%27white%27%20fill-opacity%3D%27.82%27%2F%3E%3C%2Fg%3E%3Cpath%20d%3D%27M14%2043H87%27%20stroke%3D%27%23060814%27%20stroke-opacity%3D%27.25%27%20stroke-width%3D%273%27%2F%3E%3Cpath%20d%3D%27M26%2078H74%27%20stroke%3D%27white%27%20stroke-opacity%3D%27.22%27%20stroke-width%3D%272.5%27%20stroke-linecap%3D%27round%27%2F%3E%3C%2Fsvg%3E")}
.vorb[data-vshape="camera"] .vo-eyes{top:59%;gap:max(.06em,2px)}
.vorb[data-vshape="camera"] .vo-eye{width:max(.17em,4px);height:max(.19em,5px)}
.vorb[data-vshape="camera"] .vo-eye:last-child{height:max(.22em,5px)}
.vorb[data-vshape="clapper"] .vo-eyes{top:62%}

/* Liquid pigment stays inside the silhouette. Additional colors add moving pools,
   saturation and travel, without additive blending washing them out to white. */
.vo-lava{display:none}
.vorb[data-vcolors] .vo-body{background:linear-gradient(150deg,var(--c1),var(--c2));filter:saturate(var(--lava-saturation)) contrast(1.04);box-shadow:inset 0 -.08em .15em #0003}
.vorb :is(.vo-flow,.vo-flow2){display:none}
.vorb .vo-lava{display:block;position:absolute;width:95%;height:95%;left:-30%;top:-20%;border-radius:44% 56% 62% 38% / 48% 33% 67% 52%;background:var(--c1);filter:blur(calc(var(--s) * .085));animation:vo-lava-rise var(--lava-speed) ease-in-out infinite;transform-origin:65% 65%;opacity:.96}
.vorb .vo-lava-2{left:40%;top:40%;background:var(--c2);animation-name:vo-lava-fall;animation-delay:calc(var(--lava-speed) * -.42);animation-duration:calc(var(--lava-speed) * 1.17);transform-origin:30% 30%}
.vorb .vo-lava-3{display:none;left:35%;top:-27%;width:76%;height:81%;background:var(--c3);animation-name:vo-lava-cross;animation-delay:calc(var(--lava-speed) * -.25);animation-duration:calc(var(--lava-speed) * 1.29)}
.vorb .vo-lava-4{display:none;left:-16%;top:46%;width:72%;height:77%;background:var(--c4);animation-name:vo-lava-cross;animation-direction:reverse;animation-delay:calc(var(--lava-speed) * -.62);animation-duration:calc(var(--lava-speed) * 1.07)}
.vorb:is([data-vcolors="3"],[data-vcolors="4"]) .vo-lava-3,.vorb[data-vcolors="4"] .vo-lava-4{display:block}
.vorb .vo-glow{background:radial-gradient(ellipse at 25% 30%,var(--c1),transparent 65%),radial-gradient(ellipse at 75% 70%,var(--c2),transparent 70%);opacity:calc(var(--lava-glow) * .18);animation:vo-lava-aura var(--lava-speed) ease-in-out infinite}
.vorb .vo-body::after{opacity:.38}
@keyframes vo-lava-rise{0%,100%{transform:translate(0,0) rotate(-15deg) scale(.94);border-radius:44% 56% 62% 38% / 48% 33% 67% 52%}35%{transform:translate(calc(34% * var(--lava-travel)),calc(48% * var(--lava-travel))) rotate(35deg) scale(1.08,.83);border-radius:65% 35% 33% 67% / 38% 62% 38% 62%}70%{transform:translate(13%,55%) rotate(95deg) scale(.83,1.12);border-radius:32% 68% 71% 29% / 67% 32% 68% 33%}}
@keyframes vo-lava-fall{0%,100%{transform:translate(0,0) rotate(15deg) scale(1.04);border-radius:38% 62% 43% 57% / 65% 42% 58% 35%}40%{transform:translate(calc(-38% * var(--lava-travel)),calc(-44% * var(--lava-travel))) rotate(-65deg) scale(.9,1.13);border-radius:69% 31% 60% 40% / 32% 68% 32% 68%}75%{transform:translate(-48%,-8%) rotate(-115deg) scale(1.12,.84);border-radius:42% 58% 27% 73% / 66% 38% 62% 34%}}
@keyframes vo-lava-cross{0%,100%{transform:translate(-8%,5%) rotate(0deg) scale(.91);border-radius:37% 63% 57% 43% / 65% 38% 62% 35%}33%{transform:translate(calc(-34% * var(--lava-travel)),calc(45% * var(--lava-travel))) rotate(75deg) scale(1.12,.8);border-radius:67% 33% 35% 65% / 35% 60% 40% 65%}68%{transform:translate(5%,65%) rotate(150deg) scale(.87,1.15);border-radius:33% 67% 68% 32% / 62% 31% 69% 38%}}
@keyframes vo-lava-aura{0%,100%{transform:rotate(0deg) scale(1)}50%{transform:rotate(30deg) scale(1.03)}}
@media(prefers-reduced-motion:reduce){.vorb :is(.vo-lava,.vo-glow){animation:none}.vorb .vo-lava-1{transform:translate(10%,8%)}.vorb .vo-lava-2{transform:translate(-10%,-8%)}}

/* Reordering moves the contact itself; the character rests until the drag ends. */
:is(.vr-dragging,.vr-drag-ghost,.vr-drag-source) .vorb :is(.vo-in,.vo-glow,.vo-flow,.vo-flow2,.vo-eye,.vo-lava){animation-play-state:paused}
:is(.vr-dragging,.vr-drag-ghost,.vr-drag-source) .vorb .vo-in{rotate:0deg;scale:1;translate:0 0;transition:none}
:is(.vr-dragging,.vr-drag-ghost,.vr-drag-source) .vorb .vo-eyes{transform:translate(-50%,-50%);transition:none}
:is(.vr-dragging,.vr-drag-ghost,.vr-drag-source) .vorb .vo-eye{transform:none}

/* Brain carries the owner’s exact live palette instead of a generic utility glyph. */
.vorb[data-vshape="brain"]{--vo-mask:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20100%20100%22%3E%3Cpath%20fill%3D%22white%22%20d%3D%22M48%2012C36%200%2018%2010%2018%2025C5%2028%203%2045%2010%2054C0%2067%2010%2084%2023%2085C30%20100%2046%2094%2050%2087C57%2097%2074%2097%2079%2084C95%2084%20102%2067%2091%2055C101%2042%2094%2027%2082%2025C82%209%2063%200%2052%2012Z%22%2F%3E%3C%2Fsvg%3E")}
.vorb[data-vshape="brain"] .vo-spec{display:block;position:absolute;inset:0;pointer-events:none;background:center/100% 100% no-repeat url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20100%20100%22%3E%3Cg%20fill%3D%22none%22%20stroke%3D%22%23111527%22%20stroke-opacity%3D%22.35%22%20stroke-width%3D%223.5%22%20stroke-linecap%3D%22round%22%3E%3Cpath%20d%3D%22M50%2016V84M22%2028Q34%2025%2035%2037M15%2058Q28%2056%2028%2068M74%2029Q63%2027%2064%2038M85%2058Q73%2056%2072%2069M34%2082Q40%2077%2038%2070M65%2082Q59%2077%2062%2070%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E")}
.vorb[data-vshape="brain"] .vo-eyes{top:51%;gap:.12em}
.vorb[data-vshape="brain"] .vo-eye{width:.18em;height:.15em}

/* Object mascots: shared live color fields under dimensional object detailing. */
 .vorb[data-vshape="storyteller"]{--vo-mask:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20100%20100%22%3E%3Cpath%20fill%3D%22white%22%20d%3D%22M5%2022Q5%2016%2012%2016H18V12Q35%208%2050%2022Q65%208%2082%2012V16H89Q95%2016%2095%2022V86Q95%2091%2088%2091H63Q55%2092%2050%2097Q45%2092%2037%2091H12Q5%2091%205%2084Z%22%2F%3E%3C%2Fsvg%3E")}
.vorb[data-vshape="storyteller"] .vo-spec{display:block;position:absolute;inset:0;pointer-events:none;background:center/100% 100% no-repeat url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20100%20100%22%3E%3Cpath%20d%3D%22M6%2023V85Q6%2089%2013%2089H37Q45%2090%2050%2095Q56%2090%2064%2089H88Q94%2089%2094%2084V23L83%2023V79Q65%2076%2050%2088Q33%2077%2017%2080V23Z%22%20fill%3D%22%23191251%22%20opacity%3D%22.38%22%2F%3E%3Cpath%20d%3D%22M17%2012V80Q34%2076%2050%2088V22Q35%208%2017%2012Z%22%20fill%3D%22white%22%20opacity%3D%22.14%22%2F%3E%3Cpath%20d%3D%22M50%2022V88Q66%2076%2083%2080V12Q65%208%2050%2022Z%22%20fill%3D%22%2321125c%22%20opacity%3D%22.12%22%2F%3E%3Cpath%20d%3D%22M50%2023V87M17%2080Q34%2076%2050%2088Q65%2076%2083%2080%22%20fill%3D%22none%22%20stroke%3D%22%2328145b%22%20stroke-opacity%3D%22.32%22%20stroke-width%3D%222%22%2F%3E%3Cpath%20d%3D%22M19%2014Q34%2012%2047%2023M53%2023Q67%2012%2081%2014%22%20stroke%3D%22white%22%20stroke-opacity%3D%22.38%22%20fill%3D%22none%22%20stroke-width%3D%221.2%22%2F%3E%3C%2Fsvg%3E")}
.vorb[data-vshape="storyteller"] .vo-eyes{top:54%;left:50%;gap:.065em}
.vorb[data-vshape="storyteller"] .vo-eye{width:.18em;height:.19em}
 .vorb[data-vshape="scriptwriter"]{--vo-mask:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20100%20100%22%3E%3Cpath%20fill%3D%22white%22%20d%3D%22M22%205H64L86%2027V85Q86%2094%2077%2094H22Q13%2094%2013%2085V14Q13%205%2022%205Z%22%2F%3E%3C%2Fsvg%3E")}
.vorb[data-vshape="scriptwriter"] .vo-spec{display:block;position:absolute;inset:0;pointer-events:none;background:center/100% 100% no-repeat url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20100%20100%22%3E%3Cdefs%3E%3ClinearGradient%20id%3D%22fold%22%20x2%3D%220%22%20y2%3D%221%22%3E%3Cstop%20stop-color%3D%22%23f1ffff%22%2F%3E%3Cstop%20offset%3D%221%22%20stop-color%3D%22%238cc7ee%22%2F%3E%3C%2FlinearGradient%3E%3C%2Fdefs%3E%3Cpath%20d%3D%22M64%206V25Q64%2031%2071%2031H86V27Z%22%20fill%3D%22%23071c4b%22%20opacity%3D%22.3%22%2F%3E%3Cpath%20d%3D%22M64%205V21Q64%2027%2070%2027H86Z%22%20fill%3D%22url%28%23fold%29%22%2F%3E%3Cpath%20d%3D%22M25%2026H45M25%2036H63M25%2045H70%22%20fill%3D%22none%22%20stroke%3D%22white%22%20stroke-opacity%3D%22.28%22%20stroke-width%3D%224%22%20stroke-linecap%3D%22round%22%2F%3E%3Cpath%20d%3D%22M21%207H62M15%2015V83%22%20fill%3D%22none%22%20stroke%3D%22white%22%20stroke-opacity%3D%22.38%22%20stroke-width%3D%221%22%2F%3E%3C%2Fsvg%3E")}
.vorb[data-vshape="scriptwriter"] .vo-eyes{top:64%;left:50%;gap:.065em}
.vorb[data-vshape="scriptwriter"] .vo-eye{width:.18em;height:.19em}
 .vorb[data-vshape="sound"]{--vo-mask:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20100%20100%22%3E%3Cpath%20fill%3D%22white%22%20d%3D%22M10%2054V44Q10%206%2050%206Q90%206%2090%2044V54Q96%2058%2096%2066V78Q96%2089%2086%2089H80Q72%2095%2069%2086L73%2054Q75%2048%2081%2050V44Q81%2015%2050%2015Q19%2015%2019%2044V50Q25%2048%2027%2054L31%2086Q28%2095%2020%2089H14Q4%2089%204%2078V66Q4%2058%2010%2054Z%22%2F%3E%3C%2Fsvg%3E")}
.vorb[data-vshape="sound"] .vo-spec{display:block;position:absolute;inset:0;pointer-events:none;background:center/100% 100% no-repeat url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20100%20100%22%3E%3Cpath%20d%3D%22M13%2045Q13%2010%2050%2010Q87%2010%2087%2045%22%20fill%3D%22none%22%20stroke%3D%22white%22%20stroke-opacity%3D%22.3%22%20stroke-width%3D%222%22%2F%3E%3Cpath%20d%3D%22M17%2045Q17%2017%2050%2017Q83%2017%2083%2045%22%20fill%3D%22none%22%20stroke%3D%22%23631029%22%20stroke-opacity%3D%22.38%22%20stroke-width%3D%223%22%2F%3E%3Cpath%20d%3D%22M17%2053L23%2087M83%2053L77%2087%22%20stroke%3D%22%235d1032%22%20stroke-opacity%3D%22.34%22%20stroke-width%3D%223%22%20stroke-linecap%3D%22round%22%2F%3E%3Cpath%20d%3D%22M10%2061V78M89%2061V78%22%20stroke%3D%22white%22%20stroke-opacity%3D%22.28%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%2F%3E%3C%2Fsvg%3E")}
.vorb[data-vshape="sound"] .vo-eyes{top:67%;left:50%;gap:.065em}
.vorb[data-vshape="sound"] .vo-eye{width:.18em;height:.19em}
 .vorb[data-vshape="music"]{--vo-mask:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20100%20100%22%3E%3Cpath%20fill%3D%22white%22%20d%3D%22M31%2019Q31%2013%2037%2012L86%203Q93%201%2093%209V67Q93%2082%2078%2084Q61%2087%2061%2073Q61%2061%2080%2060V27L44%2034V77Q44%2092%2028%2095Q9%2097%208%2083Q7%2069%2031%2068Z%22%2F%3E%3C%2Fsvg%3E")}
.vorb[data-vshape="music"] .vo-spec{display:block;position:absolute;inset:0;pointer-events:none;background:center/100% 100% no-repeat url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20100%20100%22%3E%3Cpath%20d%3D%22M34%2021L90%2010V20L34%2031Z%22%20fill%3D%22white%22%20opacity%3D%22.13%22%2F%3E%3Cpath%20d%3D%22M35%2017L86%207M34%2036V68M83%2029V60%22%20stroke%3D%22white%22%20stroke-opacity%3D%22.38%22%20stroke-width%3D%221.5%22%20fill%3D%22none%22%20stroke-linecap%3D%22round%22%2F%3E%3Cpath%20d%3D%22M11%2086Q20%2096%2035%2086M66%2076Q74%2085%2087%2074%22%20fill%3D%22none%22%20stroke%3D%22%23bb3900%22%20stroke-opacity%3D%22.2%22%20stroke-width%3D%222%22%2F%3E%3C%2Fsvg%3E")}
.vorb[data-vshape="music"] .vo-eyes{top:59%;left:63%;gap:.065em}
.vorb[data-vshape="music"] .vo-eye{width:.18em;height:.19em}
 .vorb[data-vshape="colorist"]{--vo-mask:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20100%20100%22%3E%3Cpath%20fill%3D%22white%22%20d%3D%22M52%205C25%204%207%2025%206%2050C4%2078%2027%2098%2054%2096C72%2095%2084%2086%2080%2077C77%2070%2067%2073%2067%2064C67%2055%2088%2061%2092%2048C100%2024%2076%205%2052%205Z%22%2F%3E%3C%2Fsvg%3E")}
.vorb[data-vshape="colorist"] .vo-spec{display:block;position:absolute;inset:0;pointer-events:none;background:center/100% 100% no-repeat url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20100%20100%22%3E%3Ccircle%20cx%3D%2226%22%20cy%3D%2239%22%20r%3D%229%22%20fill%3D%22%23005f62%22%20stroke%3D%22white%22%20stroke-opacity%3D%22.28%22%20stroke-width%3D%221.5%22%2F%3E%3Ccircle%20cx%3D%2249%22%20cy%3D%2224%22%20r%3D%229%22%20fill%3D%22%2332268b%22%20stroke%3D%22white%22%20stroke-opacity%3D%22.28%22%20stroke-width%3D%221.5%22%2F%3E%3Ccircle%20cx%3D%2273%22%20cy%3D%2238%22%20r%3D%229%22%20fill%3D%22%23201332%22%20stroke%3D%22white%22%20stroke-opacity%3D%22.28%22%20stroke-width%3D%221.5%22%2F%3E%3Cpath%20d%3D%22M13%2043Q15%2016%2045%2010%22%20fill%3D%22none%22%20stroke%3D%22white%22%20stroke-opacity%3D%22.4%22%20stroke-width%3D%221.4%22%20stroke-linecap%3D%22round%22%2F%3E%3C%2Fsvg%3E")}
.vorb[data-vshape="colorist"] .vo-eyes{top:64%;left:42%;gap:.065em}
.vorb[data-vshape="colorist"] .vo-eye{width:.18em;height:.19em}
 .vorb[data-vshape="voice"]{--vo-mask:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20100%20100%22%3E%3Cpath%20fill%3D%22white%22%20d%3D%22M30%2023Q30%203%2050%203Q70%203%2070%2023V52Q70%2073%2050%2073Q30%2073%2030%2052ZM21%2049Q21%2045%2024%2045Q27%2045%2027%2049V55Q27%2078%2050%2078Q73%2078%2073%2055V49Q73%2045%2076%2045Q79%2045%2079%2049V55Q79%2080%2054%2084V93H65Q69%2093%2069%2097Q69%20100%2065%20100H35Q31%20100%2031%2097Q31%2093%2035%2093H46V84Q21%2080%2021%2055Z%22%2F%3E%3C%2Fsvg%3E")}
.vorb[data-vshape="voice"] .vo-spec{display:block;position:absolute;inset:0;pointer-events:none;background:center/100% 100% no-repeat url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20100%20100%22%3E%3Cpath%20d%3D%22M34%2024Q34%208%2049%207%22%20fill%3D%22none%22%20stroke%3D%22white%22%20stroke-opacity%3D%22.45%22%20stroke-width%3D%221.5%22%20stroke-linecap%3D%22round%22%2F%3E%3Cpath%20d%3D%22M34%2059Q50%2080%2066%2059%22%20fill%3D%22none%22%20stroke%3D%22%23003a67%22%20stroke-opacity%3D%22.22%22%20stroke-width%3D%223%22%20stroke-linecap%3D%22round%22%2F%3E%3C%2Fsvg%3E")}
.vorb[data-vshape="voice"] .vo-eyes{top:43%;left:50%;gap:.065em}
.vorb[data-vshape="voice"] .vo-eye{width:.18em;height:.19em}
 .vorb[data-vshape="director"]{--vo-mask:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20100%20100%22%3E%3Cpath%20fill%3D%22white%22%20d%3D%22M18%2043Q1%2040%208%2027Q20%2010%2053%2012L58%205Q64%201%2067%207L66%2013Q95%2018%2095%2032Q95%2043%2082%2046L84%2064Q83%2090%2053%2094Q20%2095%2016%2069Z%22%2F%3E%3C%2Fsvg%3E")}
.vorb[data-vshape="director"] .vo-spec{display:block;position:absolute;inset:0;pointer-events:none;background:center/100% 100% no-repeat url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20100%20100%22%3E%3Cpath%20d%3D%22M18%2043Q50%2056%2083%2043L82%2051Q50%2063%2018%2051Z%22%20fill%3D%22%23121321%22%20fill-opacity%3D%22.48%22%2F%3E%3Cpath%20d%3D%22M19%2030Q29%2021%2045%2021%22%20fill%3D%22none%22%20stroke%3D%22white%22%20stroke-opacity%3D%22.35%22%20stroke-width%3D%224%22%20stroke-linecap%3D%22round%22%2F%3E%3C%2Fsvg%3E")}
.vorb[data-vshape="director"] .vo-eyes{top:69%;left:50%;gap:.065em}
.vorb[data-vshape="director"] .vo-eye{width:.18em;height:.19em}
 .vorb[data-vshape="voice"] .vo-eye{width:.13em;height:.17em}
.vorb[data-vshape="music"] .vo-eye{width:.14em;height:.17em}

.vorb[data-vshape="graphic"]{--vo-mask:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20100%20100%22%3E%3Cpath%20fill%3D%22white%22%20d%3D%22M19%2014H81Q89%2014%2089%2022V78Q89%2086%2081%2086H19Q11%2086%2011%2078V22Q11%2014%2019%2014Z%22%2F%3E%3C%2Fsvg%3E")}
.vorb[data-vshape="graphic"] .vo-spec{display:block;position:absolute;inset:0;pointer-events:none;background:center/100% 100% no-repeat url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20100%20100%22%3E%3Cpath%20d%3D%22M25%2027H75M50%2027V74M39%2074H61%22%20stroke%3D%22white%22%20stroke-opacity%3D%22.4%22%20stroke-width%3D%225%22%20fill%3D%22none%22%20stroke-linecap%3D%22round%22%2F%3E%3Cpath%20d%3D%22M16%2019H84%22%20stroke%3D%22white%22%20stroke-opacity%3D%22.3%22%20fill%3D%22none%22%2F%3E%3C%2Fsvg%3E")}
.vorb[data-vshape="graphic"] .vo-eyes{top:52%;gap:.07em}
.vorb[data-vshape="graphic"] .vo-eye{width:.18em;height:.18em}

.vorb[data-vshape="animator"]{--vo-mask:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20100%20100%22%3E%3Cpath%20fill%3D%22white%22%20d%3D%22M24%208H76Q84%208%2084%2016V84Q84%2092%2076%2092H24Q16%2092%2016%2084V16Q16%208%2024%208Z%22%2F%3E%3C%2Fsvg%3E")}
.vorb[data-vshape="animator"] .vo-spec{display:block;position:absolute;inset:0;pointer-events:none;background:center/100% 100% no-repeat url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20100%20100%22%3E%3Cpath%20d%3D%22M25%2013V87M75%2013V87%22%20stroke%3D%22%2329152c%22%20stroke-opacity%3D%22.28%22%20stroke-width%3D%228%22%20stroke-dasharray%3D%225%206%22%2F%3E%3Cpath%20d%3D%22M35%2072L49%2063L66%2076M36%2029Q50%2018%2065%2029%22%20stroke%3D%22white%22%20stroke-opacity%3D%22.4%22%20stroke-width%3D%223%22%20fill%3D%22none%22%20stroke-linecap%3D%22round%22%2F%3E%3C%2Fsvg%3E")}
.vorb[data-vshape="animator"] .vo-eyes{top:48%;gap:.07em}
.vorb[data-vshape="animator"] .vo-eye{width:.18em;height:.18em}
/* the page's own orb waits for the person's Vaia look (shown anyway after a moment if scripts are slow) */
.vorb.vo-pending{opacity:0;animation:vo-pending-show 0s 1.5s forwards}
@keyframes vo-pending-show{to{opacity:1}}

/* iPhone: the eyes blink and look around on their own layer, and Safari then left
   the patch of body under them without the body's colour filter and grain (a dull
   rectangle behind the eyes). Giving the body its own layer paints it whole. */
.vorb .vo-body{transform:translateZ(0);-webkit-backface-visibility:hidden;backface-visibility:hidden}
/* ...and the parts drawn over it (rim, object details) get theirs too, so they stay on top */
.vorb :is(.vo-rim,.vo-spec){transform:translateZ(0)}
