/* A compact, wordless view from game pixels to cartridge and console. */
.real-game{display:grid;grid-template-columns:minmax(0,1.28fr) minmax(300px,.86fr);column-gap:clamp(18px,3vw,55px);padding:56px clamp(20px,4vw,70px) 64px;background:#24162f;background-image:radial-gradient(ellipse at 28% 48%,#4a28604d,transparent 67%)}
.real-game .box-intro{grid-column:2;grid-row:1;text-align:left;margin:0;max-width:560px}
.real-game h2{font-size:clamp(4.6rem,6.1vw,7.4rem)}
.real-game .real-game-follow{font-size:clamp(1.9rem,2.9vw,3.5rem);margin-top:17px}
.real-game .box-intro>p:last-of-type{font-size:clamp(1rem,1.35vw,1.22rem);line-height:1.5;margin:24px 0 0;max-width:480px}
.nes-depth{grid-column:1;grid-row:1;position:relative;width:calc(100% + 28px);margin:0 0 0 -14px;align-self:center}
.nes-depth svg{display:block;width:100%;height:auto;overflow:visible;isolation:isolate}
.nes-depth .signal-path{stroke-dasharray:5 4}
@media(hover:hover) and (prefers-reduced-motion:no-preference){.nes-depth:hover .signal-path{animation:signal-travel 1.8s linear infinite}}
@keyframes signal-travel{to{stroke-dashoffset:-36}}
@media(max-width:1150px) and (min-width:901px){.real-game{grid-template-columns:minmax(0,1.15fr) minmax(310px,.9fr);gap:16px;padding:50px 24px}.real-game h2{font-size:4.9rem}.real-game .real-game-follow{font-size:2rem}.real-game .box-intro>p:last-of-type{font-size:1rem}.nes-depth{width:calc(100% + 20px);margin-left:-10px}}
@media(max-width:900px){.real-game{display:flex;flex-direction:column;padding:55px 28px 32px;gap:26px}.real-game .box-intro{max-width:650px;text-align:center;margin:0}.real-game h2{font-size:clamp(4.5rem,9vw,6.2rem)}.real-game .real-game-follow{font-size:clamp(1.9rem,4.5vw,2.7rem)}.real-game .box-intro>p:last-of-type{max-width:590px;margin:22px auto 0}.nes-depth{width:min(100%,680px);margin:0;flex:none}}
@media(max-width:650px){.real-game{padding:48px 20px 22px;gap:28px}.real-game h2{font-size:clamp(3.7rem,16.5vw,5.3rem)}.real-game .real-game-follow{font-size:clamp(1.8rem,7.5vw,2.4rem);margin-top:12px}.real-game .box-intro>p:last-of-type{font-size:.96rem;line-height:1.45;margin-top:20px}.nes-depth{width:calc(100% + 24px);margin:0 -12px}}

/* Six synchronized snapshots, shared by picture, registers, input and sound. */
.nes-depth .phase{display:none}
.nes-depth[data-phase="0"] .phase-0,.nes-depth[data-phase="1"] .phase-1,.nes-depth[data-phase="2"] .phase-2,.nes-depth[data-phase="3"] .phase-3,.nes-depth[data-phase="4"] .phase-4,.nes-depth[data-phase="5"] .phase-5{display:inline}
.nes-depth .input-light{opacity:.12}
.nes-depth[data-phase="1"] .input-light{opacity:1}
.nes-depth .cpu-light{opacity:.35}
.nes-depth[data-phase="1"] .cpu-light,.nes-depth[data-phase="2"] .cpu-light,.nes-depth[data-phase="4"] .cpu-light{opacity:1}
.nes-depth .audio-wave{opacity:.22}
.nes-depth[data-phase="4"] .audio-wave,.nes-depth[data-phase="5"] .audio-wave{opacity:1}
.nes-depth .state-wire,.nes-depth .input-wire,.nes-depth .program-wire{stroke-dasharray:4 5}
.nes-depth.is-running .state-wire,.nes-depth.is-running .input-wire,.nes-depth.is-running .program-wire{animation:signal-travel 1.4s linear infinite}
.nes-replay{position:absolute;right:2%;bottom:2%;display:grid;place-items:center;width:34px;height:34px;border:1px solid #b9a6ca66;border-radius:50%;background:#24162f;color:#d3c4df;cursor:pointer;transition:background .2s,color .2s}
.nes-replay svg{width:19px;height:19px;overflow:visible}
.nes-replay:hover,.nes-replay:focus-visible{background:#4b3461;color:#fff;outline:2px solid #ead295;outline-offset:3px}
@media(prefers-reduced-motion:reduce){.nes-depth.is-running .state-wire,.nes-depth.is-running .input-wire,.nes-depth.is-running .program-wire{animation:none}.nes-replay{transition:none}}

/* The landing view stays legible as a still; layers separate only once on entry. */
@media (prefers-reduced-motion: no-preference) {
 .nes-simple.is-revealing .simple-lift {animation: simple-lift .95s ease-out both}
 .nes-simple.is-revealing .simple-pixels {animation: simple-open 1.1s ease-out both}
 .nes-simple.is-revealing .simple-bits {animation: simple-open 1.25s ease-out both}
}
@keyframes simple-lift {from {translate:-10px 12px} to {translate:0 0}}
@keyframes simple-open {from {translate:-18px 14px;opacity:.45} to {translate:0 0;opacity:1}}
