/* The Collector's attraction field: quiet silver structure, living red light.
 * The art is decorative; target links, contract and primary action stay put. */
.sculpture-stage .scene-orbit { display:none; }
.soul-field { position:absolute; inset:0; z-index:0; pointer-events:none; }
.soul-field::before {
  content:''; position:absolute; width:53%; height:29%; left:50%; top:63%;
  transform:translate(-50%,-50%); border-radius:50%;
  background:radial-gradient(ellipse,#62717b2b 0%,#71818b0e 43%,transparent 72%);
}
.soul-field::after {
  content:''; position:absolute; left:50%; top:48%; width:31%; height:70%;
  border:1px solid #bd233259; border-radius:50%; transform:translate(-50%,-50%) scale(.8);
  opacity:0;
}
.soul-field-orbits { display:block; width:100%; height:100%; overflow:visible; }
.soul-field-track,.soul-field-glint,.soul-target-connection {
  fill:none; vector-effect:non-scaling-stroke; stroke-linecap:round; stroke-linejoin:round;
}
.soul-field-track { stroke:#6b7d8a; stroke-width:1.15; opacity:.38; }
.soul-field-ribbon-two .soul-field-track { stroke:#ffffff; stroke-width:1.5; opacity:.74; }
.soul-field-ribbon-three .soul-field-track { stroke:#81909d; opacity:.2; }
.soul-field-glint {
  stroke:#bd2332; stroke-width:1.7; stroke-dasharray:48 952; stroke-dashoffset:1000;
  opacity:.78; animation:soul-ribbon-circulate 9.5s linear infinite; animation-play-state:paused;
}
.soul-field-ribbon-two .soul-field-glint {
  stroke:#f6f9fa; stroke-width:2.8; stroke-dasharray:100 900;
  animation-duration:13s; animation-delay:-5s; animation-direction:reverse;
}
.soul-field-ribbon-three .soul-field-glint {
  stroke:#bd2332; stroke-width:1.3; stroke-dasharray:23 977; opacity:.52;
  animation-duration:7.3s; animation-delay:-2s;
}
.soul-target-connection { stroke:#bd2332; stroke-width:1.2; opacity:0; transition:opacity 220ms ease; }
.soul-target-connection.is-target-lit { opacity:.68; }
.soul-field-motes { position:absolute; inset:0; }
.soul-mote {
  position:absolute; left:var(--mote-x); top:var(--mote-y); width:var(--mote-size,22px); height:var(--mote-size,22px);
  border-radius:65% 42% 68% 47%; border:1px solid #fafdfeca;
  background:linear-gradient(125deg,#ffffffdb 2%,#8996a596 25%,#f4f8fabf 45%,#6b78867a 69%,#bac5c8b3 95%);
  box-shadow:inset 1px 1px 2px #ffffffc2, inset -2px -1px 3px #48545c47, 3px 8px 12px #475f6c12;
  opacity:.78; transform:rotate(-28deg); animation:soul-mote-drift var(--mote-duration,6s) ease-in-out infinite;
  animation-delay:var(--mote-delay,0s); animation-play-state:paused;
}
.soul-mote-one { --mote-x:25%; --mote-y:34%; --mote-size:24px; --mote-drift:10px; --mote-delay:-1.1s; }
.soul-mote-two { --mote-x:74%; --mote-y:49%; --mote-size:17px; --mote-drift:-12px; --mote-duration:5.1s; --mote-delay:-3.4s; }
.soul-mote-three { --mote-x:33%; --mote-y:59%; --mote-size:15px; --mote-drift:8px; --mote-duration:7s; --mote-delay:-4.1s; }
.soul-mote-four { --mote-x:66%; --mote-y:27%; --mote-size:28px; --mote-drift:-10px; --mote-duration:6.2s; --mote-delay:-2.8s; }
.soul-mote-five { --mote-x:43%; --mote-y:13%; --mote-size:11px; --mote-drift:4px; --mote-duration:5.8s; --mote-delay:-3.5s; }
.soul-mote-six { --mote-x:58%; --mote-y:80%; --mote-size:12px; --mote-drift:-5px; --mote-duration:7.5s; --mote-delay:-1.5s; background:linear-gradient(135deg,#ffadb5b0,#bd2332b3 42%,#76152696 72%,#e58690b0); border-color:#e79fa785; }
.sculpture-stage .orbit-person img {
  animation:soul-portrait-buoyancy var(--soul-float-duration,5.5s) ease-in-out infinite;
  animation-delay:var(--soul-float-delay,0s); animation-play-state:paused;
  transition:filter 250ms ease, border-color 250ms ease, box-shadow 250ms ease;
}
.sculpture-stage .orbit-person:hover { transform:none; }
.sculpture-stage .orbit-person:is(:hover,:focus-visible) img {
  animation-play-state:paused!important; filter:grayscale(0); border-color:#bd2332;
  box-shadow:0 0 0 4px #bd233218,0 7px 22px #bd23321c;
}
.sculpture-stage .orbit-person:focus-visible { border-radius:7px; outline-offset:7px; }
.stage-motions-active .soul-field-glint,.stage-motions-active .soul-mote,
.stage-motions-active .orbit-person img { animation-play-state:running; }
.stage-collector-reacting .soul-field::after { animation:soul-field-response 1000ms cubic-bezier(.2,.65,.2,1) both; }
.stage-collector-reacting .soul-field-glint { stroke-width:3; opacity:1; }
.sculpture-stage .soul-touch {
  position:absolute; z-index:8; bottom:0; left:50%; transform:translateX(-50%);
  display:inline-flex; align-items:center; justify-content:center; gap:9px;
  min-height:var(--control-compact,44px); max-width:calc(100% - 32px); padding:10px 12px;
  border:1px solid transparent; border-radius:var(--control-radius,10px);
  color:var(--muted); background:transparent; box-shadow:none;
  font:500 14px/1.3 var(--body); letter-spacing:-.01em; white-space:nowrap;
  transition:background 180ms ease,color 180ms ease,border-color 180ms ease,box-shadow 220ms ease;
}
.sculpture-stage .soul-touch::before {
  content:''; width:6px; height:6px; flex:none; border-radius:50%; background:var(--red,#bd2332);
  box-shadow:0 0 0 3px #bd233212;
}
.sculpture-stage .soul-touch:hover {
  color:var(--red); background:var(--control-tone-hover); border-color:transparent;
}
.sculpture-stage .soul-touch:focus-visible { outline:2px solid var(--control-focus); outline-offset:3px; }
.sculpture-stage .soul-touch:active { background:var(--control-tone-hover); }
.touch-arrow { transition:transform var(--control-move-time) var(--control-ease); }
.soul-touch:hover .touch-arrow { transform:translate(2px,-2px); }
.soul-touch-short { display:none; }
.sculpture-stage .collector-response {
  position:absolute; z-index:7; top:22%; left:50%; transform:translateX(-50%);
  width:max-content; max-width:min(280px,75%); padding:12px 17px;
  border:1px solid #ffffff3d; border-radius:12px;
  color:#f8fafb; background:#20272ee8; box-shadow:0 9px 26px #17212b24,inset 0 1px 0 #ffffff18;
  backdrop-filter:blur(12px); -webkit-backdrop-filter:blur(12px);
  font:500 14px/1.45 var(--body); letter-spacing:-.01em; text-align:center; pointer-events:none;
}
.sculpture-stage .collector-response::after {
  content:''; position:absolute; bottom:-5px; left:calc(50% - 5px); width:9px; height:9px;
  transform:rotate(45deg); background:#20272e; border-right:1px solid #ffffff2e; border-bottom:1px solid #ffffff2e;
}
@keyframes soul-ribbon-circulate { to { stroke-dashoffset:0; } }
@keyframes soul-mote-drift {
  0%,100% { transform:translate3d(0,3px,0) rotate(-28deg); }
  50% { transform:translate3d(var(--mote-drift,8px),-10px,0) rotate(-7deg); }
}
@keyframes soul-portrait-buoyancy { 0%,100% { transform:translateY(2px); } 50% { transform:translateY(-5px); } }
@keyframes soul-field-response {
  0% { opacity:0; transform:translate(-50%,-50%) scale(.72); }
  22% { opacity:.48; }
  100% { opacity:0; transform:translate(-50%,-50%) scale(1.6); }
}
@media (max-width:600px) {
  .soul-mote-three,.soul-mote-five { display:none; }
  .soul-mote-one { --mote-x:27%; --mote-y:17%; --mote-size:17px; }
  .soul-mote-four { --mote-x:68%; --mote-y:22%; --mote-size:20px; }
  .soul-field-ribbon-three { opacity:.65; }
  .sculpture-stage .soul-touch { min-height:44px; padding:9px 7px; gap:6px; }
  .soul-touch-long { display:none; }
  .soul-touch-short { display:inline; }
  .sculpture-stage .collector-response { top:12%; max-width:72%; padding:10px 13px; }
}
@media (max-height:740px) and (min-width:801px) {
  .soul-mote-five,.soul-mote-six { display:none; }
  .sculpture-stage .collector-response { top:0; }
}
@media (max-width:360px) {
  .site-header .brand-wordmark { width:74px; }
}
.motions-paused .soul-field-glint,.motions-paused .soul-mote,
.motions-paused .sculpture-stage .orbit-person img { animation-play-state:paused!important; }
@media (prefers-reduced-motion:reduce) {
  .soul-field-glint,.soul-mote,.sculpture-stage .orbit-person img,.stage-collector-reacting .soul-field::after { animation:none!important; }
  .soul-field-glint { stroke-dashoffset:360; }
  .soul-target-connection,.sculpture-stage .soul-touch,.touch-arrow { transition:none; }
}
