/* Extracted verbatim (order preserved) from approved src/styles.css sha256 a81904cf0fae8c0005b8c6c5c5e4ecfe5eca621f17a8bfbcd82cd1e54b196906 by tools/build-orb.mjs. Do not edit. */
.orb-mount {
  --mono: "Cascadia Mono", "Consolas", monospace;
}

.jcore {
  --core-state: #74eaff;
  --cyan: #29d7ff;
  --cyan-hi: #dffcff;
  --gold: #ffd47c;
  --gold-hot: #ffb94f;
  --core-aura-opacity: 0.72;
  --core-contained-opacity: 0.92;
  position: relative;
  width: min(54vh, 500px);
  aspect-ratio: 1;
  display: grid;
  place-items: center;
  contain: layout paint;
  isolation: isolate;
  transform: translateZ(0);
}

.jcore::before,
.jcore::after {
  content: "";
  position: absolute;
  pointer-events: none;
  border-radius: 50%;
}

.jcore::before {
  inset: 9.5%;
  border: 1px solid rgba(74, 219, 255, 0.09);
  box-shadow:
    0 0 34px rgba(22, 186, 255, 0.06),
    0 0 90px rgba(12, 121, 194, 0.045),
    inset 0 0 44px rgba(45, 210, 255, 0.025);
}

.jcore::after {
  inset: 27%;
  background:
    radial-gradient(circle,
      rgba(255, 255, 255, 0.22) 0%,
      rgba(255, 232, 173, 0.12) 14%,
      rgba(255, 191, 82, 0.05) 25%,
      rgba(50, 214, 255, 0.035) 48%,
      transparent 73%);
  filter: blur(18px);
  opacity: var(--j-energy, 0.84);
  animation: jc-core-breathe 4.6s ease-in-out infinite;
}

.jcore-aura {
  position: absolute;
  inset: 7%;
  z-index: 0;
  border-radius: 50%;
  background:
    radial-gradient(circle at 50% 50%, rgba(30, 202, 255, 0.035), transparent 58%),
    conic-gradient(
      from 17deg,
      transparent 0 11%,
      rgba(25, 199, 255, 0.08) 14%,
      transparent 18% 34%,
      rgba(255, 206, 107, 0.06) 39%,
      transparent 44% 66%,
      rgba(38, 216, 255, 0.065) 72%,
      transparent 78% 100%
    );
  filter: blur(18px);
  opacity: var(--core-aura-opacity);
  animation: jc-aura-turn 54s linear infinite;
}

.jcore-energy-field {
  position: absolute;
  inset: 16%;
  z-index: 0;
  border-radius: 50%;
  background:
    radial-gradient(circle at 42% 39%, rgba(219, 250, 255, 0.055), transparent 28%),
    radial-gradient(circle at 58% 60%, rgba(255, 195, 83, 0.04), transparent 30%),
    radial-gradient(circle, rgba(14, 112, 168, 0.07), rgba(2, 11, 20, 0) 70%);
  box-shadow:
    inset 0 0 46px rgba(60, 221, 255, 0.04),
    0 0 48px rgba(24, 181, 255, 0.035);
  filter: blur(8px);
  animation: jc-field-breathe 8.4s ease-in-out infinite;
}

.jcore-net {
  position: relative;
  z-index: 2;
  width: 100%;
  height: 100%;
  overflow: visible;
  filter: saturate(1.08) contrast(1.02);
}

.jc-field-loops {
  transform-origin: 200px 200px;
  animation: jc-field-rotate 76s linear infinite;
}

.jc-field-loops path {
  fill: none;
  stroke: rgba(45, 209, 255, 0.16);
  stroke-width: 0.62;
  stroke-linecap: round;
  stroke-dasharray: 1.5 5.5 15 8;
  opacity: 0.44;
  animation: jc-field-drift 20s linear infinite;
}

.jc-field-loops path:nth-child(2) {
  stroke: rgba(130, 238, 255, 0.11);
  animation-duration: 27s;
  animation-direction: reverse;
}

.jc-field-loops path:nth-child(3) {
  stroke: rgba(255, 210, 121, 0.07);
  animation-duration: 33s;
}

.jc-orbit-back,
.jc-orbit-front {
  transform-origin: 200px 200px;
  will-change: transform;
}

.jc-orbit-back ellipse {
  fill: none;
  stroke-width: 1.15;
  stroke-linecap: round;
  opacity: 0.28;
}

