.ctx-app{margin:1rem 0 0;min-height:11rem;padding:0;position:relative}.ctx-heading{align-items:flex-end;display:flex;gap:1rem;justify-content:space-between}.ctx-heading small,.ctx-summary small{color:var(--muted);display:block;font-size:.72rem;letter-spacing:.04em;text-transform:uppercase}.ctx-heading strong{display:block;font-size:1.05rem}.ctx-summary{display:flex;gap:1rem;text-align:right}.ctx-summary[hidden],.ctx-controls[hidden],.ctx-sort[hidden],.ctx-latest[hidden]{display:none}.ctx-summary b{display:block;font-size:1.1rem}.ctx-summary b.is-updating{animation:ctx-rank-pop .42s cubic-bezier(.2,.9,.25,1.25)}.ctx-form{display:flex;gap:.5rem;margin-top:.75rem}.ctx-form input{background:var(--bg);border:1px solid var(--line);border-radius:.45rem;color:var(--ink);flex:1;font:inherit;font-size:1rem;min-width:0;padding:.65rem .75rem}.ctx-form input:focus{border-color:var(--win);outline:none}.ctx-form input:disabled{opacity:.65}.ctx-message{color:var(--muted);font-size:.875rem;min-height:1.5rem;margin:.45rem 0 0}.ctx-message[data-kind=error]{color:#b42318}.ctx-message[data-kind=success],.ctx-message[data-kind=best]{color:var(--win);font-weight:700}.ctx-controls{align-items:center;display:flex;justify-content:space-between;margin-top:.35rem;padding:.15rem 0 .4rem}.ctx-sort{align-items:center;display:flex;gap:.25rem}.ctx-sort span{color:var(--muted);font-size:.75rem;margin-right:.2rem;text-transform:uppercase}.ctx-sort button{border-radius:0;color:var(--muted);font-size:.78rem;padding:.25rem .35rem}.ctx-sort button.active{background:transparent;box-shadow:inset 0 -2px 0 var(--ink);color:var(--ink);font-weight:700}.ctx-tools{align-items:center;display:flex;gap:.6rem}.ctx-tools .button{background:transparent;border:0;color:var(--ink);font-size:.8rem;padding:.3rem 0}.ctx-give-up{color:var(--muted);font-size:.8rem;text-decoration:underline;text-underline-offset:.15rem}.ctx-latest{margin:.5rem 0 .85rem}.ctx-latest .ctx-guess{box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--ink) 14%,transparent),0 2px 8px #00000017}.ctx-guesses{display:grid;gap:.32rem;list-style:none;margin:.5rem 0 0;padding:0}.ctx-latest:not([hidden])+.ctx-guesses{margin-top:0}.ctx-guesses:empty{display:none}.ctx-database{color:var(--muted);display:block;font-size:.6rem;letter-spacing:.06em;margin:.4rem 0 0;opacity:.48;text-align:right;text-transform:lowercase}.ctx-database[hidden]{display:none}.ctx-guess{align-items:center;background:color-mix(in srgb,var(--line) 45%,var(--card));border-radius:.5rem;display:flex;gap:.55rem;justify-content:space-between;min-height:2.05rem;overflow:hidden;padding:.26rem .6rem;position:relative}.ctx-fill{background:color-mix(in srgb,#e0533f 36%,var(--card));border-radius:inherit;inset:0 auto 0 0;position:absolute;transition:width .22s ease;width:0}.ctx-word{align-items:center;display:flex;font-size:.875rem;font-weight:700;gap:.4rem;min-width:0;overflow:hidden;position:relative}.ctx-word-label{overflow:hidden;text-overflow:ellipsis}.ctx-hint-badge,.ctx-best-badge{background:transparent;border:0;border-radius:0;color:color-mix(in srgb,var(--ink) 62%,transparent);flex:0 0 auto;font-size:.58rem;font-weight:800;letter-spacing:.07em;line-height:1;padding:.15rem 0;text-transform:uppercase}.ctx-guess.is-entering{animation:ctx-row-enter .42s cubic-bezier(.2,.8,.2,1) both}.ctx-guess.is-entering .ctx-fill{animation:ctx-meter-enter .62s 80ms cubic-bezier(.2,.8,.2,1) both;transform-origin:left center}.ctx-guess.is-new-best{animation:ctx-row-enter .42s cubic-bezier(.2,.8,.2,1) both,ctx-best-glow .9s .12s ease-out both}.ctx-guess>b{font-size:.82rem;font-variant-numeric:tabular-nums;position:relative;text-align:right}.ctx-guess.warm .ctx-fill{background:color-mix(in srgb,#d97706 40%,var(--card))}.ctx-guess.hot .ctx-fill{background:color-mix(in srgb,var(--maybe) 55%,var(--card))}.ctx-guess.near .ctx-fill,.ctx-guess.hit .ctx-fill{background:color-mix(in srgb,var(--win) 52%,var(--card))}.ctx-result{background:transparent;border:0;border-radius:0;border-top:1px solid var(--line);margin:.75rem 0 0;max-width:none;padding:.8rem .25rem}.ctx-result:not([hidden]){display:flex}.ctx-result:not([hidden]){animation:ctx-result-enter .44s cubic-bezier(.2,.8,.2,1) both}.ctx-again{display:block;margin:1rem auto 0}.ctx-again[hidden]{display:none}.ctx-loading{align-items:center;background:color-mix(in srgb,var(--bg) 92%,transparent);display:flex;font-size:.9rem;gap:.6rem;inset:0;justify-content:center;position:absolute;z-index:3}.ctx-loading[hidden]{display:none}.ctx-loading span{animation:ctx-spin .8s linear infinite;border:2px solid var(--line);border-radius:50%;border-top-color:var(--win);height:1.1rem;width:1.1rem}.ctx-confirm{background:var(--card);border:1px solid var(--line);border-radius:.9rem;color:var(--ink);margin:auto;max-width:min(25rem,calc(100vw - 2rem));padding:0;width:100%}.ctx-confirm::backdrop{background:#0000007a;backdrop-filter:blur(1.5px)}.ctx-confirm-inner{padding:1.15rem}.ctx-confirm-kicker{color:var(--muted);font-size:.68rem;font-weight:800;letter-spacing:.1em;margin:0 0 .15rem;text-transform:uppercase}.ctx-confirm h2{font-size:1.15rem;margin:0 0 .35rem}.ctx-confirm p:not(.ctx-confirm-kicker){color:var(--muted);font-size:.9rem;margin:0}.ctx-confirm-actions{display:flex;gap:.55rem;justify-content:flex-end;margin-top:1rem}.ctx-confirm-accept{background:#b42318;color:#fff}.ctx-card-dialog{background:var(--card);border:1px solid var(--line);border-radius:1rem;box-shadow:0 18px 50px #00000047;color:var(--ink);max-height:calc(100dvh - 1.5rem);max-width:min(46rem,94vw);overflow:hidden;padding:.875rem;width:max-content}.ctx-card-dialog[open]{animation:ctx-dialog-enter .26s cubic-bezier(.2,.8,.2,1) both}.ctx-card-dialog::backdrop{animation:ctx-backdrop-enter .22s ease-out both;background:#00000080}.ctx-card-dialog img{aspect-ratio:4 / 5;background:#fbfaf6;border:1px solid var(--line);border-radius:.625rem;display:block;height:auto;margin:0 auto;max-height:calc(100dvh - 9rem);max-width:100%;object-fit:contain;width:auto}.ctx-card-hint{color:var(--muted);font-size:.75rem;margin:.625rem 0 0}.ctx-card-actions{display:flex;gap:.5rem;justify-content:flex-end;margin-top:.75rem}@keyframes ctx-spin{to{transform:rotate(360deg)}}@keyframes ctx-row-enter{0%{opacity:0;transform:translateY(-.5rem) scale(.985)}to{opacity:1;transform:none}}@keyframes ctx-meter-enter{0%{transform:scaleX(0)}to{transform:scaleX(1)}}@keyframes ctx-rank-pop{45%{color:var(--win);transform:translateY(-1px) scale(1.16)}}@keyframes ctx-best-glow{35%{filter:brightness(1.14)}}@keyframes ctx-result-enter{0%{opacity:0;transform:translateY(.5rem)}to{opacity:1;transform:none}}@keyframes ctx-dialog-enter{0%{opacity:0;transform:translateY(.75rem) scale(.975)}to{opacity:1;transform:none}}@keyframes ctx-backdrop-enter{0%{opacity:0}to{opacity:1}}@media(max-width:34rem){.ctx-heading{align-items:flex-end}.ctx-summary{gap:.75rem}.ctx-controls{align-items:flex-start;gap:.75rem}.ctx-card-dialog{max-width:calc(100vw - 1rem);padding:.625rem}.ctx-card-dialog img{max-height:calc(100dvh - 8rem)}.ctx-card-actions .button{flex:1}}@media(prefers-reduced-motion:reduce){.ctx-summary b.is-updating,.ctx-guess.is-entering,.ctx-guess.is-entering .ctx-fill,.ctx-guess.is-new-best,.ctx-result:not([hidden]),.ctx-card-dialog[open],.ctx-card-dialog::backdrop{animation:none}}.ctx-pending{align-items:center;background:color-mix(in srgb,var(--ctx-accent, var(--accent)) 7%,var(--card));border:1px solid var(--line);border-radius:.625rem;display:flex;gap:.75rem;margin:.5rem 0 0;padding:.5rem .75rem}.ctx-pending[hidden]{display:none}.ctx-pending-word{font-weight:700}.ctx-pending-track{background:var(--soft);border-radius:9999px;flex:1;height:.375rem;overflow:hidden;position:relative}.ctx-pending-sweep{animation:ctx-pending-sweep .7s ease-in-out infinite;background:linear-gradient(90deg,transparent,var(--win),transparent);display:block;height:100%;width:40%}@keyframes ctx-pending-sweep{0%{transform:translate(-100%)}to{transform:translate(250%)}}@media(prefers-reduced-motion:reduce){.ctx-pending-sweep{animation:none;background:var(--win);width:100%}}.ctx-reveal .ctx-confirm-inner{text-align:center}.ctx-reveal-word{font-size:1.6rem;font-weight:800;letter-spacing:.04em;margin:.15rem 0 .3rem;text-transform:uppercase}.ctx-reveal-copy{color:var(--muted);font-size:.9rem;margin:0 0 .9rem}.ctx-reveal .ctx-confirm-actions{justify-content:center}
