:root{--xp-fill:#9fe1cb;--xp-track:#e1f5ee;--xp-border:#5dcaa5;--xp-text:#085041;--xp-shield-bg:#e1f5ee;--xp-shield-border:#5dcaa5;--xp-radius:999px;--xp-font-display:Georgia, "Times New Roman", serif;--badge-radius:12px;--badge-border-width:1px;--badge-bg:var(--xp-shield-bg);--badge-border:var(--xp-shield-border);--badge-text:var(--xp-text);--badge-font:var(--xp-font-display);--badge-off:#9aa0a6;--badge-glow:0 0 10px var(--xp-border);--confetti-1:#9fe1cb;--confetti-2:#f5d98a;--confetti-3:#f4b6a6;--confetti-4:#b9c8f2}.xp-bar{color:var(--xp-text);align-items:center;gap:8px;display:flex;position:relative}.xp-level{font-family:var(--xp-font-display);white-space:nowrap;font-size:.85rem}.xp-shield{background:var(--xp-shield-bg);border:var(--badge-border-width) solid var(--xp-shield-border);border-radius:var(--badge-radius);flex:none;padding:2px 10px}.xp-track{background:var(--xp-track);border:var(--badge-border-width) solid var(--xp-border);border-radius:var(--xp-radius);flex:auto;height:10px;overflow:hidden}.xp-fill{background:var(--xp-fill);border-radius:inherit;height:100%;transition:width .4s ease-out;display:block}.xp-bar[data-calm=true] .xp-fill{transition-duration:1.2s}.xp-gains{pointer-events:none;position:absolute;top:-18px;right:0}.xp-gain{font-size:.8rem;font-weight:800;animation:1.2s ease-out forwards xp-rise;display:block}.xp-gain em{font-style:normal;font-weight:700}@keyframes xp-rise{0%{opacity:0;transform:translateY(6px)}20%{opacity:1}to{opacity:0;transform:translateY(-10px)}}@media (prefers-reduced-motion:reduce){.xp-fill{transition-duration:1.2s}.xp-gain{animation:none}}.cp-path{color:var(--xp-text);align-items:center;gap:8px;display:flex}.cp-label{white-space:nowrap;flex:none;font-size:.7rem;font-weight:800}.cp-dots{gap:4px;margin:0;padding:0;list-style:none;display:flex}.cp-dots li{border-radius:var(--badge-radius);border:var(--badge-border-width) solid var(--xp-border);background:var(--xp-track);place-items:center;width:20px;height:20px;font-size:.7rem;display:grid}.cp-dots li[data-state=done]{background:var(--xp-fill)}.cp-dots li[data-state=now]{background:#fff;border-width:2px}.cp-dots li[data-state=next]{opacity:.55}.cel-level{place-items:center;display:grid}.cel-card{text-align:center;color:var(--xp-text);background:var(--xp-shield-bg);border:var(--badge-border-width) solid var(--xp-shield-border);border-radius:var(--badge-radius);padding:24px 36px;position:relative}.cel-card h2{font-family:var(--xp-font-display);margin:0;font-size:2.6rem}.cel-next{font-weight:700}.cel-confetti{pointer-events:none;position:absolute;inset:0;overflow:hidden}.cel-confetti i{border-radius:2px;width:10px;height:14px;animation:2.4s ease-in forwards cel-fall;position:absolute;top:-12px}@keyframes cel-fall{to{opacity:.8;transform:translateY(105vh)rotate(540deg)}}.cel-toast{z-index:20;color:var(--xp-text);background:var(--xp-shield-bg);border:var(--badge-border-width) solid var(--xp-shield-border);border-radius:var(--badge-radius);pointer-events:none;margin:0;padding:6px 14px;position:fixed;top:64px;left:50%;transform:translate(-50%)}@media (prefers-reduced-motion:reduce){.cel-confetti{display:none}}.bd-grid,.bd-latest{flex-wrap:wrap;gap:8px;margin:0;padding:0;list-style:none;display:flex}.bd-tile{text-align:center;width:92px;color:var(--badge-text);background:var(--badge-bg);border:var(--badge-border-width) solid var(--badge-border);border-radius:var(--badge-radius);flex-direction:column;align-items:center;padding:8px 6px;display:flex}.bd-tile[data-earned=true]{box-shadow:var(--badge-glow)}.bd-tile[data-earned=false]{border-color:var(--badge-off);background:0 0}.bd-tile[data-earned=false] .bd-icon{opacity:.45;filter:grayscale()}.bd-icon{font-size:1.8rem}.bd-name{font-family:var(--badge-font);font-size:.8rem}.bd-hint,.bd-prog{font-size:.65rem}.bd-latest .bd-tile{width:64px;padding:4px}.bd-latest .bd-name{font-size:.65rem}:root{--star-on:#ffb627;--star-off:var(--badge-off)}.cm-map{color:var(--badge-text);flex-direction:column;align-items:center;gap:10px;display:flex}.cm-cards{flex-wrap:wrap;justify-content:center;gap:8px;margin:0;padding:0;list-style:none;display:flex}.cm-card{text-align:center;background:var(--badge-bg);border:var(--badge-border-width) solid var(--badge-border);border-radius:var(--badge-radius);flex-direction:column;align-items:center;gap:4px;width:104px;padding:8px 6px;display:flex}.cm-card[data-state=next]{border-color:var(--badge-off);opacity:.6;background:0 0}.cm-icon{font-size:1.8rem}.cm-title{font-family:var(--badge-font);font-size:.75rem;line-height:1.15}.cm-stars{gap:1px;font-size:1rem;display:flex}.cm-stars [data-on=false]{filter:grayscale();opacity:.3}.cm-stars [data-on=true]{text-shadow:0 0 6px var(--star-on)}.cm-check{color:var(--xp-text);font-weight:800}.cm-play,.cm-all{min-width:44px;min-height:44px;font:inherit;color:var(--xp-text);background:var(--xp-fill);border:var(--badge-border-width) solid var(--xp-border);border-radius:var(--xp-radius);cursor:pointer;padding:4px 14px;font-weight:800}.cm-play:focus-visible{outline:3px solid var(--xp-text);outline-offset:2px}.cm-all:focus-visible{outline:3px solid var(--xp-text);outline-offset:2px}.cm-dialog{max-height:90vh;overflow-y:auto}.sl-go .cm-map{align-items:flex-start}.sl-go .cm-card{width:88px;padding:6px 4px}.sl-go .cm-cards{justify-content:flex-start}