:root {
  --ink: #07090d;
  --ink-soft: #111721;
  --paper: #f3f0e8;
  --white: #fff;
  --blue: #00a9f5;
  --blue-deep: #061a38;
  --cyan: #39dbff;
  --green: #57e29a;
  --red: #ff4b55;
  --yellow: #ffd348;
  --line: rgba(255, 255, 255, .18);
  --pad: clamp(1.25rem, 4vw, 5rem);
  --max: 1500px;
  --display: "Arial Black", "Helvetica Neue", Arial, sans-serif;
  --body: Inter, "Helvetica Neue", Arial, sans-serif;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; background: var(--ink); }
[id] { scroll-margin-top: 84px; }
body { margin: 0; color: var(--ink); background: var(--paper); font-family: var(--body); overflow-x: hidden; }
body.is-locked { overflow: hidden; }
img { display: block; max-width: 100%; }
button, a { font: inherit; }
button { color: inherit; }
a { color: inherit; text-decoration: none; }
::selection { background: var(--blue); color: #00101e; }

.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
.skip-link { position: fixed; z-index: 9999; left: 1rem; top: 1rem; transform: translateY(-200%); background: #fff; color: #000; padding: .8rem 1rem; }
.skip-link:focus { transform: none; }
.section { width: min(100%, var(--max)); margin-inline: auto; padding-inline: var(--pad); }

.boot { position: fixed; z-index: 1000; inset: 0; display: grid; place-items: center; overflow: hidden; color: #fff; background: radial-gradient(circle at 50% 45%, #0c4f89 0, var(--blue-deep) 32%, #020914 78%); transition: opacity .7s cubic-bezier(.65, 0, .35, 1), visibility .7s; }
.boot.is-gone { opacity: 0; visibility: hidden; pointer-events: none; }
.boot__grid { position: absolute; inset: -20%; opacity: .2; background-image: linear-gradient(rgba(54, 198, 255, .22) 1px, transparent 1px), linear-gradient(90deg, rgba(54, 198, 255, .22) 1px, transparent 1px); background-size: 48px 48px; transform: perspective(600px) rotateX(62deg) translateY(29%); animation: gridMove 6s linear infinite; }
.boot__center { position: relative; z-index: 2; display: flex; width: min(86vw, 560px); flex-direction: column; align-items: center; gap: clamp(2.5rem, 8vh, 5rem); }
.boot__logo { width: min(60vw, 340px); max-height: 44vh; object-fit: contain; filter: drop-shadow(0 0 36px rgba(0, 179, 255, .4)); animation: logoFloat 3.4s ease-in-out infinite; }
.press-start { position: relative; display: flex; align-self: center; align-items: center; gap: 1rem; margin-inline: auto; border: 1px solid rgba(255, 255, 255, .46); border-radius: 999px; padding: 1rem 1.15rem 1rem 1.55rem; color: #fff; background: rgba(0, 0, 0, .16); text-transform: uppercase; letter-spacing: .15em; font-weight: 900; cursor: pointer; backdrop-filter: blur(12px); transition: .25s ease; }
.press-start:hover, .press-start:focus-visible { background: #fff; color: var(--blue-deep); transform: scale(1.04); outline: none; }
.press-start__key { border-radius: 999px; padding: .45rem .7rem; background: rgba(255,255,255,.15); font-size: .65rem; letter-spacing: .1em; }
.press-start:hover .press-start__key { background: rgba(0, 45, 85, .1); }
.boot__skip { position: absolute; z-index: 3; right: clamp(1rem, 3vw, 3rem); top: clamp(1rem, 3vw, 2rem); border: 0; color: rgba(255,255,255,.72); background: none; text-transform: uppercase; font-size: .7rem; font-weight: 800; letter-spacing: .14em; cursor: pointer; }
.boot__skip:hover { color: #fff; }
.boot__status { position: absolute; left: clamp(1rem, 3vw, 3rem); bottom: 1.8rem; font: 700 .64rem/1 var(--body); letter-spacing: .15em; text-transform: uppercase; color: rgba(255,255,255,.55); }
.boot__progress { position: absolute; right: clamp(1rem, 3vw, 3rem); bottom: 2rem; width: min(35vw, 280px); height: 2px; background: rgba(255,255,255,.16); }
.boot__progress i { display: block; width: 0; height: 100%; background: var(--cyan); box-shadow: 0 0 12px var(--cyan); }
.boot.is-booting .boot__progress i { animation: bootLoad 2.2s cubic-bezier(.2,.7,.2,1) forwards; }
.boot.is-fast .boot__progress i { animation-duration: .16s; }
.boot.is-booting .boot__logo { animation: bootLogo 2.2s cubic-bezier(.65,0,.35,1) forwards; }
.boot.is-fast .boot__logo { animation-duration: .16s; }

.site-header { position: fixed; z-index: 100; inset: 0 0 auto; display: flex; height: 76px; align-items: center; justify-content: space-between; padding-inline: var(--pad); color: #fff; mix-blend-mode: difference; transition: transform .4s ease; }
.site-header.is-hidden { transform: translateY(-110%); }
.brand img { width: clamp(150px, 16vw, 230px); max-height: 44px; object-fit: contain; object-position: left center; }
.desktop-nav { display: flex; align-items: center; gap: clamp(1rem, 2.4vw, 2.8rem); font-size: .69rem; font-weight: 900; letter-spacing: .12em; text-transform: uppercase; }
.desktop-nav a { position: relative; padding-block: .5rem; }
.desktop-nav a::after { content: ""; position: absolute; left: 0; right: 100%; bottom: 0; height: 1px; background: currentColor; transition: right .25s ease; }
.desktop-nav a:hover::after { right: 0; }
.desktop-nav a[aria-current="page"]::after { right: 0; }
.menu-toggle { display: none; width: 44px; height: 44px; border: 0; background: none; cursor: pointer; }
.menu-toggle span { display: block; width: 25px; height: 2px; margin: 5px auto; background: currentColor; transition: .25s; }
.menu-toggle[aria-expanded="true"] span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.menu-toggle[aria-expanded="true"] span:nth-child(2) { opacity: 0; }
.menu-toggle[aria-expanded="true"] span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }
.mobile-menu { position: fixed; z-index: 90; inset: 0; display: grid; align-items: center; padding: 7rem var(--pad) 3rem; color: #fff; background: #071224; opacity: 0; visibility: hidden; transition: .35s ease; }
.mobile-menu.is-open { opacity: 1; visibility: visible; }
.mobile-menu nav { display: grid; gap: .6rem; }
.mobile-menu a { font: 900 clamp(2rem, 9vw, 4rem)/1 var(--display); letter-spacing: -.06em; }

.hero { position: relative; min-height: 100svh; display: flex; align-items: center; overflow: hidden; color: #fff; background: #050a12; padding: 8rem var(--pad) clamp(6rem, 12vh, 9rem); }
.hero__image, .hero__veil, .hero__noise { position: absolute; inset: 0; width: 100%; height: 100%; }
.hero__image { left: auto; right: 0; width: 52%; object-fit: cover; transform: scale(1.04); animation: heroBreath 14s ease-in-out infinite alternate; }
.hero__veil { left: auto; right: 0; width: 52%; background: linear-gradient(90deg, rgba(3,8,16,.45), rgba(3,8,16,.06)), linear-gradient(0deg, rgba(3,8,16,.58), transparent 45%); }
.hero__noise { opacity: .12; background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.5'/%3E%3C/svg%3E"); mix-blend-mode: soft-light; }
.hero__content { position: relative; z-index: 2; width: 47%; }
.hero h1, .statement h2, .tech h2, .archive-intro h2, .section-heading h2, .trade h2, .experience h2, .play h2, .visit h2 { margin: 0; font-family: var(--display); font-weight: 900; line-height: .86; letter-spacing: -.075em; text-transform: uppercase; text-wrap: balance; }
.hero h1 { font-size: clamp(4rem, 8.5vw, 9.2rem); }
.hero__content > p { max-width: 620px; margin: 2rem 0 0; color: rgba(255,255,255,.74); font-size: clamp(1rem, 1.8vw, 1.35rem); line-height: 1.55; }
.hero__actions, .visit__actions { display: flex; flex-wrap: wrap; gap: .75rem; margin-top: 2.5rem; }
.button { display: inline-flex; min-height: 52px; align-items: center; justify-content: center; border: 1px solid transparent; border-radius: 999px; padding: .9rem 1.4rem; font-size: .73rem; font-weight: 900; letter-spacing: .1em; text-transform: uppercase; transition: .25s ease; }
.button--light { background: #fff; color: #05070b; }
.button--light:hover { background: var(--cyan); transform: translateY(-2px); }
.button--ghost { color: #fff; border-color: rgba(255,255,255,.4); background: rgba(0,0,0,.12); backdrop-filter: blur(8px); }
.button--ghost:hover { border-color: #fff; background: rgba(255,255,255,.1); }
.button--blue { color: #00101e; background: var(--cyan); }
.button--blue:hover { background: #fff; transform: translateY(-2px); }
.hero__facts { position: absolute; z-index: 2; right: var(--pad); bottom: 2.2rem; display: flex; gap: 2rem; font-size: .62rem; font-weight: 900; letter-spacing: .1em; text-transform: uppercase; color: rgba(255,255,255,.65); }
.scroll-cue { position: absolute; z-index: 2; left: var(--pad); bottom: 1.5rem; display: flex; align-items: center; gap: .7rem; font-size: .58rem; font-weight: 900; letter-spacing: .14em; text-transform: uppercase; }
.scroll-cue i { display: block; width: 1px; height: 34px; background: linear-gradient(#fff 50%, rgba(255,255,255,.2) 50%); background-size: 100% 200%; animation: scrollCue 1.7s ease infinite; }

.statement { padding-top: clamp(6rem, 14vw, 13rem); padding-bottom: clamp(6rem, 12vw, 11rem); }
.statement__copy { display: grid; grid-template-columns: 1.4fr .6fr; gap: clamp(2rem, 6vw, 8rem); align-items: end; }
.statement h2 { font-size: clamp(3.6rem, 9vw, 9rem); }
.statement__copy p, .archive-intro__copy p, .section-heading p, .trade__heading p, .play__copy > p { margin: 0 0 .5rem; max-width: 580px; color: #39414b; font-size: clamp(1rem, 1.6vw, 1.25rem); line-height: 1.65; }
.brand-line { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 2rem; margin-top: clamp(5rem, 9vw, 9rem); padding-block: 2.4rem; border-top: 1px solid rgba(7,9,13,.2); border-bottom: 1px solid rgba(7,9,13,.2); }
.platform { font-weight: 900; color: #1b2028; white-space: nowrap; }
.platform--ps { font-family: Arial, sans-serif; font-size: clamp(1.3rem, 2.4vw, 2.2rem); letter-spacing: -.07em; }
.platform--xbox { font-size: clamp(1.25rem, 2.2vw, 2rem); letter-spacing: .02em; }
.platform--nintendo { border: 2px solid currentColor; border-radius: 999px; padding: .18em .7em; font-size: clamp(1rem, 1.9vw, 1.6rem); letter-spacing: -.04em; }
.platform--controls { font-size: clamp(1.1rem, 2vw, 1.8rem); font-style: italic; text-transform: uppercase; letter-spacing: -.04em; }
.store-collage { position: relative; min-height: min(78vw, 970px); margin-top: clamp(5rem, 8vw, 8rem); }
.store-collage figure { margin: 0; overflow: hidden; background: #111; }
.store-collage img { width: 100%; height: 100%; object-fit: cover; transition: transform .9s cubic-bezier(.2,.7,.2,1); }
.store-collage figure:hover img { transform: scale(1.035); }
.store-collage__main { position: absolute; left: 0; top: 0; width: 74%; height: 76%; }
.store-collage__side { position: absolute; right: 0; bottom: 0; width: 34%; height: 55%; border: 10px solid var(--paper); }
.store-collage__note { position: absolute; left: 0; bottom: 4%; display: grid; gap: .35rem; padding: 0; color: var(--ink); background: transparent; }
.store-collage__note strong { font-size: 1.2rem; }
.store-collage__note span { color: #646b74; font-size: .78rem; }

.tech { position: relative; overflow: hidden; color: #eaf7ff; background: #06101c; padding-block: clamp(7rem, 13vw, 13rem); }
.tech::before { content: ""; position: absolute; inset: 0; opacity: .16; background-image: linear-gradient(rgba(20,169,235,.18) 1px, transparent 1px), linear-gradient(90deg, rgba(20,169,235,.18) 1px, transparent 1px); background-size: 64px 64px; }
.tech__scanner { position: absolute; z-index: 1; inset: 0 auto 0 0; width: 1px; background: var(--cyan); box-shadow: 0 0 28px 8px rgba(57,219,255,.2); animation: scanner 9s ease-in-out infinite; }
.tech__intro { position: relative; z-index: 2; display: grid; grid-template-columns: 1.4fr .6fr; gap: 4rem; align-items: end; }
.tech h2 { font-size: clamp(4rem, 10vw, 10rem); }
.tech__intro p { max-width: 520px; margin: 0 0 .4rem; color: rgba(234,247,255,.62); font-size: clamp(1rem, 1.5vw, 1.2rem); line-height: 1.65; }
.tech__stage { position: relative; z-index: 2; display: grid; grid-template-columns: 1fr 1fr; gap: clamp(2rem, 5vw, 6rem); margin-top: clamp(5rem, 9vw, 9rem); align-items: center; }
.tech__photo { position: relative; min-height: 620px; margin: 0; overflow: hidden; }
.tech__photo img { width: 100%; height: 100%; object-fit: cover; }
.tech__diagnostics { align-self: center; padding: 0; background: transparent; }
.tech__diagnostics ul { list-style: none; margin: 0 0 2.5rem; padding: 0; }
.tech__diagnostics li { display: grid; grid-template-columns: 2.4rem 1fr; gap: 1rem; padding-block: 1.5rem; border-bottom: 1px solid rgba(234,247,255,.14); }
.tech__diagnostics li:first-child { padding-top: 0; }
.tech__diagnostics li > span { color: var(--cyan); font: 900 1rem/1 var(--display); }
.tech__diagnostics p { margin: 0; color: rgba(234,247,255,.66); font-size: clamp(.88rem, 1.15vw, 1.02rem); line-height: 1.58; }
.tech__diagnostics p b { display: block; margin-bottom: .25rem; color: #fff; text-transform: uppercase; }
.tech__macro { position: relative; z-index: 2; min-height: 0; display: grid; grid-template-columns: 1.35fr .65fr; gap: clamp(2rem, 6vw, 7rem); align-items: center; margin-top: clamp(7rem, 12vw, 13rem); overflow: visible; }
.tech__macro img { position: relative; width: 100%; height: min(68vw, 760px); object-fit: cover; }
.tech__macro p { position: relative; z-index: 2; margin: 0; padding: 0; font: 900 clamp(2rem, 3.8vw, 4.2rem)/.98 var(--display); letter-spacing: -.055em; text-transform: uppercase; }
.tech__macro p strong { color: var(--cyan); }

.archive-intro { display: grid; grid-template-columns: .95fr 1.05fr; gap: clamp(2rem, 7vw, 8rem); align-items: center; padding-top: clamp(7rem, 13vw, 13rem); padding-bottom: clamp(7rem, 13vw, 13rem); }
.archive-carousel { position: relative; height: min(68vw, 790px); overflow: hidden; touch-action: pan-y; cursor: grab; }
.archive-carousel.is-dragging { cursor: grabbing; }
.archive-carousel__track { display: flex; width: 100%; height: 100%; transition: transform .72s cubic-bezier(.2,.7,.2,1); will-change: transform; }
.archive-carousel__track figure { flex: 0 0 100%; width: 100%; height: 100%; margin: 0; }
.archive-carousel__track img { width: 100%; height: 100%; object-fit: cover; pointer-events: none; }
.archive-carousel__controls { position: absolute; right: 0; bottom: 0; display: flex; align-items: center; gap: .25rem; padding: .55rem; color: #fff; background: rgba(3,8,15,.76); backdrop-filter: blur(12px); }
.archive-carousel__controls button { width: 38px; height: 38px; border: 0; color: #fff; background: transparent; font-size: 1.25rem; cursor: pointer; }
.archive-carousel__controls span { min-width: 4rem; text-align: center; font-size: .68rem; font-weight: 900; letter-spacing: .1em; }
.archive-intro h2 { font-size: clamp(3.6rem, 7vw, 7.4rem); }
.archive-intro__copy p { margin-top: 2rem; }
.archive { padding-bottom: clamp(8rem, 14vw, 14rem); }
.section-heading { display: flex; justify-content: space-between; gap: 3rem; align-items: end; margin-bottom: clamp(4rem, 8vw, 8rem); }
.section-heading h2, .trade h2, .experience h2, .play h2 { font-size: clamp(3.7rem, 8vw, 8.5rem); }
.archive-grid { display: grid; grid-template-columns: repeat(12, 1fr); gap: clamp(.75rem, 1.5vw, 1.5rem); margin-bottom: clamp(3rem, 6vw, 6rem); }
.archive-card { position: relative; grid-column: span 4; min-height: 0; overflow: hidden; color: var(--ink); background: #111; }
.archive-card:nth-child(1) { grid-column: span 7; }
.archive-card:nth-child(2) { grid-column: span 5; }
.archive-card--wide, .archive-card--tall { grid-row: auto; }
.archive-card figure { height: clamp(300px, 32vw, 520px); margin: 0; overflow: hidden; background: #111; }
.archive-card:nth-child(-n+2) figure { height: clamp(430px, 48vw, 720px); }
.archive-card img { width: 100%; height: 100%; object-fit: cover; transition: transform .8s cubic-bezier(.2,.7,.2,1), filter .8s; }
.archive-card:hover img { transform: scale(1.045); filter: saturate(1.14); }
.text-link { display: inline-block; border-bottom: 1px solid currentColor; padding-bottom: .35rem; font-size: .72rem; font-weight: 900; letter-spacing: .1em; text-transform: uppercase; }
.text-link--light { color: rgba(255,255,255,.82); }

.trade { position: relative; overflow: hidden; color: #fff; background: #081426; padding-block: clamp(7rem, 13vw, 13rem); }
.trade::before { content: ""; position: absolute; inset: 0; opacity: .45; background: radial-gradient(circle at 25% 20%, rgba(0,169,245,.2), transparent 32%), radial-gradient(circle at 85% 75%, rgba(57,219,255,.14), transparent 30%); }
.trade__heading { position: relative; display: flex; align-items: end; justify-content: space-between; gap: 2rem; }
.trade__heading p { color: rgba(255,255,255,.6); }
.trade__workspace { position: relative; margin-top: clamp(3rem, 6vw, 5.5rem); }
.trade__products { position: relative; z-index: 3; display: grid; grid-template-columns: repeat(9, minmax(82px, 1fr)); gap: clamp(.35rem, .8vw, .85rem); align-items: end; }
.product-token { min-width: 0; border: 0; padding: 0; color: #fff; background: transparent; cursor: grab; transition: transform .22s ease, opacity .22s ease, filter .22s ease; }
.product-token img { width: 100%; height: clamp(74px, 8.2vw, 126px); object-fit: contain; filter: drop-shadow(0 13px 15px rgba(0,0,0,.38)); pointer-events: none; }
.product-token span { display: block; margin-top: .55rem; overflow: hidden; font-size: clamp(.43rem, .6vw, .58rem); font-weight: 900; letter-spacing: .06em; text-align: center; text-overflow: ellipsis; text-transform: uppercase; white-space: nowrap; }
.product-token:hover, .product-token:focus-visible { transform: translateY(-7px); outline: none; }
.product-token.is-used { opacity: .38; filter: grayscale(.55); }
.product-token.is-have, .product-token.is-want { opacity: 1; filter: none; }
.product-token.is-have { color: var(--cyan); }
.product-token.is-want { color: #ff55bc; }
.trade-toy { width: min(100%, 950px); margin: clamp(2.2rem, 4vw, 3.6rem) auto 0; }
.trade-toy__choices { display: grid; grid-template-columns: minmax(180px, 1fr) minmax(92px, 160px) minmax(180px, 1fr); align-items: center; gap: clamp(.4rem, 1.8vw, 1.2rem); }
.trade-pocket { min-height: 178px; overflow: hidden; border: 1px dashed rgba(255,255,255,.24); padding: 1rem; color: #fff; background: rgba(3,10,20,.34); cursor: pointer; transition: border-color .2s ease, background .2s ease, transform .2s ease; }
.trade-pocket:hover, .trade-pocket:focus-visible, .trade-pocket[aria-pressed="true"] { border-color: var(--cyan); outline: 0; background: rgba(57,219,255,.07); }
.trade-pocket--want:hover, .trade-pocket--want:focus-visible, .trade-pocket--want[aria-pressed="true"] { border-color: #ff55bc; background: rgba(255,85,188,.07); }
.trade-pocket.is-over { transform: scale(1.018); }
.trade-pocket__empty { display: grid; justify-items: center; gap: .25rem; }
.trade-pocket__empty img { width: 42px; height: 42px; object-fit: contain; opacity: .34; }
.trade-pocket__empty strong { font: 900 clamp(1.3rem, 2.5vw, 2rem)/1 var(--display); letter-spacing: -.04em; text-transform: uppercase; }
.trade-pocket__empty small { color: rgba(255,255,255,.48); font-size: .54rem; font-weight: 800; letter-spacing: .07em; text-transform: uppercase; }
.trade-pocket__item { display: none; height: 146px; grid-template-columns: minmax(0, 1fr); place-items: center; gap: .3rem; }
.trade-pocket__item img { width: min(88%, 210px); height: 108px; object-fit: contain; filter: drop-shadow(0 14px 15px rgba(0,0,0,.42)); }
.trade-pocket__item strong { max-width: 100%; overflow: hidden; font-size: .62rem; letter-spacing: .07em; text-overflow: ellipsis; text-transform: uppercase; white-space: nowrap; }
.trade-pocket.has-item .trade-pocket__empty { display: none; }
.trade-pocket.has-item .trade-pocket__item { display: grid; }
.trade-route { display: flex; align-items: center; justify-content: center; gap: clamp(.25rem, .7vw, .55rem); color: var(--cyan); }
.trade-route i { width: 6px; height: 6px; background: currentColor; box-shadow: 0 0 10px currentColor; transform: rotate(45deg); }
.trade-route i:nth-of-type(n+4) { color: #ff55bc; }
.trade-route span { margin-inline: .15rem; font-size: clamp(1.6rem, 3vw, 2.4rem); }
.trade-ticket { display: grid; width: min(100%, 620px); min-height: 112px; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 1rem; margin: 1rem auto 0; border-top: 1px solid rgba(57,219,255,.5); border-bottom: 1px solid rgba(255,85,188,.5); padding: .75rem 1rem; background: rgba(2,8,18,.68); }
.trade-ticket[hidden] { display: none; }
.trade-ticket > span { display: grid; grid-template-columns: 80px 1fr; align-items: center; gap: .65rem; min-width: 0; }
.trade-ticket img { width: 80px; height: 74px; object-fit: contain; }
.trade-ticket strong { overflow: hidden; font-size: .59rem; letter-spacing: .07em; text-overflow: ellipsis; text-transform: uppercase; white-space: nowrap; }
.trade-ticket > b { color: #fff; font-size: 1.5rem; }
.trade-toy__footer { display: flex; justify-content: center; align-items: center; gap: 1rem; min-height: 38px; margin-top: .8rem; text-align: center; }
.trade-toy__footer p { margin: 0; color: rgba(255,255,255,.7); font-size: .7rem; }
.trade-reset { border: 0; border-bottom: 1px solid currentColor; padding: .25rem 0; color: rgba(255,255,255,.5); background: none; font-size: .52rem; font-weight: 900; letter-spacing: .08em; text-transform: uppercase; cursor: pointer; }
.trade__workspace > .text-link { margin-top: clamp(2.5rem, 5vw, 4rem); }

.kids { position: relative; min-height: 72vh; display: flex; align-items: center; overflow: hidden; color: #08101e; background: var(--yellow); }
.kids::after { content: ""; position: absolute; inset: 0; opacity: .16; background-image: radial-gradient(#08101e 1px, transparent 1px); background-size: 18px 18px; }
.kids__copy { position: relative; z-index: 3; width: 56%; padding: clamp(3rem, 8vw, 9rem); }
.kids__copy > span { font-size: clamp(1.3rem, 2.5vw, 2.3rem); font-weight: 1000; letter-spacing: -.05em; text-transform: uppercase; }
.kids h2 { margin: -.1em 0 0; font: 1000 clamp(7rem, 18vw, 20rem)/.8 var(--display); letter-spacing: -.1em; text-transform: uppercase; }
.kids p { max-width: 460px; font-size: clamp(1rem, 1.5vw, 1.25rem); line-height: 1.5; }
.kids__copy > b { display: inline-block; margin-top: 1.5rem; border-bottom: 2px solid; font-size: .78rem; letter-spacing: .12em; text-transform: uppercase; }
.kids > img { position: absolute; z-index: 2; right: 3vw; bottom: -8%; width: min(45vw, 680px); height: 88%; object-fit: cover; border-radius: 50% 50% 0 0; transform: rotate(4deg); box-shadow: -20px 20px 0 rgba(255,255,255,.55); transition: transform .6s cubic-bezier(.2,.7,.2,1); }
.kids:hover > img { transform: rotate(1deg) translateY(-2%); }
.kids__orbit { position: absolute; right: 10%; top: 10%; width: min(38vw, 560px); aspect-ratio: 1; border: 1px solid rgba(8,16,30,.26); border-radius: 50%; animation: rotate 18s linear infinite; }
.kids__orbit i { position: absolute; width: 16px; height: 16px; border-radius: 4px; background: #fff; }
.kids__orbit i:nth-child(1) { left: 12%; top: 20%; }
.kids__orbit i:nth-child(2) { right: 2%; top: 50%; background: var(--red); }
.kids__orbit i:nth-child(3) { left: 42%; bottom: -8px; background: var(--blue); }

.experience { padding-top: clamp(8rem, 14vw, 14rem); padding-bottom: clamp(8rem, 12vw, 12rem); }
.experience-strip { display: flex; gap: clamp(1rem, 2vw, 2rem); overflow-x: auto; padding-bottom: 1rem; cursor: grab; scrollbar-width: thin; scrollbar-color: var(--blue) rgba(7,9,13,.1); }
.experience-strip.is-dragging { cursor: grabbing; }
.experience-strip figure { flex: 0 0 min(68vw, 480px); height: min(95vw, 680px); margin: 0; overflow: hidden; background: #111; }
.experience-strip figure:nth-child(even) { margin-top: 5rem; }
.experience-strip img { width: 100%; height: 100%; object-fit: cover; pointer-events: none; transition: transform .6s ease; }
.experience-strip figure:hover img { transform: scale(1.035); }

.play { padding-top: clamp(6rem, 10vw, 10rem); padding-bottom: clamp(8rem, 13vw, 13rem); }
.play__intro { display: grid; grid-template-columns: 1.15fr .85fr; gap: clamp(2rem, 7vw, 8rem); align-items: end; margin-bottom: clamp(3rem, 6vw, 6rem); }
.play__intro p { max-width: 650px; margin: 1.8rem 0 0; color: #39414b; font-size: clamp(1rem, 1.6vw, 1.25rem); line-height: 1.65; }
.game-help { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: .5rem; }
.game-help span { border-bottom: 1px solid rgba(7,9,13,.28); padding: .55rem .2rem; font-size: .63rem; font-weight: 900; letter-spacing: .08em; text-transform: uppercase; }
.run-console { overflow: hidden; color: #fff; background: #070b12; box-shadow: 0 44px 110px rgba(7,9,13,.27); }
.run-console__menu { padding: clamp(1rem, 2.5vw, 2.25rem); background: linear-gradient(135deg, #111924, #080d15 72%); }
.run-brand { display: flex; align-items: center; gap: .75rem; margin-bottom: 1rem; }
.run-brand img { width: 34px; height: 34px; object-fit: contain; }
.run-brand strong { font: 900 1.15rem/1 var(--display); letter-spacing: -.04em; text-transform: uppercase; }
.run-brand > span { margin-left: auto; color: rgba(255,255,255,.42); font-size: .52rem; font-weight: 900; letter-spacing: .16em; text-transform: uppercase; }
.phase-track { display: grid; grid-template-columns: repeat(4, 1fr); border-top: 1px solid rgba(255,255,255,.13); border-bottom: 1px solid rgba(255,255,255,.13); }
.phase-track button { position: relative; display: grid; min-width: 0; min-height: 112px; align-content: end; gap: .15rem; overflow: hidden; border: 0; border-right: 1px solid rgba(255,255,255,.17); padding: .75rem; color: rgba(255,255,255,.72); background-position: center; background-size: cover; text-align: left; cursor: pointer; isolation: isolate; }
.phase-track button::after { position: absolute; z-index: -1; inset: 0; content: ''; background: linear-gradient(180deg, rgba(4,7,12,.05) 5%, rgba(4,7,12,.92) 90%); transition: background .25s ease; }
.phase-track button:nth-child(1) { background-image: url('../images/game/stages/stage-1-wasteland.png'); }
.phase-track button:nth-child(2) { background-image: url('../images/game/stages/stage-2-garden.png'); }
.phase-track button:nth-child(3) { background-image: url('../images/game/stages/stage-3-jungle.png'); }
.phase-track button:nth-child(4) { border-right: 0; background-image: url('../images/game/stages/stage-4-volcano.png'); }
.phase-track button:disabled { cursor: not-allowed; }
.phase-track button[data-locked="true"] { filter: grayscale(.9) brightness(.48); }
.phase-track button:not(:disabled):hover::after, .phase-track button[aria-current="true"]::after { background: linear-gradient(180deg, rgba(0,190,255,.04), rgba(0,10,20,.68) 76%, rgba(0,210,255,.28)); }
.phase-track button[aria-current="true"] { box-shadow: inset 0 -4px var(--cyan); }
.phase-track button > span { color: var(--cyan); font: 900 .62rem/1 var(--display); }
.phase-track strong { overflow: hidden; color: #fff; font-size: clamp(.55rem, .78vw, .68rem); letter-spacing: .02em; text-overflow: ellipsis; text-transform: uppercase; white-space: nowrap; }
.phase-track small { font-size: .46rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.loadout { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: clamp(1rem, 2.4vw, 2.4rem); align-items: end; padding-top: 1.35rem; }
.roster h3 { margin: 0 0 .7rem; color: rgba(255,255,255,.62); font-size: .58rem; letter-spacing: .12em; text-transform: uppercase; }
.character-select { display: grid; grid-template-columns: repeat(6, minmax(86px, 1fr)); gap: .45rem; }
.character-select button { min-width: 0; border: 0; border-bottom: 2px solid rgba(255,255,255,.13); padding: 0 0 .5rem; color: rgba(255,255,255,.62); background: transparent; text-align: left; cursor: pointer; }
.character-select button:not(:disabled):hover, .character-select button[aria-pressed="true"] { border-color: var(--cyan); color: #fff; }
.character-select button:disabled { cursor: not-allowed; }
.character-thumb { position: relative; display: block; width: 100%; height: 76px; overflow: hidden; background: rgba(255,255,255,.035); }
.character-thumb img { width: 100%; height: 100%; object-fit: contain; image-rendering: pixelated; transition: transform .25s ease; }
.character-select button:not(:disabled):hover img, .character-select button[aria-pressed="true"] img { transform: translateY(-3px) scale(1.05); }
.character-select button[data-locked="true"] img { filter: grayscale(1) brightness(.3); }
.character-thumb i { position: absolute; inset: 0; display: none; place-items: center; color: rgba(255,255,255,.78); background: rgba(2,5,10,.35); font-size: .42rem; font-style: normal; font-weight: 900; letter-spacing: .08em; text-align: center; text-transform: uppercase; }
.character-select button[data-locked="true"] .character-thumb i { display: grid; }
.character-meta { display: block; min-width: 0; padding: .42rem .18rem 0; }
.character-meta strong, .character-meta small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.character-meta strong { font-size: .56rem; text-transform: uppercase; }
.character-meta small { margin-top: .18rem; color: rgba(255,255,255,.4); font-size: .42rem; }
.run-launch { width: min(230px, 20vw); padding-bottom: .2rem; }
.run-primary { width: 100%; border: 0; padding: 1rem 1.1rem; color: #00101e; background: var(--cyan); box-shadow: 0 12px 36px rgba(57,219,255,.2); font-size: .62rem; font-weight: 900; letter-spacing: .07em; text-transform: uppercase; cursor: pointer; }
.run-primary:hover { filter: brightness(1.08); }
.run-primary:disabled { opacity: .45; cursor: not-allowed; }
.save-note { display: flex; align-items: center; gap: .45rem; margin: .65rem 0 0; color: rgba(255,255,255,.42); font-size: .46rem; line-height: 1.4; }
.save-note i { width: 6px; height: 6px; border-radius: 50%; background: var(--green); box-shadow: 0 0 10px var(--green); }
.run-console__stage { min-width: 0; padding: clamp(1.5rem, 4.2vw, 4.6rem) clamp(.6rem, 2vw, 2rem) clamp(1.2rem, 3vw, 2.5rem); background: radial-gradient(circle at 50% 25%, #253444 0, #111821 38%, #070a0f 78%); }
.handheld { position: relative; display: grid; width: min(100%, 1320px); grid-template-columns: clamp(82px, 10vw, 142px) minmax(0, 1fr) clamp(82px, 10vw, 142px); align-items: stretch; margin: 0 auto; filter: drop-shadow(0 35px 35px rgba(0,0,0,.55)); }
.handheld__center { position: relative; z-index: 2; min-width: 0; border: clamp(8px, 1vw, 14px) solid #101216; padding: clamp(6px, .8vw, 10px); background: linear-gradient(155deg, #25282d, #08090b 52%, #1c1e22); box-shadow: inset 0 0 0 1px rgba(255,255,255,.08), inset 0 0 28px #000; }
.handheld__screen { overflow: hidden; border: 1px solid rgba(255,255,255,.08); background: #020408; box-shadow: 0 0 0 3px #030406, inset 0 0 30px #000; }
.stage-hud { display: grid; grid-template-columns: auto minmax(80px, 1fr) auto; gap: 1rem; align-items: center; min-height: 54px; padding: .65rem clamp(.65rem, 1.6vw, 1.3rem); background: rgba(2,5,9,.94); }
.stage-hud > div:first-child span, .stage-hud > div:first-child strong { display: block; text-transform: uppercase; }
.stage-hud > div:first-child span { color: var(--cyan); font-size: .48rem; font-weight: 900; letter-spacing: .1em; }
.stage-hud > div:first-child strong { margin-top: .18rem; font-size: .7rem; }
.stage-progress { height: 3px; overflow: hidden; background: rgba(255,255,255,.12); }
.stage-progress i { display: block; width: 0; height: 100%; background: var(--cyan); box-shadow: 0 0 12px var(--cyan); transition: width .2s linear; }
.game-score { display: flex; gap: 1rem; color: rgba(255,255,255,.58); font: 900 .53rem/1 var(--body); letter-spacing: .08em; text-transform: uppercase; }
.game-score b { color: var(--cyan); }
.game-viewport { position: relative; overflow: hidden; background: #071224; box-shadow: inset 0 0 50px #000; }
.game-viewport::after { position: absolute; z-index: 2; inset: 0; border: 1px solid rgba(255,255,255,.08); content: ''; box-shadow: inset 0 0 22px rgba(0,0,0,.5); pointer-events: none; }
.game-viewport canvas { display: block; width: 100%; aspect-ratio: 8/5; background: #071224; image-rendering: pixelated; touch-action: manipulation; }
.game-overlay { position: absolute; z-index: 3; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: clamp(.35rem, 1vw, .8rem); padding: clamp(.7rem, 2vw, 1.5rem); color: #fff; background: linear-gradient(rgba(1,6,12,.52), rgba(1,6,12,.9)); text-align: center; text-transform: uppercase; }
.game-overlay.is-hidden { opacity: 0; visibility: hidden; pointer-events: none; transition: .25s; }
.game-overlay > img { width: clamp(28px, 4vw, 48px); max-height: 48px; object-fit: contain; }
.game-overlay > strong { font: 900 clamp(1.2rem, 3vw, 2.5rem)/1 var(--display); letter-spacing: -.04em; text-shadow: 0 3px 18px #000; }
.game-overlay > p { max-width: 540px; margin: 0; color: rgba(255,255,255,.75); font-size: clamp(.55rem, 1.2vw, .75rem); line-height: 1.5; text-transform: none; }
.game-overlay button { border: 1px solid var(--cyan); padding: .65rem 1rem; color: var(--cyan); background: rgba(0,0,0,.3); font-size: .58rem; font-weight: 900; letter-spacing: .1em; text-transform: uppercase; cursor: pointer; }
.unlock-reveal { display: grid; gap: .15rem; color: var(--green); }
.unlock-reveal[hidden], .reward-reveal[hidden] { display: none; }
.unlock-reveal span { font-size: .5rem; letter-spacing: .12em; }
.unlock-reveal b { font: 900 clamp(1.1rem, 2.4vw, 2rem)/1 var(--display); }
.reward-reveal { display: grid; width: min(90%, 480px); gap: .35rem; border-top: 1px solid rgba(255,211,72,.5); border-bottom: 1px solid rgba(255,211,72,.5); padding: .65rem; color: var(--yellow); }
.reward-reveal > span { font-size: .48rem; letter-spacing: .14em; }
.reward-reveal > strong { font: 900 clamp(1.5rem, 4vw, 3.2rem)/1 var(--display); }
.reward-reveal p { margin: 0; color: rgba(255,255,255,.76); font-size: clamp(.5rem, 1vw, .68rem); line-height: 1.45; text-transform: none; }
.reward-reveal code { color: #fff; font: 900 .65rem/1 var(--body); letter-spacing: .12em; }
.reward-reveal button { justify-self: center; border-color: var(--yellow); color: var(--yellow); padding: .45rem .7rem; }
.game-overlay.is-reward > img, .game-overlay.is-reward > p, .game-overlay.is-reward > [data-overlay-action] { display: none; }
.handheld__footer { display: flex; min-height: 45px; align-items: center; justify-content: space-between; gap: 1rem; padding: .55rem .8rem 0; color: rgba(255,255,255,.42); }
.handheld__footer p { margin: 0; }
.handheld__footer p strong, .handheld__footer p span { display: inline; font-size: .47rem; }
.handheld__footer p strong { color: rgba(255,255,255,.75); text-transform: uppercase; }
.handheld__footer p span::before { content: ' · '; }
.handheld__footer > span { font-size: .43rem; font-weight: 900; letter-spacing: .13em; text-transform: uppercase; }
.joycon { position: relative; z-index: 1; min-height: 100%; overflow: hidden; box-shadow: inset 0 0 0 1px rgba(255,255,255,.16), inset 0 -18px 25px rgba(0,0,0,.22); }
.joycon::after { position: absolute; inset: 0; content: ''; background: linear-gradient(105deg, rgba(255,255,255,.16), transparent 18%, transparent 72%, rgba(0,0,0,.18)); pointer-events: none; }
.joycon--left { border-radius: 42% 8px 8px 42%; background: #13bde1; }
.joycon--right { border-radius: 8px 42% 42% 8px; background: #ed4055; }
.joycon__minus, .joycon__plus { position: absolute; z-index: 2; top: 9%; width: 18%; height: 5px; background: #17202b; box-shadow: 0 2px 2px rgba(255,255,255,.25); }
.joycon__minus { right: 15%; }
.joycon__plus { left: 15%; }
.joycon__plus::after { position: absolute; inset: -6px calc(50% - 2px); content: ''; background: #17202b; }
.joycon__stick { position: absolute; z-index: 2; top: 19%; left: 50%; width: 46%; aspect-ratio: 1; border: 5px solid #242a31; border-radius: 50%; background: radial-gradient(circle at 42% 35%, #49515b, #15191e 54%, #07090b 58%); box-shadow: 0 7px 11px rgba(0,0,0,.38); transform: translateX(-50%); }
.joycon__stick::after { position: absolute; inset: 20%; border: 1px solid rgba(255,255,255,.08); border-radius: 50%; content: ''; }
.joycon__stick--right { top: 57%; }
.joycon__dpad { position: absolute; z-index: 2; top: 47%; left: 50%; width: 54%; aspect-ratio: 1; transform: translateX(-50%); }
.joycon__dpad i { position: absolute; width: 28%; aspect-ratio: 1; border-radius: 50%; background: #20262e; box-shadow: inset 0 -3px 4px rgba(0,0,0,.4), 0 2px 2px rgba(255,255,255,.12); }
.joycon__dpad i:nth-child(1) { top: 0; left: 36%; }
.joycon__dpad i:nth-child(2) { top: 36%; right: 0; }
.joycon__dpad i:nth-child(3) { bottom: 0; left: 36%; }
.joycon__dpad i:nth-child(4) { top: 36%; left: 0; }
.joycon__capture, .joycon__home { position: absolute; z-index: 2; bottom: 10%; left: 50%; width: 22%; aspect-ratio: 1; border: 3px solid #222933; background: #303943; transform: translateX(-50%); }
.joycon__capture { border-radius: 3px; }
.joycon__home { border-radius: 50%; box-shadow: inset 0 0 0 3px #68717b; }
.joycon__buttons { position: absolute; z-index: 3; top: 17%; left: 50%; width: 62%; aspect-ratio: 1; transform: translateX(-50%); }
.joycon__buttons i, .action-button { position: absolute; display: grid; width: 32%; aspect-ratio: 1; place-items: center; border: 0; border-radius: 50%; color: rgba(255,255,255,.78); background: #20262e; box-shadow: inset 0 -3px 4px rgba(0,0,0,.45), 0 2px 3px rgba(255,255,255,.18); font: 900 clamp(.42rem, .7vw, .65rem)/1 var(--body); font-style: normal; }
.joycon__buttons i:nth-child(1) { top: 0; left: 34%; }
.joycon__buttons .action-button { top: 34%; right: 0; cursor: pointer; }
.joycon__buttons i:nth-child(3) { bottom: 0; left: 34%; }
.joycon__buttons i:nth-child(4) { top: 34%; left: 0; }
.joycon__buttons .action-button:hover { color: #fff; background: #10151b; }
.joycon__buttons .action-button:active { transform: translateY(3px); box-shadow: inset 0 -1px 2px rgba(0,0,0,.45); }
.handheld-hint { display: flex; justify-content: center; gap: 1.6rem; margin: 1.2rem 0 0; color: rgba(255,255,255,.42); font-size: .5rem; font-weight: 800; letter-spacing: .08em; text-align: center; text-transform: uppercase; }

/* Retro Run, gabinete clássico */
.play { display: grid; grid-template-columns: .78fr 1.22fr; gap: clamp(3rem, 7vw, 8rem); align-items: center; }
.play__copy > p { margin-top: 1.5rem; }
.play__copy .game-help { justify-content: flex-start; margin-top: 2rem; }
.play__copy .game-help span { border: 1px solid rgba(7,9,13,.2); border-radius: 99px; padding: .55rem .75rem; }
.arcade { width: min(100%, 860px); margin-inline: auto; border: 1px solid rgba(0,0,0,.22); border-radius: clamp(1.2rem, 3vw, 2.5rem); padding: clamp(1rem, 3vw, 2.7rem); background: #c7c8c7; box-shadow: inset 0 2px rgba(255,255,255,.9), inset 0 -5px rgba(0,0,0,.18), 0 35px 70px rgba(7,9,13,.22); }
.arcade__screen { position: relative; overflow: hidden; border: clamp(.8rem, 2.5vw, 2rem) solid #30333a; border-radius: 1.1rem 1.1rem 3rem 1.1rem; background: #071224; box-shadow: inset 0 0 40px #000; }
.arcade canvas { display: block; width: 100%; aspect-ratio: 16 / 9; background: #071224; image-rendering: pixelated; touch-action: manipulation; }
.arcade .game-overlay { display: grid; grid-template-rows: auto auto auto auto; align-content: center; gap: clamp(.35rem, .8vw, .6rem); padding: clamp(.55rem, 1.4vw, 1rem); background: linear-gradient(rgba(1,9,19,.72), rgba(1,9,19,.95)); text-transform: none; }
.game-overlay__lead { display: flex; align-items: center; justify-content: center; gap: .65rem; text-align: left; }
.game-overlay__lead > img { width: clamp(24px, 3vw, 38px); height: 38px; object-fit: contain; }
.game-overlay__lead > div { min-width: 0; }
.game-overlay__lead strong { display: block; font: 900 clamp(.9rem, 1.8vw, 1.45rem)/1 var(--display); letter-spacing: -.03em; text-transform: uppercase; }
.game-overlay__lead p { max-width: 470px; margin: .25rem 0 0; overflow: hidden; color: rgba(255,255,255,.57); font-size: clamp(.42rem, .78vw, .58rem); line-height: 1.35; text-overflow: ellipsis; white-space: nowrap; }
.game-phase-track { display: grid; width: min(94%, 500px); grid-template-columns: repeat(4, 1fr); gap: .3rem; justify-self: center; }
.game-phase-track button { display: grid; min-width: 0; grid-template-columns: auto 1fr; gap: .08rem .35rem; border: 1px solid rgba(255,255,255,.15); border-radius: .35rem; padding: .34rem .42rem; color: rgba(255,255,255,.62); background: rgba(255,255,255,.035); text-align: left; cursor: pointer; }
.game-phase-track button > span { grid-row: 1 / 3; align-self: center; color: var(--cyan); font: 900 .55rem/1 var(--display); }
.game-phase-track strong, .game-phase-track small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.game-phase-track strong { font-size: .48rem; text-transform: uppercase; }
.game-phase-track small { color: rgba(255,255,255,.42); font-size: .38rem; text-transform: uppercase; }
.game-phase-track button[aria-current="true"] { border-color: var(--cyan); color: #fff; background: rgba(57,219,255,.1); }
.game-phase-track button[data-locked="true"] { opacity: .38; cursor: not-allowed; }
.arcade .character-select { display: grid; width: min(94%, 500px); grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .35rem; justify-self: center; overflow: visible; padding: 0; }
.arcade .character-select button { display: grid; min-width: 0; grid-template-columns: 42px 1fr; align-items: center; gap: .3rem; border: 1px solid rgba(255,255,255,.15); border-radius: .4rem; padding: .12rem .28rem; color: rgba(255,255,255,.62); background: rgba(255,255,255,.035); text-align: left; cursor: pointer; }
.arcade .character-select button:hover, .arcade .character-select button[aria-pressed="true"] { border-color: var(--cyan); color: #fff; background: rgba(57,219,255,.1); }
.arcade .character-select button[data-locked="true"] { cursor: not-allowed; }
.arcade .character-thumb { width: 42px; height: 42px; background: transparent; }
.arcade .character-thumb img { width: 100%; height: 100%; object-fit: contain; }
.arcade .character-thumb i { font-size: .32rem; }
.arcade .character-meta { padding: 0; }
.arcade .character-meta strong { font-size: .49rem; }
.arcade .character-meta small { font-size: .37rem; }
.arcade__start { justify-self: center; border: 1px solid var(--cyan); border-radius: 99px; padding: .58rem .9rem; color: var(--cyan); background: rgba(0,0,0,.12); font-size: .54rem; font-weight: 900; letter-spacing: .1em; text-transform: uppercase; cursor: pointer; }
.arcade .unlock-reveal { justify-self: center; text-align: center; }
.arcade .reward-reveal { width: min(92%, 470px); justify-self: center; }
.arcade .game-overlay.is-reward { grid-template-rows: 1fr; }
.arcade .game-overlay.is-reward .game-overlay__lead, .arcade .game-overlay.is-reward .game-phase-track, .arcade .game-overlay.is-reward .character-select, .arcade .game-overlay.is-reward .unlock-reveal, .arcade .game-overlay.is-reward .arcade__start { display: none; }
.arcade .game-score { position: absolute; z-index: 2; inset: .65rem .8rem auto; display: flex; justify-content: space-between; color: rgba(255,255,255,.75); font: 900 .54rem/1 var(--body); letter-spacing: .09em; text-transform: uppercase; pointer-events: none; }
.arcade .game-score b { color: var(--cyan); }
.game-stage-status { position: absolute; z-index: 2; top: .55rem; left: 50%; width: min(34%, 190px); color: rgba(255,255,255,.68); text-align: center; text-transform: uppercase; transform: translateX(-50%); pointer-events: none; }
.game-stage-status > span { display: none; }
.game-stage-status > strong { display: block; overflow: hidden; font-size: .46rem; letter-spacing: .06em; text-overflow: ellipsis; white-space: nowrap; }
.game-stage-status .stage-progress { height: 2px; margin-top: .32rem; }
.arcade__controls { display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; padding: clamp(1.3rem, 4vw, 3rem) clamp(1rem, 4vw, 3rem) .45rem; }
.dpad { position: relative; width: clamp(70px, 11vw, 110px); aspect-ratio: 1; }
.dpad i { position: absolute; border-radius: 5px; background: #31343a; box-shadow: inset 0 -5px rgba(0,0,0,.25); }
.dpad i:first-child { left: 33%; top: 0; width: 34%; height: 100%; }
.dpad i:last-child { left: 0; top: 33%; width: 100%; height: 34%; }
.arcade__controls > p { min-width: 170px; margin: 0; color: #4a5058; text-align: center; }
.arcade__controls > p strong, .arcade__controls > p span, .arcade__controls > p small { display: block; }
.arcade__controls > p strong { font-size: .62rem; text-transform: uppercase; }
.arcade__controls > p span { margin-top: .25rem; font-size: .48rem; }
.arcade__controls > p small { margin-top: .55rem; color: #6f747a; font-size: .4rem; font-style: normal; }
.arcade__controls > p small i { display: inline-block; width: 5px; height: 5px; margin-right: .3rem; border-radius: 50%; background: #14a968; }
.arcade__controls > p small b { font-weight: 700; }
.arcade .action-button { position: relative; justify-self: end; display: block; width: clamp(60px, 9vw, 90px); aspect-ratio: 1; border: 0; border-radius: 50%; color: rgba(255,255,255,.5); background: #8b174d; box-shadow: inset 0 -7px rgba(0,0,0,.25), 0 5px 0 #8b8d8e; font: 900 .8rem/1 var(--body); cursor: pointer; }
.arcade .action-button:active { transform: translateY(4px); box-shadow: inset 0 -3px rgba(0,0,0,.25), 0 1px 0 #8b8d8e; }

/* Retro Run, gabinete de fliperama */
.arcade-cabinet { position: relative; width: min(100%, 860px); margin-inline: auto; color: #fff; filter: drop-shadow(0 42px 44px rgba(7,9,13,.32)); }
.arcade-marquee { position: relative; z-index: 3; display: flex; min-height: 116px; align-items: center; justify-content: center; border: 1px solid rgba(57,219,255,.32); border-bottom: 0; padding: .8rem 7%; background: linear-gradient(145deg, #242b35, #0a0e14 64%, #151b23); box-shadow: inset 0 1px rgba(255,255,255,.13), inset 12px 0 rgba(0,0,0,.18), inset -12px 0 rgba(0,0,0,.18); clip-path: polygon(3% 0, 97% 0, 100% 100%, 0 100%); }
.arcade-marquee::after { position: absolute; inset: auto 4% 0; height: 2px; content: ''; background: linear-gradient(90deg, transparent, var(--cyan), transparent); box-shadow: 0 0 14px var(--cyan); }
.arcade-marquee img { width: min(76%, 440px); height: clamp(66px, 7vw, 90px); object-fit: contain; }
.arcade-cabinet__body { position: relative; z-index: 2; padding: clamp(.75rem, 2vw, 1.35rem) clamp(1rem, 4vw, 3.2rem) clamp(1.2rem, 3vw, 2.2rem); background: linear-gradient(90deg, #111720, #20262e 5%, #0b0f15 12%, #0b0f15 88%, #20262e 95%, #111720); box-shadow: inset 1px 0 rgba(57,219,255,.28), inset -1px 0 rgba(57,219,255,.28); }
.arcade-cabinet__screen { position: relative; overflow: hidden; border: clamp(.7rem, 2vw, 1.25rem) solid #05070a; border-radius: 1rem; background: #020812; box-shadow: 0 0 0 1px rgba(255,255,255,.1), inset 0 0 46px #000, 0 12px 28px #000; }
.arcade-cabinet__screen::after { position: absolute; z-index: 11; inset: 0; content: ''; opacity: .14; background: repeating-linear-gradient(0deg, transparent 0 3px, rgba(255,255,255,.09) 3px 4px); pointer-events: none; }
.arcade-cabinet canvas { display: block; width: 100%; aspect-ratio: 16 / 9; background: #020812; image-rendering: pixelated; touch-action: manipulation; }
.arcade-power-panel { position: absolute; z-index: 10; inset: 0; display: grid; place-content: center; justify-items: center; gap: .5rem; color: #fff; background: radial-gradient(circle at 50% 42%, #0b2035, #01050b 70%); text-align: center; transition: opacity .32s ease, visibility .32s ease; }
.arcade-power-panel img { width: clamp(42px, 8vw, 74px); max-height: 74px; object-fit: contain; opacity: .26; filter: drop-shadow(0 0 0 transparent); }
.arcade-power-panel strong { font: 900 clamp(1rem, 2.4vw, 1.75rem)/1 var(--display); letter-spacing: -.02em; text-transform: uppercase; }
.arcade-power-panel p { margin: 0; color: rgba(255,255,255,.5); font-size: clamp(.48rem, .8vw, .62rem); }
.arcade-cabinet[data-arcade-power="on"] .arcade-power-panel { opacity: 0; visibility: hidden; }
.arcade-cabinet.is-booting .arcade-cabinet__screen { animation: arcadeBoot .68s steps(2, end); }
.arcade-cabinet.is-booting .arcade-power-panel img { opacity: 1; filter: drop-shadow(0 0 22px var(--cyan)); }
.arcade-cabinet .game-overlay { display: grid; grid-template-rows: auto auto auto auto; align-content: center; gap: clamp(.28rem, .75vw, .55rem); padding: clamp(.48rem, 1.2vw, .85rem); background: linear-gradient(rgba(1,9,19,.72), rgba(1,9,19,.95)); text-transform: none; }
.arcade-cabinet .character-select { display: grid; width: min(94%, 500px); grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .3rem; justify-self: center; overflow: visible; padding: 0; }
.arcade-cabinet .character-select button { display: grid; min-width: 0; grid-template-columns: 40px 1fr; align-items: center; gap: .3rem; border: 1px solid rgba(255,255,255,.15); border-radius: .3rem; padding: .1rem .26rem; color: rgba(255,255,255,.62); background: rgba(255,255,255,.035); text-align: left; cursor: pointer; }
.arcade-cabinet .character-select button:hover, .arcade-cabinet .character-select button[aria-pressed="true"] { border-color: var(--cyan); color: #fff; background: rgba(57,219,255,.1); }
.arcade-cabinet .character-select button[data-locked="true"] { cursor: not-allowed; }
.arcade-cabinet .character-thumb { width: 40px; height: 40px; background: transparent; }
.arcade-cabinet .character-thumb img { width: 100%; height: 100%; object-fit: contain; }
.arcade-cabinet .character-thumb i { font-size: .3rem; }
.arcade-cabinet .character-meta { padding: 0; }
.arcade-cabinet .character-meta strong { font-size: .47rem; }
.arcade-cabinet .character-meta small { font-size: .35rem; }
.arcade-cabinet .unlock-reveal { justify-self: center; text-align: center; }
.arcade-cabinet .reward-reveal { width: min(92%, 470px); justify-self: center; }
.arcade-cabinet .game-overlay.is-reward { grid-template-rows: 1fr; }
.arcade-cabinet .game-overlay.is-reward .game-overlay__lead, .arcade-cabinet .game-overlay.is-reward .game-phase-track, .arcade-cabinet .game-overlay.is-reward .character-select, .arcade-cabinet .game-overlay.is-reward .unlock-reveal, .arcade-cabinet .game-overlay.is-reward .arcade__start { display: none; }
.arcade-cabinet .game-score { position: absolute; z-index: 2; inset: .65rem .8rem auto; display: flex; justify-content: space-between; color: rgba(255,255,255,.72); font: 900 .5rem/1 var(--body); letter-spacing: .09em; text-transform: uppercase; pointer-events: none; }
.arcade-cabinet .game-score b { color: var(--cyan); }
.arcade-deck { position: relative; z-index: 4; display: grid; min-height: 172px; grid-template-columns: 1fr auto 1fr; align-items: center; margin-top: -1px; padding: 1.2rem clamp(2.4rem, 7vw, 5.8rem) 1.65rem; background: linear-gradient(155deg, #242b34, #0a0d12 62%, #171d24); box-shadow: inset 0 1px rgba(255,255,255,.16), inset 0 -12px 20px rgba(0,0,0,.28); clip-path: polygon(4% 0, 96% 0, 100% 100%, 0 100%); }
.arcade-joystick { position: relative; width: 104px; height: 118px; }
.arcade-joystick i { position: absolute; z-index: 2; top: 4px; left: 50%; width: 58px; aspect-ratio: 1; border-radius: 50%; background: radial-gradient(circle at 36% 25%, #ff6666, #dc101f 52%, #7b0209 72%); box-shadow: inset -7px -9px 12px rgba(0,0,0,.28), 0 12px 16px rgba(0,0,0,.4); transform: translateX(-50%); }
.arcade-joystick i::after { position: absolute; top: 46px; left: 50%; width: 14px; height: 47px; content: ''; background: linear-gradient(90deg, #090b0e, #52565c 48%, #08090b); transform: translateX(-50%); }
.arcade-joystick span { position: absolute; bottom: 4px; left: 50%; width: 88px; height: 24px; border: 2px solid #05070a; border-radius: 50%; background: radial-gradient(ellipse, #252a31, #080a0d 72%); box-shadow: 0 5px 9px rgba(0,0,0,.55); transform: translateX(-50%); }
.arcade-coin { position: relative; display: grid; width: 108px; min-height: 132px; place-items: end center; border: 0; padding: 0 0 .1rem; color: rgba(255,255,255,.6); background: transparent; cursor: pointer; }
.arcade-coin__piece { position: absolute; z-index: 3; top: 0; display: grid; width: 55px; aspect-ratio: 1; place-items: center; border: 3px solid #f4c442; border-radius: 50%; color: #432b00; background: radial-gradient(circle at 35% 28%, #fff1a7, #e0a91d 55%, #805300 82%); box-shadow: inset 0 0 0 4px rgba(255,255,255,.25), 0 8px 14px rgba(0,0,0,.38); font: 900 .54rem/1 var(--body); }
.arcade-coin__slot { position: absolute; bottom: 22px; display: grid; width: 78px; height: 72px; place-items: center; border: 1px solid rgba(255,255,255,.2); border-radius: .25rem; background: linear-gradient(145deg, #555b62, #171a1e 58%); box-shadow: inset 0 0 0 4px #080a0d, 0 6px 8px rgba(0,0,0,.48); }
.arcade-coin__slot i { display: block; width: 10px; height: 38px; border-radius: 4px; background: #020304; box-shadow: inset 2px 0 rgba(255,255,255,.08); }
.arcade-coin small { position: absolute; bottom: -1px; font-size: .4rem; font-weight: 900; letter-spacing: .08em; text-transform: uppercase; white-space: nowrap; }
.arcade-cabinet.is-inserting .arcade-coin__piece { animation: coinInsert .76s cubic-bezier(.55,.02,.2,1) forwards; }
.arcade-cabinet[data-arcade-power="on"] .arcade-coin__piece { opacity: 0; }
.arcade-cabinet[data-arcade-power="on"] .arcade-coin { cursor: default; }
.arcade-buttons { display: flex; justify-self: end; gap: clamp(.7rem, 2vw, 1.35rem); transform: rotate(-5deg); }
.arcade-cabinet .action-button { position: relative; display: grid; width: clamp(58px, 7vw, 76px); aspect-ratio: 1; place-items: center; border: 0; border-radius: 50%; color: #fff; background: #df1422; box-shadow: inset 0 -7px rgba(0,0,0,.27), 0 7px 0 #4c080e, 0 12px 18px rgba(0,0,0,.4); cursor: pointer; }
.arcade-cabinet .action-button--b { margin-top: 13px; background: #1f86e8; box-shadow: inset 0 -7px rgba(0,0,0,.27), 0 7px 0 #07335e, 0 12px 18px rgba(0,0,0,.4); }
.arcade-cabinet .action-button span { font: 900 .84rem/1 var(--body); }
.arcade-cabinet .action-button small { position: absolute; top: calc(100% + 13px); color: rgba(255,255,255,.46); font-size: .36rem; font-weight: 900; letter-spacing: .08em; text-transform: uppercase; }
.arcade-cabinet .action-button:active { transform: translateY(5px); box-shadow: inset 0 -3px rgba(0,0,0,.27), 0 2px 0 #4c080e; }
.arcade-statusbar { display: flex; min-height: 58px; align-items: center; justify-content: space-between; gap: 1rem; padding: .75rem clamp(1.5rem, 5vw, 4rem); color: rgba(255,255,255,.54); background: #070a0e; box-shadow: inset 1px 0 rgba(57,219,255,.22), inset -1px 0 rgba(57,219,255,.22), inset 0 1px rgba(255,255,255,.08); }
.arcade-statusbar p { margin: 0; }
.arcade-statusbar p strong, .arcade-statusbar p span { display: inline; font-size: .46rem; }
.arcade-statusbar p strong { color: rgba(255,255,255,.82); text-transform: uppercase; }
.arcade-statusbar p span::before { content: ' · '; }
.arcade-statusbar > small { font-size: .4rem; }
.arcade-statusbar > small i { display: inline-block; width: 6px; height: 6px; margin-right: .35rem; border-radius: 50%; background: var(--green); box-shadow: 0 0 10px var(--green); }

.visit { position: relative; min-height: 100svh; display: flex; align-items: center; overflow: hidden; color: #fff; background: #06101c; }
.visit__image, .visit__overlay { position: absolute; inset: 0; width: 100%; height: 100%; }
.visit__image { left: auto; right: 0; width: 52%; object-fit: cover; object-position: center; }
.visit__overlay { left: auto; right: 0; width: 52%; background: linear-gradient(90deg, rgba(2,7,13,.42), rgba(2,7,13,.08)); }
.visit__content { position: relative; z-index: 2; width: 48%; margin-left: 0; margin-right: auto; padding-top: 8rem; padding-bottom: clamp(4rem, 8vw, 8rem); }
.visit h2 { max-width: 760px; font-size: clamp(4rem, 7.7vw, 8rem); }
.visit__details { display: flex; flex-wrap: wrap; gap: clamp(2rem, 8vw, 8rem); margin-top: clamp(3rem, 6vw, 6rem); }
.visit__details p { margin: 0; }
.visit__details span { display: block; margin-bottom: .7rem; color: var(--cyan); font-size: .63rem; font-weight: 900; letter-spacing: .12em; text-transform: uppercase; }
.visit__details strong { line-height: 1.5; }
.footer { display: flex; align-items: center; justify-content: space-between; gap: 2rem; padding: 2rem var(--pad); color: rgba(255,255,255,.55); background: #02070d; font-size: .66rem; letter-spacing: .1em; text-transform: uppercase; }
.footer img { width: 180px; max-height: 38px; object-fit: contain; object-position: left; }

.location-map { position: relative; overflow: hidden; padding-block: clamp(6rem, 11vw, 10rem); color: var(--ink); background: var(--paper); }
.location-map__head { display: grid; grid-template-columns: 1.15fr .85fr; gap: clamp(2rem, 8vw, 9rem); align-items: end; margin-bottom: clamp(2.5rem, 5vw, 4.5rem); }
.location-map__head h2 { margin: 0; font: 900 clamp(3.7rem, 8vw, 8.2rem)/.86 var(--display); letter-spacing: -.075em; text-transform: uppercase; }
.location-map__head p { max-width: 610px; margin: 1.5rem 0 0; color: #525a64; font-size: clamp(.98rem, 1.5vw, 1.2rem); line-height: 1.6; }
.location-map__head address { border-top: 1px solid rgba(7,9,13,.2); padding-top: 1.25rem; font-style: normal; }
.location-map__head address span, .location-map__head address strong { display: block; }
.location-map__head address span { margin-bottom: .65rem; color: var(--blue); font-size: .58rem; font-weight: 900; letter-spacing: .12em; text-transform: uppercase; }
.location-map__head address strong { font-size: clamp(1rem, 1.6vw, 1.35rem); line-height: 1.5; }
.location-map__frame { width: min(calc(100% - (var(--pad) * 2)), var(--max)); height: min(68svh, 760px); min-height: 520px; margin-inline: auto; overflow: hidden; border: 1px solid rgba(7,9,13,.18); background: #dce2e5; box-shadow: 0 28px 65px rgba(7,9,13,.14); }
.location-map__frame iframe { display: block; width: 100%; height: 100%; border: 0; }

.reveal { opacity: 0; transform: translateY(32px); transition: opacity .85s ease, transform .85s cubic-bezier(.2,.7,.2,1); }
.reveal.is-visible { opacity: 1; transform: none; }
.no-js .boot { display: none; }
.no-js .reveal { opacity: 1; transform: none; }

@keyframes gridMove { to { background-position: 0 96px, 96px 0; } }
@keyframes logoFloat { 50% { transform: translateY(-8px); filter: drop-shadow(0 0 54px rgba(0,179,255,.6)); } }
@keyframes bootLoad { to { width: 100%; } }
@keyframes bootLogo { 38% { transform: scale(.96); } 72% { transform: scale(1.08); filter: brightness(1.5) drop-shadow(0 0 70px #2bd6ff); } 100% { transform: scale(7); opacity: 0; } }
@keyframes heroBreath { to { transform: scale(1.1); } }
@keyframes scrollCue { 0% { background-position: 0 100%; } 100% { background-position: 0 -100%; } }
@keyframes scanner { 0%, 100% { left: 0; opacity: 0; } 10%, 90% { opacity: 1; } 50% { left: 100%; } }
@keyframes pulse { 50% { transform: scale(1.5); opacity: .5; } }
@keyframes rotate { to { transform: rotate(360deg); } }
@keyframes coinInsert { 0% { opacity: 1; transform: translateY(0) rotateY(0); } 65% { opacity: 1; transform: translateY(61px) rotateY(540deg) scale(.74); } 100% { opacity: 0; transform: translateY(71px) rotateY(720deg) scale(.25); } }
@keyframes arcadeBoot { 0%, 20%, 48% { filter: brightness(.08); } 12%, 36%, 62% { filter: brightness(2.2); } 100% { filter: none; } }

@media (max-width: 980px) {
  .desktop-nav { display: none; }
  .menu-toggle { display: block; }
  .statement__copy, .tech__intro, .archive-intro, .play { grid-template-columns: 1fr; }
  .statement__copy { align-items: start; }
  .tech__stage { grid-template-columns: 1fr; }
  .tech__photo { min-height: 60vw; }
  .tech__macro { grid-template-columns: 1fr; }
  .archive-carousel { height: 78vw; max-height: 760px; }
  .archive-intro__copy { padding-block: 2rem; }
  .section-heading { display: grid; align-items: start; }
  .kids__copy { width: 65%; }
  .kids > img { right: -12%; width: 55vw; }
  .play__intro { grid-template-columns: 1fr; }
  .location-map__head { grid-template-columns: 1fr; align-items: start; }
  .game-help { justify-content: flex-start; }
  .phase-track button { min-height: 98px; }
  .loadout { grid-template-columns: 1fr; }
  .run-launch { display: grid; width: 100%; grid-template-columns: minmax(180px, 280px) 1fr; align-items: center; gap: 1rem; }
  .save-note { margin: 0; }
  .character-select { grid-template-columns: repeat(6, minmax(72px, 1fr)); overflow-x: auto; padding-bottom: .45rem; }
  .handheld { grid-template-columns: clamp(64px, 10vw, 96px) minmax(0, 1fr) clamp(64px, 10vw, 96px); }
}

@media (max-width: 720px) {
  :root { --pad: 1.15rem; }
  .site-header { height: 66px; }
  .brand img { width: 155px; }
  .boot__logo { width: 64vw; }
  .press-start__key { display: none; }
  [id] { scroll-margin-top: 72px; }
  .hero { min-height: calc(660px + 48svh); align-items: flex-start; padding-top: 7rem; padding-bottom: calc(48svh + 3.5rem); }
  .hero h1 { font-size: clamp(3.35rem, 15.2vw, 5.35rem); }
  .hero__image { inset: auto 0 0; width: 100%; height: 48svh; object-position: 58% center; }
  .hero__veil { inset: auto 0 0; width: 100%; height: 48svh; background: linear-gradient(0deg, rgba(3,8,16,.48), transparent 48%); }
  .hero__content { width: 100%; }
  .hero__facts { left: var(--pad); right: var(--pad); bottom: calc(48svh + 1rem); justify-content: space-between; gap: .5rem; }
  .hero__facts span:last-child { display: none; }
  .scroll-cue { display: none; }
  .hero__actions .button { flex: 1 1 100%; }
  .statement h2, .tech h2, .archive-intro h2, .section-heading h2, .trade h2, .experience h2, .play h2, .visit h2 { font-size: clamp(3.15rem, 15.5vw, 5.6rem); }
  .brand-line { display: grid; grid-template-columns: 1fr 1fr; }
  .brand-line .platform:nth-child(even) { text-align: right; justify-self: end; }
  .store-collage { min-height: 145vw; }
  .store-collage__main { width: 100%; height: 68%; }
  .store-collage__side { width: 55%; height: 50%; border-width: 7px; }
  .store-collage__note { left: 0; bottom: 3%; max-width: 55%; }
  .tech__photo { min-height: 110vw; }
  .tech__macro { min-height: 0; padding-inline: var(--pad); }
  .tech__macro img { height: 110vw; }
  .tech__macro p { font-size: 11.5vw; }
  .archive-grid { display: block; }
  .archive-card, .archive-card--tall, .archive-card--wide { min-height: 0; margin-bottom: 2rem; }
  .archive-card figure, .archive-card--tall figure { height: 115vw; }
  .archive-card:nth-child(3) figure, .archive-card:nth-child(4) figure { height: 88vw; }
  .archive-card figure, .archive-card--tall figure, .archive-card:nth-child(3) figure, .archive-card:nth-child(4) figure { height: 92vw; }
  .trade__heading { display: block; }
  .trade__heading p { margin-top: 1.5rem; }
  .trade__products { grid-template-columns: none; grid-auto-flow: column; grid-auto-columns: 110px; align-items: end; overflow-x: auto; padding: .5rem .2rem 1rem; }
  .product-token img { height: 110px; }
  .trade-toy__choices { grid-template-columns: 1fr 48px 1fr; gap: .35rem; }
  .trade-pocket { min-height: 148px; padding: .55rem; }
  .trade-pocket__empty img { width: 32px; height: 32px; }
  .trade-pocket__empty strong { font-size: 1.15rem; }
  .trade-pocket__empty small { font-size: .39rem; }
  .trade-pocket__item { height: 122px; }
  .trade-pocket__item img { width: 96%; height: 90px; }
  .trade-route { gap: .18rem; }
  .trade-route i { display: none; }
  .trade-route span { font-size: 1.4rem; }
  .trade-ticket { grid-template-columns: 1fr auto 1fr; gap: .4rem; padding-inline: .5rem; }
  .trade-ticket > span { grid-template-columns: 1fr; justify-items: center; gap: .2rem; text-align: center; }
  .trade-ticket img { width: 78px; height: 58px; }
  .trade-ticket strong { max-width: 110px; font-size: .46rem; }
  .trade-toy__footer { display: grid; gap: .35rem; }
  .kids { min-height: 86svh; align-items: flex-start; }
  .kids__copy { width: 100%; padding: 4rem var(--pad); }
  .kids h2 { font-size: 31vw; }
  .kids p { max-width: 62%; }
  .kids > img { right: -17%; bottom: -5%; width: 73vw; height: 52%; border-radius: 50% 0 0; }
  .kids__orbit { width: 90vw; right: -35%; top: 35%; }
  .experience-strip figure { flex-basis: 78vw; height: 116vw; }
  .experience-strip figure:nth-child(even) { margin-top: 2rem; }
  .play__intro { margin-bottom: 2.5rem; }
  .run-console { margin-inline: calc(var(--pad) * -1); }
  .run-console__menu { padding: 1rem var(--pad); }
  .phase-track { grid-template-columns: 1fr 1fr; }
  .phase-track button { min-height: 88px; }
  .phase-track button:nth-child(2) { border-right: 0; }
  .phase-track button:nth-child(-n+2) { border-bottom: 1px solid rgba(255,255,255,.17); }
  .character-select { grid-template-columns: repeat(6, 78px); }
  .character-thumb { height: 68px; }
  .run-launch { display: block; }
  .save-note { margin-top: .65rem; }
  .run-console__stage { padding: 2rem 0 1.4rem; overflow: hidden; }
  .handheld { width: calc(100% + 24px); grid-template-columns: 54px minmax(0, 1fr) 54px; margin-left: -12px; filter: drop-shadow(0 22px 22px rgba(0,0,0,.5)); }
  .joycon--left { border-radius: 28px 4px 4px 28px; }
  .joycon--right { border-radius: 4px 28px 28px 4px; }
  .handheld__center { border-width: 6px; padding: 4px; }
  .stage-hud { grid-template-columns: 1fr auto; gap: .65rem; }
  .stage-progress { grid-column: 1 / -1; grid-row: 2; }
  .stage-hud .game-score { grid-column: 2; grid-row: 1; }
  .stage-hud > div:first-child strong { max-width: 145px; overflow: hidden; font-size: .57rem; text-overflow: ellipsis; white-space: nowrap; }
  .game-score { gap: .5rem; font-size: .43rem; }
  .game-overlay { padding: .5rem; }
  .game-overlay > img { width: 25px; max-height: 25px; }
  .game-overlay > strong { font-size: clamp(1rem, 6vw, 1.45rem); }
  .game-overlay > p { max-width: 82%; font-size: .48rem; }
  .game-overlay button { padding: .48rem .68rem; font-size: .48rem; }
  .reward-reveal { width: 96%; padding: .45rem; }
  .handheld__footer { min-height: 34px; padding: .35rem .35rem 0; }
  .handheld__footer p span, .handheld__footer > span { display: none; }
  .joycon__minus, .joycon__plus { height: 3px; }
  .joycon__stick { border-width: 3px; }
  .joycon__capture, .joycon__home { border-width: 2px; }
  .handheld-hint { flex-direction: column; gap: .35rem; padding-inline: 1rem; }
  .arcade { padding: .7rem; border-radius: 1.25rem; }
  .arcade__screen { border-width: .55rem; border-radius: .7rem .7rem 1.6rem .7rem; }
  .arcade .game-overlay { gap: .24rem; padding: .35rem; }
  .game-overlay__lead { min-height: 18px; }
  .game-overlay__lead > img, .game-overlay__lead p { display: none; }
  .game-overlay__lead strong { font-size: .72rem; text-align: center; }
  .game-phase-track { width: 98%; gap: .18rem; }
  .game-phase-track button { display: block; padding: .18rem; text-align: center; }
  .game-phase-track button > span { display: block; margin-bottom: .08rem; font-size: .4rem; }
  .game-phase-track strong { display: block; font-size: .36rem; }
  .game-phase-track small { display: none; }
  .arcade .character-select { width: 98%; gap: .2rem; }
  .arcade .character-select button { grid-template-columns: 27px 1fr; gap: .15rem; border-radius: .25rem; padding: .05rem .12rem; }
  .arcade .character-thumb { width: 27px; height: 27px; }
  .arcade .character-thumb i { font-size: 0; }
  .arcade .character-thumb i::after { content: '🔒'; font-size: .48rem; }
  .arcade .character-meta strong { font-size: .36rem; }
  .arcade .character-meta small { display: none; }
  .arcade__start { padding: .38rem .55rem; font-size: .4rem; }
  .arcade .unlock-reveal span { font-size: .34rem; }
  .arcade .unlock-reveal b { font-size: .72rem; }
  .arcade .game-score { inset: .4rem .48rem auto; font-size: .38rem; }
  .game-stage-status { top: .35rem; }
  .game-stage-status > strong { font-size: .34rem; }
  .arcade__controls { padding: 1.1rem .8rem .3rem; }
  .arcade__controls > p { min-width: 95px; }
  .arcade__controls > p span { display: none; }
  .arcade__controls > p strong { font-size: .45rem; }
  .arcade__controls > p small { margin-top: .3rem; font-size: .34rem; }
  .arcade-marquee { min-height: 78px; padding-block: .45rem; }
  .arcade-marquee img { width: min(78%, 300px); height: 58px; }
  .arcade-cabinet__body { padding: .55rem .62rem .8rem; }
  .arcade-cabinet__screen { border-width: .48rem; border-radius: .55rem; }
  .arcade-cabinet .game-overlay { gap: .2rem; padding: .3rem; }
  .arcade-cabinet .character-select { width: 98%; gap: .16rem; }
  .arcade-cabinet .character-select button { grid-template-columns: 26px 1fr; gap: .12rem; border-radius: .2rem; padding: .04rem .1rem; }
  .arcade-cabinet .character-thumb { width: 26px; height: 26px; }
  .arcade-cabinet .character-thumb i { font-size: 0; }
  .arcade-cabinet .character-thumb i::after { content: '🔒'; font-size: .45rem; }
  .arcade-cabinet .character-meta strong { font-size: .34rem; }
  .arcade-cabinet .character-meta small { display: none; }
  .arcade-cabinet .game-score { inset: .38rem .44rem auto; font-size: .36rem; }
  .arcade-deck { min-height: 124px; padding: .7rem 1.15rem 1rem; }
  .arcade-joystick { width: 72px; height: 84px; }
  .arcade-joystick i { width: 42px; }
  .arcade-joystick i::after { top: 34px; width: 10px; height: 34px; }
  .arcade-joystick span { width: 64px; height: 18px; }
  .arcade-coin { width: 72px; min-height: 94px; }
  .arcade-coin__piece { width: 39px; border-width: 2px; font-size: .38rem; }
  .arcade-coin__slot { bottom: 15px; width: 54px; height: 51px; }
  .arcade-coin__slot i { width: 7px; height: 28px; }
  .arcade-coin small { font-size: .3rem; }
  .arcade-buttons { gap: .5rem; }
  .arcade-cabinet .action-button { width: clamp(45px, 12vw, 57px); }
  .arcade-cabinet .action-button small { display: none; }
  .arcade-statusbar { min-height: 50px; padding: .6rem 1rem; }
  .arcade-statusbar p span { display: none; }
  .arcade-statusbar > small { font-size: .34rem; }
  .location-map { padding-block: 5.5rem; }
  .location-map__head h2 { font-size: clamp(3.4rem, 16vw, 5.8rem); }
  .location-map__frame { width: calc(100% - (var(--pad) * 2)); height: 68svh; min-height: 480px; }
  .visit { min-height: 118svh; align-items: flex-start; padding-top: 5rem; }
  .visit__image { inset: auto 0 0; width: 100%; height: 50%; object-position: 45% center; }
  .visit__overlay { inset: auto 0 0; width: 100%; height: 50%; background: linear-gradient(0deg, rgba(2,7,13,.45), transparent 45%); }
  .visit__content { width: 100%; padding-top: 3rem; padding-bottom: 54vh; }
  .visit__details { display: grid; }
  .visit__actions .button { flex: 1 1 100%; }
  .footer { display: grid; justify-items: start; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
  .reveal { opacity: 1; transform: none; }
}
