/* ========================================================================
   OnPixel Devlog experience
   Semantic stylesheet bundle; version-file chains intentionally removed.
   ======================================================================== */

/* ===== Narrative interaction systems ========================================= */

/* =======================================================================
   OnPixel v26 — meaning-led motion and decision systems
   Extends the existing dark game language without changing the hero,
   navigation, card art or global grid.
   ======================================================================= */

:root {
  --opx-v26-fast: 180ms;
  --opx-v26-med: 520ms;
  --opx-v26-slow: 880ms;
}

/* Home / one decisive studio-and-journal ending ------------------------- */

.opx-home-pulse {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  border-top: 1px solid var(--onpixel-edge);
  background:
    linear-gradient(rgba(255,255,255,.018) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.018) 1px, transparent 1px),
    radial-gradient(55% 95% at 88% 38%, color-mix(in srgb, var(--onpixel-e-core) 10%, transparent), transparent 76%),
    #05070a;
  background-size: 4rem 4rem, 4rem 4rem, 100% 100%, 100% 100%;
}

.opx-home-pulse__field {
  position: absolute;
  z-index: -1;
  inset: 0;
  pointer-events: none;
  overflow: hidden;
  opacity: .8;
}

.opx-home-pulse__field::before {
  content: "";
  position: absolute;
  inset: 8% 4%;
  border: 1px solid color-mix(in srgb, var(--onpixel-e-core) 12%, transparent);
  clip-path: polygon(58% 0, 100% 0, 100% 100%, 34% 100%);
}

.opx-home-pulse__field i {
  position: absolute;
  right: clamp(2rem, 9vw, 10rem);
  width: 1px;
  height: 38%;
  background: linear-gradient(transparent, color-mix(in srgb, var(--onpixel-e-core) 42%, transparent), transparent);
  transform: rotate(28deg);
  animation: opx-home-scan-v26 8s ease-in-out infinite alternate;
}

.opx-home-pulse__field i:nth-child(1) { top: 2%; }
.opx-home-pulse__field i:nth-child(2) { top: 29%; right: clamp(8rem, 22vw, 25rem); animation-delay: -2.6s; }
.opx-home-pulse__field i:nth-child(3) { top: 56%; right: clamp(1rem, 5vw, 6rem); animation-delay: -5.2s; }

@keyframes opx-home-scan-v26 {
  from { opacity: .18; transform: translate3d(-1.2rem, -.6rem, 0) rotate(28deg) scaleY(.82); }
  to { opacity: .72; transform: translate3d(1.2rem, .6rem, 0) rotate(28deg) scaleY(1.08); }
}

.opx-home-pulse__grid {
  display: grid;
  grid-template-columns: minmax(0, 1.08fr) minmax(19rem, .72fr);
  align-items: stretch;
  gap: clamp(2rem, 7vw, 7rem);
}

.opx-home-pulse__lead {
  align-self: center;
  padding-block: clamp(1rem, 4vw, 3rem);
}

.opx-home-pulse__lead .onpixel-t-lede { max-width: 46rem; }

.opx-home-pulse__proof {
  position: relative;
  display: grid;
  align-content: end;
  gap: clamp(1.25rem, 3vw, 2.2rem);
  min-height: clamp(25rem, 48vw, 37rem);
  padding: clamp(1.35rem, 3.4vw, 2.7rem);
  border: 1px solid var(--onpixel-edge-strong);
  background:
    linear-gradient(180deg, transparent 0 38%, rgba(3,5,8,.86) 76%),
    radial-gradient(circle at 50% 26%, rgba(217,226,240,.07), transparent 29%),
    #07090d;
  box-shadow: 0 2rem 5rem rgba(0,0,0,.28);
}

.opx-home-pulse__proof::before,
.opx-home-pulse__proof::after {
  content: "";
  position: absolute;
  pointer-events: none;
}

.opx-home-pulse__proof::before {
  inset: 1rem;
  border: 1px solid var(--onpixel-edge);
  clip-path: polygon(0 0, 24% 0, 24% 1px, 100% 1px, 100% 72%, calc(100% - 1px) 72%, calc(100% - 1px) 100%, 0 100%);
}

.opx-home-pulse__proof::after {
  top: 0;
  left: 0;
  width: 28%;
  height: 2px;
  background: var(--onpixel-e-core);
  box-shadow: 0 0 1.25rem color-mix(in srgb, var(--onpixel-e-core) 45%, transparent);
}

.opx-home-pulse__mark {
  position: absolute;
  top: 17%;
  left: 50%;
  width: clamp(4.5rem, 8vw, 6.8rem);
  transform: translateX(-50%);
  opacity: .7;
  filter: drop-shadow(0 0 2.2rem rgba(217,226,240,.16));
}

.opx-home-pulse__mark img { display: block; width: 100%; }

.opx-home-pulse__proof > p { display: grid; gap: .45rem; margin: 0; }
.opx-home-pulse__proof > p span,
.opx-home-pulse__proof ol span {
  font-size: .62rem;
  font-weight: 760;
  letter-spacing: .15em;
  text-transform: uppercase;
  color: var(--onpixel-mute);
}
.opx-home-pulse__proof > p b { font-size: clamp(1.15rem, 2vw, 1.55rem); line-height: 1.2; color: var(--onpixel-bone); }
.opx-home-pulse__proof ol { display: grid; margin: 0; padding: 0; list-style: none; border-top: 1px solid var(--onpixel-edge); }
.opx-home-pulse__proof li { display: grid; grid-template-columns: 2.2rem 1fr; gap: .6rem; padding: .8rem 0; border-bottom: 1px solid var(--onpixel-edge); }
.opx-home-pulse__proof li i { font-size: .63rem; font-style: normal; color: var(--onpixel-e-core); }

/* Arena / readable cause-and-effect ------------------------------------ */

.opx-arena__head-copy {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1.5rem;
}

.opx-arena__guide-toggle {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  gap: .55rem;
  min-height: 2.4rem;
  padding: .55rem .8rem;
  font: inherit;
  font-size: .61rem;
  font-weight: 780;
  letter-spacing: .13em;
  text-transform: uppercase;
  color: var(--onpixel-steel);
  border: 1px solid var(--onpixel-edge-strong);
  background: #05070a;
  cursor: pointer;
  transition: color var(--opx-v26-fast) ease, border-color var(--opx-v26-fast) ease, background var(--opx-v26-fast) ease;
}

