/* Body-mounted Gift uses the shell scale once, then fits in viewport space. */
.gift_banner_host { position: fixed; inset: 0; z-index: 15000; pointer-events: auto; display: grid; place-items: center; padding: 12px; box-sizing: border-box; }
.gift_banner_host[hidden], .gift_banner[hidden] { display: none; }
.gift_banner { pointer-events: auto; position: relative; box-sizing: border-box; zoom:var(--viewport-fit-scale,1); width:min(460px,calc((100vw - 24px) / var(--viewport-fit-scale,1))); container-type: inline-size; max-height:calc((100dvh - 24px) / var(--viewport-fit-scale,1)); overflow: auto; padding: 22px 32px 25px; text-align: center; color: #34452e; background: radial-gradient(ellipse at top, #fffdf4, #f2ead5); border: 1px solid #af965c; border-radius: 48px 12px 48px 12px; box-shadow: 0 18px 70px #17241166, inset 0 0 0 5px #fffaf0, inset 0 0 0 6px #d9c8a0; font: 16px/1.45 Georgia, "Times New Roman", serif; }
.gift_banner_flourish { height: 64px; color: #668350; }
.gift_banner_flourish svg { width: 44px; height: 64px; overflow: hidden; }
.gift_banner .gift_banner_title { margin: 0; font: normal 32px/1.15 Georgia, "Times New Roman", serif; color: #34452e; }
.gift_banner .gift_banner_quantity { display:flex; align-items:center; justify-content:center; gap:clamp(3px,1.2cqi,6px); white-space:nowrap; height:58px; margin:30px 0; padding:0; border-block:1px solid #c4b17c; color:#466235; font:700 20px/1.25 Georgia,serif; }
.gift_banner .gift_banner_details { margin: 0; }
.gift_banner .gift_banner_error { margin: 0; font: 13px/1.3 system-ui, sans-serif; color: #8d3125; }
.gift_banner .gift_banner_error:empty { display: none; }
.gift_banner .gift_banner_close { min-height: 44px; padding: 9px 18px; margin-top: 18px; max-width:100%; background: #456239; color: #fffaf0; border: 1px solid #344c2a; border-radius: 22px 6px 22px 6px; font: 700 15px/1.4 system-ui, sans-serif; cursor: pointer; }
.gift_banner .gift_banner_close:hover { background: #354e2c; }
.gift_banner .gift_banner_close:focus-visible { outline: 3px solid #8e6328; outline-offset: 4px; }
@media (max-width: 380px), (max-height: 520px) {
 .gift_banner { padding: 16px 23px; font-size: 14px; }
 .gift_banner_flourish, .gift_banner_flourish svg { height: 42px; }
 .gift_banner .gift_banner_title { font-size: 26px; }
 .gift_banner .gift_banner_quantity { margin: 24px 0; padding:0; height:48px; font-size:18px; }
}

@media (max-height: 380px) {
 .gift_banner { padding: 12px 23px; }
 .gift_banner_flourish, .gift_banner_flourish svg { height: 24px; }
 .gift_banner .gift_banner_title { font-size: 24px; }
 .gift_banner .gift_banner_quantity { margin: 16px 0; padding:0; height:38px; }
 .gift_banner .gift_banner_details { font-size: 13px; }
 .gift_banner .gift_banner_close { margin-top: 10px; }
}



.entry_block {position:fixed;inset:0;z-index:30000;background:#fffaf0;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:24px;text-align:center;font:18px/1.5 system-ui;color:#34452e;}
.entry_block button {min-height:44px;padding:10px 24px;font:inherit;}

/* Retain the established award scale; the item name is secondary. */
.gift_banner .reward_banner_item {gap:4px;white-space:nowrap;}
/* Optical alignment accounts for the serif name and sans-serif numeral ink. */
.gift_banner .award_grant_name {font:700 14px/1.25 Georgia,serif;margin-left:6px;transform:translateY(2px); }
@media (max-height:380px) {
 .gift_banner .reward_banner_item svg {width:90px;height:90px;}
 .gift_banner .reward_banner_item {font-size:30px;}
}
/* Only constrained widths need a smaller icon/value to fit complete names. */
@container (max-width:340px) {
 .gift_banner .gift_banner_quantity {font-size:18px;gap:3px;}
 .gift_banner .reward_banner_item {font-size:24px;gap:3px;}
 .gift_banner .reward_banner_item svg {width:clamp(60px,calc(100cqi - 188px),116px);height:clamp(60px,calc(100cqi - 188px),116px);}
 .gift_banner .award_grant_name {font-size:12px;margin-left:3px;}
}

/* Keep award input/backdrops viewport-wide; only content follows the visible shell. */
.award_banner_region { position:absolute; left:var(--award-region-left,0px); top:var(--award-region-top,0px); width:var(--award-region-width,100%); height:var(--award-region-height,100%); display:grid; place-items:safe center; pointer-events:none; }
.award_banner_region > .reward_banner { pointer-events:auto; }
