.globestack {
  --gs-bg: #000;
  --gs-ink: #fff;
  --gs-muted: rgba(255, 255, 255, 0.5);
  --gs-border: rgba(255, 255, 255, 0.38);
  --gs-border-w: 1.5px;
  --gs-display: 'Oswald', sans-serif;
  --gs-body: 'Inter', sans-serif;
  --gs-mono: 'Space Mono', monospace;

  background: var(--gs-bg);
  color: var(--gs-ink);
  font-family: var(--gs-body);
  border-top: var(--gs-border-w) solid var(--gs-border);
  width: 100%;
  max-width: 100%;
}

.globestack-ticker {
  border-bottom: var(--gs-border-w) solid var(--gs-border);
  overflow: hidden;
  background: #000;
  color: #fff;
}

.globestack-ticker__track {
  display: flex;
  width: max-content;
  animation: globestack-marquee 40s linear infinite;
  will-change: transform;
}

.globestack-ticker__track span {
  font-family: var(--gs-mono);
  font-size: 10px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  white-space: nowrap;
  padding: 11px 0;
  flex-shrink: 0;
  padding-right: 3rem;
}

.globestack-ticker__track span::after {
  content: ' \25A0 ';
  opacity: 0.35;
}

@keyframes globestack-marquee {
  from { transform: translateX(0); }
  to { transform: translateX(-25%); }
}

.globestack-main {
  display: grid;
  grid-template-columns: minmax(280px, 1fr) minmax(0, 1.35fr);
  min-height: 88vh;
}

.globestack-copy {
  padding: clamp(2rem, 4vw, 3.5rem);
  border-right: var(--gs-border-w) solid var(--gs-border);
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  gap: 2rem;
}

.globestack-copy .meta {
  font-family: var(--gs-mono);
  font-size: 10px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--gs-muted);
}

.globestack-copy h2 {
  font-family: var(--gs-display);
  font-size: clamp(3.5rem, 9vw, 8.5rem);
  font-weight: 500;
  line-height: 0.82;
  letter-spacing: -0.03em;
  text-transform: uppercase;
  margin-top: 1.5rem;
}

.globestack-lead {
  font-size: 15px;
  line-height: 1.55;
  color: var(--gs-muted);
  max-width: 420px;
  margin-top: 1.5rem;
}

.globestack-stats {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1px;
  background: var(--gs-border);
  border: var(--gs-border-w) solid var(--gs-border);
  margin-top: auto;
}

.globestack-stat {
  background: var(--gs-bg);
  padding: 1.25rem 1rem;
}

.globestack-stat .num {
  display: block;
  font-family: var(--gs-display);
  font-size: clamp(2rem, 5vw, 3.25rem);
  font-weight: 500;
  line-height: 1;
  letter-spacing: -0.04em;
}

.globestack-stat .lbl {
  font-family: var(--gs-mono);
  font-size: 9px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--gs-muted);
  margin-top: 8px;
}

.globestack-zones {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1px;
  background: var(--gs-border);
  border: var(--gs-border-w) solid var(--gs-border);
}

.globestack-zone {
  background: var(--gs-bg);
  padding: 14px 16px;
  font-family: var(--gs-mono);
  font-size: 10px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  display: flex;
  justify-content: space-between;
  gap: 12px;
}

.globestack-zone span:last-child {
  color: var(--gs-muted);
}

.globestack-stage-wrap {
  display: flex;
  flex-direction: column;
  min-height: 0;
  overflow: visible;
}

.globestack-stage-head {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 14px 20px;
  border-bottom: var(--gs-border-w) solid var(--gs-border);
  font-family: var(--gs-mono);
  font-size: 9px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--gs-muted);
}

.globestack-stage-head strong {
  color: var(--gs-ink);
  font-weight: 400;
}

.globestack-stage {
  position: relative;
  flex: 1;
  min-height: 520px;
  background: #000;
  cursor: grab;
  overflow: visible;
}

.globestack-stage:active {
  cursor: grabbing;
}

.globestack-stage canvas {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}

#globestack-pretext {
  pointer-events: none;
  mix-blend-mode: normal;
}

.globestack-stage-note {
  position: absolute;
  bottom: 20px;
  left: 20px;
  z-index: 2;
  font-family: var(--gs-mono);
  font-size: 9px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.45);
  pointer-events: none;
}

.globestack-foot {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  border-top: var(--gs-border-w) solid var(--gs-border);
}

.globestack-foot-cell {
  padding: 18px 20px;
  border-right: var(--gs-border-w) solid var(--gs-border);
  font-family: var(--gs-mono);
  font-size: 10px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.globestack-foot-cell:last-child {
  border-right: none;
}

.globestack-foot-cell strong {
  display: block;
  font-family: var(--gs-display);
  font-size: 1.35rem;
  font-weight: 500;
  letter-spacing: -0.02em;
  margin-bottom: 6px;
  text-transform: uppercase;
}

@media (max-width: 1024px) {
  .globestack-main {
    grid-template-columns: 1fr;
    min-height: auto;
  }

  .globestack-copy {
    border-right: none;
    border-bottom: var(--gs-border-w) solid var(--gs-border);
  }

  .globestack-stage {
    min-height: 460px;
  }

  .globestack-foot {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .globestack-foot-cell:nth-child(2n) {
    border-right: none;
  }

  .globestack-foot-cell:nth-child(-n+2) {
    border-bottom: var(--gs-border-w) solid var(--gs-border);
  }
}

@media (max-width: 640px) {
  .globestack-stats {
    grid-template-columns: 1fr;
  }

  .globestack-zones {
    grid-template-columns: 1fr;
  }

  .globestack-foot {
    grid-template-columns: 1fr;
  }

  .globestack-foot-cell {
    border-right: none;
    border-bottom: var(--gs-border-w) solid var(--gs-border);
  }

  .globestack-foot-cell:last-child {
    border-bottom: none;
  }
}

@media (prefers-reduced-motion: reduce) {
  .globestack-ticker__track {
    animation: none;
  }
}