.opx-arena__guide-toggle i {
  width: .48rem;
  height: .48rem;
  border: 1px solid currentColor;
  box-shadow: inset 0 0 0 2px #05070a;
  background: transparent;
}

.opx-arena__guide-toggle:hover,
.opx-arena__guide-toggle:focus-visible,
.opx-arena__guide-toggle[aria-expanded="true"] {
  color: var(--onpixel-bone);
  border-color: var(--opx-arena-core);
  outline: none;
}

.opx-arena__guide-toggle[aria-expanded="true"] i {
  background: var(--opx-arena-core);
  box-shadow: 0 0 .8rem color-mix(in srgb, var(--opx-arena-core) 50%, transparent);
}

.opx-arena__resolution {
  --opx-resolution-progress: 0%;
  position: relative;
  z-index: 4;
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  margin: 0;
  padding: .85rem clamp(.8rem, 2vw, 1.35rem);
  list-style: none;
  border-bottom: 1px solid var(--onpixel-edge);
  background: rgba(3,5,8,.96);
}

.opx-arena__resolution::before,
.opx-arena__resolution::after {
  content: "";
  position: absolute;
  left: calc(10% + .85rem);
  right: calc(10% + .85rem);
  top: 1.26rem;
  height: 1px;
  pointer-events: none;
}

.opx-arena__resolution::before { background: var(--onpixel-edge-strong); }
.opx-arena__resolution::after {
  right: auto;
  width: var(--opx-resolution-progress, 0%);
  background: var(--opx-result-core);
  box-shadow: 0 0 .8rem color-mix(in srgb, var(--opx-result-core) 54%, transparent);
  transition: width .45s var(--onpixel-ease-out), background .35s ease;
}

.opx-arena__resolution li {
  position: relative;
  z-index: 1;
  display: grid;
  justify-items: center;
  gap: .4rem;
  min-width: 0;
  font-size: .55rem;
  font-weight: 740;
  letter-spacing: .1em;
  text-align: center;
  text-transform: uppercase;
  color: var(--onpixel-mute);
  transition: color .3s ease;
}

.opx-arena__resolution li i {
  display: grid;
  place-items: center;
  width: .84rem;
  aspect-ratio: 1;
  overflow: hidden;
  font-size: 0;
  font-style: normal;
  border: 1px solid var(--onpixel-edge-strong);
  background: #07090d;
  transform: rotate(45deg);
  transition: transform .4s var(--onpixel-ease-out), border-color .3s ease, background .3s ease, box-shadow .3s ease;
}

