/* One birthday presentation; the gift is already safely in inventory. */
.birthday-overlay{position:fixed;inset:0;z-index:180;display:grid;place-items:center;padding:18px;background:#0d292a99;backdrop-filter:blur(4px);overflow:auto}
.birthday-overlay[hidden],.birthday-overlay [hidden],.birthday-entry[hidden]{display:none!important}
.birthday-dialog{position:relative;box-sizing:border-box;width:min(360px,100%);max-height:calc(100dvh - 36px);overflow:auto;padding:22px 22px 17px;border:1px solid #d1b578;border-radius:24px;background:linear-gradient(150deg,#183f43,#0d292b);color:#fff0cd;text-align:center;box-shadow:0 25px 70px #0007,inset 0 0 0 5px #cfb77816}
.birthday-dialog::before{content:"";position:absolute;inset:9px;border:1px solid #d4b47044;border-radius:16px;pointer-events:none}
.birthday-edition{font:10px/1.5 Georgia,serif;letter-spacing:2px;color:#e8d6a9}
.birthday-dialog h2{font-size:30px;letter-spacing:5px;margin:7px 0;color:#fff1ce;font-weight:800}
.birthday-exclusive{display:inline-block;padding:5px 11px;border:1px solid #c9ac6b88;border-radius:4px;color:#e9d3a0;font-size:11px;letter-spacing:1px}
.birthday-stage{position:relative;isolation:isolate;height:clamp(160px,29dvh,255px);margin:12px 0 10px;overflow:hidden;border-radius:14px;background:radial-gradient(ellipse at 50% 75%,#c2a97444,transparent 65%);}
.birthday-stage img{position:relative;z-index:1;width:100%;height:100%;object-fit:contain;border-radius:12px;animation:birthday-arrival .55s ease-out both}
.birthday-stage-mark{position:absolute;z-index:0;inset:auto 0 10px;font:58px/1 Georgia,serif;color:#dbc18b13;letter-spacing:5px}
.birthday-dialog h3{font-size:17px;margin:8px 0;color:#fff3d6}
.birthday-dialog p{font-size:13px;line-height:1.7;margin:7px 0 12px;color:#e0e1d1}
.birthday-dialog .button{position:relative;z-index:1;width:100%;min-height:46px;touch-action:manipulation;margin-top:7px;font-size:14px;border-radius:12px;transition:transform .14s,filter .14s}
.birthday-dialog .button.primary{color:#3e3320;background:linear-gradient(#f5dda5,#d6b575);border:1px solid #f6e5b8;box-shadow:0 3px 0 #8b7245;font-weight:800}
.birthday-dialog .button.ghost{color:#e2d4b8;background:transparent;border:1px solid #c7b5804d}
.birthday-dialog .button:active{transform:translateY(2px);filter:brightness(1.08)}
.birthday-dialog .button:focus-visible{outline:3px solid #fff3c2;outline-offset:3px}
.birthday-rule{display:block;margin-top:13px;font-size:10px;line-height:1.6;color:#c7cbb7}
.birthday-entry{border-color:#c8a65e!important;background:#fff0cf!important;color:#6c5429!important}
.birthday-entry.has-gift::after{content:"";position:absolute;top:4px;right:4px;width:8px;height:8px;border:2px solid #fff5df;border-radius:50%;background:#ba614d}
.birthday-outfit-art{background:linear-gradient(150deg,#e8eadb,#d6e5df)!important}
@keyframes birthday-arrival{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
@media(max-height:650px){.birthday-dialog{padding:16px}.birthday-stage{height:160px;margin:7px 0}.birthday-dialog h2{font-size:25px}.birthday-dialog p{margin:5px 0 8px}.birthday-rule{margin-top:9px}}
@media(max-width:330px){.birthday-overlay{padding:12px}.birthday-dialog{padding:16px 13px}.birthday-rule{font-size:9px}}
@media(prefers-reduced-motion:reduce){.birthday-overlay *{animation:none!important;transition:none!important}}
.birthday-overlay[data-still="true"] *{animation:none!important;transition:none!important}
