/* Existing shared grant defaults retained verbatim for Gifts (#365/#369). */
.reward_banner_item{display:inline-flex;align-items:center;gap:4px;font:bold 40px/1 system-ui,sans-serif}
.reward_banner_item svg{width:140px;height:140px;flex:none}
@media(max-width:380px),(max-height:520px){.reward_banner_item{font-size:32px}.reward_banner_item svg{width:116px;height:116px}}
.reward_banner_host{position:fixed;inset:0;z-index:16000;display:grid;place-items:center;padding:12px;background:#101f1a80;backdrop-filter:blur(3px);cursor:pointer;box-sizing:border-box}.reward_banner_host[hidden]{display:none}.reward_banner{position:relative;width:min(calc(900px * var(--viewport-fit-scale,1)),calc(100vw - 24px),calc((100dvh - 70px)*11/7));aspect-ratio:11/7;outline:none;overflow:hidden}.reward_banner_error{position:fixed;bottom:12px;left:12px;width:calc(100% - 24px);color:#ffd3b5;background:#172b32;font:14px/1.4 system-ui,sans-serif;text-align:center}.reward_banner_error:empty{display:none}.reward_banner .rw-item{display:block;font:inherit}.reward_banner .rw-item svg{display:block;width:100%;height:100%;overflow:visible}.reward_banner .rw-copy{font-family:inherit;color:inherit;padding:0;border:0}.reward_banner .rw-canvas{pointer-events:none}.reward_banner[data-phase=loading] .rw-canvas{visibility:hidden}
.rw-canvas{position:absolute;width:1100px;height:700px;transform-origin:0 0;text-align:center;color:#fff0bc;font-family:Arial,Helvetica,sans-serif}.reward_banner[data-mode=simulation] .rw-canvas{color:#bdfaff;font-family:'Courier New',Courier,ui-monospace,monospace}.rw-ceremony,.rw-float,.rw-travel,.rw-impact,.rw-plate,.rw-item-drop,.rw-item-pop,.rw-effects{position:absolute;inset:0}.rw-frame{position:absolute}.rw-copy{position:absolute;margin:0;text-shadow:0 2px 3px #0008;display:flex;align-items:center;justify-content:center;line-height:1.08}.rw-title{left:165px;width:770px;top:80px;height:108px;font-weight:700}.rw-description{left:165px;width:770px;top:520px;height:90px;font-style:italic}.reward_banner[data-mode=simulation] .rw-description{font-style:normal}.rw-label{left:132px;width:242px;top:265px;height:64px;font-weight:700}.rw-quantity{left:737px;width:253px;top:254px;height:85px;font-weight:700}.rw-availability,.rw-item-name{top:378px;height:85px}.rw-availability{left:110px;width:286px}.rw-item-name{left:715px;width:297px}.rw-item{position:absolute;left:480px;top:280px;width:140px;height:140px;object-fit:contain}.rw-item-pop{transform-origin:550px 350px}.rw-plate{transform-origin:center}.rw-ceremony{transform-origin:center}.rw-iris{position:absolute;left:440px;top:240px;width:220px;height:220px;display:none}.rw-arcs{position:absolute;left:350px;top:150px;width:400px;height:400px;opacity:.8;pointer-events:none}.rw-flash,.rw-bloom{position:absolute;left:395px;top:195px;width:310px;height:310px;opacity:0;pointer-events:none}.rw-bloom{border-radius:50%;box-shadow:inset 0 0 45px #fff3a5,0 0 35px #d4e586}.rw-glow{position:absolute;left:404px;top:204px;width:292px;height:292px;opacity:0}.rw-effects{pointer-events:none}.rw-leaf,.rw-spark{position:absolute;opacity:0}.rw-phase{font-size:13px;color:#bacbc8;min-height:20px;margin:0}.rw-footnote{font-size:13px;color:#bacbc8}
@property --reward-hole{syntax:'<percentage>';inherits:false;initial-value:0%}
.reward_banner[data-mode=real] .rw-running .rw-plate{animation:reward-unfurl 800ms both}.reward_banner[data-mode=real] .rw-running .rw-item-pop{animation:reward-pop 350ms cubic-bezier(.175,.885,.32,1.275) 150ms both}.reward_banner[data-mode=real] .rw-running .rw-item-drop{animation:reward-settle 650ms 150ms both}.reward_banner[data-mode=real] .rw-running .rw-bloom{animation:reward-bloom 400ms cubic-bezier(.25,1,.5,1) 400ms both}.reward_banner[data-mode=real] .rw-running .rw-float{animation:reward-float 3000ms cubic-bezier(.445,.05,.55,.95) 800ms infinite both}.rw-running .rw-leaf{animation:reward-leaf 1600ms ease-out 500ms both}
@keyframes reward-unfurl{0%{opacity:0;transform:scaleX(0);animation-timing-function:cubic-bezier(.34,1.56,.64,1)}50%{opacity:1;transform:scaleX(1.05);animation-timing-function:cubic-bezier(.25,1,.5,1)}100%{opacity:1;transform:scaleX(1)}}
@keyframes reward-pop{from{opacity:0;transform:scale(.5)}to{opacity:1;transform:scale(1)}}@keyframes reward-settle{0%{transform:translateY(-36px);animation-timing-function:cubic-bezier(.25,1,.5,1)}53.846%{transform:translateY(2px);animation-timing-function:cubic-bezier(.25,1,.5,1)}100%{transform:translateY(0)}}@keyframes reward-bloom{0%,100%{opacity:0}35%{opacity:.8}}@keyframes reward-float{0%,100%{transform:translateY(0)}50%{transform:translateY(-4px)}}@keyframes reward-dissolve{from{opacity:1;transform:translateY(0) scale(1)}to{opacity:0;transform:translateY(-4px) scale(.95)}}@keyframes reward-leaf{0%{opacity:0;transform:translate(0,0) scale(.6)}10%{opacity:.85}100%{opacity:0;transform:translate(var(--dx),-85px) rotate(var(--turn)) scale(.2)}}
.reward_banner[data-mode=simulation] .rw-item-drop{clip-path:circle(105px at 550px 350px)}.reward_banner[data-mode=simulation] .rw-running .rw-travel{animation:reward-piston 250ms cubic-bezier(.12,0,.39,0) both}.reward_banner[data-mode=simulation] .rw-running .rw-impact{animation:reward-jitter 750ms steps(2,start) 250ms both}.reward_banner[data-mode=simulation] .rw-running .rw-item-pop{animation:reward-slam 750ms cubic-bezier(0,0,.2,1) 250ms both}.reward_banner[data-mode=simulation] .rw-running .rw-iris{display:block;mask-image:radial-gradient(circle,transparent var(--reward-hole),black calc(var(--reward-hole) + 1%));animation:reward-iris 750ms cubic-bezier(0,0,.2,1) 250ms both}.reward_banner[data-mode=simulation] .rw-running .rw-flash{animation:reward-flash 750ms ease-out 250ms both}.reward_banner[data-mode=simulation] .rw-running .rw-arcs{animation:reward-arcs 100ms ease-out 1000ms both}.reward_banner[data-mode=simulation] .rw-running .rw-glow{animation:reward-glow 1000ms linear 1000ms infinite}.reward_banner[data-mode=simulation] .rw-running .rw-spark{animation:reward-spark 300ms ease-out 250ms both}
@keyframes reward-piston{from{transform:translateY(-150%)}to{transform:translateY(0)}}@keyframes reward-jitter{0%,100%{transform:translate(0)}10%{transform:translate(4px,2px)}20%{transform:translate(-4px,-2px)}30%{transform:translate(3px,-3px)}45%{transform:translate(-3px,2px)}60%{transform:translate(2px,1px)}80%{transform:translate(-1px,-1px)}}@keyframes reward-slam{from{opacity:0;transform:scale(2.5)}to{opacity:1;transform:scale(1)}}@keyframes reward-iris{from{--reward-hole:0%;transform:rotate(0)}to{--reward-hole:75%;transform:rotate(90deg)}}@keyframes reward-flash{0%{opacity:0}8%{opacity:1}100%{opacity:0}}@keyframes reward-arcs{from{opacity:0}to{opacity:.8}}@keyframes reward-glow{0%,100%{opacity:.15;filter:drop-shadow(0 0 2px cyan)}50%{opacity:.6;filter:drop-shadow(0 0 8px cyan)}}@keyframes reward-spark{from{opacity:1;transform:translateX(0) scaleX(2)}to{opacity:0;transform:translateX(var(--dx)) scaleX(.2)}}@keyframes reward-shutter{from{opacity:1;transform:scaleY(1)}to{opacity:0;transform:scaleY(0)}}
@media(prefers-reduced-motion:reduce){.rw-running *{animation:none!important}.rw-running .rw-iris,.rw-running .rw-arcs,.rw-running .rw-flash,.rw-running .rw-glow,.rw-running .rw-effects,.rw-running .rw-bloom{display:none!important}.reward_banner[data-mode=simulation] .rw-running .rw-travel{animation:reward-quiet-in 200ms both!important}.reward_banner[data-mode=real] .rw-running .rw-item-pop{animation:reward-quiet-in 200ms 150ms both!important}}@keyframes reward-quiet-in{from{opacity:0}to{opacity:1}}@keyframes reward-quiet-out{from{opacity:1}to{opacity:0}}

.reward_banner .rw-viewport{position:absolute;inset:0;overflow:hidden}.reward_banner .rw-copy,.reward_banner .rw-item{pointer-events:auto}
