
.subpage-stage {
  position: relative;
  width: 100%;
  height: 100%;
  overflow: hidden;
  isolation: isolate;
  background:
    radial-gradient(55% 50% at 22% 16%, rgba(255,255,255,.03), transparent 68%),
    radial-gradient(42% 40% at 80% 74%, rgba(255,255,255,.02), transparent 70%),
    radial-gradient(70% 60% at 50% 50%, rgba(255,255,255,.008), transparent 82%),
    #000;
}

.subpage-stars {
  position: absolute;
  inset: 0;
  width: 100%; height: 100%;
  pointer-events: none;
  z-index: 0;
}

.subpage-road {
  position: absolute;
  inset: 0;
  width: 100%; height: 100%;
  pointer-events: none;
  overflow: visible;
  z-index: 1;
}

.subpage .road-line {
  fill: none;
  stroke: #ffffffce;
  stroke-width: 1.2;
  vector-effect: non-scaling-stroke;
  opacity: .92;
  filter:
    drop-shadow(0 0 2px  rgba(255,255,255,.70))
    drop-shadow(0 0 7px  rgba(255,255,255,.55))
    drop-shadow(0 0 16px rgba(255,255,255,.28));
}
.subpage .road-ghost {
  fill: none;
  stroke: #dddddd;
  stroke-width: 1;
  vector-effect: non-scaling-stroke;
  opacity: .22;
  filter: drop-shadow(0 0 4px rgba(255,255,255,.25));
}

.subpage-world {
  position: absolute;
  inset: 0;
  perspective: 1000px;
  pointer-events: none;
  z-index: 2;
}

.subpage .card {
  position: absolute;
  left: 50%; top: 50%;
  width: clamp(240px, 24vw, 380px);
  aspect-ratio: 3 / 4;
  display: flex;
  flex-direction: column;
  padding: clamp(11px, .95vw, 16px);
  background: transparent;
  border: none;
  box-shadow: none;
  transform-style: preserve-3d;
  pointer-events: auto;
  overflow: hidden;
  will-change: transform, opacity;
}

.subpage .card-title {
  flex: 0 0 auto;
  margin: 0 0 clamp(8px, .7vw, 11px);
  padding: 0;
  font-size: clamp(16px, 1.5vw, 22px);
  font-weight: 500;
  letter-spacing: .08em;
  line-height: 1.15;
  color: #fff;
  text-shadow: 0 0 14px rgba(255,255,255,.18);
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
  transition: text-shadow .25s;
}
.subpage .card--left  .card-title { text-align: left; }
.subpage .card--right .card-title { text-align: right; }

.subpage .card-media {
  position: relative;
  flex: 0 0 auto;
  width: 100%;
  aspect-ratio: 16 / 9;
  border: none;
  background: transparent;
  overflow: hidden;
}

.subpage .card-img {
  position: absolute;
  inset: 0;
  display: block;
  width: 100%; height: 100%;
  object-fit: cover;
  object-position: center;
  pointer-events: none;
  user-select: none;
  -webkit-user-drag: none;
  -webkit-mask-image:
    linear-gradient(to right, transparent 0%, #000 8%, #000 92%, transparent 100%),
    linear-gradient(to bottom, transparent 0%, #000 8%, #000 92%, transparent 100%);
  -webkit-mask-composite: source-in;
  mask-image:
    linear-gradient(to right, transparent 0%, #000 8%, #000 92%, transparent 100%),
    linear-gradient(to bottom, transparent 0%, #000 8%, #000 92%, transparent 100%);
  mask-composite: intersect;
}

.subpage .card-bio {

  flex: 1 1 auto;
  min-height: 0;
  margin: 0;
  padding: 0 2px;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  font-size: clamp(10px, .82vw, 12.5px);
  line-height: 1.75;
  color: rgba(255,255,255,.95);
}
.subpage .card-bio span {
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
  line-clamp: 3;
  width: 100%;
}

.subpage .card-rule {
  flex: 0 0 auto;
  height: 1px;
  margin: clamp(9px, .8vw, 13px) 0;
  background: rgba(255,255,255,.6);
  transition: background .25s, box-shadow .25s;
}

.subpage .card-link {
  flex: 0 0 auto;
  font: 9.5px/1.3 ui-monospace, SFMono-Regular, Consolas, monospace;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: #d6d6d6;
  text-decoration: none;
  transition: color .25s, text-shadow .25s;
}
.subpage .card--left  .card-link { text-align: left; }
.subpage .card--right .card-link { text-align: right; }

.subpage .card:hover .card-title,
.subpage .card:focus-visible .card-title { text-shadow: 0 0 22px rgba(255,255,255,.5); }
.subpage .card:hover .card-rule,
.subpage .card:focus-visible .card-rule {
  background: #fff;
  box-shadow: 0 0 10px rgba(255,255,255,.45);
}
.subpage .card:hover .card-link,
.subpage .card:focus-visible .card-link {
  color: #fff;
  text-shadow: 0 0 12px rgba(255,255,255,.45);
}
.subpage .card:focus-visible { outline: none; }

@media (max-width: 600px) {
  .subpage .card { width: clamp(200px, 62vw, 260px); padding: 11px; }
  .subpage .card-title { font-size: 14px; }
  .subpage .card-bio   { font-size: 9.5px; -webkit-line-clamp: 3; line-clamp: 3; }
  .subpage .card-link  { font-size: 8px; }
}
