/* v54 /challenge page: slim, mobile-first. Builds on assets/site.css (the game card). */
body.chpage{margin:0;background:#0f0907}
.ch-top{display:flex;align-items:center;justify-content:space-between;gap:10px;max-width:560px;margin:0 auto;padding:10px 16px 4px}
.ch-brand{display:flex;align-items:center;gap:8px;font-family:"Luckiest Guy",system-ui,sans-serif;color:#fff;text-decoration:none;font-size:20px;letter-spacing:.5px}
.ch-brand img{border-radius:9px}
.ch-more{color:#ffb347;font-weight:800;text-decoration:none;font-size:15px;padding:8px 4px}
.ch-wrap{max-width:560px;padding:0 12px 8px}
.ch-head{text-align:center;padding:4px 4px 8px}
.ch-h1{font-family:"Luckiest Guy",system-ui,sans-serif;font-weight:400;font-size:clamp(30px,8.6vw,44px);line-height:1.04;letter-spacing:.5px;margin:6px 0 8px;color:#fff3e6;text-shadow:0 3px 0 #1a0800,0 0 24px rgba(255,106,26,.55)}
.ch-first{color:#ffb347;text-shadow:0 3px 0 #1a0800,0 0 22px rgba(255,106,26,.9)}
.ch-sub{margin:0 0 6px;color:var(--muted,#c9b3a3);font-size:16px;line-height:1.35}
.ch-sub b{color:#ffb347}
.ch-tries{margin:0;font-weight:800;font-size:16px;color:#fff3e6}
#ch-best{color:var(--muted,#c9b3a3);font-weight:700}
/* only the board + Erupt on this page */
.chpage .play{display:block}
.chpage #play .card{padding:10px 10px 12px}
.chpage #play .card > .row[role="group"],.chpage .lvhead,.chpage #lvmap,.chpage #coach,.chpage #vstrip,.chpage #xevent,.chpage .xbar,.chpage .mkbar,.chpage .xchbar,.chpage #lvtip,.chpage .pick-h,.chpage #picker,.chpage #status,.chpage #streak,.chpage #unlocks,.chpage #after,.chpage #note,.chpage #clipbox,.chpage #dpanel,.chpage #goal,.chpage #gear,.chpage #gearmenu,.chpage .endpop,.chpage #toast,.chpage .xdeco{display:none!important}
.chpage #erupt{flex:1 1 auto;min-height:52px;font-size:24px}
.chpage .ctrlrow{display:flex;gap:10px}
.ch-result{margin:12px 0 0;padding:16px 14px 14px;border-radius:18px;background:linear-gradient(180deg,#2a1208,#1c0b06);border:3px solid var(--lava,#ff6a1a);box-shadow:0 8px 28px rgba(0,0,0,.55),0 0 26px rgba(255,106,26,.35);text-align:center;animation:chIn .3s ease-out}
.ch-result[hidden]{display:none}
.ch-result[data-kind="win"]{border-color:#7ee0a1;box-shadow:0 8px 28px rgba(0,0,0,.55),0 0 30px rgba(126,224,161,.35)}
.ch-r-title{font-family:"Luckiest Guy",system-ui,sans-serif;font-size:clamp(26px,7.4vw,36px);line-height:1.08;letter-spacing:.4px;color:#fff3e6;text-shadow:0 2px 0 #1a0800}
.ch-result[data-kind="loss"] .ch-r-title{font-size:clamp(22px,6.2vw,30px);color:#ffcf8a}
.ch-r-text{margin:8px 0 10px;font-size:16px;line-height:1.35;color:#f6eadf}
.ch-r-grid{display:inline-block;margin:0 auto 10px;padding:8px 10px;border-radius:12px;background:#120907;border:2px solid #3a1c10;font-size:20px;line-height:1.12;letter-spacing:0;white-space:pre;overflow:hidden}
.ch-r-btns{display:flex;flex-direction:column;gap:10px;align-items:stretch}
.ch-r-btns .btn{width:100%;box-sizing:border-box;text-align:center;text-decoration:none}
.ch-r-btns .btn[hidden]{display:none}
.ch-full{order:-1;font-size:26px;animation:chPulse 1.6s ease-in-out infinite}
#ch-retry{order:1}
.ch-r-note{margin:10px 0 0;color:var(--muted,#c9b3a3)}
.ch-foot{max-width:560px;margin:18px auto 0;padding:10px 16px 28px;text-align:center;color:var(--muted,#c9b3a3);font-size:14px}
.ch-foot p{margin:4px 0}.ch-foot a{color:#ffb347}
@keyframes chIn{from{opacity:0;transform:translateY(10px) scale(.97)}to{opacity:1;transform:none}}
@keyframes chPulse{0%,100%{transform:scale(1)}50%{transform:scale(1.03)}}
@media (prefers-reduced-motion:reduce){.ch-result,.ch-full{animation:none}}
@media (min-width:700px){.ch-r-btns{flex-direction:row;flex-wrap:wrap}.ch-r-btns .btn{width:auto;flex:1 1 200px}.ch-full{flex-basis:100%}}
@media (min-width:700px){.chpage #play .card{max-width:470px;margin:0 auto}.ch-h1{font-size:38px;margin:2px 0 6px}.ch-head{padding-bottom:4px}}
