.gridgrab-3d-page {
  background:
    radial-gradient(circle at 15% 4%, rgba(49, 227, 220, 0.13), transparent 22rem),
    radial-gradient(circle at 85% 12%, rgba(168, 77, 255, 0.14), transparent 24rem),
    #020711;
  color: #edfaff;
  min-height: 100svh;
}

.gridgrab-3d-page .arcade-header,
.gridgrab-3d-page .arcade-footer {
  background: rgba(3, 12, 23, 0.88);
  border-color: rgba(114, 247, 240, 0.22);
  color: #e8f9ff;
}

.gridgrab-3d-page .back-link {
  background: rgba(20, 60, 76, 0.68);
  border-color: rgba(119, 255, 245, 0.38);
  color: #e8f9ff;
}

.gridgrab-3d-shell {
  margin: 0 auto;
  max-width: 1120px;
  padding: clamp(1.25rem, 4vw, 3rem) clamp(0.7rem, 3vw, 1.5rem) 2.5rem;
}

.gridgrab-3d-intro {
  margin: 0 auto clamp(1.1rem, 3vw, 2rem);
  max-width: 720px;
  text-align: center;
}

.gridgrab-3d-kicker,
.gridgrab-launch-eyebrow {
  color: #70fff3;
  font-size: 0.72rem;
  font-weight: 900;
  letter-spacing: 0.18em;
  margin: 0 0 0.5rem;
}

.gridgrab-3d-intro h1 {
  color: #fffdf1;
  font-size: clamp(3rem, 10vw, 5.8rem);
  letter-spacing: -0.06em;
  line-height: 0.82;
  margin: 0;
  text-shadow: 0 0 24px rgba(87, 247, 239, 0.38);
}

.gridgrab-3d-intro h1 span {
  color: #8d5cff;
  text-shadow: 0 0 24px rgba(168, 105, 255, 0.72);
}

.gridgrab-3d-intro > p:last-child {
  color: rgba(232, 249, 255, 0.76);
  font-size: clamp(1rem, 2.5vw, 1.22rem);
  line-height: 1.45;
  margin: 1rem auto 0;
  max-width: 37rem;
}

.gridgrab-launch {
  background: linear-gradient(145deg, rgba(14, 45, 62, 0.98), rgba(3, 11, 24, 0.98));
  border: 1px solid rgba(127, 255, 246, 0.3);
  border-radius: 28px;
  box-shadow: 0 30px 75px rgba(0, 0, 0, 0.46), inset 0 1px rgba(255, 255, 255, 0.1);
  display: grid;
  gap: clamp(1rem, 4vw, 3rem);
  grid-template-columns: minmax(0, 1.2fr) minmax(18rem, 0.8fr);
  overflow: hidden;
  padding: clamp(1.1rem, 4vw, 2.6rem);
  position: relative;
}

.gridgrab-launch[hidden],
.gridgrab-game[hidden] { display: none; }

.gridgrab-launch-art {
  aspect-ratio: 16 / 10;
  background:
    radial-gradient(circle at 80% 15%, rgba(217, 167, 255, 0.25), transparent 12%),
    radial-gradient(circle at 8% 77%, rgba(68, 233, 255, 0.2), transparent 16%),
    #01060e;
  border: 1px solid rgba(169, 255, 249, 0.22);
  border-radius: 20px;
  min-height: 245px;
  overflow: hidden;
  position: relative;
}

.gridgrab-launch-art::before {
  background-image: radial-gradient(circle, rgba(226, 255, 255, 0.84) 0 1px, transparent 1.4px);
  background-size: 39px 37px;
  content: "";
  inset: 0;
  opacity: 0.44;
  position: absolute;
}

.gridgrab-nebula {
  border-radius: 999px;
  filter: blur(15px);
  opacity: 0.62;
  position: absolute;
}

.gridgrab-nebula-one {
  background: #733be3;
  height: 45%;
  left: -12%;
  top: 12%;
  transform: rotate(28deg);
  width: 62%;
}

.gridgrab-nebula-two {
  background: #078d9e;
  bottom: -15%;
  height: 44%;
  right: -12%;
  transform: rotate(-24deg);
  width: 68%;
}