.opx-arena__resolution li.is-done,
.opx-arena__resolution li.is-active { color: color-mix(in srgb, var(--opx-result-core) 68%, var(--onpixel-bone)); }
.opx-arena__resolution li.is-done i { border-color: color-mix(in srgb, var(--opx-result-core) 60%, transparent); background: color-mix(in srgb, var(--opx-result-core) 52%, #07090d); }
.opx-arena__resolution li.is-active i {
  border-color: var(--opx-result-core);
  background: var(--opx-result-core);
  transform: rotate(45deg) scale(1.28);
  box-shadow: 0 0 1rem color-mix(in srgb, var(--opx-result-core) 58%, transparent);
}

.opx-arena__stage {
  grid-template-areas:
    "opponent"
    "trace"
    "score"
    "clash"
    "rule"
    "player";
}

.opx-arena-shell:not([data-mode="elemental"]) .opx-arena__stage {
  grid-template-areas: "opponent" "trace" "clash" "player";
}

.opx-arena__trace {
  grid-area: trace;
  position: relative;
  z-index: 2;
  display: grid;
  grid-template-columns: auto auto minmax(12rem, 1fr);
  align-items: center;
  gap: .7rem 1rem;
  width: min(100%, 50rem);
  min-height: 3.6rem;
  padding: .58rem .75rem;
  border-block: 1px solid var(--onpixel-edge);
  background: rgba(3,5,8,.66);
}

.opx-arena__trace > span {
  font-size: .56rem;
  font-weight: 760;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--onpixel-mute);
}

.opx-arena__trace ol {
  display: flex;
  align-items: center;
  gap: .28rem;
  margin: 0;
  padding: 0;
  list-style: none;
}

.opx-arena__trace li {
  position: relative;
  display: grid;
  place-items: center;
  width: 2.15rem;
  aspect-ratio: 2 / 3;
  overflow: hidden;
  font-size: .72rem;
  color: var(--onpixel-mute);
  border: 1px solid var(--onpixel-edge);
  background: #07090c;
}

.opx-arena__trace li img { display: block; width: 100%; height: 100%; object-fit: cover; filter: brightness(.78) saturate(.86); }
.opx-arena__trace li.is-new { animation: opx-trace-in-v26 .55s var(--onpixel-ease-out) both; }
.opx-arena__trace > p { margin: 0; font-size: .7rem; line-height: 1.45; color: var(--onpixel-steel); }

@keyframes opx-trace-in-v26 {
  0% { opacity: 0; transform: translateY(-.8rem) rotateY(72deg); filter: blur(3px); }
  100% { opacity: 1; transform: none; filter: none; }
}

.opx-arena-guide {
  position: absolute;
  z-index: 12;
  inset: 0;
  display: block;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  background: rgba(2,4,7,.56);
  transition: opacity .3s ease, visibility .3s ease;
}

.opx-arena-shell.is-guide-open .opx-arena-guide { opacity: 1; visibility: visible; }

.opx-arena-guide > span {
  position: absolute;
  display: grid;
  grid-template-columns: 1.6rem 1fr;
  gap: .16rem .48rem;
  width: min(15rem, 35%);
  padding: .66rem .75rem;
  color: var(--onpixel-bone);
  border-left: 2px solid var(--opx-arena-core);
  background: #07090d;
  box-shadow: 0 1rem 2rem rgba(0,0,0,.42);
  transform: translateY(.6rem);
  transition: transform .44s var(--onpixel-ease-out);
}

.opx-arena-shell.is-guide-open .opx-arena-guide > span { transform: none; }
.opx-arena-guide > span i { grid-row: 1 / span 2; font-size: .59rem; font-style: normal; color: var(--opx-arena-core); }
.opx-arena-guide > span b { font-size: .62rem; letter-spacing: .1em; text-transform: uppercase; }
.opx-arena-guide > span small { font-size: .61rem; color: var(--onpixel-steel); }
.opx-arena-guide [data-guide-anchor="opponent"] { top: 3%; left: 4%; }
.opx-arena-guide [data-guide-anchor="trace"] { top: 21%; right: 4%; }
.opx-arena-guide [data-guide-anchor="clash"] { top: 43%; left: 4%; }
.opx-arena-guide [data-guide-anchor="rule"] { bottom: 21%; right: 4%; }
.opx-arena-guide [data-guide-anchor="hand"] { bottom: 3%; left: 4%; }
.opx-arena-shell:not([data-mode="elemental"]) .opx-arena-guide [data-guide-anchor="rule"] { opacity: .35; }

.opx-demo-note {
  margin: 1rem 0 0;
  font-size: .68rem;
  line-height: 1.55;
  color: var(--onpixel-mute);
}

/* Strategy lab / one round versus the next ------------------------------ */

.opx-sacrifice {
  position: relative;
  overflow: hidden;
  border-block: 1px solid var(--onpixel-edge);
  background:
    radial-gradient(55% 70% at 83% 48%, rgba(255,74,26,.075), transparent 70%),
    linear-gradient(135deg, #05070a, #08090d 58%, #050609);
}

.opx-sacrifice::before {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background-image: linear-gradient(rgba(255,255,255,.019) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.019) 1px, transparent 1px);
  background-size: 3.5rem 3.5rem;
  mask-image: linear-gradient(90deg, transparent, #000 36%, #000);
}

.opx-sacrifice__layout {
  position: relative;
  display: grid;
  grid-template-columns: minmax(18rem, .68fr) minmax(0, 1.32fr);
  align-items: center;
  gap: clamp(3rem, 7vw, 7rem);
}

.opx-sacrifice__principle {
  display: grid;
  gap: .55rem;
  max-width: 33rem;
  margin-top: 2rem;
  padding: 1rem 0 1rem 1.1rem;
  border-left: 2px solid var(--onpixel-fire-core);
}

.opx-sacrifice__principle span {
  font-size: .59rem;
  font-weight: 760;
  letter-spacing: .15em;
  text-transform: uppercase;
  color: var(--onpixel-fire-core);
}

.opx-sacrifice__principle b { font-size: .9rem; line-height: 1.55; color: var(--onpixel-bone); }

.opx-sacrifice__board {
  --opx-strategy-core: var(--onpixel-e-core);
  position: relative;
  display: grid;
  gap: 0;
  border: 1px solid var(--onpixel-edge-strong);
  background: #05070a;
  box-shadow: 0 2.4rem 5rem rgba(0,0,0,.34);
  transition: border-color .45s ease;
}

.opx-sacrifice__board[data-tone="fire"] { --opx-strategy-core: var(--onpixel-fire-core); }
.opx-sacrifice__board[data-tone="ice"] { --opx-strategy-core: var(--onpixel-ice-core); }
.opx-sacrifice__board[data-tone="poison"] { --opx-strategy-core: var(--onpixel-poison-core); }

.opx-sacrifice__board::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  background: radial-gradient(54% 45% at 50% 54%, color-mix(in srgb, var(--opx-strategy-core) 11%, transparent), transparent 72%);
  transition: background .5s ease;
}

.opx-sacrifice__history,
.opx-sacrifice__decision,
.opx-sacrifice__result { position: relative; z-index: 1; }

.opx-sacrifice__history {
  display: grid;
  grid-template-columns: auto auto minmax(8rem, 1fr);
  align-items: center;
  gap: .8rem 1rem;
  padding: .8rem 1rem;
  border-bottom: 1px solid var(--onpixel-edge);
}

.opx-sacrifice__history > span,
.opx-sacrifice__result > span {
  font-size: .58rem;
  font-weight: 770;
  letter-spacing: .15em;
  text-transform: uppercase;
  color: var(--onpixel-mute);
}

.opx-sacrifice__history ol { display: flex; gap: .3rem; margin: 0; padding: 0; list-style: none; }
.opx-sacrifice__history li { position: relative; width: 2.35rem; aspect-ratio: 2 / 3; }
.opx-sacrifice__history img { display: block; width: 100%; height: 100%; object-fit: cover; filter: brightness(.66) saturate(.8); }
.opx-sacrifice__history li small { position: absolute; left: 50%; bottom: -.35rem; width: max-content; padding: .1rem .25rem; font-size: .44rem; color: var(--onpixel-steel); background: #05070a; transform: translateX(-50%); }
.opx-sacrifice__history > p { margin: 0; font-size: .67rem; line-height: 1.45; color: var(--onpixel-steel); }

.opx-sacrifice__decision {
  display: grid;
  grid-template-columns: minmax(7rem, .62fr) 3.5rem minmax(18rem, 1.38fr);
  align-items: center;
  gap: 1rem;
  min-height: 25rem;
  padding: clamp(1.2rem, 3vw, 2.2rem);
  overflow: hidden;
}

.opx-sacrifice__opponent { display: grid; justify-items: center; gap: .65rem; margin: 0; perspective: 1000px; }
.opx-sacrifice__opponent figcaption { font-size: .55rem; letter-spacing: .13em; text-transform: uppercase; color: var(--onpixel-mute); }
.opx-sacrifice__flip { position: relative; display: block; width: clamp(6.3rem, 10vw, 8.2rem); aspect-ratio: 2 / 3; }
.opx-sacrifice__flip > span { position: absolute; inset: 0; transform-style: preserve-3d; transition: transform .8s cubic-bezier(.18,.76,.16,1); }
.opx-sacrifice__flip img { position: absolute; inset: 0; display: block; width: 100%; height: 100%; object-fit: cover; backface-visibility: hidden; -webkit-backface-visibility: hidden; filter: brightness(.82) drop-shadow(0 1.2rem 1.6rem rgba(0,0,0,.72)); }
.opx-sacrifice__flip img:last-child { transform: rotateY(180deg); }
.opx-sacrifice__board.is-revealed .opx-sacrifice__flip > span { transform: rotateY(180deg); }
.opx-sacrifice__board.is-revealed .opx-sacrifice__flip { animation: opx-strategy-reveal-v26 .9s var(--onpixel-ease-out) both; }

.opx-sacrifice__versus { display: grid; justify-items: center; gap: .4rem; text-align: center; }
.opx-sacrifice__versus b { font-size: clamp(2rem, 4vw, 3.8rem); color: color-mix(in srgb, var(--opx-strategy-core) 54%, var(--onpixel-bone)); }
.opx-sacrifice__versus span { font-size: .54rem; letter-spacing: .11em; text-transform: uppercase; color: var(--onpixel-mute); }

.opx-sacrifice__hand { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); align-items: end; gap: .65rem; }
.opx-sacrifice__hand button {
  --opx-choice-core: var(--onpixel-e-core);
  display: grid;
  justify-items: center;
  gap: .55rem;
  min-width: 0;
  padding: .7rem .5rem .8rem;
  font: inherit;
  color: var(--onpixel-bone);
  border: 1px solid transparent;
  background: transparent;
  cursor: pointer;
  transition: transform .45s var(--onpixel-ease-out), border-color .3s ease, background .3s ease, opacity .3s ease;
}
.opx-sacrifice__hand button[data-tone="ice"] { --opx-choice-core: var(--onpixel-ice-core); }
.opx-sacrifice__hand button[data-tone="poison"] { --opx-choice-core: var(--onpixel-poison-core); }
.opx-sacrifice__hand button img { display: block; width: min(100%, 6.25rem); aspect-ratio: 2 / 3; object-fit: cover; filter: brightness(.72) saturate(.8) drop-shadow(0 1rem 1rem rgba(0,0,0,.56)); transition: filter .35s ease, transform .45s var(--onpixel-ease-out); }
.opx-sacrifice__hand button span { display: grid; gap: .2rem; text-align: center; }
.opx-sacrifice__hand button b { font-size: .62rem; letter-spacing: .09em; text-transform: uppercase; }
.opx-sacrifice__hand button small { font-size: .54rem; line-height: 1.35; color: var(--onpixel-mute); }
.opx-sacrifice__hand button:hover,
.opx-sacrifice__hand button:focus-visible { transform: translateY(-.45rem); border-color: color-mix(in srgb, var(--opx-choice-core) 65%, transparent); outline: none; }
.opx-sacrifice__hand button:hover img,
.opx-sacrifice__hand button:focus-visible img { filter: brightness(.98) saturate(1.05) drop-shadow(0 0 1.25rem color-mix(in srgb, var(--opx-choice-core) 30%, transparent)); transform: scale(1.035); }
.opx-sacrifice__hand button[aria-pressed="true"] { border-color: var(--opx-choice-core); background: color-mix(in srgb, var(--opx-choice-core) 7%, transparent); }
.opx-sacrifice__hand button[aria-pressed="true"] img { filter: brightness(1.03) saturate(1.08) drop-shadow(0 0 1.5rem color-mix(in srgb, var(--opx-choice-core) 38%, transparent)); }
.opx-sacrifice__board.is-revealed .opx-sacrifice__hand button:not([aria-pressed="true"]) { opacity: .34; }

.opx-sacrifice__result {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(14rem, .76fr);
  gap: .75rem 1.5rem;
  padding: 1rem 1.15rem 1.15rem;
  border-top: 1px solid var(--onpixel-edge);
  background: linear-gradient(90deg, color-mix(in srgb, var(--opx-strategy-core) 7%, transparent), transparent 52%);
}
.opx-sacrifice__result > span { grid-column: 1; color: color-mix(in srgb, var(--opx-strategy-core) 68%, var(--onpixel-bone)); }
.opx-sacrifice__result h3 { grid-column: 1; margin: 0; font-size: clamp(1.15rem, 2.2vw, 1.65rem); line-height: 1.12; color: var(--onpixel-bone); }
.opx-sacrifice__result > p { grid-column: 1; margin: 0; font-size: .76rem; line-height: 1.55; color: var(--onpixel-steel); }
.opx-sacrifice__result dl { grid-column: 2; grid-row: 1 / span 4; display: grid; align-content: center; gap: .85rem; margin: 0; }
.opx-sacrifice__result dl div { display: grid; gap: .36rem; }
.opx-sacrifice__result dt { font-size: .54rem; letter-spacing: .13em; text-transform: uppercase; color: var(--onpixel-mute); }
.opx-sacrifice__result dd { display: grid; grid-template-columns: 1fr auto; align-items: center; gap: .55rem; margin: 0; }
.opx-sacrifice__result dd i { position: relative; height: 2px; background: var(--onpixel-edge-strong); }
.opx-sacrifice__result dd i::after { content: ""; position: absolute; inset: 0 auto 0 0; width: var(--opx-meter, 50%); background: var(--opx-strategy-core); box-shadow: 0 0 .75rem color-mix(in srgb, var(--opx-strategy-core) 52%, transparent); transition: width .7s var(--onpixel-ease-out); }
.opx-sacrifice__result dd span { font-size: .56rem; color: var(--onpixel-steel); }
.opx-sacrifice__result > button { grid-column: 1; justify-self: start; margin-top: .35rem; }

@keyframes opx-strategy-reveal-v26 {
  0% { transform: translateY(-.7rem) rotate(-2deg); }
  54% { transform: translateY(.1rem) rotate(1deg); filter: drop-shadow(0 0 1.6rem color-mix(in srgb, var(--opx-strategy-core) 35%, transparent)); }
  100% { transform: none; }
}

/* Rule showroom / the same card under a changing table ----------------- */

.opx-rule-stage__detail { align-content: center; }

.opx-rule-lens {
  position: relative;
  display: grid;
  grid-template-columns: 4.35rem minmax(0, 1fr);
  align-items: center;
  gap: 1rem;
  max-width: 35rem;
  margin-top: clamp(1.5rem, 3vw, 2.4rem);
  padding-top: 1rem;
  border-top: 1px solid color-mix(in srgb, var(--opx-show-core) 28%, var(--onpixel-edge));
}

.opx-rule-lens img {
  display: block;
  width: 100%;
  filter: brightness(.72) saturate(.78) drop-shadow(0 .8rem 1rem rgba(0,0,0,.56));
}

.opx-rule-lens > div { display: grid; gap: .32rem; }
.opx-rule-lens > div > span { font-size: .54rem; font-weight: 760; letter-spacing: .13em; text-transform: uppercase; color: var(--opx-show-core); }
.opx-rule-lens > div > b { font-size: .88rem; color: var(--onpixel-bone); }
.opx-rule-stage__detail .opx-rule-lens p { margin: 0; font-size: .68rem; line-height: 1.48; color: var(--onpixel-steel); }
.opx-rule-stage__detail.is-entering .opx-rule-lens { animation: opx-rule-lens-v26 .7s var(--onpixel-ease-out) both; animation-delay: 120ms; }

@keyframes opx-rule-lens-v26 {
  from { opacity: .25; transform: translateX(.75rem); }
  to { opacity: 1; transform: none; }
}

/* Card laboratory / browser and anatomy as one system ------------------ */

.opx-card-lab {
  position: relative;
  overflow: hidden;
  background:
    radial-gradient(50% 35% at 50% 40%, color-mix(in srgb, var(--onpixel-e-core) 7%, transparent), transparent 74%),
    #05070a;
}

.opx-card-lab .opx-card-browser { margin-top: clamp(2rem, 4vw, 3.5rem); }

.opx-card-lab__anatomy {
  position: relative;
  margin-top: clamp(3rem, 7vw, 6.5rem);
  padding-top: clamp(3rem, 6vw, 5.5rem);
  border-top: 1px solid var(--onpixel-edge-strong);
}

.opx-card-lab__anatomy::before {
  content: "LAB / 02";
  position: absolute;
  top: -.42rem;
  left: 0;
  padding-right: .7rem;
  font-size: .56rem;
  font-weight: 760;
  letter-spacing: .16em;
  color: var(--onpixel-e-core);
  background: #05070a;
}

.onpixel-anat__card[data-element="fire"] { --opx-lab-core: var(--onpixel-fire-core); }
.onpixel-anat__card[data-element="ice"] { --opx-lab-core: var(--onpixel-ice-core); }
.onpixel-anat__card[data-element="poison"] { --opx-lab-core: var(--onpixel-poison-core); }

.opx-card-lab__selected {
  position: absolute;
  right: -1.1rem;
  bottom: 8%;
  z-index: 7;
  display: grid;
  grid-template-columns: auto auto;
  align-items: baseline;
  gap: .12rem .55rem;
  min-width: 7.4rem;
  padding: .72rem .8rem;
  border-left: 2px solid var(--opx-lab-core);
  background: #05070a;
  box-shadow: 0 1rem 2rem rgba(0,0,0,.44);
}

.opx-card-lab__selected small { grid-column: 1 / -1; font-size: .48rem; letter-spacing: .12em; text-transform: uppercase; color: var(--onpixel-mute); }
.opx-card-lab__selected span { font-size: .62rem; font-weight: 760; letter-spacing: .1em; text-transform: uppercase; color: var(--opx-lab-core); }
.opx-card-lab__selected b { font-size: 1.35rem; line-height: 1; color: var(--onpixel-bone); }
.onpixel-anat__card.is-card-updating img { animation: opx-lab-card-v26 .58s var(--onpixel-ease-out) both; }

@keyframes opx-lab-card-v26 {
  0% { opacity: .35; transform: translate3d(.7rem,.35rem,0) rotateY(-10deg); filter: brightness(.45) saturate(.55) blur(3px); }
  100% { opacity: 1; transform: none; }
}

/* Studio / one object becomes a finished game artifact ----------------- */

.opx-process-lab {
  display: grid;
  grid-template-columns: minmax(18rem, .68fr) minmax(0, 1.32fr);
  gap: clamp(2rem, 6vw, 6rem);
  margin-top: clamp(2.5rem, 5vw, 4.5rem);
}

.opx-process.opx-process--interactive {
  display: grid;
  grid-template-columns: 1fr;
  align-content: center;
  gap: 0;
}

.opx-process--interactive button {
  position: relative;
  display: grid;
  grid-template-columns: 2.2rem minmax(0, 1fr);
  gap: .42rem .85rem;
  width: 100%;
  padding: 1.25rem 1rem;
  overflow: hidden;
  font: inherit;
  text-align: left;
  color: var(--onpixel-bone);
  border: 0;
  border-top: 1px solid var(--onpixel-edge);
  background: transparent;
  cursor: pointer;
  transition: background .35s ease, padding-left .45s var(--onpixel-ease-out);
}

.opx-process--interactive button:last-child { border-bottom: 1px solid var(--onpixel-edge); }
.opx-process--interactive button::before { content: ""; position: absolute; inset: 0 auto 0 0; width: 2px; background: var(--onpixel-e-core); transform: scaleY(0); transform-origin: bottom; transition: transform .45s var(--onpixel-ease-out); }
.opx-process--interactive button:hover,
.opx-process--interactive button:focus-visible,
.opx-process--interactive button[aria-pressed="true"] { padding-left: 1.35rem; background: rgba(255,255,255,.025); outline: none; }
.opx-process--interactive button[aria-pressed="true"]::before { transform: scaleY(1); }
.opx-process--interactive button > span { grid-row: 1 / span 2; font-size: .63rem; color: var(--onpixel-e-core); }
.opx-process--interactive button h3 { margin: 0; font-size: 1rem; }
.opx-process--interactive button p { margin: 0; font-size: .72rem; line-height: 1.55; color: var(--onpixel-steel); }

.opx-process-object {
  position: relative;
  display: grid;
  grid-template-columns: minmax(13rem, 1fr) minmax(12rem, .8fr);
  align-items: center;
  gap: clamp(1.5rem, 4vw, 3rem);
  min-height: clamp(29rem, 46vw, 38rem);
  margin: 0;
  padding: clamp(1.5rem, 4vw, 3rem);
  overflow: hidden;
  border: 1px solid var(--onpixel-edge-strong);
  background: #06080c;
}

.opx-process-object::before {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background: radial-gradient(48% 55% at 38% 50%, color-mix(in srgb, var(--onpixel-fire-core) 11%, transparent), transparent 74%);
  opacity: 0;
  transition: opacity .7s ease;
}

.opx-process-lab[data-phase="world"] .opx-process-object::before { opacity: 1; }

.opx-process-object__grid {
  position: absolute;
  inset: 0;
  pointer-events: none;
  background-image: linear-gradient(rgba(255,255,255,.025) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.025) 1px, transparent 1px);
  background-size: 3rem 3rem;
  transition: opacity .55s ease;
}

