/* Games are deliberately mobile-first at every viewport width. */
.games-hub,.codebreaker{max-width:520px;margin:0 auto;display:grid;gap:24px}.games-hub-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;position:sticky;top:0;z-index:30;padding:8px 0;background:var(--bg,#fff);box-shadow:0 6px 10px -10px #17243a}.games-eyebrow,.games-section-head p{margin:0 0 3px;font-size:12px;font-weight:900;letter-spacing:.12em;color:var(--muted)}.games-coins{white-space:nowrap;padding:10px 13px;border:2px solid var(--ink);border-radius:999px;background:var(--yellow);color:#182640!important;font-weight:900}.games-section{display:grid;gap:12px}.games-section-head{display:flex;justify-content:space-between;align-items:end}.games-section-head h2{margin:0;font-size:22px}.games-timer,.code-solvers{font-size:13px;font-weight:800;color:#182640!important}.games-feature-card,.games-mini-card{color:inherit;text-decoration:none;border:2px solid var(--ink);box-shadow:0 3px 0 var(--ink)}.games-feature-card{min-height:128px;display:grid;grid-template-columns:56px minmax(0,1fr) auto;align-items:center;gap:12px;padding:16px;border-radius:18px;background:#244c84;color:#fff}.games-card-icon{display:grid;place-items:center;box-sizing:border-box;width:52px;height:52px;padding:5px;border-radius:16px;background:#fff}.games-card-icon img{width:100%;height:100%;object-fit:contain}.games-feature-card h3,.games-mini-card strong{margin:0;font-size:18px}.games-feature-card p{margin:5px 0 10px;color:#e4edff;font-size:14px}.games-reward{font-size:13px;font-weight:900;color:#ffd449}.games-arrow{font-size:28px}.games-grid{display:grid;grid-template-columns:1fr;gap:9px}.games-mini-card{position:relative;display:grid;grid-template-columns:38px 1fr;grid-template-rows:auto auto;gap:7px;min-height:0;padding:14px 45px 14px 14px;border-radius:16px;background:var(--card-alt)}.games-mini-card>span{grid-row:span 2;font-size:24px}.games-mini-card small{grid-column:2;color:var(--muted);font-weight:700}.games-mini-arrow{position:absolute;right:15px;top:50%;transform:translateY(-50%);font-style:normal;font-size:21px;font-weight:900}.games-soon{opacity:.7}.games-all{width:100%;justify-content:center}.back-link{position:sticky;top:0;z-index:31;align-self:start;display:block;width:max-content;padding:8px 0;background:var(--bg,#fff);font-weight:800;color:var(--blue);text-decoration:none;box-shadow:0 6px 10px -10px #17243a}.codebreaker>.games-hub-head{top:35px}
.codebreaker{gap:18px}.codebreaker-panel{display:grid;justify-items:center;gap:10px;padding:26px 20px;border:3px solid var(--ink);border-radius:22px;background:#fff;text-align:center}.codebreaker-panel h2{margin:0;color:#182640!important;font-size:25px}.codebreaker-icon,.codebreaker-panel .codebreaker-icon{display:block;width:88px;height:88px;margin:0;object-fit:contain}.codebreaker-panel>.hint{margin:0;color:var(--muted);font-size:16px;line-height:1.35;font-weight:800}.code-attempts{width:100%;margin:0;padding:10px;border-radius:11px;background:#e7eaf2;font-size:17px;font-weight:900}.code-attempts.is-win{background:#dff1dc;color:#247039}.code-attempts.is-lose{background:#ffe0de;color:#b73b34}.code-board{width:100%;display:grid;gap:9px}.code-row{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:9px}.code-tile{aspect-ratio:1;display:grid;place-items:center;box-sizing:border-box;border:2px solid var(--ink);border-radius:10px;background:#8f9399;color:#fff;font-size:27px;font-weight:900}.code-tile.exact{background:#68ad62}.code-tile.misplaced{background:#e4c84f}.code-tile.blank{background:#fff}.code-input{width:100%;padding:0;background:#fff;color:var(--ink);font:900 27px/1 inherit;text-align:center;caret-color:var(--blue);outline:none}.code-input:focus{border-color:var(--blue);box-shadow:0 0 0 3px #b9d7ff}.code-input:disabled{border-color:#9fa4aa;background:#d8dadd;color:#8a8e94;cursor:not-allowed;opacity:1}.code-input.duplicate{border-color:#d94841;background:#ffe0de;color:#a52c29;animation:duplicate-nudge .24s ease}.code-input-error{margin:0;color:#b73b34;font-weight:900;font-size:14px}.code-good{color:#4c9a50}.code-warn{color:#c4a22a}.code-solvers{margin:0}.guess-row .code-tile{animation:code-reveal .42s ease both}.guess-row .code-tile:nth-child(2){animation-delay:.08s}.guess-row .code-tile:nth-child(3){animation-delay:.16s}.guess-row .code-tile:nth-child(4){animation-delay:.24s}.guess-row .code-tile:nth-child(5){animation-delay:.32s}@keyframes code-reveal{from{opacity:0;transform:scale(.7) rotateX(-45deg)}to{opacity:1;transform:none}}@keyframes duplicate-nudge{25%{transform:translateX(-5px)}75%{transform:translateX(5px)}}
.code-result-scrim{top:0;bottom:auto;display:grid;place-items:center}.code-result-modal{position:relative;z-index:2;width:min(420px,calc(100vw - 32px));display:grid;justify-items:center;gap:16px;padding:30px;border:3px solid var(--ink);border-radius:28px;background:#fff;text-align:center;box-shadow:0 8px 0 var(--ink)}.code-result-modal.is-lose{background:#ffe2df;animation:code-fail-shake .5s cubic-bezier(.2,1.2,.35,1) both}.code-result-modal.is-win{animation:code-success-bounce .55s cubic-bezier(.18,1.4,.35,1) both}.code-result-modal img{width:118px;height:118px}.code-result-modal p,.code-result-modal h2{margin:0}.code-result-modal p{font-weight:800;font-size:17px}.code-result-modal h2{font-size:31px}.code-result-mark{width:100%;padding:11px;border-radius:12px;background:#dce8f7;font-weight:900}.code-result-modal.is-lose .code-result-mark{background:#f5bab5}.code-result-modal .btn{width:100%;font-size:18px}.code-result-modal.is-win h2,.code-result-modal.is-win>p:first-of-type{color:#247039}.code-result-modal.is-lose h2,.code-result-modal.is-lose>p:first-of-type{color:#b73b34}.success-fireworks{position:absolute;inset:0;z-index:1;overflow:hidden;pointer-events:none}.success-fireworks i{position:absolute;left:50%;top:46%;width:9px;height:9px;border-radius:2px;background:var(--fire-color);animation:firework-burst .85s cubic-bezier(.12,.78,.2,1) var(--fire-delay) both;box-shadow:0 0 12px var(--fire-color)}@keyframes firework-burst{from{opacity:1;transform:translate(-50%,-50%) scale(.5)}to{opacity:0;transform:translate(calc(-50% + var(--fire-x)),calc(-50% + var(--fire-y))) rotate(190deg) scale(1.1)}}@keyframes code-fail-shake{0%{opacity:0;transform:scale(.85) translateY(20px)}45%{opacity:1;transform:translateX(-12px)}58%{transform:translateX(10px)}70%{transform:translateX(-7px)}82%{transform:translateX(5px)}100%{opacity:1;transform:none}}@keyframes code-success-bounce{0%{opacity:0;transform:scale(.7) translateY(26px)}55%{opacity:1;transform:scale(1.07) translateY(-8px) rotate(-1deg)}72%{transform:scale(.98) translateY(3px) rotate(1deg)}100%{opacity:1;transform:none}}html.code-wrong-screen-shake{animation:code-wrong-screen-shake .36s ease-in-out}@keyframes code-wrong-screen-shake{20%{transform:translateX(-6px)}40%{transform:translateX(6px)}60%{transform:translateX(-4px)}80%{transform:translateX(3px)}}@media(prefers-reduced-motion:reduce){.guess-row .code-tile,.code-result-modal,.success-fireworks i,html.code-wrong-screen-shake{animation:none}}
