.player-rewards{color:var(--ink);font-size:.875rem}.player-rewards button{cursor:pointer;font:inherit;color:inherit}.player-rewards :is(button,input,a):focus-visible{outline:3px solid var(--focus);outline-offset:3px}.player-rewards button:disabled{opacity:.5;cursor:default}.player-rewards h3{margin:0 0 12px;font-size:1rem}.reward-muted{color:var(--muted);font-size:.78rem;line-height:1.55}.reward-membership{font-size:.7rem;font-weight:800}.reward-hero{display:flex;align-items:center;gap:16px;background:var(--paper);border:1px solid var(--soft-line);border-radius:18px;padding:18px}.reward-hero strong{font-size:2rem;line-height:1.1;letter-spacing:-.04em}.reward-hero p{margin:4px 0}.reward-flame{display:grid;place-items:center;flex:none;width:62px;height:62px;border-radius:50%;color:var(--accent-dark);background:#fbe6d9}.reward-hero small{color:var(--muted)}.reward-week{display:flex;justify-content:space-between;gap:4px;margin:18px 0}.reward-week>span{display:grid;justify-items:center;gap:6px;font-size:.7rem;color:var(--muted)}.reward-week i{display:grid;place-items:center;width:28px;height:28px;border:1px solid var(--line);border-radius:50%}.reward-week .finished i{background:var(--ink);color:var(--paper);border-color:var(--ink)}.reward-week .today i{outline:2px solid var(--accent);outline-offset:2px}.reward-numbers{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));text-align:center;gap:8px;padding:4px 0 18px;border-bottom:1px solid var(--soft-line)}.reward-numbers span,.reward-numbers strong{display:block}.reward-numbers strong{font-size:1.5rem}.reward-numbers span{color:var(--muted);font-size:.72rem}.reward-tabs{display:flex;gap:4px;border-bottom:1px solid var(--line)}.reward-tabs button{flex:1;min-height:44px;padding:8px 3px;border:0;border-bottom:3px solid transparent;background:none;font-size:.78rem;font-weight:750}.reward-tabs [aria-selected=true]{color:var(--accent-dark);border-bottom-color:var(--accent)}.reward-collection{animation:reward-fade .14s ease-out}.reward-badges{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));list-style:none;margin:0;padding:0;gap:14px 4px}.reward-badges li{min-width:0}.reward-badges button{width:100%;min-width:0;display:grid;justify-items:center;gap:5px;padding:8px 2px;border:0;border-radius:10px;background:none;text-align:center}.reward-badges strong{font-size:.72rem;line-height:1.3;overflow-wrap:anywhere}.reward-badges span:not(.reward-medal){font-size:.72rem}.reward-badges small{color:var(--muted);font-size:.65rem}.reward-medal{position:relative;display:grid;place-items:center;flex:none;width:62px;height:62px;border:2px solid var(--line);outline:1px solid var(--soft-line);outline-offset:-6px;border-radius:50%;color:var(--muted);background:var(--paper)}.reward-medal>span{font-size:1.5rem!important;font-weight:750}.reward-medal.long-number>span{font-size:1rem!important}.reward-medal.earned{color:var(--accent-dark);background:#fbe6d9;border-color:var(--accent);box-shadow:0 3px 0 #ddb495}.reward-medal b,.reward-medal i{position:absolute;bottom:-3px;display:grid;place-items:center;width:22px;height:22px;border-radius:50%}.reward-medal i{left:-3px;border:1px solid;background:inherit}.reward-medal b{right:-3px;background:var(--ink);color:var(--paper);border:2px solid white}.reward-next{background:var(--paper);border-radius:12px;padding:14px;margin:20px 0}.reward-next button{width:100%;min-height:44px;display:grid;gap:8px;border:0;background:none;padding:7px 0;text-align:left;font-size:.75rem}.reward-next button>span:first-child{display:flex;justify-content:space-between;gap:8px}.reward-meter{display:block;height:6px;background:var(--soft-line);border-radius:8px;overflow:hidden}.reward-meter i{display:block;height:100%;background:var(--accent)}.reward-lower{display:grid;grid-template-columns:1fr 1fr;gap:22px;margin-top:22px}.reward-level{padding:10px 0;border-bottom:1px solid var(--soft-line)}.reward-level p{margin:5px 0 0;font-size:.75rem;color:var(--muted)}.reward-chart>div{display:flex;gap:10px;align-items:center;margin:12px 0;font-size:.75rem}.reward-chart>div>div{flex:1}.reward-chart i{display:block;height:18px;background:var(--soft-line);border-radius:3px}.reward-chart .has-count{background:var(--success-strong)}.reward-detail{display:grid;justify-items:center;text-align:center;padding:12px 0}.reward-detail .reward-medal{width:96px;height:96px;margin:4px 0 20px}.reward-detail .reward-medal>span{font-size:2.3rem!important}.reward-detail .reward-medal.long-number>span{font-size:1.6rem!important}.reward-detail p{max-width:34em}.reward-detail h3{font-size:1.35rem;margin-bottom:6px}.reward-earned{color:var(--success-strong)}.player-rewards .reward-primary,.player-rewards .reward-secondary{min-height:44px;padding:9px 16px;border:1px solid var(--line);border-radius:10px;background:var(--paper);font-weight:750;transition:background-color .14s ease,border-color .14s ease}.player-rewards .reward-primary{background:var(--ink);border-color:var(--ink);color:var(--paper)}.player-rewards .full{width:100%}.reward-name label{display:grid;gap:7px;font-weight:700}.reward-name input{width:100%;min-width:0;min-height:48px;padding:10px;border:1px solid var(--line);border-radius:10px;background:var(--surface-strong);color:var(--ink)}.reward-name-preview{display:flex;align-items:center;gap:12px;margin:18px 0;overflow-wrap:anywhere}.reward-name-preview span{display:grid;place-items:center;flex:none;width:38px;height:38px;border-radius:50%;background:var(--ink);color:var(--paper)}.reward-name-actions{display:flex;justify-content:flex-end;gap:10px}.reward-summary{display:flex;align-items:center;gap:16px;padding:14px;margin:16px 0;border:1px solid var(--line);border-radius:14px;text-align:left;background:var(--paper)}.reward-summary p{font-size:.75rem;margin:5px 0 9px}.reward-notice{position:fixed;z-index:25;left:16px;right:16px;top:max(16px,env(safe-area-inset-top));display:flex;align-items:center;gap:12px;max-width:420px;margin:auto;background:var(--ink);color:var(--paper);border-radius:14px;padding:14px;box-shadow:0 6px 18px var(--shadow);animation:reward-enter .2s cubic-bezier(.22,1,.36,1)}.reward-notice .reward-medal{width:44px;height:44px}.reward-notice .reward-medal>span{font-size:1rem!important}.reward-notice .reward-medal.long-number>span{font-size:.85rem!important}.reward-notice p{margin:0 0 4px;font-size:.8rem}.player-rewards .reward-notice-link{min-height:32px;padding:4px 0;border:0;background:none;color:var(--paper);text-decoration:underline;text-underline-offset:3px}.player-rewards .reward-dismiss{min-width:36px;height:44px;margin-left:auto;border:0;background:none;color:var(--paper)}.reward-particles{position:absolute;inset:0;pointer-events:none;overflow:visible}.reward-particles i{position:absolute;left:50%;top:50%;width:4px;height:6px;background:#ffb086;animation:reward-particle .7s ease-out both;transform:rotate(calc(var(--particle-index)*45deg))}.reward-medal.reveal{animation:reward-reveal .36s cubic-bezier(.22,1,.36,1)}@keyframes reward-fade{0%{opacity:.5}to{opacity:1}}@keyframes reward-enter{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}@keyframes reward-reveal{0%{transform:scale(.94)}65%{transform:scale(1.035)}to{transform:none}}@keyframes reward-particle{0%{opacity:1;transform:rotate(calc(var(--particle-index)*45deg)) translateY(0)}to{opacity:0;transform:rotate(calc(var(--particle-index)*45deg)) translateY(-72px)}}@media(min-width:700px){.reward-notice{top:auto;left:auto;bottom:24px;right:24px}.modal:has(.player-rewards){width:min(100%,640px)}}@media(max-width:550px){.reward-lower{grid-template-columns:1fr;gap:18px}}@media(max-width:359px){.reward-badges{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(hover:hover) and (pointer:fine){.reward-badges button:not(:disabled):hover,.reward-tabs button:not(:disabled):hover{background:var(--paper)}.player-rewards .reward-secondary:not(:disabled):hover{background:#eee6d9;border-color:var(--ink)}.player-rewards .reward-primary:not(:disabled):hover{background:#414146}}@media(prefers-reduced-motion:reduce){.player-rewards *,.player-rewards :before{animation:none!important;transition:none!important}.reward-particles{display:none}}@keyframes hint-outline{50%{outline:3px solid #d36a29;outline-offset:-3px}}