.opx-process-lab[data-phase="world"] .opx-process-object__grid { opacity: .28; }

.opx-process-object__card {
  position: relative;
  z-index: 1;
  justify-self: center;
  width: min(100%, 16rem);
  perspective: 900px;
}

.opx-process-object__card img {
  display: block;
  width: 100%;
  filter: grayscale(1) brightness(.3) contrast(1.25);
  opacity: .48;
  transform: rotateY(-7deg) rotate(-1deg) scale(.93);
  clip-path: inset(2% 2% 2% 2%);
  transition: filter .85s var(--onpixel-ease-out), opacity .65s ease, transform .85s var(--onpixel-ease-out), clip-path .75s var(--onpixel-ease-out);
}

.opx-process-lab[data-phase="test"] .opx-process-object__card img { filter: grayscale(.65) brightness(.62) contrast(1.12); opacity: .8; transform: rotateY(-3deg) rotate(-.4deg) scale(.975); clip-path: inset(1%); }
.opx-process-lab[data-phase="world"] .opx-process-object__card img { filter: brightness(.9) saturate(.96) drop-shadow(0 1.7rem 2.5rem rgba(0,0,0,.72)) drop-shadow(0 0 1.5rem rgba(255,74,26,.15)); opacity: 1; transform: none; clip-path: inset(0); }

