/* Game-first layout, shared by the two graphics renderers. */
body{background:#050d1b}.arcade{max-width:740px;padding:12px 18px 8px}header{margin-bottom:10px;min-height:42px}.brand{font-size:10px;gap:8px}.brand b{font-size:14px}.badge{font-size:23px;padding:6px}.player-button{max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.game-shell{max-width:640px;border-radius:16px}.topline{padding:10px 16px;font-size:11px}.stage{height:min(780px,calc(100svh - 142px));min-height:480px}.bottomline{display:none}.compact-footer{margin:8px auto 0;max-width:640px;align-items:center;font-size:10px}.compact-footer button{min-height:32px;color:#aebed2;background:none;border:0;font-size:11px}.overlay{background:linear-gradient(180deg,#040b17d9,#08172a5c 40%,#040b17ed)}
.start-card{height:100%;width:100%;max-width:470px;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:20px 24px;gap:0}.start-card .eyebrow{font-size:11px;letter-spacing:3px}.start-card h1{font-size:44px;line-height:.93;margin:12px 0 2px;text-align:center}.start-card h1 em{font-size:1.2em}.start-card .portrait{display:block!important;width:160px;height:196px;margin:2px auto 0;flex:0 1 196px;min-height:100px;transform:none}.start-card .portrait canvas{display:block;width:100%;height:100%;object-fit:contain;mask-image:radial-gradient(ellipse at center,#000 55%,transparent 75%);-webkit-mask-image:radial-gradient(ellipse at center,#000 55%,transparent 75%)}.start-card .play-hint{font-size:14px;line-height:1.4;margin:2px 0 14px}.start-card .primary,.start-card .secondary{min-height:50px;flex-shrink:0;padding:12px 16px;font-size:22px;width:100%;border-radius:9px}.start-card #start-daily{display:flex;flex-direction:column;align-items:center;gap:3px;background:#112b46d9;border-color:#7695b46b;margin-top:9px;font-family:'Barlow Condensed',sans-serif;font-weight:800;font-size:21px}.start-card #start-daily small{font:12px 'DM Sans',sans-serif;color:#bfd0e5}.start-card .daily-note{font-size:11px;margin:8px 0 5px;color:#91a8c4}.start-card .keyhint{display:block;font-size:11px;margin:9px 0 0}.menu-nav{display:grid;grid-template-columns:1fr 1fr 1fr;width:100%;border-top:1px solid #7b92ae33;margin-top:8px;padding-top:5px;gap:5px}.menu-nav button,.menu-nav a{display:flex;align-items:center;justify-content:center;min-height:44px;font-size:12px;font-weight:800;letter-spacing:.6px;color:#cfdded;text-decoration:none;border:0;background:none;padding:6px;margin:0}.menu-nav button:hover,.menu-nav a:hover{color:#ffdf36;background:#ffffff09;border-radius:6px}.hud{top:18px;left:20px}.hud strong{font-size:52px}.rival-panel{top:12px;right:12px}.power-hud{position:absolute;left:20px;top:105px;width:138px;pointer-events:none}.power-hud[hidden],.power-meter[hidden]{display:none}.power-meter{padding:7px 9px;margin-bottom:7px;background:#071329c9;border:1px solid #aac9e52b;border-radius:7px}.power-meter>div{display:flex;justify-content:space-between;align-items:center;font-size:11px;color:#d8e8fb}.power-meter b{font-size:12px;font-variant-numeric:tabular-nums;color:#ffdf36}.power-meter progress{display:block;width:100%;height:4px;margin-top:6px;border:0;border-radius:4px;overflow:hidden;appearance:none;background:#33455e}.power-meter progress::-webkit-progress-bar{background:#33455e}.power-meter progress::-webkit-progress-value{background:#ffdf36}.power-meter progress::-moz-progress-bar{background:#ffdf36}.super-meter{border-color:#ffdf3670}.super-meter span{color:#ffdf36}html[data-game-state=playing] #milestone{display:none!important}.pause{bottom:16px;right:16px;min-height:46px;min-width:46px}.shout{font-size:26px}
.end-card{width:min(410px,92%);padding:22px;background:#07162af5;border-color:#718ba555;border-radius:16px;max-height:94%;overflow-y:auto}.end-card h2{font-size:38px;margin:10px 0}.result strong{font-size:82px;line-height:1.05}.end-card .result span{margin:5px 0}.end-card p{font-size:13px;line-height:1.4;margin:8px 0}.end-summary{background:#15304a88;border:1px solid #809db62b;border-radius:9px;padding:6px 10px;margin:10px 0}.end-summary #end-rank{font-weight:700;color:#ffdf36;font-size:14px}.end-summary #end-progress{color:#bdd1e7;font-size:12px}.end-card .primary{font-size:20px;min-height:46px;padding:9px 12px}.end-card #continue{margin-bottom:8px;background:#baf0ce;border-color:#75b48e}.end-card .secondary{min-height:44px;margin-top:8px;padding:9px 12px}.end-card .save-status{font-size:12px;margin:8px 0}.end-card .leader-link{display:inline-flex;min-height:36px;align-items:center;font-size:12px}.settings-dialog{width:min(440px,92vw)}.settings-dialog section{margin:20px 0;padding:0 0 16px;border-bottom:1px solid #a8bedb2a}.settings-dialog h3{font-size:16px;margin:8px 0}.settings-dialog .graphics-control{justify-content:flex-start}.settings-dialog .graphics-control>span{display:none}.settings-dialog .graphics-control button{min-height:44px;font-size:14px;padding:10px 18px}.settings-dialog .icon-button{min-height:44px;font-size:14px}.settings-dialog p,.settings-dialog .graphics-note{font-size:14px;line-height:1.5}.about-dialog{max-height:85svh;overflow:auto;width:min(520px,94vw)}.about-dialog p,.about-dialog .photo-credit{font-size:14px;line-height:1.65;text-align:left}.about-dialog footer{font-size:12px;flex-direction:column;margin:15px 0}.about-dialog h2,.settings-dialog h2{font-size:36px}.player-dialog button{min-height:44px}.dialog-close{min-width:44px}.player-dialog::backdrop{background:#010711cf}html[data-graphics=retro] .end-card,html[data-graphics=retro] .power-meter{box-shadow:none;border-radius:4px}html[data-graphics=next] .start-card .portrait{filter:drop-shadow(0 8px 16px #66b8ed23)}
@media(max-width:600px){.arcade{padding:8px 8px 4px}header{margin-bottom:6px}.stage{height:calc(100svh - 123px);min-height:460px}.topline{padding:8px 12px;font-size:10px}.start-card{padding:14px 20px}.start-card h1{font-size:37px}.start-card .portrait{width:140px;height:171px;flex-basis:171px}.hud{top:14px;left:14px}.rival-panel{right:10px;top:10px;width:164px}.power-hud{left:14px;top:97px;width:130px}.compact-footer{margin-top:3px}.end-card{padding:18px}.start-card .play-hint{font-size:13px}.menu-nav button,.menu-nav a{font-size:11px}}
@media(max-height:740px){.start-card{padding-top:10px;padding-bottom:10px}.start-card h1{font-size:31px;margin-top:7px}.start-card .portrait{width:105px;height:128px;flex-basis:128px;min-height:75px}.start-card .play-hint{font-size:12px;margin-bottom:8px}.start-card .primary,.start-card .secondary{min-height:44px;padding:8px;font-size:20px}.start-card #start-daily{font-size:19px}.start-card .keyhint{display:none}.start-card .daily-note{margin:5px 0;font-size:10px}.menu-nav{margin-top:3px}.end-card h2{font-size:30px}.result strong{font-size:62px}.end-card .end-summary{margin:6px 0}.end-card p{margin:5px 0}.end-card{padding:14px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}

.end-card{touch-action:pan-y}.start-card .portrait canvas{image-rendering:auto}

.start-card .portrait canvas{cursor:grab;touch-action:none;user-select:none;-webkit-user-select:none;outline-offset:3px}.start-card .portrait canvas.dragging{cursor:grabbing}.start-card .portrait canvas:focus-visible{outline:2px solid #ffdf36;border-radius:16px}.portrait-hint{font-size:10px;letter-spacing:1.5px;color:#adc3df;margin:-4px 0 5px;pointer-events:none}@media(max-height:740px){.portrait-hint{font-size:9px;margin:0 0 3px}}

.start-card .portrait-webgl canvas{mask-image:none;-webkit-mask-image:none;object-fit:contain}.start-card .portrait-webgl{overflow:visible}

/* Keep celebrations out of the flying lane. */
.milestone{top:auto!important;bottom:28px!important;left:50%!important;transform:translateX(-50%);max-width:90%;background:transparent!important;box-shadow:none!important;border:0!important;padding:0!important;font-size:12px!important;text-shadow:0 2px 5px #000;pointer-events:none}.challenge-invite{padding:8px 12px;margin:4px 0 8px;border-left:3px solid #ffdf36;background:#0b2945}.challenge-invite p{font:14px/1.35 sans-serif;margin:0 0 6px}.challenge-invite button{padding:9px;font-size:15px}.challenge-live{position:absolute;right:12px;top:72px;max-width:210px;color:#ffe46b;font:700 12px/1.3 sans-serif;text-shadow:0 2px 4px #000;pointer-events:none}.share-actions{display:flex;gap:8px;margin-top:8px}.share-actions button{flex:1;min-width:0;font-size:14px;padding:10px 5px}.run-stats,#share-status{font:13px/1.4 sans-serif;margin:6px 0;color:#bdd0e4}.end-card{max-height:96%;overflow:auto;overscroll-behavior:contain}.end-card .result{margin:4px 0}.end-card .result strong{font-size:64px}.end-card .end-summary{margin:6px 0}.end-card>button{margin-top:6px;padding-top:10px;padding-bottom:10px}.challenge-invite[hidden],.challenge-live[hidden]{display:none}.start-card:has(.challenge-invite:not([hidden])) .portrait{height:125px!important}.start-card:has(.challenge-invite:not([hidden])) h1{font-size:clamp(28px,6vw,42px)}

.start-card:has(.challenge-invite:not([hidden])){justify-content:flex-start;overflow-y:auto}.challenge-invite{width:100%;flex-shrink:0}.challenge-invite button{width:100%}.portrait-hint{font-size:11px}#share-status:empty{display:none}#challenge-copy{width:100%;font-size:14px}#share-challenge:disabled,#share-card:disabled{opacity:.5;cursor:wait}

#admin-test-section[hidden],#finish-test[hidden],.share-actions[hidden]{display:none!important}#admin-test-section{border-top:1px solid #ffdf3640;padding-top:12px}#finish-test{margin-top:10px}
