/* A portrait puzzle with an independent, browser-local progression. */
.mystery-lobby{display:grid;grid-template-columns:110px 1fr;gap:26px;padding:28px;margin:24px 0;background:linear-gradient(130deg,#182440,#20213b);color:#f5f7ff;border:1px solid #6679b5;border-radius:16px}.mystery-kicker{font-size:10px;letter-spacing:1.6px;font-weight:800;color:#aec1ff}.mystery-lobby h4{font-size:23px;line-height:1.25;color:#fff;margin:10px 0}.mystery-lobby p{font-size:13px;line-height:1.7;color:#d2daef;margin:0}.mystery-mini{display:grid;grid-template-columns:repeat(3,1fr);gap:5px;align-self:center;transform:rotate(-7deg)}.mystery-mini i{height:33px;border:1px solid #6779a7;border-radius:4px;background:#2d3d64;display:grid;place-items:center;color:#e4c783;font-style:normal}.mystery-mini i:nth-child(3n+1){background:#6787e5;animation:mystery-breathe 3s ease-in-out infinite;animation-delay:calc(var(--i)*.1s)}.mystery-level{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:18px}.mystery-level b{background:#dcca95;color:#202230;border-radius:5px;padding:6px 10px;font-size:12px}.mystery-level span{color:#d5def7;font-size:11px}.mystery-lobby .mystery-local-note{font-size:11px;margin-top:12px;color:#bac5e0}
.mystery-board{display:grid;grid-template-columns:minmax(130px,210px) 1fr;gap:28px;padding:22px;margin:20px 0 30px;background:radial-gradient(ellipse at top right,#33345b,transparent 70%),#151e32;border:1px solid #7186c4;border-radius:16px;box-shadow:0 15px 32px #243c7e18;color:#fff;overflow:hidden}.mystery-board-image{position:relative;aspect-ratio:3/4;overflow:hidden;border:1px solid #95a7ce55;border-radius:8px;background:#202b44}.mystery-board-image>img{width:100%;height:100%;object-fit:cover;position:absolute;inset:0}.mystery-tiles{display:grid;position:absolute;inset:0;grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(4,1fr)}.mystery-tile{position:relative;display:grid;place-items:center;background:linear-gradient(135deg,#243353,#17223a);border:.5px solid #6c85bd70;min-width:0;min-height:0}.mystery-tile b{font-size:12px;font-weight:600;color:#8b9dc2;letter-spacing:1px}.mystery-tile.is-open{background:transparent;border-color:#ffffff1f}.mystery-tile.is-open b{display:none}.mystery-tile.just-unlocked{animation:mystery-unlock .8s ease-out}.is-revealed .mystery-tile{border-color:transparent}.mystery-board-copy{align-self:center;min-width:0}.mystery-board h4{font:52px/1.05 var(--display);color:#fff;margin:12px 0}.mystery-board h4 small{font:18px var(--font);color:#a7b7df}.mystery-board p{font-size:13px;line-height:1.6;color:#cbd5ed;margin:12px 0}.mystery-fragments{display:grid;grid-template-columns:repeat(12,1fr);gap:4px;margin-top:20px}.mystery-fragments i{height:6px;border-radius:2px;background:#536080}.mystery-fragments i.is-open{background:#e0c887;box-shadow:0 0 8px #e0c88722}.mystery-board .mystery-unlock{color:#e9dba9;font-weight:700}.mystery-board .mystery-credit{font-size:10px;color:#b8c5e2;overflow-wrap:anywhere}.mystery-credit a{color:inherit;text-decoration:underline;text-underline-offset:3px}.mystery-board.is-revealed h4{font-size:clamp(25px,3vw,38px);line-height:1.15}.mystery-finale-status{text-align:center;font-size:12px;letter-spacing:1.2px;font-weight:800;color:#3455a4}.mystery-xp-result{display:grid;grid-template-columns:1fr auto;gap:12px;padding:22px;background:#edf1fc;border:1px solid #9aaed8;border-radius:12px;margin-bottom:28px}.mystery-xp-result strong{font-size:25px;color:#294bb5}.mystery-xp-result span{align-self:center;font-size:13px;color:#394b72}.mystery-xp-result progress{grid-column:1/-1;width:100%;height:12px;accent-color:#3d64dc}.mystery-xp-result small{grid-column:1/-1;font-size:12px;color:#56647f}.mystery-loading{text-align:center;padding:40px 16px}.mystery-loading>span{display:block;font-size:65px;color:#4969cf;animation:mystery-breathe 2s ease-in-out infinite}.mystery-loading h3{font-size:28px}.mystery-loading p{line-height:1.6;margin-bottom:28px}
@keyframes mystery-unlock{0%{background:#e8d39c;box-shadow:0 0 22px #e8d39c;transform:scale(.92)}100%{background:transparent;box-shadow:none;transform:scale(1)}}@keyframes mystery-breathe{50%{opacity:.5;transform:translateY(-3px)}}
@media(max-width:600px){.mystery-lobby{grid-template-columns:1fr;padding:20px;gap:18px}.mystery-mini{width:95px;display:none}.mystery-lobby h4{font-size:21px}.mystery-board{grid-template-columns:minmax(110px,42%) 1fr;gap:16px;padding:14px}.mystery-board h4{font-size:38px;margin:10px 0}.mystery-board p{font-size:11px;margin:8px 0}.mystery-board .mystery-kicker{font-size:8px;letter-spacing:1px}.mystery-fragments{gap:2px;margin-top:14px}.mystery-board.is-revealed h4{font-size:23px}.mystery-xp-result{padding:18px}.mystery-xp-result span{font-size:11px}}
@media(prefers-reduced-motion:reduce){.mystery-mini i,.mystery-tile.just-unlocked,.mystery-loading>span{animation:none}}
.campaign-path{margin:24px 0;padding:20px;background:#f1f3fa;border:1px solid #c2cce1;border-radius:14px}.campaign-path-heading{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;color:#405176;font-size:10px;letter-spacing:1px}.campaign-path-heading b{font-size:11px;letter-spacing:0}.campaign-steps{list-style:none;display:grid;grid-template-columns:repeat(5,1fr);gap:10px;padding:0;margin:18px 0 0}.campaign-steps li{display:flex;align-items:center;justify-content:space-between;gap:5px;padding:12px;border-radius:8px;background:#e5e9f2;border:1px solid #c3cbdc;color:#71809c}.campaign-steps li>span{font:24px var(--display)}.campaign-steps small{font-size:11px}.campaign-steps .done{background:#e0f0e8;border-color:#9cc1af;color:#25664a}.campaign-steps .current{background:#2f58cb;border-color:#2f58cb;color:#fff;box-shadow:0 4px 14px #345acd26}.campaign-steps li:last-child{border-color:#b69b58}.campaign-steps li:last-child.current,.campaign-steps li:last-child.done{background:#d9c18a;color:#30291b}.campaign-playing{display:flex;justify-content:space-between;flex-wrap:wrap;gap:8px;margin-bottom:14px;color:#3657a5;font-size:11px}.campaign-playing b{letter-spacing:1px}.campaign-playing span{color:#59667e}.campaign-rewards{padding:24px;margin:28px 0;background:#161f31;color:#f3f5fa;border:1px solid #ab955e;border-radius:15px}.campaign-rewards h4{font:30px/1.2 var(--display);margin:12px 0;color:#e4c88b}.campaign-rewards>p{font-size:13px;line-height:1.6;color:#ccd5e7}.campaign-gifts{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:22px 0}.campaign-gift{display:flex;flex-direction:column;gap:9px;overflow:hidden;background:#232d43;color:#eef1f8;border:1px solid #647394;border-radius:10px;text-align:left;padding:0 0 14px;cursor:pointer}.campaign-gift-photo{width:100%;aspect-ratio:1.2;background-size:cover;background-position:center;background-color:#ece6d9}.campaign-gift strong,.campaign-gift>span:last-child{padding:0 12px}.campaign-gift strong{font-size:12px;line-height:1.3}.campaign-gift>span:last-child{font-size:10px;color:#c9d5ed}.campaign-gift.chosen{border:2px solid #e3ca90;background:#3e382d}.campaign-gift.chosen>span:last-child{color:#f1d9a1}.campaign-gift:hover{border-color:#e3ca90}.campaign-gift .gift-cap{background-size:205%;background-position:0% 55%}.campaign-gift .gift-beanie{background-size:205%;background-position:100% 55%}.campaign-gift .gift-mug{background-size:180%;background-position:0% 55%}.campaign-gift .gift-pen{background-size:180%;background-position:100% 55%}.campaign-rewards .campaign-reward-status{color:#f0d9a7;font-weight:600}.campaign-rewards .campaign-prize-note{font-size:11px;color:#bbc6dc;border-top:1px solid #4d5972;padding-top:15px}.campaign-rewards>a{color:#e4c88b;font-size:12px;text-decoration:underline;text-underline-offset:4px}.mystery-xp-result span{max-width:260px;text-align:right}
.monthly-prize{display:grid;grid-template-columns:180px 1fr;gap:36px;align-items:center;margin:38px 0;padding:36px;border:1px solid #bca16c;border-radius:16px;background:radial-gradient(ellipse at left,#344167,transparent 65%),#151c2c;color:#eff2fa}.monthly-prize-emblem{border:1px solid #9b8659;aspect-ratio:1;border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center;color:#e0c58b;box-shadow:0 0 0 10px #c9b68008}.monthly-prize-emblem b{font:74px/1 var(--display)}.monthly-prize-emblem span{font-size:10px;letter-spacing:2px}.monthly-prize h3{font:clamp(28px,3vw,42px)/1.12 var(--display);color:#f3dfb4;margin:12px 0 18px}.monthly-prize p{font-size:14px;line-height:1.65;color:#cbd4e7}.monthly-prize .monthly-badge{display:inline-block;padding:6px 10px;border-radius:5px;background:#3f3a2c;color:#ecd69f;font-size:10px;letter-spacing:1px}.monthly-prize .monthly-status{font-size:12px;border-top:1px solid #536079;padding-top:16px;color:#bbc7dd}.monthly-prize details{font-size:12px;color:#d7dfec;margin-top:16px}.monthly-prize summary{cursor:pointer;font-weight:700}.monthly-prize li{margin:8px 0;line-height:1.5}.monthly-prize a{color:#ebd39b;text-decoration:underline;text-underline-offset:4px}
@media(max-width:600px){.campaign-path{padding:14px}.campaign-steps{gap:6px}.campaign-steps li{padding:10px 6px}.campaign-steps li>span{font-size:20px}.campaign-rewards{padding:17px}.campaign-gifts{grid-template-columns:repeat(2,1fr)}.mystery-xp-result{grid-template-columns:1fr}.mystery-xp-result span{text-align:left}.monthly-prize{grid-template-columns:1fr;padding:24px;gap:20px}.monthly-prize-emblem{width:110px}.monthly-prize-emblem b{font-size:48px}.monthly-prize-emblem span{font-size:8px}}

/* Keep the mystery portrait blurred until the final answer is submitted. */
.mystery-board-image>img{filter:blur(var(--portrait-blur,18px));transform:scale(1.12);transition:filter .65s ease,transform .65s ease}
.mystery-board-image.is-clarifying>img{animation:portrait-clarify .65s ease both}
.mystery-board.is-revealed .mystery-board-image>img{transform:scale(1)}
@keyframes portrait-clarify{from{filter:blur(var(--portrait-blur-before,18px))}to{filter:blur(var(--portrait-blur,18px))}}
@media(prefers-reduced-motion:reduce){.mystery-board-image>img{transition:none}.mystery-board-image.is-clarifying>img{animation:none}}

/* Keep the monthly prize emblem and copy within narrow mobile cards. */
.monthly-prize>div{min-width:0}.monthly-prize-emblem{flex-shrink:0;text-align:center;box-sizing:border-box}.monthly-prize-emblem span{display:block;max-width:100%;text-align:center;line-height:1.5;letter-spacing:.12em}.monthly-prize p,.monthly-prize li,.monthly-prize h3{overflow-wrap:break-word}.monthly-prize ul{padding-left:20px}
@media(max-width:700px){
 .monthly-prize{grid-template-columns:minmax(0,1fr);width:100%;max-width:100%;box-sizing:border-box;padding:24px 18px;gap:26px;text-align:left}
 .monthly-prize .monthly-prize-emblem{width:136px;height:136px;aspect-ratio:1;margin:4px auto 0;padding:12px;justify-self:center}
 .monthly-prize .monthly-prize-emblem b{font:56px/1 var(--display);margin:0 0 8px}
 .monthly-prize .monthly-prize-emblem span{font:600 10px/1.5 var(--font);letter-spacing:.1em;white-space:normal}
 .monthly-prize h3{font-size:30px;line-height:1.2;margin:14px 0}
 .monthly-prize .monthly-badge{max-width:100%;box-sizing:border-box;white-space:normal;line-height:1.5}
 .monthly-prize p{font-size:14px;line-height:1.7}
 .monthly-prize details,.monthly-prize .monthly-status{font-size:13px;line-height:1.65}
 .monthly-prize summary{min-height:44px;display:flex;align-items:center}
}