.opx-process-object__card i {
  position: absolute;
  z-index: 3;
  width: .62rem;
  aspect-ratio: 1;
  border: 1px solid var(--onpixel-e-core);
  opacity: 0;
  transform: scale(.5);
  transition: opacity .4s ease, transform .5s var(--onpixel-ease-out);
}
.opx-process-object__card i:nth-of-type(1) { top: 5%; left: 8%; }
.opx-process-object__card i:nth-of-type(2) { top: 48%; right: 9%; }
.opx-process-object__card i:nth-of-type(3) { bottom: 8%; left: 48%; border-radius: 50%; }
.opx-process-lab[data-phase="test"] .opx-process-object__card i { opacity: 1; transform: scale(1); }
.opx-process-lab[data-phase="test"] .opx-process-object__card i::after { content: ""; position: absolute; top: 50%; left: 100%; width: clamp(2rem, 5vw, 5rem); height: 1px; background: color-mix(in srgb, var(--onpixel-e-core) 55%, transparent); }

.opx-process-object figcaption { position: relative; z-index: 1; display: grid; gap: .65rem; }
.opx-process-object figcaption span { font-size: .59rem; font-weight: 760; letter-spacing: .15em; text-transform: uppercase; color: var(--onpixel-e-core); }
.opx-process-object figcaption b { max-width: 12ch; font-size: clamp(1.5rem, 3vw, 2.65rem); line-height: 1.02; color: var(--onpixel-bone); }
.opx-process-object figcaption p { margin: 0; font-size: .76rem; line-height: 1.6; color: var(--onpixel-steel); }
.opx-process-lab.is-switching .opx-process-object figcaption > * { animation: opx-process-copy-v26 .55s var(--onpixel-ease-out) both; }
.opx-process-lab.is-switching .opx-process-object figcaption b { animation-delay: 45ms; }
.opx-process-lab.is-switching .opx-process-object figcaption p { animation-delay: 90ms; }