.gridgrab-board-illusion {
  background:
    linear-gradient(90deg, rgba(52, 234, 230, 0.24) 1px, transparent 1px),
    linear-gradient(rgba(52, 234, 230, 0.24) 1px, transparent 1px),
    linear-gradient(145deg, #14949a, #083d54 56%, #030d1c);
  background-size: 9.1% 100%, 100% 12.5%, 100% 100%;
  border: 2px solid #81fff2;
  box-shadow: 0 0 32px rgba(41, 241, 230, 0.7), inset 0 0 24px rgba(1, 5, 16, 0.55);
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  height: 77%;
  left: 11%;
  padding: 22% 7% 0;
  position: absolute;
  top: 8%;
  transform: perspective(360px) rotateX(55deg) rotateZ(-5deg);
  width: 78%;
}

.gridgrab-board-illusion i {
  background: rgba(1, 10, 23, 0.9);
  border: 1px solid rgba(85, 238, 234, 0.24);
  box-shadow: inset 0 0 16px #000;
  grid-column: 2;
}

.gridgrab-board-illusion i:nth-child(2),
.gridgrab-board-illusion i:nth-child(7) { grid-column: 1; }
.gridgrab-board-illusion i:nth-child(3),
.gridgrab-board-illusion i:nth-child(8) { grid-column: 3; }

.gridgrab-orb {
  border-radius: 50%;
  box-shadow: inset -12px -15px 20px rgba(4, 3, 22, 0.54), 0 0 28px currentColor;
  height: clamp(36px, 10vw, 76px);
  position: absolute;
  width: clamp(36px, 10vw, 76px);
  z-index: 2;
}

.gridgrab-orb-purple {
  background: radial-gradient(circle at 31% 27%, #ffe1ff, #c653ff 44%, #4a128f 76%);
  color: #bb55ff;
  right: 14%;
  top: 24%;
}

.gridgrab-orb-gold {
  background: radial-gradient(circle at 31% 27%, #fffed9, #f4cb3d 44%, #805608 76%);
  bottom: 18%;
  color: #f4c43c;
  left: 18%;
}

.gridgrab-path {
  border-color: #ffe7a2;
  border-radius: 0 0 24px 0;
  border-style: solid;
  border-width: 0 0 4px 4px;
  box-shadow: 0 0 16px #ffdc75;
  height: 40%;
  left: 43%;
  position: absolute;
  top: 7%;
  width: 22%;
  z-index: 3;
}

.gridgrab-launch-copy {
  align-self: center;
  text-align: center;
}

.gridgrab-launch-copy h2 {
  color: #fffdf5;
  font-size: clamp(1.8rem, 4vw, 2.8rem);
  line-height: 0.97;
  margin: 0;
}

.gridgrab-launch-copy > p:last-of-type {
  color: rgba(232, 249, 255, 0.72);
  line-height: 1.45;
  margin: 0.85rem auto 1.2rem;
  max-width: 25rem;
}

.gridgrab-launch-button {
  align-items: center;
  background: linear-gradient(135deg, #8a5cff, #c35cdd 54%, #ff8b74);
  border: 0;
  border-radius: 18px;
  box-shadow: 0 8px 0 #5332aa, 0 16px 28px rgba(134, 76, 255, 0.37), inset 0 2px rgba(255, 255, 255, 0.46);
  color: #fff;
  cursor: pointer;
  display: grid;
  font: inherit;
  font-size: clamp(1.05rem, 2.6vw, 1.32rem);
  font-weight: 900;
  gap: 0.12rem;
  justify-items: center;
  margin: 0 auto;
  min-height: 85px;
  overflow: hidden;
  padding: 0.75rem 1.4rem;
  position: relative;
  text-shadow: 0 2px 2px rgba(37, 14, 78, 0.4);
  transition: box-shadow 140ms ease, transform 140ms ease;
  width: min(100%, 290px);
}

.gridgrab-launch-button small {
  font-size: 0.7rem;
  font-weight: 800;
  opacity: 0.84;
}

.gridgrab-launch-button-icon {
  font-size: 1.3rem;
  line-height: 1;
}

.gridgrab-launch-button-shine {
  background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.58), transparent);
  height: 150%;
  left: -65%;
  position: absolute;
  top: -25%;
  transform: rotate(20deg);
  transition: left 400ms ease;
  width: 34%;
}

.gridgrab-launch-button:hover,
.gridgrab-launch-button:focus-visible {
  box-shadow: 0 5px 0 #5332aa, 0 19px 32px rgba(134, 76, 255, 0.5), inset 0 2px rgba(255, 255, 255, 0.56);
  outline: 3px solid #97fff4;
  outline-offset: 4px;
  transform: translateY(3px);
}

.gridgrab-launch-button:hover .gridgrab-launch-button-shine,
.gridgrab-launch-button:focus-visible .gridgrab-launch-button-shine { left: 130%; }

.gridgrab-launch-button:active { transform: translateY(7px); }

.gridgrab-game {
  background: #010711;
  border: 1px solid rgba(118, 255, 247, 0.36);
  border-radius: 20px;
  box-shadow: 0 30px 75px rgba(0, 0, 0, 0.5);
  overflow: hidden;
  padding: clamp(0.45rem, 1.4vw, 0.8rem);
}

.gridgrab-game-topline {
  align-items: center;
  color: #7cfff3;
  display: flex;
  font-size: 0.74rem;
  font-weight: 900;
  justify-content: space-between;
  letter-spacing: 0.16em;
  padding: 0.15rem 0.35rem 0.6rem;
}

.gridgrab-game-topline button {
  background: rgba(15, 87, 94, 0.64);
  border: 1px solid rgba(117, 255, 245, 0.4);
  border-radius: 8px;
  color: #e7ffff;
  cursor: pointer;
  font: inherit;
  font-size: 0.7rem;
  font-weight: 900;
  letter-spacing: 0.04em;
  min-height: 34px;
  padding: 0.35rem 0.6rem;
}

.unity-container {
  aspect-ratio: 8 / 5;
  background: #020814;
  border-radius: 13px;
  box-shadow: inset 0 0 30px #000;
  overflow: hidden;
  position: relative;
}

#unity-canvas {
  background: #020814;
  display: block;
  height: 100%;
  width: 100%;
}

.gridgrab-loading {
  align-content: center;
  background: radial-gradient(circle, rgba(17, 72, 93, 0.9), rgba(1, 6, 14, 0.97) 62%);
  color: #efffff;
  display: grid;
  inset: 0;
  justify-items: center;
  padding: 1rem;
  position: absolute;
  text-align: center;
}

.gridgrab-loading[hidden] { display: none; }

.gridgrab-loading-orbit {
  animation: gridgrab-orbit 1.25s linear infinite;
  border: 4px solid rgba(104, 255, 244, 0.22);
  border-radius: 50%;
  border-top-color: #99fff6;
  box-shadow: 0 0 18px rgba(102, 255, 244, 0.42);
  height: 48px;
  width: 48px;
}

@keyframes gridgrab-orbit { to { transform: rotate(360deg); } }

.gridgrab-progress-track {
  background: rgba(236, 255, 255, 0.16);
  border-radius: 99px;
  height: 9px;
  max-width: 270px;
  overflow: hidden;
  width: 72%;
}

#unity-progress-bar-full {
  background: linear-gradient(90deg, #67fff1, #d087ff);
  border-radius: inherit;
  box-shadow: 0 0 13px #71fff2;
  height: 100%;
  transition: width 180ms ease;
  width: 0;
}

#unity-warning {
  bottom: 0.65rem;
  display: grid;
  gap: 0.35rem;
  left: 0.65rem;
  max-width: min(90%, 560px);
  position: absolute;
  z-index: 2;
}

.gridgrab-notice {
  background: rgba(17, 29, 45, 0.94);
  border: 1px solid #f7ce77;
  border-radius: 8px;
  color: #fff8da;
  font-size: 0.82rem;
  margin: 0;
  padding: 0.55rem 0.7rem;
}

.gridgrab-notice-error { border-color: #ff807d; color: #ffe3e1; }

.gridgrab-game-help {
  color: rgba(226, 249, 255, 0.67);
  font-size: 0.84rem;
  margin: 0.65rem 0.25rem 0.1rem;
  text-align: center;
}

@media (max-width: 700px) {
  .gridgrab-launch { grid-template-columns: 1fr; }
  .gridgrab-launch-art { min-height: 210px; order: 2; }
  .gridgrab-launch-copy { order: 1; }
  .gridgrab-3d-intro h1 { font-size: clamp(2.8rem, 16vw, 4.4rem); }
  .gridgrab-game { border-radius: 15px; padding: 0.35rem; }
  .gridgrab-game-topline { padding-bottom: 0.35rem; }
  .unity-container { aspect-ratio: 3 / 5; max-height: 72svh; }
}
