/* A single game-feel layer: finite motion, sharp assets, calm surfaces. */
:root{--dm-game-ease:cubic-bezier(.2,.8,.2,1);--dm-game-spring:cubic-bezier(.2,1.35,.4,1)}
button:not(:disabled),a.button,a.dm-btn{touch-action:manipulation;-webkit-tap-highlight-color:transparent;transition:scale 130ms var(--dm-game-ease),transform 200ms var(--dm-game-ease),box-shadow 180ms ease,background-color 180ms ease}
button:not(:disabled):active,a.button:active,a.dm-btn:active{scale:.965}
button:disabled{cursor:not-allowed}
:is(button,a,input,select,textarea):focus-visible{outline:2px solid var(--dm-primary,#476756);outline-offset:4px}
/* Press scale composes with board transforms and never moves a thumb controller. */
:is(.touch-controls,.touch-actions,.skill-controls,.driving-controls) button:active{scale:.98}
@media(hover:hover) and (pointer:fine){
 :is(.discover-card,.recent-card,.game-card,.activity-card):hover .game-cover>img{transform:scale(1.025)}
 :is(.discover-card,.recent-card,.game-card,.activity-card):hover .game-cover{box-shadow:inset 0 0 0 1px #38514312}
}
.game-cover>img{transition:transform 420ms var(--dm-game-ease)}
.game-cover{border:1px solid #344c3b0b}
:is(.word-cell,.word-slots span,.scramble-letters span,.zen-cell,.tile,.grid-cell){transition:background-color 180ms ease,color 180ms ease,box-shadow 180ms ease}
:is(.word-cell,.tile,.grid-cell).selected{box-shadow:inset 0 0 0 2px var(--dm-primary,#476756)}
.dm-feedback-pop :is(.word-tags .found,.zen-cell.found,.bond-outcome.is-match){animation:dm-tile-settle 340ms var(--dm-game-spring) both}
:is(.bond-track,.vital,.energy-track,.goal-track,.atlas-round-progress) :is(span,b,i){transition:width 240ms var(--dm-game-ease),background-color 200ms ease}
.dm-feedback-pop{animation:dm-feedback 400ms var(--dm-game-ease)}
.dm-reward{--reward-ink:#344b40;--reward-paper:#f1f5ef;--reward-line:#d8e2d7;position:relative;display:flex;align-items:center;gap:20px;flex-wrap:wrap;padding:22px 24px;margin:24px auto 12px;width:min(100%,620px);box-sizing:border-box;border:1px solid var(--reward-line);border-radius:18px;background:var(--reward-paper);color:var(--reward-ink);text-align:left;isolation:isolate;font-family:Inter,system-ui,sans-serif}
.dm-reward-art{position:relative;display:grid;place-items:center;min-width:94px;min-height:94px;flex-shrink:0}
.dm-medallion{display:grid;place-items:center;width:86px;height:86px;background:#fffbf0;border:1px solid #e5d9ba;border-radius:50%;box-shadow:inset 0 0 0 6px #f7efd9,inset 0 0 0 7px #e6dcc0,0 5px 12px #5c54330a;color:#a7873b}
.dm-medallion>svg{width:47px;height:47px;overflow:visible}
.dm-reward-copy{flex:1;min-width:160px}
.dm-reward-kicker{display:block;font-size:9px;font-weight:650;letter-spacing:.13em;margin-bottom:7px;color:#5b6c60}
.dm-reward-copy>strong{display:block;font-size:22px;line-height:1.18;letter-spacing:-.035em;font-weight:600}
.dm-reward-copy>p{font-size:12px!important;line-height:1.55!important;color:#5b6c60!important;margin:8px 0 0!important;max-width:45ch}
.dm-stars{display:flex;align-items:center;gap:7px;min-height:80px}
.dm-star{display:inline-flex;width:40px;height:40px;transform:rotate(-9deg)}
.dm-star:nth-child(2){width:53px;height:53px;transform:translateY(-9px)}
.dm-star:nth-child(3){transform:rotate(9deg)}
.dm-star svg{width:100%;height:100%;overflow:visible}
.dm-star.is-empty{filter:grayscale(1);opacity:.33}
.is-earned .dm-star.is-filled{animation:dm-star-pop 620ms var(--dm-game-spring) both;animation-delay:calc(120ms + var(--dm-order)*160ms)}
.is-earned .dm-medallion{animation:dm-medal-pop 720ms var(--dm-game-spring) both}
.is-earned .dm-medallion svg{animation:dm-earned-glow 1.2s ease-out 1}
.dm-burst{position:absolute;inset:0;pointer-events:none;z-index:-1;overflow:visible}
.dm-burst i{position:absolute;left:50%;top:50%;width:5px;height:7px;border-radius:2px;background:var(--dm-colour);animation:dm-particle 820ms var(--dm-game-ease) both;animation-delay:var(--dm-delay)}
.dm-unlock{border-top:1px solid var(--reward-line);padding-top:15px;display:flex;align-items:center;gap:12px;width:100%;font-size:12px}
.dm-unlock>svg{width:29px;height:29px;flex-shrink:0;color:#a7873b}
.dm-unlock>span{display:grid;gap:4px}.dm-unlock small{font-size:8px;letter-spacing:.12em}.dm-unlock b{font-size:13px;font-weight:600}.dm-unlock span span{font-size:10px;color:#5b6c60}
.dm-reward--mono{--reward-ink:#303331;--reward-paper:#f4f4f1;--reward-line:#dbddd8}
.dm-reward--mono :is(.dm-reward-art,.dm-unlock>svg){filter:grayscale(1)}
.dm-reward--mono .dm-reward-copy>p,.dm-reward--mono .dm-reward-kicker{color:#60645f!important}
/* Result cards fit both small phones and short landscape screens. */
dialog:has(.dm-reward){max-height:calc(100dvh - 24px);overflow-y:auto;overscroll-behavior:contain}
.wr-finish-body>.dm-reward{margin-top:18px;padding:15px;gap:12px}
.wr-finish-body>.dm-reward .dm-reward-art{min-height:64px;min-width:64px}
.wr-finish-body>.dm-reward .dm-medallion{width:62px;height:62px}
.wr-finish-body>.dm-reward .dm-medallion svg{width:34px;height:34px}
.wr-finish-body>.dm-reward .dm-reward-copy>strong{font-size:18px}
.dm-achievements{border:1px solid var(--dm-line,#dfe4dc);border-radius:18px;background:var(--dm-surface,#fff);margin:28px 0;padding:0 24px;color:var(--dm-ink,#344b40);font-family:Inter,system-ui,sans-serif}
.dm-achievements summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:15px;padding:22px 0;min-height:44px}
.dm-achievements summary::-webkit-details-marker{display:none}.dm-achievements summary strong{font-size:22px;font-weight:550;letter-spacing:-.04em}
.dm-achievement-eyebrow{display:block;font-size:9px;letter-spacing:.13em;margin-bottom:6px;color:var(--dm-muted,#626e65)}
.dm-collection-count{display:flex;align-items:center;gap:20px;white-space:nowrap;font-size:12px;font-variant-numeric:tabular-nums}
.dm-collection-count>span{font-size:22px;font-weight:400}.dm-achievements[open] .dm-collection-count>span{rotate:45deg}
.dm-collection-note{font-size:12px!important;color:var(--dm-muted,#626e65);margin:0 0 20px!important;max-width:60ch}
.dm-badge-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.dm-badge{padding:20px 12px;display:flex;align-items:center;flex-direction:column;border:1px solid var(--dm-line,#e0e5dc);border-radius:12px;text-align:center;background:var(--dm-page,#fafbf7);min-width:0}
.dm-badge-art{width:64px;height:64px;display:grid;place-items:center;border-radius:50%;background:#f5ecd2;border:1px solid #e8dcba;color:#9c7d33;margin-bottom:14px}
.dm-badge-art svg{width:38px;height:38px}.dm-badge.is-locked .dm-badge-art{filter:grayscale(1);opacity:.45}
.dm-badge>strong{font-size:13px;font-weight:600}.dm-badge>p{font-size:11px!important;margin:6px 0 12px!important;line-height:1.4!important;color:var(--dm-muted,#626e65)}
.dm-badge-status{font-size:10px;letter-spacing:.03em;margin-top:auto}.dm-badge progress{appearance:none;height:3px;width:80%;border:0;border-radius:3px;overflow:hidden;margin-top:9px;background:#dbe3d9}.dm-badge progress::-webkit-progress-bar{background:#dbe3d9}.dm-badge progress::-webkit-progress-value{background:#6c8c77}.dm-badge progress::-moz-progress-bar{background:#6c8c77}
.dm-credits{display:inline-block;font-size:11px;padding:18px 0;text-underline-offset:3px;color:var(--dm-muted,#626e65)}
html[data-mode="dark"] .dm-reward{--reward-ink:#e0e8df;--reward-paper:#27352d;--reward-line:#465447}html[data-mode="dark"] .dm-reward-copy>p,html[data-mode="dark"] .dm-reward-kicker,html[data-mode="dark"] .dm-unlock span span{color:#b9c7b9!important}
@media(max-width:540px){.dm-reward{padding:18px 16px;gap:13px;border-radius:14px}.dm-reward-copy>strong{font-size:20px}.dm-reward-art{min-width:72px;min-height:76px}.dm-medallion{width:70px;height:70px}.dm-medallion>svg{width:40px;height:40px}.dm-star{width:30px;height:30px}.dm-star:nth-child(2){width:40px;height:40px}.dm-stars{gap:4px;min-height:65px}.dm-achievements{padding:0 16px}.dm-achievements summary strong{font-size:20px}.dm-badge-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.dm-badge{padding:16px 9px}}
@media(max-height:500px) and (orientation:landscape){.dm-reward{padding:12px 16px;margin:12px auto;gap:12px}.dm-reward-art{min-height:55px}.dm-medallion{width:54px;height:54px}.dm-medallion>svg{width:30px;height:30px}.dm-unlock{padding-top:10px}}
@keyframes dm-star-pop{0%{opacity:0;scale:.35;rotate:-15deg}65%{opacity:1;scale:1.13;rotate:3deg}100%{opacity:1;scale:1;rotate:0deg}}
@keyframes dm-medal-pop{0%{opacity:0;scale:.72;translate:0 10px}65%{opacity:1;scale:1.06}100%{opacity:1;scale:1;translate:0 0}}
@keyframes dm-earned-glow{0%,100%{filter:drop-shadow(0 0 0 #dbb85a00)}45%{filter:drop-shadow(0 0 9px #dbb85a88)}}
@keyframes dm-particle{0%{opacity:0;transform:translate(0,0) scale(.4)}15%{opacity:1}100%{opacity:0;transform:translate(var(--dm-x),var(--dm-y)) rotate(var(--dm-r)) scale(.2)}}
@keyframes dm-feedback{0%,100%{filter:brightness(1)}35%{filter:brightness(1.14)}}
@keyframes dm-tile-settle{0%{scale:.94}65%{scale:1.035}100%{scale:1}}
@media(prefers-reduced-motion:reduce){button:not(:disabled),a.button,a.dm-btn,.game-cover>img{transition:none!important}button:active,a.button:active,a.dm-btn:active{scale:1!important}.dm-reward *,.dm-feedback-pop,.word-cell,.word-tags .found,.zen-cell.found,.bond-outcome.is-match{animation:none!important;transition:none!important}.dm-burst{display:none}.game-cover>img{transform:none!important}}

#buffs,.trick-toast,.dm-reward-art{isolation:isolate}#result>.dm-reward{grid-column:1/-1}#arc-overlay .dm-reward{max-width:440px;margin:16px auto 0}.dm-achievements summary:focus-visible{outline:2px solid var(--dm-primary,#476756);outline-offset:4px}

.arc-overlay:has(.dm-reward){overflow-y:auto;align-content:safe center}.arc-overlay:has(.dm-reward) .arc-panel{margin:auto}.arc-overlay .dm-reward{padding:12px;gap:10px}.arc-overlay .dm-medallion{width:56px;height:56px}.arc-overlay .dm-reward-art{min-width:56px;min-height:56px}.arc-overlay .dm-reward-copy>strong{font-size:18px}