@keyframes opx-process-copy-v26 {
  from { opacity: .2; transform: translateY(.55rem); }
  to { opacity: 1; transform: none; }
}

/* Devlog: only published work is clickable; future topics stay honest. ----- */

.opx-note-cardback {
  right: 4%;
  top: 50%;
  width: clamp(6.5rem, 12vw, 9.5rem);
  opacity: .2;
  transform: translateY(-50%) rotate(7deg);
  filter: saturate(.7) contrast(1.08);
}

.opx-next-notes {
  display: grid;
  grid-template-columns: minmax(0, .75fr) minmax(0, 1.25fr);
  gap: clamp(2rem, 6vw, 6rem);
  margin-top: clamp(3.5rem, 8vh, 6rem);
  padding-top: clamp(2rem, 5vh, 3.5rem);
  border-top: 1px solid var(--onpixel-edge);
}

.opx-next-notes__head h3 {
  max-width: 13ch;
  margin: .8rem 0 0;
  font-size: clamp(1.6rem, 3.2vw, 3rem);
  line-height: 1.02;
  letter-spacing: -.04em;
  color: var(--onpixel-bone);
}

.opx-next-notes__list {
  display: grid;
  margin: 0;
  padding: 0;
  list-style: none;
  border-top: 1px solid var(--onpixel-edge);
}

.opx-next-notes__list li {
  display: grid;
  grid-template-columns: 2.3rem minmax(0, 1fr) auto;
  gap: 1rem;
  align-items: center;
  min-height: 5.25rem;
  border-bottom: 1px solid var(--onpixel-edge);
}

.opx-next-notes__list span,
.opx-next-notes__list small {
  font-size: .58rem;
  font-weight: 760;
  letter-spacing: .13em;
  text-transform: uppercase;
  color: var(--onpixel-mute);
}

.opx-next-notes__list span { color: var(--onpixel-e-core); }
.opx-next-notes__list p { margin: 0; color: var(--onpixel-steel); }

/* Responsive ------------------------------------------------------------ */

@media (max-width: 64rem) {
  .opx-home-pulse__grid,
  .opx-sacrifice__layout,
  .opx-process-lab,
  .opx-next-notes { grid-template-columns: 1fr; }
  .opx-home-pulse__proof { min-height: 27rem; }
  .opx-sacrifice__copy { max-width: 49rem; }
  .opx-process-object { min-height: 31rem; }
}

@media (max-width: 48rem) {
  .opx-arena__head-copy { align-items: flex-start; flex-direction: column; gap: .8rem; }
  .opx-arena__resolution { padding-inline: .3rem; }
  .opx-arena__resolution::before,
  .opx-arena__resolution::after { left: 10%; right: 10%; }
  .opx-arena__resolution::after { right: auto; width: var(--opx-resolution-progress, 0%); }
  .opx-arena__resolution li { font-size: .46rem; letter-spacing: .05em; }
  .opx-arena__trace { grid-template-columns: auto 1fr; }
  .opx-arena__trace > p { grid-column: 1 / -1; }
  .opx-arena-guide > span { width: min(13rem, 56%); }

  .opx-sacrifice__decision { grid-template-columns: 1fr 2.8rem 1fr; align-items: start; }
  .opx-sacrifice__hand { grid-template-columns: 1fr; }
  .opx-sacrifice__hand button { grid-template-columns: 3.5rem 1fr; align-items: center; justify-items: start; text-align: left; }
  .opx-sacrifice__hand button img { width: 3.5rem; grid-row: 1; }
  .opx-sacrifice__hand button span { text-align: left; }
  .opx-sacrifice__result { grid-template-columns: 1fr; }
  .opx-sacrifice__result dl { grid-column: 1; grid-row: auto; }
  .opx-sacrifice__history { grid-template-columns: auto 1fr; }
  .opx-sacrifice__history > p { grid-column: 1 / -1; }

  .opx-process-object { grid-template-columns: 1fr; }
  .opx-process-object__card { width: min(64vw, 14rem); }
  .opx-process-object figcaption { text-align: center; justify-items: center; }
  .opx-process-object figcaption b { max-width: 18ch; }
}

