/* Optional arcade art; all result timing and eligibility remain owned by the app. */
.pc-sprite-canvas{position:relative;width:100%;height:100%}
.pc-sprite-canvas canvas{display:block;width:100%;height:100%;image-rendering:pixelated}
.pc-sprite-fallback{position:absolute;inset:15% 5%;display:flex;align-items:flex-end;justify-content:space-around;gap:16px}
.pc-sprite-fallback img{width:40%;max-height:100%;object-fit:contain;image-rendering:pixelated}
.pc-arcade-duel{position:absolute;top:34%;left:50%;width:min(100%,640px);transform:translateX(-50%);aspect-ratio:3/2}
.pc-arcade-duel__names{position:absolute;top:88%;left:0;right:0;display:grid;grid-template-columns:1fr 1fr;text-align:center}
.pc-arcade-duel__names p{margin:0;color:var(--seat-color);text-transform:uppercase;font:900 clamp(24px,7vw,38px)/1 var(--pc-font-display);text-shadow:2px 2px #000}
.pc-arcade-duel__names small{display:block;margin-top:7px;color:#fff;font:700 12px/1.2 var(--pc-font-display);letter-spacing:.08em}
.pc-vs--arcade{animation:none;background:#110e21;color:#fff}
.pc-vs--arcade .pc-vs__bg{filter:brightness(.65)}
.pc-vs--arcade .pc-vs__hint{z-index:9;background:#100d20bb;border:1px solid #fff5}
.pc-faceoff{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:20px 12px 80px;background:radial-gradient(ellipse at center,#68447488,transparent 75%);animation:pc-faceoff-out .01s 2.12s both}
.pc-faceoff__label{font:800 17px var(--pc-font-display);letter-spacing:.18em;color:#ffd21f;margin:0 0 38px;text-shadow:2px 2px #000}
.pc-faceoff__cards{position:relative;width:min(100%,720px);display:grid;grid-template-columns:1fr 1fr;gap:28px;align-items:center}
.pc-faceoff__card{min-width:0;text-align:center;animation:pc-portrait-in .38s steps(5) both}
.pc-faceoff__card.is-right{animation-delay:.12s;--slide:60px}.pc-faceoff__card.is-left{--slide:-60px}
.pc-faceoff__frame{position:relative;aspect-ratio:384/424;filter:drop-shadow(0 0 8px var(--seat-color))}
.pc-faceoff__portrait{display:block;width:100%;height:100%;image-rendering:pixelated;clip-path:polygon(0 8%,30% 8%,30% 17%,74% 17%,74% 8%,100% 8%,100% 100%,0 100%)}
.pc-faceoff__number{position:absolute;top:4%;left:30%;width:44%;font:900 clamp(24px,7vw,48px)/1 var(--pc-font-matrix);color:#fff;text-shadow:3px 3px #132756}
.pc-faceoff__card strong{display:block;margin-top:15px;font:900 clamp(25px,7.5vw,46px)/1 var(--pc-font-display);text-transform:uppercase;color:var(--seat-color);text-shadow:2px 2px #000}
.pc-faceoff__card small{display:block;margin-top:8px;font:700 12px var(--pc-font-display);letter-spacing:.08em;text-transform:uppercase}
.pc-faceoff__vs{position:absolute;z-index:2;left:50%;top:43%;width:25%;transform:translate(-50%,-50%) rotate(-8deg);filter:drop-shadow(3px 4px 0 #000);image-rendering:pixelated}
.pc-vs__combat{position:absolute;inset:0;visibility:hidden;animation:pc-combat-in .01s 2.1s forwards}
.pc-vs__ready{position:absolute;top:18%;width:100%;text-align:center;font:900 clamp(42px,14vw,80px)/1 var(--pc-font-display);color:#ffd21f;text-shadow:4px 4px #111;transform:rotate(-4deg)}
.pc-arcade-wipe{position:absolute;z-index:5;inset:-20% -65%;background:linear-gradient(100deg,#08120b 12%,#32e577 12% 16%,#ffd21f 16% 18%,#101c17 18% 82%,#32e577 82% 86%,#08120b 86%);transform:translateX(-150%) skewX(-18deg);animation:pc-arcade-wipe .62s cubic-bezier(.6,0,.3,1) 1.86s both;pointer-events:none}
.pc-finish .pc-arcade-duel{top:34%}
.pc-finish.is-tv .pc-arcade-duel{width:min(85%,900px,90vh);top:26%}
.pc-finish.is-tv .pc-finish__points{bottom:3%;margin:0}
.pc-finish.is-tv .pc-arcade-duel__names p{font-size:48px}.pc-finish.is-tv .pc-arcade-duel__names small{font-size:23px}
@keyframes pc-portrait-in{from{opacity:0;transform:translateX(var(--slide))}to{opacity:1;transform:none}}
@keyframes pc-faceoff-out{to{visibility:hidden}}
@keyframes pc-combat-in{to{visibility:visible}}
@keyframes pc-arcade-wipe{0%{transform:translateX(-150%) skewX(-18deg)}45%,55%{transform:translateX(0) skewX(-18deg)}100%{transform:translateX(150%) skewX(-18deg)}}
.pc-vs.is-still .pc-faceoff{visibility:visible}.pc-vs.is-still .pc-vs__combat,.pc-vs.is-still .pc-arcade-wipe{display:none}
/* The extra rooftop beat lives in launch A. The remaining onboarding and its audio are intact. */
.pc-rooftop{position:absolute;inset:0;background:#110f29;overflow:hidden;pointer-events:none}
.pc-rooftop>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;image-rendering:auto}
.pc-rooftop__lookout{object-position:52% center;animation:pc-roof-lookout 2.86s linear both}
.pc-rooftop__courtyard{object-position:58% center;opacity:0;animation:pc-roof-arrive .32s ease-out 2.8s forwards}
.pc-rooftop__shade{position:absolute;inset:0;background:linear-gradient(#070b2180,transparent 35%,transparent 78%,#050712dd)}
.pc-rooftop__caption{position:absolute;top:16%;left:8%;right:8%;margin:0;color:#ffdf42;font:900 italic clamp(32px,11vw,60px)/.97 var(--pc-font-display);text-shadow:3px 4px #231336;animation:pc-roof-caption 2.8s both}
.pc-rooftop__crew{position:absolute;inset:0;width:100%;height:100%}
.pc-rooftop .pc-sprite-fallback{inset:65% 4% 19%;gap:4px}.pc-rooftop .pc-sprite-fallback img{width:16%;object-fit:contain}
.pc-rooftop__title{position:absolute;left:0;right:0;top:22%;padding:12px 10px;filter:drop-shadow(0 5px 0 #1e132c);animation:pc-roof-title .6s cubic-bezier(.2,.9,.3,1.1) 4.25s both}
.pc-rooftop__title .pc-launch__slam .pc-tw{animation:none}
.pc-rooftop__title .pc-launch__slam{font-size:clamp(44px,15vw,72px)}
.pc-rooftop__title .pc-launch__slam .is-1{font-size:32px}
.pc-rooftop__title .pc-launch__slam .is-3{font-size:92px}
.pc-rooftop__location{position:absolute;top:55%;left:0;right:0;color:#fff;font:800 14px var(--pc-font-display);letter-spacing:.16em;text-shadow:2px 2px #000;animation:pc-roof-title .35s 4.7s both}
.pc-rooftop__sweep{position:absolute;inset:0;background:#ffdd28;opacity:0;animation:pc-roof-sweep .3s 2.7s both}
.pc-launch.is-a:has(.pc-rooftop) .pc-launch__hint{animation:pc-l-blink 1.1s steps(2,start) 5.2s infinite both;z-index:1;pointer-events:none}
.pc-launch.is-a:has(.pc-rooftop) .pc-launch__skip{color:#fff;text-shadow:2px 2px #000}
@keyframes pc-roof-lookout{0%{transform:scale(1)}90%{opacity:1;transform:scale(1.04)}100%{opacity:0;transform:scale(1.08)}}
@keyframes pc-roof-arrive{from{opacity:0;transform:scale(1.05)}to{opacity:1;transform:scale(1)}}
@keyframes pc-roof-caption{0%,75%{opacity:1;transform:none}100%{opacity:0;transform:translateY(-20px)}}
@keyframes pc-roof-title{from{opacity:0;transform:scale(2) rotate(-8deg)}to{opacity:1;transform:scale(1) rotate(-3deg)}}
@keyframes pc-roof-sweep{0%{opacity:0;clip-path:polygon(0 100%,0 100%,0 100%)}50%{opacity:1;clip-path:polygon(0 0,100% 0,100% 100%,0 100%)}100%{opacity:0;clip-path:polygon(100% 0,100% 0,100% 0)}}
.pc-rooftop.is-still *{animation:none!important}.pc-rooftop.is-still .pc-rooftop__lookout,.pc-rooftop.is-still .pc-rooftop__caption,.pc-rooftop.is-still .pc-rooftop__sweep{display:none}.pc-rooftop.is-still .pc-rooftop__courtyard{opacity:1}
@media(prefers-reduced-motion:reduce){.pc-faceoff,.pc-faceoff *,.pc-arcade-wipe,.pc-vs__combat,.pc-rooftop *{animation:none!important}.pc-faceoff{visibility:visible}.pc-vs__combat,.pc-arcade-wipe,.pc-rooftop__lookout,.pc-rooftop__caption,.pc-rooftop__sweep{display:none}.pc-rooftop__courtyard{opacity:1}}
@media(max-height:500px){.pc-faceoff{padding-bottom:45px}.pc-faceoff__label{margin-bottom:5px}.pc-faceoff__cards{max-width:430px}.pc-faceoff__frame{max-height:190px}.pc-faceoff__portrait{object-fit:contain}.pc-vs__ready{top:1%;font-size:36px}.pc-arcade-duel,.pc-finish .pc-arcade-duel{top:20%;width:min(80vh,380px);max-width:80%}.pc-rooftop__title{top:10%}.pc-rooftop__title .pc-launch__slam{font-size:35px}.pc-rooftop__title .pc-launch__slam .is-1{font-size:22px}.pc-rooftop__title .pc-launch__slam .is-3{font-size:48px}.pc-rooftop__location{top:46%}}

.pc-launch.is-a:has(.pc-rooftop.is-still) .pc-launch__hint{animation:none;opacity:1}
