.xp-wheel{width:220px;height:220px;position:relative;margin:0 auto}.xp-wheel svg{transform:rotate(-90deg);filter:drop-shadow(0 8px 16px rgba(255,200,0,.3))}.xp-wheel circle{fill:none;stroke-width:20}.xp-wheel .track{stroke:#fef3c7}.xp-wheel .fill{stroke:var(--duo-warning);stroke-linecap:round;stroke-dasharray:616;stroke-dashoffset:185;animation:xpfill 2s ease-out}@keyframes xpfill{0%{stroke-dashoffset:616}}.xp-wheel .cx{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center}.xp-wheel .cx .n{font-size:48px;font-weight:900;color:var(--neutral-800);letter-spacing:-.02em}.xp-wheel .cx .l{font-size:12px;color:var(--fg-3);text-transform:uppercase;letter-spacing:.08em;font-weight:800;margin-top:2px}.heart-row{display:inline-flex;gap:10px;padding:24px;background:#fff;border:solid var(--duo-error);border-width:3px 3px 8px;border-radius:20px}.heart-row img{width:44px;height:44px}.heart-row img.gone{filter:grayscale(1) opacity(.25)}.streak-hero{position:relative;display:inline-block}.streak-hero .flame{font-size:140px;filter:drop-shadow(0 16px 32px rgba(255,150,0,.4));line-height:1}.streak-hero .num{position:absolute;top:52%;left:50%;transform:translate(-50%,-50%);color:#fff;font-size:42px;font-weight:900;text-shadow:0 2px 6px rgba(0,0,0,.35);letter-spacing:-.02em}.race-track{max-width:980px;margin:0 auto;background:#fff;border:solid var(--duo-gray-light);border-width:3px 3px 6px;border-radius:22px;padding:24px 26px 20px}.race-track__lanes{display:flex;flex-direction:column;gap:10px;padding:8px 0 16px;border-bottom:2px dashed var(--duo-gray-light);margin-bottom:14px;background-image:radial-gradient(circle,#f1f5f9 1px,transparent 0);background-size:28px 28px;background-position:right -4px top 50%;background-repeat:repeat-x}.race-lane{display:grid;grid-template-columns:150px 1fr 64px;gap:10px;align-items:center;padding:6px 10px;border-radius:10px}.race-lane--me{background:#f0fdf4;outline:2px solid var(--duo);outline-offset:-2px}.race-lane__who{font-size:14px;font-weight:800;color:var(--neutral-800);display:flex;align-items:center;gap:6px;flex-wrap:wrap}.race-lane__bar{position:relative;height:28px;border-radius:999px;background:#f1f5f9;border:2px solid #e2e8f0;overflow:hidden}.race-lane__fill{height:100%;border-radius:999px;display:flex;align-items:center;justify-content:flex-end;padding:0 12px;font-size:11px;font-weight:900;color:#fff;letter-spacing:.01em;white-space:nowrap;transition:width .6s ease}.race-lane__rank{font-size:13px;font-weight:900;color:var(--duo-gray);text-align:right;letter-spacing:-.01em}.race-track__foot{display:flex;gap:18px;flex-wrap:wrap;justify-content:space-between;font-size:13px;font-weight:700;color:var(--fg-1);padding-top:4px}.race-track__foot strong{color:var(--neutral-800);font-weight:900}@media (max-width:720px){.race-lane{grid-template-columns:100px 1fr 48px}.race-lane__who{font-size:12px}}.me-chip{display:inline-block;background:var(--duo);color:#fff;font-weight:900;font-size:9px;letter-spacing:.08em;padding:2px 6px;border-radius:4px}.quest{gap:14px;padding:14px;background:var(--bg-2);border-radius:14px;border:2px solid var(--duo-gray-light)}.quest,.quest__icon{display:flex;align-items:center}.quest__icon{width:44px;height:44px;border-radius:12px;justify-content:center;color:#fff;font-weight:900;font-size:20px;flex-shrink:0}.quest__bar{height:10px;background:var(--duo-gray-light);border-radius:999px;overflow:hidden;margin-top:6px}.quest__fill{height:100%;border-radius:999px}.quest__meta{display:flex;justify-content:space-between;margin-top:4px;font-size:11px;color:var(--fg-3);font-weight:700}.shop-item{padding:18px 14px;border:solid var(--duo-gray-light);border-width:2px 2px 4px;border-radius:14px;text-align:center;background:#fff}.shop-item__img{height:52px;display:flex;align-items:center;justify-content:center;font-size:44px}.shop-item__name{font-weight:900;font-size:13px;color:var(--neutral-800);margin-top:4px}.shop-item__price{display:inline-flex;align-items:center;gap:4px;background:#fef3c7;border:1px solid #fde68a;color:#b45309;font-weight:900;font-size:12px;padding:4px 8px;border-radius:999px;margin-top:8px}