/* Spatial marketing direction: CSS geometry, no WebGL or animation libraries. */
:root {
  --spatial-edge: rgba(244, 243, 239, 0.25);
  --spatial-fill: rgba(22, 22, 22, 0.94);
  --spatial-shadow: 0 30px 80px rgba(0, 0, 0, 0.65);
  --spatial-signal-glow: rgba(255, 90, 31, 0.16);
  --spatial-size: 580px;
}
.hero {
  overflow: clip;
  padding-top: 64px;
}
.hero-stage {
  display: grid;
  grid-template-columns: 1fr 1fr;
  align-items: center;
  gap: 16px;
  min-height: 610px;
}
.hero-content {
  z-index: 2;
  min-width: 0;
}
.hero h1 {
  font-size: clamp(4rem, 7.3vw, 7rem);
  letter-spacing: -0.065em;
}
.hero h1 {
  background: linear-gradient(155deg, #fff 20%, #f4f3ef 45%, #8f8d86 100%);
  background-clip: text;
  -webkit-background-clip: text;
  color: transparent;
}
.hero .intro {
  max-width: 28rem;
}
.hero .hero-copy {
  font-size: clamp(1.2rem, 1.8vw, 1.6rem);
}
.atmosphere {
  height: 900px;
  opacity: 0.38;
}
.hero:before {
  content: "";
  position: absolute;
  z-index: -1;
  inset: 0;
  background: radial-gradient(
    ellipse at 75% 25%,
    rgba(244, 243, 239, 0.045),
    transparent 45%
  );
}
.spatial {
  height: 620px;
  position: relative;
  perspective: 1100px;
  isolation: isolate;
}
.scene-tilt {
  position: absolute;
  inset: 0;
  transform-style: preserve-3d;
  transform: rotateX(var(--scene-x, -5deg)) rotateY(var(--scene-y, -9deg));
  transition: transform 0.4s ease-out;
}
.scene-float {
  position: absolute;
  inset: 0;
  transform-style: preserve-3d;
  animation: scene-float 9s ease-in-out infinite;
}
.halo {
  position: absolute;
  inset: 18% 2%;
  border-radius: 50%;
  background: radial-gradient(
    ellipse,
    rgba(244, 243, 239, 0.08),
    transparent 65%
  );
  filter: blur(20px);
}
.spatial-grid {
  position: absolute;
  inset: 10% -8% -8%;
  background-image:
    linear-gradient(rgba(244, 243, 239, 0.045) 1px, transparent 1px),
    linear-gradient(90deg, rgba(244, 243, 239, 0.045) 1px, transparent 1px);
  background-size: 44px 44px;
  transform: rotateX(65deg) rotateZ(-24deg);
  mask-image: radial-gradient(ellipse, #000, transparent 67%);
}
.orbit {
  position: absolute;
  left: 50%;
  top: 50%;
  width: 490px;
  height: 490px;
  margin: -245px;
  border: 1px solid rgba(244, 243, 239, 0.23);
  border-radius: 50%;
  transform-style: preserve-3d;
  box-shadow: inset 0 0 18px rgba(244, 243, 239, 0.02);
}
.orbit:before {
  content: "";
  position: absolute;
  top: 50%;
  left: -4px;
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: var(--paper);
  box-shadow: 0 0 18px rgba(244, 243, 239, 0.7);
}
.orbit-one {
  transform: rotateX(65deg) rotateY(-20deg);
  animation: orbit-one 26s linear infinite;
}
.orbit-two {
  width: 440px;
  height: 440px;
  margin: -220px;
  transform: rotateX(20deg) rotateY(65deg);
  border-color: rgba(244, 243, 239, 0.12);
  animation: orbit-two 32s linear infinite reverse;
}
.orbit-three {
  width: 540px;
  height: 540px;
  margin: -270px;
  transform: rotateX(55deg) rotateY(-30deg);
  border-style: dashed;
  border-color: rgba(244, 243, 239, 0.08);
}
.core {
  position: absolute;
  left: 50%;
  top: 50%;
  width: 282px;
  height: 282px;
  margin: -141px;
  transform: translateZ(45px) rotateY(-12deg);
  transform-style: preserve-3d;
}
.core-rim {
  position: absolute;
  inset: -10px;
  border-radius: 50%;
  background: conic-gradient(
    from 30deg,
    #161616,
    #8f8d86 12%,
    #222 20%,
    #0a0a0a 38%,
    #b8b6b0 50%,
    #222 60%,
    #0a0a0a 78%,
    #8f8d86 90%,
    #161616
  );
  box-shadow:
    10px 16px 0 #101010,
    11px 17px 0 #444,
    25px 35px 60px #000;
}
.core-glass {
  position: absolute;
  inset: 0;
  overflow: hidden;
  border: 1px solid rgba(244, 243, 239, 0.4);
  border-radius: 50%;
  background:
    radial-gradient(
      ellipse at 20% 0%,
      rgba(244, 243, 239, 0.25),
      transparent 55%
    ),
    linear-gradient(140deg, #232323, #090909 65%);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  box-shadow: inset 0 0 40px #000;
}
.core-glass:after {
  content: "";
  position: absolute;
  inset: -100%;
  background: linear-gradient(
    110deg,
    transparent 45%,
    rgba(255, 255, 255, 0.12) 49%,
    transparent 54%
  );
  animation: light-pass 10s ease-in-out infinite;
  pointer-events: none;
}
.core-index {
  font: 500 7px var(--font-mono);
  letter-spacing: 0.13em;
  color: var(--site-muted);
  margin-bottom: 20px;
}
.core-title {
  font-size: 43px;
  font-weight: 700;
  line-height: 1;
  letter-spacing: -0.06em;
}
.core-dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--accent);
  margin-top: 20px;
  box-shadow: 0 0 22px var(--spatial-signal-glow);
}
.core-foot {
  font: 500 7px var(--font-mono);
  letter-spacing: 0.12em;
  color: var(--site-muted);
  margin-top: 12px;
}
.satellite {
  position: absolute;
  width: 198px;
  padding: 22px;
  background:
    linear-gradient(130deg, rgba(244, 243, 239, 0.12), transparent 60%),
    var(--spatial-fill);
  border: 1px solid var(--spatial-edge);
  border-radius: 16px;
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.12),
    var(--spatial-shadow);
  backface-visibility: hidden;
  transform-style: preserve-3d;
}
.satellite strong {
  font-size: 24px;
  line-height: 1.15;
  letter-spacing: -0.04em;
  display: block;
  margin: 18px 0;
}
.sat-index,
.sat-meta {
  display: block;
  font: 500 8px var(--font-mono);
  letter-spacing: 0.1em;
  color: var(--site-muted);
}
.satellite-script {
  top: 15px;
  left: 0;
  transform: translateZ(90px) rotateY(15deg) rotateZ(-9deg);
}
.satellite-script > i {
  display: block;
  height: 2px;
  background: var(--border-strong);
  margin: 9px 0;
}
.satellite-script > i:nth-of-type(2) {
  width: 75%;
}
.satellite-script .sat-meta {
  margin-top: 18px;
}
.satellite-day {
  right: -10px;
  top: 135px;
  transform: translateZ(120px) rotateY(-20deg) rotateZ(8deg);
  width: 210px;
}
.timeline {
  display: flex;
  gap: 5px;
  align-items: end;
  height: 38px;
  margin-bottom: 20px;
}
.timeline i {
  background: linear-gradient(0deg, #444, #b8b6b0);
  height: 60%;
  width: 24px;
  border-radius: 3px;
}
.timeline i:nth-child(2) {
  height: 90%;
}
.timeline i:nth-child(3) {
  height: 70%;
}
.timeline i:nth-child(4) {
  height: 100%;
}
.timeline i:nth-child(5) {
  height: 45%;
}
.satellite-team {
  left: 30px;
  bottom: 25px;
  transform: translateZ(100px) rotateY(15deg) rotateZ(-5deg);
  width: 215px;
}
.team-nodes {
  display: flex;
  margin: 20px 0;
}
.team-nodes i {
  width: 34px;
  height: 34px;
  border: 1px solid var(--spatial-edge);
  border-radius: 50%;
  margin-right: -6px;
  background: radial-gradient(circle at 40% 30%, #777, #161616 65%);
  box-shadow: 4px 5px 10px #000;
}
.scene-caption {
  position: absolute;
  bottom: -20px;
  right: 0;
  display: flex;
  gap: 8px;
  align-items: center;
  font: 500 9px var(--font-mono);
  color: var(--site-muted);
  letter-spacing: 0.05em;
}
.caption-dot {
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background: var(--site-muted);
}
.motion-controls {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding-top: 42px;
  color: var(--site-muted);
}
.motion-controls > .eyebrow {
  font-size: 10px;
}
.motion-controls button {
  color: var(--site-muted);
  font: 500 11px var(--font-mono);
  background: transparent;
  border: 1px solid var(--border);
  border-radius: var(--r-pill);
  padding: 12px 16px;
  min-height: 44px;
  cursor: pointer;
}
.motion-controls button:hover {
  border-color: var(--site-muted);
  color: var(--text);
}
button:focus-visible {
  outline: 3px solid var(--focus);
  outline-offset: 5px;
}
.overview {
  padding-top: 32px;
  perspective: 1400px;
}
.workspace-preview {
  transform: rotateX(4deg);
  transform-origin: center top;
  background:
    linear-gradient(115deg, rgba(244, 243, 239, 0.09), transparent 45%),
    rgba(15, 15, 15, 0.96);
  box-shadow:
    0 24px 80px #000,
    inset 0 1px 0 rgba(244, 243, 239, 0.18);
}
.feature,
.format,
.department-intro {
  position: relative;
  overflow: hidden;
  transition:
    transform 0.35s ease,
    border-color 0.35s ease,
    box-shadow 0.35s ease;
  transform: perspective(1000px) rotateX(var(--card-x, 0deg))
    rotateY(var(--card-y, 0deg));
  background-image: radial-gradient(
    circle at var(--light-x, 50%) var(--light-y, 0%),
    rgba(244, 243, 239, 0.075),
    transparent 55%
  );
}
.feature:hover,
.format:hover {
  border-color: rgba(244, 243, 239, 0.38);
  box-shadow: 0 18px 50px rgba(0, 0, 0, 0.5);
}
.format:before {
  content: "";
  position: absolute;
  width: 240px;
  height: 240px;
  border: 1px solid var(--border);
  border-radius: 50%;
  right: -80px;
  top: -100px;
  box-shadow:
    0 0 0 24px rgba(244, 243, 239, 0.025),
    0 0 0 48px rgba(244, 243, 239, 0.018);
  transform: rotateX(50deg);
}
.primary {
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.3),
    0 8px 32px rgba(255, 90, 31, 0.12);
  transition:
    transform 0.2s,
    box-shadow 0.2s;
}
.primary:hover {
  transform: translateY(-3px);
  box-shadow: 0 12px 40px rgba(255, 90, 31, 0.22);
}
.mini-script,
.mini-ledger,
.mini-people {
  transform: perspective(600px) rotateY(-7deg) rotateX(5deg);
  box-shadow: 7px 9px 0 rgba(244, 243, 239, 0.025);
  transition: transform 0.4s;
}
.feature:hover .mini-script,
.feature:hover .mini-ledger,
.feature:hover .mini-people {
  transform: perspective(600px) rotateY(0deg) rotateX(0deg);
}
.reveal-once {
  animation: arrive 0.8s cubic-bezier(0.2, 0.7, 0.2, 1) both;
}
@keyframes arrive {
  from {
    opacity: 0.3;
    translate: 0 30px;
  }
  to {
    opacity: 1;
    translate: 0 0;
  }
}
@keyframes scene-float {
  0%,
  100% {
    transform: translateY(0) rotateZ(-1deg);
  }
  50% {
    transform: translateY(-15px) rotateZ(1deg);
  }
}
@keyframes orbit-one {
  from {
    transform: rotateX(65deg) rotateY(-20deg) rotateZ(0);
  }
  to {
    transform: rotateX(65deg) rotateY(-20deg) rotateZ(360deg);
  }
}
@keyframes orbit-two {
  from {
    transform: rotateX(20deg) rotateY(65deg) rotateZ(0);
  }
  to {
    transform: rotateX(20deg) rotateY(65deg) rotateZ(360deg);
  }
}
@keyframes light-pass {
  0%,
  25% {
    transform: translateX(-30%);
  }
  75%,
  100% {
    transform: translateX(30%);
  }
}
html[data-motion="paused"] *,
html[data-motion="paused"] *:before,
html[data-motion="paused"] *:after {
  animation-play-state: paused !important;
  transition: none !important;
}
html[data-motion="paused"] {
  scroll-behavior: auto;
}
html[data-motion="paused"] .scene-tilt,
html[data-motion="paused"] .feature,
html[data-motion="paused"] .format {
  transform: none;
}
.scene-offscreen *,
.scene-offscreen *:after {
  animation-play-state: paused !important;
}
@media (min-width: 1500px) {
  .hero-stage {
    min-height: 660px;
  }
  .spatial {
    scale: 1.06;
  }
}
@media (max-width: 1100px) and (min-width: 701px) {
  .spatial {
    scale: 0.78;
    transform-origin: center center;
    margin-inline: -50px;
  }
  .hero-stage {
    grid-template-columns: 1.05fr 0.95fr;
  }
  .hero h1 {
    font-size: 5.4rem;
  }
  .hero .intro {
    max-width: 24rem;
  }
  .hero-content {
    padding-top: 0;
  }
  .satellite-day {
    right: 0;
  }
}
@media (max-width: 700px) {
  .hero {
    padding-top: 40px;
  }
  .hero-stage {
    grid-template-columns: 1fr;
    gap: 12px;
  }
  .hero h1 {
    font-size: clamp(3.8rem, 15vw, 6rem);
  }
  .hero .intro {
    max-width: 100%;
  }
  .spatial {
    height: 480px;
    width: 100%;
    max-width: 440px;
    margin: auto;
    perspective: 1000px;
    overflow: visible;
  }
  .scene-tilt {
    scale: 0.71;
    inset: -50px -65px;
    pointer-events: none;
  }
  .spatial-grid {
    inset: 0 -5% 0;
  }
  .scene-caption {
    font-size: 8px;
    right: auto;
    left: 50%;
    transform: translateX(-50%);
    white-space: nowrap;
    bottom: 5px;
  }
  .satellite-script {
    left: 10px;
    top: 30px;
  }
  .satellite-day {
    right: 0;
    top: 180px;
  }
  .satellite-team {
    bottom: 10px;
  }
  .motion-controls {
    padding-top: 12px;
    gap: 12px;
  }
  .motion-controls > .eyebrow {
    font-size: 8px;
  }
  .motion-controls button {
    font-size: 10px;
    padding-inline: 12px;
  }
  .overview {
    padding-top: 24px;
  }
  .workspace-preview {
    transform: none;
  }
  .orbit-two {
    animation: none;
  }
  .core-glass:after {
    animation: none;
  }
  .feature,
  .format,
  .department-intro {
    transform: none !important;
  }
}
@media (max-width: 370px) {
  .scene-tilt {
    scale: 0.61;
    inset: -40px -90px;
  }
  .spatial {
    height: 430px;
  }
  .hero h1 {
    font-size: 3.8rem;
  }
}
@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }
  *,
  *:before,
  *:after {
    animation: none !important;
    transition: none !important;
  }
  .scene-tilt,
  .feature,
  .format {
    transform: none !important;
  }
  .reveal-once {
    opacity: 1;
    translate: none;
  }
  .motion-controls button {
    display: none;
  }
}
@media (prefers-contrast: more) {
  .hero h1 {
    background: none;
    color: var(--text);
  }
  .satellite {
    background: var(--bg);
  }
  .spatial-grid,
  .halo {
    display: none;
  }
}
/* Preserve the desktop scene's geometry when fitting it onto a phone. */
@media (max-width: 700px) {
  .scene-tilt {
    inset: auto;
    left: 50%;
    top: -65px;
    margin-left: -290px;
    width: 580px;
    height: 620px;
    scale: 0.62;
  }
  .satellite-script {
    left: 0;
  }
  .satellite-day {
    right: -10px;
    top: 135px;
  }
  .satellite-team {
    left: 30px;
    bottom: 25px;
  }
}
@media (max-width: 370px) {
  .scene-tilt {
    scale: 0.52;
    top: -85px;
  }
}