.jc-plane-a ellipse { stroke: url(#jc-ring-cyan); }
.jc-plane-b ellipse { stroke: url(#jc-ring-gold); }
.jc-plane-c ellipse { stroke: rgba(75, 214, 255, 0.24); }

.jc-plane-a { animation: jc-orbit-a 26s linear infinite; }
.jc-plane-b { animation: jc-orbit-b 39s linear infinite reverse; }
.jc-plane-c { animation: jc-orbit-c 31s linear infinite; }

.jc-containment-shadow {
  fill: rgba(3, 13, 24, 0.18);
  stroke: rgba(81, 224, 255, 0.06);
  stroke-width: 1;
  filter: url(#jc-glow-medium);
}

.jc-contained {
  opacity: var(--core-contained-opacity);
}

.jc-glass-fill {
  opacity: 0.96;
}

.jc-inner-vortex-ring {
  fill: none;
  transform-origin: 200px 200px;
}

.jc-vortex-a {
  stroke: rgba(77, 224, 255, 0.08);
  stroke-width: 0.75;
  stroke-dasharray: 2 7 24 10;
  animation: jc-inner-spin 34s linear infinite;
}

.jc-vortex-b {
  stroke: rgba(255, 212, 132, 0.07);
  stroke-width: 0.62;
  stroke-dasharray: 1 9 13 6;
  animation: jc-inner-spin 24s linear infinite reverse;
}

.jc-current {
  fill: none;
  stroke-linecap: round;
  stroke-linejoin: round;
  vector-effect: non-scaling-stroke;
  animation: jc-current-flow 11s linear infinite;
}

.jc-current-cyan { stroke: url(#jc-cyan-flow); }
.jc-current-gold { stroke: url(#jc-gold-flow); }

.jc-current-soft {
  stroke-width: 5.6;
  opacity: 0.20;
  filter: url(#jc-glow-wide);
  stroke-dasharray: 23 15 7 22;
}

.jc-current-sharp {
  stroke-width: 1.18;
  opacity: 0.83;
  filter: url(#jc-glow-tight);
  stroke-dasharray: 15 8 3 13;
}

.jc-current-lines .jc-current:nth-child(2n) {
  stroke-width: 0.92;
  opacity: 0.74;
}

.jc-current-lines .jc-current:nth-child(3n) {
  stroke-dasharray: 8 7 20 12;
}

.jc-particle {
  transform-box: fill-box;
  transform-origin: center;
  filter: url(#jc-glow-tight);
  animation: jc-particle-life 6.8s ease-in-out infinite;
}

.jc-particle-cyan { fill: #6ceaff; }
.jc-particle-gold { fill: #ffd681; }
.jc-particle-white { fill: #f8ffff; }

.jc-nucleus-system {
  transform-origin: 200px 200px;
  opacity: var(--j-energy, 0.84);
  animation: jc-nucleus-breathe 3.8s ease-in-out infinite;
  transition: opacity 90ms linear;
}

.jc-nucleus-aura {
  opacity: 0.86;
  filter: url(#jc-glow-wide);
}

.jc-nucleus-field {
  fill: rgba(255, 207, 111, 0.045);
  stroke: rgba(121, 232, 255, 0.46);
  stroke-width: 0.8;
  stroke-dasharray: 2 4 12 7;
  filter: url(#jc-glow-tight);
  transform-origin: 200px 200px;
  animation: jc-inner-spin 12s linear infinite;
}

.jc-nucleus-gold {
  fill: rgba(255, 196, 78, 0.20);
  stroke: rgba(255, 230, 171, 0.66);
  stroke-width: 0.82;
  filter: url(#jc-glow-medium);
  animation: jc-hot-breathe 2.9s ease-in-out infinite;
}

.jc-nucleus-hot {
  fill: #fff1c4;
  opacity: 0.96;
  filter: url(#jc-glow-medium);
}

.jc-nucleus-white {
  fill: #ffffff;
  filter: url(#jc-glow-wide);
  animation: jc-white-core 2.4s ease-in-out infinite;
}

.jc-containment-rim {
  fill: none;
  stroke: rgba(126, 237, 255, 0.46);
  stroke-width: 1.15;
  filter: url(#jc-glow-tight);
  opacity: 0.78;
}

.jc-glass-highlight {
  fill: none;
  stroke: rgba(223, 252, 255, 0.62);
  stroke-width: 1.25;
  stroke-linecap: round;
  filter: url(#jc-glow-tight);
  opacity: 0.55;
}

.jc-glass-highlight-gold {
  stroke: rgba(255, 218, 145, 0.24);
  opacity: 0.42;
}

.jc-orbit-front path {
  fill: none;
  stroke-width: 1.78;
  stroke-linecap: round;
  filter: url(#jc-glow-tight);
  opacity: 0.90;
}

.jc-front-a path { stroke: url(#jc-ring-cyan); }
.jc-front-b path { stroke: url(#jc-ring-gold); }
.jc-front-c path { stroke: rgba(111, 234, 255, 0.58); }

.jc-front-a { animation: jc-front-a 22s linear infinite; }
.jc-front-b { animation: jc-front-b 34s linear infinite reverse; }
.jc-front-c { animation: jc-front-c 28s linear infinite; }

.jc-orbit-node,
.jc-orbit-sparks circle {
  filter: url(#jc-glow-medium);
  animation: jc-node-breathe 3.5s ease-in-out infinite;
}

.jc-node-cyan { fill: #5ee8ff; }
.jc-node-gold { fill: #ffd276; }
.jc-node-white { fill: #ffffff; }

.jc-orbit-sparks {
  transform-origin: 200px 200px;
  animation: jc-sparks-turn 46s linear infinite;
}

.jcore-label {
  position: absolute;
  z-index: 5;
  left: 0;
  right: 0;
  bottom: 1.4%;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 9px;
  text-align: center;
  font-size: 10px;
  letter-spacing: 0.32em;
  color: var(--core-state);
  text-transform: uppercase;
  text-shadow: 0 0 15px currentColor;
}

.jcore-state-dot {
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background: currentColor;
  box-shadow: 0 0 10px currentColor;
}

.jcore-signature {
  position: absolute;
  z-index: 5;
  top: 4.6%;
  font-family: var(--mono);
  font-size: 8px;
  letter-spacing: 0.31em;
  color: rgba(128, 221, 255, 0.34);
  text-shadow: 0 0 12px rgba(35, 206, 255, 0.16);
}

.jcore-listening {
  --core-state: #8ff3ff;
}

.jcore-listening .jc-current {
  animation-duration: 6.8s;
}

.jcore-listening .jc-field-loops {
  animation-duration: 48s;
}

.jcore-listening .jc-containment-rim {
  stroke: rgba(153, 246, 255, 0.72);
  opacity: 0.92;
}

.jcore-thinking .jc-current,
.jcore-executing .jc-current {
  animation-duration: 4.9s;
}

.jcore-thinking .jc-plane-a,
.jcore-executing .jc-plane-a {
  animation-duration: 12s;
}

.jcore-thinking .jc-plane-b,
.jcore-executing .jc-plane-b {
  animation-duration: 17s;
}

.jcore-thinking .jc-current-gold,
.jcore-executing .jc-current-gold {
  opacity: 0.96;
}

.jcore-executing {
  --core-state: #ffd47c;
}

.jcore-speaking .jc-nucleus-system {
  transform: scale(var(--j-scale, 1));
}

.jcore-speaking .jc-current-sharp {
  opacity: var(--j-energy, 0.9);
}

.jcore-speaking .jc-field-loops path {
  opacity: var(--j-wave, 0.5);
}

.jcore-speaking .jc-containment-rim {
  opacity: var(--j-energy, 0.9);
}

.jcore-waiting {
  --core-state: #ffd47c;
}

.jcore-waiting .jc-current-gold {
  opacity: 0.88;
}

.jcore-degraded {
  --core-state: #8dbaca;
  --core-aura-opacity: 0.48;
  --core-contained-opacity: 0.68;
}

.jcore-degraded .jc-current {
  animation-duration: 17s;
}

.jcore-degraded .jc-field-loops {
  animation-duration: 100s;
}

.jcore-alert {
  --core-state: #ff5d72;
}

.jcore-alert::before {
  border-color: rgba(255, 81, 106, 0.20);
  box-shadow: 0 0 45px rgba(255, 61, 92, 0.09);
}

.jcore-alert .jc-nucleus-white {
  animation-duration: 0.85s;
}

.jcore-offline,
.jcore-muted {
  --core-state: #6f8796;
  --core-aura-opacity: 0.16;
  --core-contained-opacity: 0.24;
}

.jcore-offline .jc-current,
.jcore-offline .jc-field-loops,
.jcore-offline .jc-orbit-back,
.jcore-offline .jc-orbit-front,
.jcore-offline .jc-orbit-sparks {
  animation-play-state: paused;
}

.jcore-muted .jc-current {
  animation-duration: 20s;
}

.jcore.reduced .jcore-aura,
.jcore.reduced .jcore-energy-field,
.jcore.reduced .jc-field-loops,
.jcore.reduced .jc-orbit-back,
.jcore.reduced .jc-orbit-front,
.jcore.reduced .jc-current,
.jcore.reduced .jc-particle,
.jcore.reduced .jc-nucleus-system,
.jcore.reduced .jc-nucleus-field,
.jcore.reduced .jc-nucleus-gold,
.jcore.reduced .jc-nucleus-white,
.jcore.reduced .jc-orbit-node,
.jcore.reduced .jc-orbit-sparks,
.jcore.reduced::after {
  animation: none !important;
}

@media (prefers-reduced-motion: reduce) {
  .jcore .jcore-aura,
  .jcore .jcore-energy-field,
  .jcore .jc-field-loops,
  .jcore .jc-orbit-back,
  .jcore .jc-orbit-front,
  .jcore .jc-current,
  .jcore .jc-particle,
  .jcore .jc-nucleus-system,
  .jcore .jc-nucleus-field,
  .jcore .jc-nucleus-gold,
  .jcore .jc-nucleus-white,
  .jcore .jc-orbit-node,
  .jcore .jc-orbit-sparks,
  .jcore::after {
    animation: none !important;
  }
}

@keyframes jc-aura-turn {
  to { transform: rotate(360deg); }
}

@keyframes jc-field-breathe {
  0%, 100% { transform: scale(0.975); opacity: 0.66; }
  50% { transform: scale(1.035); opacity: 0.95; }
}

@keyframes jc-core-breathe {
  0%, 100% { transform: scale(0.95); opacity: 0.58; }
  50% { transform: scale(1.055); opacity: 0.92; }
}

@keyframes jc-field-rotate {
  to { transform: rotate(360deg); }
}

@keyframes jc-field-drift {
  to { stroke-dashoffset: -82; }
}

@keyframes jc-orbit-a {
  to { transform: rotate(360deg); }
}

@keyframes jc-orbit-b {
  to { transform: rotate(360deg); }
}

@keyframes jc-orbit-c {
  to { transform: rotate(-360deg); }
}

@keyframes jc-inner-spin {
  to { transform: rotate(360deg); }
}

@keyframes jc-current-flow {
  from { stroke-dashoffset: 0; }
  to { stroke-dashoffset: -100; }
}

@keyframes jc-particle-life {
  0%, 100% { opacity: 0.20; transform: scale(0.78); }
  38% { opacity: 0.92; transform: scale(1.28); }
  68% { opacity: 0.48; transform: scale(0.92); }
}

@keyframes jc-nucleus-breathe {
  0%, 100% { transform: scale(0.965); }
  50% { transform: scale(1.035); }
}

@keyframes jc-hot-breathe {
  0%, 100% { opacity: 0.72; transform: scale(0.92); }
  50% { opacity: 1; transform: scale(1.08); }
}

@keyframes jc-white-core {
  0%, 100% { opacity: 0.90; transform: scale(0.92); }
  50% { opacity: 1; transform: scale(1.16); }
}

@keyframes jc-front-a {
  to { transform: rotate(360deg); }
}

@keyframes jc-front-b {
  to { transform: rotate(360deg); }
}

@keyframes jc-front-c {
  to { transform: rotate(-360deg); }
}

@keyframes jc-sparks-turn {
  to { transform: rotate(360deg); }
}

@keyframes jc-node-breathe {
  0%, 100% { opacity: 0.55; }
  50% { opacity: 1; }
}
@media (max-width: 1280px) {
  .jcore { width: min(45vh, 410px); }
}
@media (max-width: 1080px) {
  .jcore { width: min(43vh, 390px); }
}
.jcore-volume { position: absolute; inset: 0; width: 100%; height: 100%; z-index: 2; pointer-events: none; }
.jcore.has-volume > .jcore-net, .jcore.has-volume > .jcore-aura, .jcore.has-volume > .jcore-energy-field, .jcore.has-volume::before, .jcore.has-volume::after { display: none; }
.jcore.has-volume .jcore-label, .jcore.has-volume .jcore-signature { z-index: 3; }

.jcore:not(.has-volume) .jcore-volume { visibility: hidden; }

/* ---- MOBILE CONTAINER ADAPTER (permitted diff: container/layout/safe-area only; see ORB-PERMITTED-DIFFS.md) ---- */
.orb-mount{display:flex;justify-content:center;padding-top:env(safe-area-inset-top);touch-action:manipulation}
.orb-mount > .jcore{width:min(72vw,46vh,390px)}
