.emoji-phrase{--bd:#1d1630;--good:#3ccf6e;--hint:#9d7bff;--bad:#e8364f;--bad-bg:#ffe1e6}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .emoji-phrase{--bd:#000;--bad-bg:#4a1f2c}}:root[data-theme=dark] .emoji-phrase{--bd:#000;--bad-bg:#4a1f2c}.emoji-phrase .epboard{border:3px solid var(--border);background:var(--card);-webkit-user-select:none;user-select:none;border-radius:18px;justify-items:center;gap:18px;padding:18px 8px 26px;display:grid}.emoji-phrase .eprounds{gap:8px;display:flex}.emoji-phrase .epdot{border:2.5px solid var(--bd);background:var(--card);width:38px;height:38px;color:var(--ink);font-family:var(--display);opacity:.55;border-radius:50%;font-size:16px;font-weight:700}.emoji-phrase .epdot.on{opacity:1;background:var(--c);color:#1d1630;box-shadow:0 3px 0 var(--bd)}.emoji-phrase .epdot.done{opacity:1;background:var(--good);color:#fff}.emoji-phrase .epdot.done.on{box-shadow:0 3px 0 var(--bd)}.emoji-phrase .epemoji{letter-spacing:.06em;text-align:center;min-height:1.2em;font-family:Apple Color Emoji,Segoe UI Emoji,Noto Color Emoji,sans-serif;font-size:clamp(40px,9vw,64px);line-height:1.2}.emoji-phrase .epwords{flex-wrap:wrap;justify-content:center;gap:12px 16px;max-width:560px;display:flex}.emoji-phrase .epwords.shake{animation:.4s ep-shake}@keyframes ep-shake{20%,60%{transform:translate(-6px)}40%,80%{transform:translate(6px)}}.emoji-phrase .epw{gap:4px;display:flex}.emoji-phrase .ept{aspect-ratio:.86;border:2.5px solid color-mix(in srgb,var(--muted) 40%,transparent);background:var(--card);width:clamp(26px,6.4vw,36px);font-family:var(--display);color:var(--ink);cursor:pointer;border-radius:8px;place-items:center;font-size:clamp(16px,4.2vw,22px);font-weight:700;line-height:1;display:grid}.emoji-phrase .ept.full{border-color:var(--bd)}.emoji-phrase .ept.cur{border-color:var(--bd);box-shadow:inset 0 -4px 0 var(--c)}.emoji-phrase .ept.fixed{cursor:default;background:0 0;border:0;width:auto;min-width:8px;font-size:clamp(18px,4.6vw,24px)}.emoji-phrase .epw.ok .ept:not(.fixed){background:var(--good);border-color:var(--bd);color:#fff;cursor:default}.emoji-phrase .epw.hinted .ept:not(.fixed){background:var(--hint);border-color:var(--bd);color:#fff;cursor:default}.emoji-phrase .epw.bad .ept:not(.fixed){background:var(--bad-bg);border-color:var(--bad);color:var(--bad)}.emoji-phrase .epw.ok,.emoji-phrase .epw.hinted{animation:.3s ep-pop}@keyframes ep-pop{50%{transform:scale(1.06)}}@media (prefers-reduced-motion:reduce){.emoji-phrase .epwords.shake,.emoji-phrase .epw.ok,.emoji-phrase .epw.hinted{animation:none}}.emoji-phrase .goal{color:var(--muted);text-align:center;min-height:21px;font-size:14px}.emoji-phrase .goal b{color:var(--ink);font-family:var(--display);font-size:16px}.emoji-phrase .epkeys{-webkit-user-select:none;user-select:none;gap:6px;display:grid}.emoji-phrase .epkrow{justify-content:center;gap:4px;display:flex}.emoji-phrase .epk{border:2.5px solid var(--bd);background:var(--card);min-width:0;max-width:44px;height:50px;color:var(--ink);font-family:var(--display);box-shadow:0 3px 0 var(--bd);touch-action:manipulation;border-radius:9px;flex:1;font-size:17px;font-weight:700}.emoji-phrase .epk:active{box-shadow:0 1px 0 var(--bd);transform:translateY(2px)}.emoji-phrase .epk.wide{flex:1.6;max-width:72px;font-size:14px}.emoji-phrase .epcheck{border:2.5px solid var(--bd);background:var(--c);color:#1d1630;height:48px;font-family:var(--display);box-shadow:0 3px 0 var(--bd);touch-action:manipulation;border-radius:12px;font-size:18px;font-weight:700}.emoji-phrase .epcheck:active{box-shadow:0 1px 0 var(--bd);transform:translateY(2px)}.emoji-phrase .tools{grid-template-columns:repeat(3,1fr)}@media (width<=560px){.emoji-phrase .epboard{gap:14px;padding:14px 6px 20px}.emoji-phrase .epwords{gap:10px 12px}.emoji-phrase .epw{gap:3px}.emoji-phrase .epk{height:46px;padding:0;font-size:16px}}.emoji-phrase .ht-ex{justify-items:center;gap:8px;display:grid}.emoji-phrase .ht-ex .epemoji{font-size:34px}.emoji-phrase .ht-ex .epwords{gap:8px 18px}.emoji-phrase .ht-ex .epw{gap:3px}.emoji-phrase .ht-ex .ept{cursor:default;color:#1d1630;background:#fff;border-width:2px;border-radius:5px;width:22px;font-size:13px}.emoji-phrase .ht-ex .ept.fixed{background:0 0;width:auto}