@media (max-width: 38rem) {
  .opx-home-pulse__proof { min-height: 24rem; }
  .opx-home-pulse__field { opacity: .45; }

  .opx-arena__resolution li span { max-width: 6.5ch; line-height: 1.25; }
  .opx-arena-guide { padding: .55rem; background: rgba(2,4,7,.88); }
  .opx-arena-guide > span {
    position: relative;
    inset: auto !important;
    display: grid;
    width: 100%;
    margin-bottom: .38rem;
    padding: .5rem .6rem;
  }
  .opx-arena-shell:not([data-mode="elemental"]) .opx-arena-guide [data-guide-anchor="rule"] { display: none; }

  .opx-sacrifice__decision { grid-template-columns: 1fr; justify-items: center; }
  .opx-sacrifice__versus { margin-block: -.2rem; }
  .opx-sacrifice__hand { width: 100%; }
  .opx-sacrifice__flip { width: min(34vw, 7.3rem); }
  .opx-sacrifice__history > span { grid-column: 1 / -1; }
  .opx-sacrifice__history ol { grid-column: 1 / -1; }

  .opx-rule-lens { grid-template-columns: 3.5rem minmax(0, 1fr); }
  .opx-card-lab__selected { right: -.35rem; bottom: 5%; min-width: 6.3rem; }
  .opx-process--interactive button { grid-template-columns: 1.7rem minmax(0,1fr); padding-inline: .45rem; }
  .opx-process-object { padding-inline: .9rem; }
  .opx-next-notes__list li { grid-template-columns: 1.8rem minmax(0, 1fr); padding-block: .8rem; }
  .opx-next-notes__list small { grid-column: 2; }
}

@media (prefers-reduced-motion: reduce) {
  .opx-home-pulse__field i,
  .opx-arena__trace li.is-new,
  .opx-sacrifice__board.is-revealed .opx-sacrifice__flip,
  .opx-rule-stage__detail.is-entering .opx-rule-lens,
  .onpixel-anat__card.is-card-updating img,
  .opx-process-lab.is-switching .opx-process-object figcaption > * {
    animation: none !important;
  }

  .opx-arena__resolution::after,
  .opx-arena__resolution li,
  .opx-arena__resolution li i,
  .opx-arena-guide,
  .opx-arena-guide > span,
  .opx-sacrifice__flip > span,
  .opx-sacrifice__hand button,
  .opx-sacrifice__hand button img,
  .opx-sacrifice__result dd i::after,
  .opx-process--interactive button,
  .opx-process--interactive button::before,
  .opx-process-object::before,
  .opx-process-object__grid,
  .opx-process-object__card img,
  .opx-process-object__card i {
    transition: none !important;
  }
}

