/* All gift surfaces share fixed SVG artwork, including touch browsers and tablets. */
.mb-gift-art{display:block;width:100%;height:100%;object-fit:contain;pointer-events:none}
.mb-gift-token[hidden]{display:none!important}
.mb-gift-choice[data-mb-gift-code]{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;min-height:96px;padding:8px 4px;touch-action:manipulation}
.mb-gift-choice>.mb-gift-art{width:60px;height:60px;flex:none}
.mb-gift-caption{display:block;max-width:100%;font:600 11px/1.3 system-ui,sans-serif;color:#563145;overflow-wrap:anywhere}
.mb-gift-preview[data-mb-gift-code]{display:grid;place-items:center}
.mb-gift-preview>.mb-gift-art{width:88px;height:88px}
.mb-gift-inbox-emoji[data-mb-gift-code],.mbg32-emoji[data-mb-gift-code]{display:inline-block;width:36px;height:36px;flex:none}
.mb-random-gift-notice-emoji[data-mb-gift-code]{width:60px;height:60px}
.mb-gift-dialog.mb-gift-dialog{width:min(540px,calc(100% - 24px));max-height:calc(100vh - 24px);max-height:calc(100dvh - 24px);padding:clamp(12px,3vw,24px);overscroll-behavior:contain;scroll-padding-bottom:88px}
.mb-gift-dialog form{min-width:0}
.mb-gift-dialog .mb-gift-grid{grid-template-columns:repeat(auto-fit,minmax(76px,1fr));gap:8px}
.mb-gift-dialog .mb-gift-dialog-actions{position:sticky;bottom:0;z-index:1;margin-bottom:0;padding:10px 0 max(8px,env(safe-area-inset-bottom));background:#fff}
.mb-gift-dialog .btn,.mb-gift-request-actions .btn{min-height:44px;touch-action:manipulation}
.mb-gift-dialog textarea{font-size:16px;scroll-margin-bottom:90px}
.mb-gift-request-row .inbox-main{min-width:0;overflow-wrap:anywhere}
.mb-gift-art-stage{position:fixed;inset:0;z-index:120400;display:grid;place-items:center;overflow:hidden;pointer-events:none;contain:layout style paint}
.mb-gift-art-hero{width:min(55vw,340px);height:min(55vw,340px);pointer-events:none;filter:drop-shadow(0 12px 24px #31182e33)}
@media(max-width:480px){.mb-gift-dialog .mb-gift-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.mb-gift-request-row{flex-wrap:wrap}.mb-gift-request-row .mb-gift-request-actions{width:100%;margin-left:46px}}
@media(max-height:520px) and (orientation:landscape){.mb-gift-dialog.mb-gift-dialog{max-height:calc(100dvh - 12px);padding:12px 18px}.mb-gift-dialog .mb-gift-grid{grid-template-columns:repeat(auto-fit,minmax(76px,1fr))}.mb-gift-choice[data-mb-gift-code]{min-height:80px}.mb-gift-choice>.mb-gift-art{width:48px;height:48px}}
@media(prefers-reduced-motion:reduce){.mb-gift-choice:hover:not(:disabled){transform:none}.mb-gift-art-hero{animation:none}}

.mb-gift-art{transform-origin:50% 50%;animation:mbGiftFloat 2.8s ease-in-out infinite}
.mb-gift-art[data-gift-motion=flutter]{animation-name:mbGiftFlutter}
.mb-gift-art[data-gift-motion=pulse]{animation-name:mbGiftPulse}
.mb-gift-art[data-gift-motion=celebrate]{animation-name:mbGiftCelebrate}
.mb-gift-art[data-gift-motion=bounce]{animation-name:mbGiftBounce}
@keyframes mbGiftFloat{50%{transform:translateY(-3px)}}
@keyframes mbGiftFlutter{25%{transform:rotate(-7deg) scaleX(.86)}75%{transform:rotate(7deg) scaleX(.96)}}
@keyframes mbGiftPulse{50%{transform:scale(.9)}}
@keyframes mbGiftCelebrate{25%{transform:rotate(-6deg) scale(.93)}75%{transform:rotate(6deg) scale(1)}}
@keyframes mbGiftBounce{50%{transform:translateY(-4px) scale(.96)}}
@media(prefers-reduced-motion:reduce){.mb-gift-art,.mb-gift-art[data-gift-motion]{animation:none}}

.mb-gift-panel .mb-gift-grid{grid-template-columns:repeat(auto-fit,minmax(76px,1fr))}
.mb-gift-choice>.mb-gift-art{max-width:100%}
