/*
 * VNISH GLOBAL v127 — Opera desktop compatibility renderer.
 *
 * This layer is inert until v127-opera-globe.js confirms desktop Opera.
 * Safari, Chromium/Chrome, Firefox, tablets and mobile therefore keep the
 * approved v65 renderer and layout unchanged.
 */
.hero--v53.v127-opera-globe .global-earth-emission {
  opacity: 0 !important;
  visibility: hidden !important;
}

.hero--v53.v127-opera-globe [data-global-canvas] {
  opacity: 0 !important;
  visibility: hidden !important;
}

.hero--v53.v127-opera-globe .global-sphere-stage.is-opera-canvas-pending .global-sphere-fallback {
  z-index: 1;
  opacity: 1 !important;
}

.hero--v53.v127-opera-globe .global-opera-earth-v127 {
  position: absolute;
  z-index: 2;
  top: var(--v127-earth-y, 50%);
  left: var(--v127-earth-x, 50%);
  width: var(--v127-earth-size, 77.607%);
  height: var(--v127-earth-size, 77.607%);
  border-radius: 50%;
  opacity: 0 !important;
  visibility: visible !important;
  filter: saturate(1.12) contrast(1.06) brightness(1.16);
  transform: translate(-50%, -50%);
  transition: opacity .38s ease-out;
  pointer-events: none;
}

.hero--v53.v127-opera-globe .global-opera-rim-v127 {
  position: absolute;
  z-index: 3;
  top: var(--v127-earth-y, 50%);
  left: var(--v127-earth-x, 50%);
  width: var(--v127-earth-size, 77.607%);
  height: var(--v127-earth-size, 77.607%);
  box-sizing: border-box;
  border: clamp(2px, .24vw, 4px) solid rgba(116, 222, 250, .75);
  border-radius: 50%;
  opacity: 0;
  box-shadow:
    0 0 7px rgba(230, 254, 255, .82),
    0 0 18px rgba(83, 205, 246, .60),
    0 0 42px rgba(42, 147, 218, .34),
    inset 0 0 7px rgba(216, 251, 255, .50),
    inset 0 0 20px rgba(56, 180, 233, .22);
  filter: drop-shadow(0 0 8px rgba(98, 220, 250, .52));
  transform: translate(-50%, -50%);
  transition: opacity .38s ease-out;
  pointer-events: none;
}

.hero--v53.v127-opera-globe .global-opera-rim-v127::after {
  position: absolute;
  inset: -1px;
  border: 1px solid rgba(227, 253, 255, .38);
  border-radius: inherit;
  content: "";
  opacity: .68;
}

.hero--v53.v127-opera-globe .global-sphere-stage.is-opera-canvas-ready .global-opera-earth-v127 {
  opacity: 1 !important;
}

.hero--v53.v127-opera-globe .global-sphere-stage.is-opera-canvas-ready .global-opera-rim-v127 {
  opacity: .92;
  animation: v127OperaRimBreath 8s ease-in-out -2s infinite;
}

.hero--v53.v127-opera-globe .global-sphere-stage.is-opera-canvas-ready .global-sphere-fallback {
  opacity: 0 !important;
}

.hero--v53.v127-opera-globe .global-opera-orbit-chain-v127,
.hero--v53.v127-opera-globe .global-opera-fleet-v127,
.hero--v53.v127-opera-globe .global-opera-cloud-v127 {
  position: absolute;
  inset: 0;
  pointer-events: none;
}

.hero--v53.v127-opera-globe .global-opera-orbit-chain-v127 {
  z-index: 1;
  overflow: visible;
}

.hero--v53.v127-opera-globe .global-opera-orbit-chain-v127 ellipse {
  fill: none;
  stroke: rgba(224, 177, 70, .55);
  stroke-width: 1.4;
  stroke-dasharray: 2 9;
  filter: drop-shadow(0 0 4px rgba(225, 171, 55, .30));
}

.hero--v53.v127-opera-globe .global-opera-fleet-v127--back { z-index: 1; }
.hero--v53.v127-opera-globe .global-opera-fleet-v127--front { z-index: 4; }

.hero--v53.v127-opera-globe .global-opera-orbit-item-v127 {
  position: absolute;
  top: 0;
  left: 0;
  display: grid;
  place-items: center;
  width: 68px;
  opacity: var(--v127-item-opacity, .7);
  transform:
    translate3d(var(--v127-item-x, 50%), var(--v127-item-y, 50%), 0)
    translate(-50%, -50%)
    scale(var(--v127-item-scale, 1));
  transform-origin: 50% 50%;
  will-change: transform, opacity;
}

.hero--v53.v127-opera-globe .global-opera-orbit-item-v127 img {
  display: block;
  width: 100%;
  height: auto;
  user-select: none;
}

.hero--v53.v127-opera-globe .global-opera-orbit-item-v127--miner {
  filter:
    brightness(var(--v127-item-brightness, 1))
    contrast(1.18)
    saturate(.84)
    drop-shadow(0 8px 13px rgba(0, 0, 0, .72))
    drop-shadow(0 0 8px rgba(235, 182, 76, .16));
}

.hero--v53.v127-opera-globe .global-opera-orbit-item-v127--logo {
  width: 86px;
  filter:
    brightness(var(--v127-item-brightness, 1))
    drop-shadow(0 5px 11px rgba(0, 0, 0, .72))
    drop-shadow(0 0 8px rgba(236, 189, 85, .20));
}

.hero--v53.v127-opera-globe .global-opera-cloud-v127 {
  z-index: 5;
  inset: auto;
  opacity: .64;
  background: url("/assets/hero/v63-snow-cloud-foundation.webp?v=v65-r1") center / 100% 100% no-repeat;
  filter:
    saturate(.34)
    brightness(1.08)
    blur(.5px)
    drop-shadow(0 -7px 18px rgba(255, 236, 215, .22));
  transform: translate(-50%, -50%);
  transform-origin: 50% 76%;
  animation: v127OperaCloudBreath 17s ease-in-out -5s infinite;
}

@keyframes v127OperaRimBreath {
  0%, 100% { opacity: .78; filter: drop-shadow(0 0 7px rgba(81, 204, 243, .44)); }
  50% { opacity: .98; filter: drop-shadow(0 0 12px rgba(126, 230, 253, .64)); }
}

@keyframes v127OperaCloudBreath {
  0%, 100% { opacity: .56; transform: translate(-50%, -48%) scale(.97, .91); }
  50% { opacity: .72; transform: translate(-50%, -53%) scale(1.035, 1.04); }
}

@media (prefers-reduced-motion: reduce) {
  .hero--v53.v127-opera-globe .global-opera-earth-v127,
  .hero--v53.v127-opera-globe .global-opera-rim-v127 {
    transition: none;
  }

  .hero--v53.v127-opera-globe .global-opera-rim-v127,
  .hero--v53.v127-opera-globe .global-opera-cloud-v127 {
    animation: none !important;
  }
}