/* Devlog is intentionally unpublished until the first real note is ready. */
.opx-devlog-soon {
  --opx-soon-core: var(--onpixel-ice-core, #65bfff);
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(18rem, .85fr);
  min-height: 30rem;
  overflow: hidden;
  border: 1px solid var(--onpixel-edge-strong);
  background:
    linear-gradient(128deg, rgba(11, 17, 25, .98), rgba(3, 5, 8, .995) 58%),
    #05070a;
  box-shadow: 0 2.5rem 6rem rgba(0, 0, 0, .35);
  isolation: isolate;
}

.opx-devlog-soon::before {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background:
    linear-gradient(90deg, color-mix(in srgb, var(--opx-soon-core) 20%, transparent), transparent 28%) 0 0 / 100% 1px no-repeat,
    radial-gradient(62% 90% at 88% 48%, color-mix(in srgb, var(--opx-soon-core) 12%, transparent), transparent 72%);
}

.opx-devlog-soon::after {
  content: "";
  position: absolute;
  z-index: 4;
  top: 0;
  bottom: 0;
  left: -32%;
  width: 32%;
  pointer-events: none;
  opacity: 0;
  background: linear-gradient(90deg, transparent, color-mix(in srgb, var(--opx-soon-core) 26%, transparent), transparent);
  transform: skewX(-16deg) translate3d(0, 0, 0);
  animation: opxSoonSweep 8s cubic-bezier(.2, .8, .2, 1) 1.4s infinite;
}

.opx-devlog-soon__copy {
  position: relative;
  z-index: 1;
  align-self: center;
  padding: clamp(2rem, 5vw, 5rem);
}

.opx-devlog-soon__copy h2 {
  max-width: 11ch;
  margin: 1rem 0 0;
  font-size: clamp(2.4rem, 5vw, 5.2rem);
  line-height: .94;
  letter-spacing: -.055em;
  color: var(--onpixel-bone);
}

.opx-devlog-soon__copy > p:not(.onpixel-hud) {
  max-width: 57ch;
  margin: 1.5rem 0 0;
  font-size: 1rem;
  line-height: 1.7;
  color: var(--onpixel-steel);
}

.opx-devlog-soon__copy .onpixel-rally__acts { margin-top: 2rem; }

.opx-devlog-soon__signal {
  position: relative;
  display: grid;
  align-content: center;
  justify-items: center;
  min-height: 24rem;
  padding: 2rem;
  overflow: hidden;
  border-left: 1px solid var(--onpixel-edge);
  background:
    linear-gradient(135deg, transparent 0 47%, color-mix(in srgb, var(--opx-soon-core) 8%, transparent) 47.1% 47.35%, transparent 47.5%),
    linear-gradient(165deg, color-mix(in srgb, var(--opx-soon-core) 11%, transparent), rgba(2, 4, 7, .9));
}

.opx-devlog-soon__signal::before,
.opx-devlog-soon__signal::after {
  content: "";
  position: absolute;
  width: 68%;
  height: 38%;
  border-color: color-mix(in srgb, var(--opx-soon-core) 44%, transparent);
  pointer-events: none;
}
.opx-devlog-soon__signal::before { top: 14%; left: 10%; border-top: 1px solid; border-left: 1px solid; animation: opxSoonCornerA 5.2s ease-in-out infinite; }
.opx-devlog-soon__signal::after { right: 10%; bottom: 14%; border-right: 1px solid; border-bottom: 1px solid; animation: opxSoonCornerB 5.2s ease-in-out 1.1s infinite; }
.opx-devlog-soon__signal span,
.opx-devlog-soon__signal b,
.opx-devlog-soon__signal small,
.opx-devlog-soon__beacon { position: relative; z-index: 2; }
.opx-devlog-soon__signal span { font-size: clamp(.75rem, 1.1vw, .95rem); font-weight: 780; letter-spacing: .5em; color: var(--onpixel-mute); }
.opx-devlog-soon__signal b {
  margin-top: .65rem;
  font-size: clamp(2.3rem, 5vw, 4.9rem);
  line-height: .9;
  letter-spacing: -.05em;
  color: color-mix(in srgb, var(--opx-soon-core) 72%, var(--onpixel-bone));
  text-shadow: 0 0 2.2rem color-mix(in srgb, var(--opx-soon-core) 18%, transparent);
  animation: opxSoonTitlePulse 4.8s ease-in-out infinite;
}
.opx-devlog-soon__signal small {
  margin-top: 1.25rem;
  font-size: .58rem;
  font-weight: 780;
  letter-spacing: .2em;
  color: color-mix(in srgb, var(--opx-soon-core) 64%, var(--onpixel-mute));
}
.opx-devlog-soon__signal i {
  position: absolute;
  z-index: 1;
  left: 12%;
  right: 12%;
  height: 1px;
  opacity: .28;
  background: linear-gradient(90deg, transparent, color-mix(in srgb, var(--opx-soon-core) 58%, transparent), transparent);
  transform: scaleX(.28);
  animation: opxSoonSignal 4.2s ease-in-out infinite;
}
.opx-devlog-soon__signal i:nth-of-type(1) { top: 30%; }
.opx-devlog-soon__signal i:nth-of-type(2) { top: 50%; animation-delay: .7s; }
.opx-devlog-soon__signal i:nth-of-type(3) { top: 70%; animation-delay: 1.4s; }

.opx-devlog-soon__beacon {
  display: flex;
  align-items: end;
  gap: .28rem;
  height: 2.2rem;
  margin-bottom: 1.35rem;
}

.opx-devlog-soon__beacon em {
  display: block;
  width: .22rem;
  height: 100%;
  background: color-mix(in srgb, var(--opx-soon-core) 74%, var(--onpixel-bone));
  box-shadow: 0 0 .8rem color-mix(in srgb, var(--opx-soon-core) 28%, transparent);
  transform: scaleY(.22);
  transform-origin: 50% 100%;
  animation: opxSoonBeacon 1.65s cubic-bezier(.45, 0, .25, 1) infinite;
}

.opx-devlog-soon__beacon em:nth-child(2) { animation-delay: -.22s; }
.opx-devlog-soon__beacon em:nth-child(3) { animation-delay: -.44s; }
.opx-devlog-soon__beacon em:nth-child(4) { animation-delay: -.66s; }
.opx-devlog-soon__beacon em:nth-child(5) { animation-delay: -.88s; }

.opx-motion-ready .opx-devlog-soon__copy > *,
.opx-motion-ready .opx-devlog-soon__signal > :not(i) {
  animation: opxSoonEnter .9s cubic-bezier(.2, .8, .2, 1) both;
}

.opx-motion-ready .opx-devlog-soon__copy h2 { animation-delay: .1s; }
.opx-motion-ready .opx-devlog-soon__copy > p:not(.onpixel-hud) { animation-delay: .2s; }
.opx-motion-ready .opx-devlog-soon__copy .onpixel-rally__acts { animation-delay: .3s; }
.opx-motion-ready .opx-devlog-soon__beacon { animation-delay: .18s; }
.opx-motion-ready .opx-devlog-soon__signal > span { animation-delay: .28s; }
.opx-motion-ready .opx-devlog-soon__signal > b { animation: opxSoonEnter .9s cubic-bezier(.2, .8, .2, 1) .38s both, opxSoonTitlePulse 4.8s ease-in-out 1.3s infinite; }
.opx-motion-ready .opx-devlog-soon__signal > small { animation-delay: .5s; }

@keyframes opxSoonEnter {
  from { opacity: 0; transform: translate3d(0, 1.1rem, 0); }
  to { opacity: 1; transform: translate3d(0, 0, 0); }
}

@keyframes opxSoonSweep {
  0%, 70% { opacity: 0; transform: skewX(-16deg) translate3d(0, 0, 0); }
  76% { opacity: .58; }
  92%, 100% { opacity: 0; transform: skewX(-16deg) translate3d(470%, 0, 0); }
}

@keyframes opxSoonSignal {
  0%, 100% { opacity: .18; transform: scaleX(.25); }
  46%, 58% { opacity: .75; transform: scaleX(1); }
}

@keyframes opxSoonBeacon {
  0%, 100% { opacity: .4; transform: scaleY(.2); }
  45% { opacity: 1; transform: scaleY(1); }
}

@keyframes opxSoonTitlePulse {
  0%, 100% { filter: brightness(.92); text-shadow: 0 0 1.4rem color-mix(in srgb, var(--opx-soon-core) 10%, transparent); }
  50% { filter: brightness(1.08); text-shadow: 0 0 2.6rem color-mix(in srgb, var(--opx-soon-core) 24%, transparent); }
}

@keyframes opxSoonCornerA {
  0%, 100% { opacity: .36; transform: translate3d(0, 0, 0); }
  50% { opacity: .78; transform: translate3d(.45rem, .45rem, 0); }
}

@keyframes opxSoonCornerB {
  0%, 100% { opacity: .28; transform: translate3d(0, 0, 0); }
  50% { opacity: .68; transform: translate3d(-.45rem, -.45rem, 0); }
}

@media (max-width: 48rem) {
  .opx-devlog-soon { grid-template-columns: 1fr; }
  .opx-devlog-soon__signal { min-height: 16rem; border-top: 1px solid var(--onpixel-edge); border-left: 0; }
}

@media (prefers-reduced-motion: reduce) {
  .opx-devlog-soon::after,
  .opx-devlog-soon__signal::before,
  .opx-devlog-soon__signal::after,
  .opx-devlog-soon__signal b,
  .opx-devlog-soon__signal i,
  .opx-devlog-soon__beacon em,
  .opx-motion-ready .opx-devlog-soon__copy > *,
  .opx-motion-ready .opx-devlog-soon__signal > :not(i) {
    animation: none !important;
  }
}
