.birthday-entry { margin: 0 0 20px; padding: 20px; border: 1px solid #d9c9b8; background: var(--paper,#fbf8f1); color: #302a25; }
.birthday-entry[hidden] { display: none; }
.birthday-entry__head { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; }
.birthday-entry__head p { margin: 0; color: #8d4d3e; font-size: 12px; letter-spacing: .08em; }
.birthday-entry__head h2 { margin: 4px 0 0; font: 500 24px/1.35 var(--serif,Georgia,serif); }
.birthday-entry__note { margin: 9px 0 0; color: #6d6055; font-size: 13px; line-height: 1.7; }
.birthday-entry__badges { display: flex; flex-wrap: wrap; gap: 12px; margin: 18px 0 14px; }
.birthday-entry__badge { display: grid; grid-template-columns: 72px minmax(0,1fr); align-items: center; gap: 10px; min-width: min(100%, 260px); }
.birthday-entry__badge .birthday-badge { width: 72px; height: 72px; }
.birthday-entry__badge strong { display: block; font: 500 16px/1.35 var(--serif,Georgia,serif); }
.birthday-entry__badge small { display: block; margin-top: 3px; color: #786c60; line-height: 1.5; }
.birthday-entry__actions { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; }
.birthday-entry__button, .birthday-dialog__button { border: 1px solid #8d4d3e; background: #8d4d3e; color: #fff; padding: 10px 16px; cursor: pointer; font: inherit; }
.birthday-entry__button:hover, .birthday-dialog__button:hover { background: #713d32; }
.birthday-entry__link { color: #765643; font-size: 13px; }
.birthday-entry__status { margin: 10px 0 0; color: #8d4d3e; font-size: 13px; }
.birthday-badge { display: block; width: 72px; height: 72px; overflow: visible; color: #5d5148; }
.birthday-dialog { width: min(560px, calc(100vw - 28px)); max-height: min(760px, calc(100vh - 28px)); padding: 0; border: 1px solid #cbb9a5; background: #fbf8f1; color: #302a25; box-shadow: 0 22px 70px rgba(47,35,25,.24); }
.birthday-dialog::backdrop { background: rgba(35,28,23,.48); }
.birthday-dialog__inner { padding: 24px; }
.birthday-dialog__close { float: right; border: 0; background: transparent; color: #76695d; font-size: 24px; cursor: pointer; line-height: 1; }
.birthday-dialog__kicker { margin: 0; color: #8d4d3e; font-size: 12px; letter-spacing: .1em; }
.birthday-dialog h2 { margin: 5px 36px 0 0; font: 500 28px/1.35 var(--serif,Georgia,serif); }
.birthday-dialog__copy { margin: 10px 0 16px; color: #6d6055; line-height: 1.75; }
.birthday-dialog__badges { display: flex; gap: 14px; flex-wrap: wrap; margin: 0 0 18px; }
.birthday-dialog__badge { display: grid; justify-items: center; gap: 6px; min-width: 92px; text-align: center; }
.birthday-dialog__badge .birthday-badge { width: 92px; height: 92px; }
.birthday-dialog__badge span { font-size: 13px; }
.birthday-dialog__note { margin: 10px 0 0; color: #806d5b; font-size: 12px; line-height: 1.6; }
.birthday-dialog__blessing { margin-top: 18px; padding-top: 18px; border-top: 1px solid #ded4c6; }
.birthday-dialog__blessing[hidden] { display: none; }
@media (max-width: 480px) {
  .birthday-entry { padding: 16px; }
  .birthday-entry__head h2 { font-size: 21px; }
  .birthday-dialog__inner { padding: 19px; }
}

.birthday-entry--home{margin:18px 0 24px;padding:18px 22px;background:#faf8f2;border-color:#d7cebc;color:var(--ink,#292820)}
.birthday-entry--home .birthday-entry__head{align-items:center}.birthday-entry--home h2{font-size:22px}.birthday-entry--home .birthday-entry__button{background:transparent;color:#885c44;border:0;padding:10px 0;white-space:nowrap}
.birthday-dialog{background:#f8f5ed;border-color:#d3c8b4;border-radius:5px;overflow:auto;max-height:calc(100dvh - 28px)}
.birthday-dialog__inner{padding:28px}.birthday-dialog h2{font-size:34px;font-weight:400;margin-top:14px}.birthday-dialog__badges{justify-content:center;gap:28px;padding:18px 0;border-block:1px solid #ded6c8}.birthday-dialog__badge .birthday-badge{width:110px;height:110px;animation:birthday-unseal .6s ease-out}.birthday-dialog__button{width:100%;background:#303b36;border-color:#303b36;min-height:48px;margin-top:14px}.birthday-dialog__copy{font-size:14px}.birthday-dialog__blessing{border-top:0;padding-top:0}
@keyframes birthday-unseal{from{opacity:0;transform:translateY(12px) scale(.92)}to{opacity:1;transform:none}}
@media(max-width:480px){.birthday-entry--home{padding:16px}.birthday-entry--home .birthday-entry__head{align-items:flex-start;gap:12px}.birthday-entry--home h2{font-size:19px}.birthday-entry--home .birthday-entry__button{font-size:12px}.birthday-dialog__inner{padding:22px}.birthday-dialog h2{font-size:30px}}
@media(prefers-reduced-motion:reduce){.birthday-dialog__badge .birthday-badge{animation:none}}

.birthday-entry--home{position:relative;background:transparent;border:0;padding:12px 0 20px;display:flex;align-items:center;gap:24px;min-height:145px}.birthday-entry--home[hidden]{display:none}.birthday-entry--home .birthday-entry__head{display:block}.birthday-entry--home h2{font-size:26px;margin:5px 0 8px}.birthday-entry--home .birthday-entry__note{display:none}.birthday-entry--home .birthday-entry__button{padding:0;color:#625b4c;font-size:13px}.gift-object{position:relative;display:block;flex:none;width:108px;height:120px;border:0;background:#ece4d3;box-shadow:2px 7px 12px #65574420,inset 0 0 0 1px #cbbf9f;transform:rotate(-7deg);cursor:pointer}.gift-object:before{content:'';position:absolute;inset:0 44%;background:#697664;box-shadow:inset 2px 0 #a4ac8c55,inset -2px 0 #38473233}.gift-object:after{content:'';position:absolute;left:0;right:0;top:39%;height:12px;background:#697664}.gift-bow{position:absolute;left:34px;top:33px;width:38px;height:22px;border:5px double #6b775f;border-radius:55% 55% 40% 40%;transform:rotate(-14deg);z-index:2;background:#f2eddf}.gift-tag{position:absolute;right:-15px;bottom:16px;z-index:3;background:#faf7ee;padding:7px 10px;font:12px Georgia;color:#82644b;box-shadow:0 2px 5px #554a3020;transform:rotate(12deg)}.gift-object:hover{transform:rotate(-3deg) translateY(-4px)}.gift-object{transition:transform .3s}.birthday-dialog__button.gift-sleeve{display:block;position:relative;width:145px;height:154px;margin:35px auto 12px;background:#e9dfcc;border:0;border-radius:1px;color:#65513b;box-shadow:1px 5px 12px #54472b22;transform:rotate(-4deg);font-size:13px;overflow:visible}.gift-sleeve:before{content:'';position:absolute;width:112px;height:145px;left:17px;top:-20px;background:#293f40 url('/assets/tarot-back-vintage-v1.webp') center/cover;box-shadow:0 1px 5px #3c362e30;transition:transform .35s}.gift-sleeve:after{content:'给今天的你';position:absolute;inset:42px 0 0;padding-top:32px;background:#ede4d3;border-top:1px solid #c8b999;box-shadow:inset 0 -1px #c8b999;font-size:17px;letter-spacing:2px}.gift-sleeve span{position:absolute;bottom:12px;left:0;right:0;z-index:3;font-size:11px;letter-spacing:1px}.gift-sleeve:hover:before{transform:translateY(-12px)}.birthday-dialog.is-blessing .birthday-dialog__badges,.birthday-dialog.is-blessing .birthday-dialog__copy,.birthday-dialog.is-blessing .gift-sleeve{display:none}.birthday-dialog.is-blessing .birthday-dialog__blessing{margin-top:24px}.birthday-dialog.is-blessing h2{font-size:28px}.birthday-dialog__copy{text-align:left}.birthday-dialog__badges{border-bottom:0;padding-bottom:0;margin-bottom:0}.birthday-dialog__kicker{color:#8d7054}.birthday-dialog__badge small{display:block;margin-top:4px;color:#847868;font-size:11px}.birthday-dialog__badge strong{font-weight:500}.birthday-dialog__inner{padding:26px}.birthday-dialog{border-radius:3px}.birthday-dialog__blessing .birthday-blessing__card{grid-template-columns:90px minmax(0,1fr)}@media(prefers-reduced-motion:reduce){.gift-object,.gift-sleeve:before{transition:none}}
/* Review v2: printed wrapping paper, exposed card crown, direct pull gesture. */
.birthday-entry--home{gap:28px;padding:20px 8px 25px;min-height:164px}.birthday-entry--home .birthday-entry__head p{font-size:11px;letter-spacing:.18em;color:#897552}.birthday-entry--home h2{font-size:29px;letter-spacing:.08em;margin:12px 0 15px;line-height:1.2}.birthday-entry--home .birthday-entry__button{font-size:12px;letter-spacing:.12em;border-bottom:1px solid #b9aa8a;padding-bottom:5px}.gift-object{width:106px;height:128px;background:#243b3b url('/assets/tarot-back-vintage-v1.webp') center/100% 100%;box-shadow:3px 8px 15px #413c302a;transform:rotate(-6deg);border:1px solid #bca26b}.gift-object:before{inset:-1px 43%;background:linear-gradient(90deg,#9b8250,#d0bc82 45%,#ac915b);box-shadow:1px 0 2px #192d3855}.gift-object:after{top:39%;height:13px;background:linear-gradient(#a78c54,#d0bc82 50%,#ac915b)}.gift-bow{left:29px;top:37px;width:45px;height:19px;border:0;background:transparent;transform:rotate(-9deg)}.gift-bow:before,.gift-bow:after{content:'';position:absolute;width:23px;height:16px;border:3px solid #c6ae72;box-shadow:inset 0 0 0 1px #6b5732;border-radius:70% 50% 60% 20%;transform:rotate(22deg)}.gift-bow:after{left:22px;transform:scaleX(-1) rotate(22deg)}.gift-tag{right:-12px;bottom:14px;font-size:10px;padding:6px 8px;letter-spacing:.08em;color:#796243;background:#f4ecda;border:1px solid #d1c09a}.birthday-dialog__button.gift-sleeve{width:154px;height:158px;margin:56px auto 14px;transform:rotate(-3deg);background:transparent;box-shadow:none;touch-action:none;cursor:grab}.gift-sleeve:before{display:none}.gift-sleeve:after{display:none}.gift-card{display:block;position:absolute;left:14px;top:-42px;width:126px;height:210px;background:url('/assets/tarot-back-vintage-v1.webp') center/100% 100%;border-radius:3px;box-shadow:0 2px 7px #302c2440;transform:translateY(var(--pull,0px));transition:transform .25s;pointer-events:none}.gift-pocket{position:absolute;inset:34px 0 0;background:linear-gradient(100deg,#efe6d4,#f7f0e2 50%,#e6d9bf);border:1px solid #cfbd99;box-shadow:1px 5px 10px #54472b22;pointer-events:none}.gift-pocket:before{content:'';position:absolute;inset:8px;border:1px solid #beaa7955}.gift-sleeve .gift-guide{position:absolute;left:0;right:0;bottom:27px;z-index:3;letter-spacing:.06em;color:#7c6847;pointer-events:none;font-size:11px}.gift-guide b{display:block;font-size:22px;font-weight:400;line-height:1.3;margin-bottom:7px}.gift-sleeve:hover .gift-card{transform:translateY(-8px)}.gift-sleeve.is-pulling .gift-card{transition:none;transform:translateY(var(--pull,0px))}.gift-sleeve.is-opening .gift-card{transform:translateY(-155px);opacity:0;transition:transform .45s,opacity .45s}.birthday-dialog__copy{font-size:13px}.birthday-dialog__badge .birthday-badge{width:96px;height:96px}.birthday-dialog__badges{padding-top:15px;gap:30px}.birthday-dialog__inner{padding:26px}.birthday-dialog h2{font-size:29px;letter-spacing:.06em}.birthday-dialog.is-blessing .birthday-dialog__blessing{animation:birthday-unseal .45s ease-out}
@media(min-width:700px){.birthday-entry--home{gap:38px}.birthday-entry--home h2{font-size:34px}.gift-object{width:118px;height:140px}}
@media(prefers-reduced-motion:reduce){.gift-card,.gift-sleeve.is-opening .gift-card{transition:none}.birthday-dialog.is-blessing .birthday-dialog__blessing{animation:none}}
/* v3: separate gift wrapping and an open envelope. */
.gift-object{width:112px;height:112px;background:repeating-linear-gradient(95deg,#f2eada 0px,#f2eada 3px,#eee5d3 4px,#f2eada 5px);border:1px solid #d2c09b;box-shadow:3px 7px 12px #4b3d2925,inset 0 0 0 5px #f8f0e1,inset 0 0 0 6px #cdb88b66;transform:rotate(-5deg)}.gift-object:before{inset:-1px 42%;background:linear-gradient(90deg,#253d36,#526356 45%,#2e443a);box-shadow:1px 0 2px #292b2330}.gift-object:after{top:40%;height:17px;background:linear-gradient(#293f36,#526356 50%,#2e443a)}.gift-bow{left:24px;top:32px;width:60px;height:30px}.gift-bow:before,.gift-bow:after{width:28px;height:23px;border:5px solid #405445;box-shadow:inset 0 0 0 1px #84917a,0 1px 2px #2a372c44;border-radius:75% 45% 70% 20%;background:#344c3e;transform:rotate(22deg)}.gift-bow:after{left:27px;transform:scaleX(-1) rotate(22deg)}.gift-tag{right:-9px;bottom:13px;background:#b69b62;border:1px solid #d1ba83;color:#fff7df;font-size:9px;letter-spacing:.12em;box-shadow:1px 2px 3px #4b3d2930}.birthday-entry--home{gap:29px;min-height:163px}.birthday-entry--home h2{font-size:27px;letter-spacing:.04em}.birthday-entry--home .birthday-entry__head p{letter-spacing:.1em}.birthday-dialog__button.gift-sleeve{width:236px;height:206px;margin:54px auto 8px;transform:none;isolation:isolate}.gift-card{left:66px;top:-34px;width:106px;height:178px;z-index:2;transform:rotate(-4deg) translateY(var(--pull,0px));box-shadow:1px 3px 8px #39332b33}.gift-pocket{inset:76px 0 0;z-index:3;background:#f0e5ce;border:1px solid #cfb98d;box-shadow:0 5px 12px #54472b22;clip-path:polygon(0 0,50% 38%,100% 0,100% 100%,0 100%)}.gift-pocket:before{inset:0;background:linear-gradient(31deg,transparent 49.5%,#c9b489 50%,transparent 50.5%),linear-gradient(-31deg,transparent 49.5%,#c9b489 50%,transparent 50.5%);border:0}.gift-envelope-back{position:absolute;left:0;right:0;top:76px;height:130px;z-index:1;background:#e8dcc3;border:1px solid #c9b58b}.gift-flap{position:absolute;left:0;right:0;top:-14px;height:100px;z-index:0;background:#ede3d0;clip-path:polygon(0 100%,50% 0,100% 100%);filter:drop-shadow(0 -1px 0 #c3ad83)}.gift-lining{position:absolute;left:10px;right:10px;top:6px;height:78px;z-index:0;background:repeating-linear-gradient(45deg,#798270 0,#798270 1px,#dce0d0 1px,#dce0d0 5px);clip-path:polygon(0 100%,50% 0,100% 100%);opacity:.65}.gift-sleeve .gift-guide{left:auto;right:-14px;top:4px;bottom:auto;width:72px;font-size:10px;text-align:center;line-height:1.7;color:#7f6e4e}.gift-guide b{font-size:27px;margin-bottom:3px}.gift-sleeve:hover .gift-card{transform:rotate(-4deg) translateY(-8px)}.gift-sleeve.is-pulling .gift-card{transform:rotate(-4deg) translateY(var(--pull,0px))}.gift-sleeve.is-opening .gift-card{transform:rotate(-4deg) translateY(-165px)}.gift-sleeve .gift-guide{pointer-events:none}.birthday-dialog__button.gift-sleeve{cursor:grab}.birthday-dialog__button.gift-sleeve:active{cursor:grabbing}.birthday-dialog__button.gift-sleeve:focus-visible{outline:2px solid #8c7146;outline-offset:8px}.birthday-dialog__badges{padding-top:10px}.birthday-dialog__inner{padding:26px}
/* v4: only one third of the card above the envelope lip. */
.gift-card{top:34px;height:178px}.gift-sleeve .gift-guide{top:10px;right:-14px}.gift-flap{top:-14px}.gift-pocket{clip-path:polygon(0 0,50% 13%,100% 0,100% 100%,0 100%)}
.gift-object{width:137px;height:131px;background:transparent url('/assets/birthday-gift-box-v1.png') center/contain no-repeat;border:0;box-shadow:none;transform:rotate(-3deg)}.gift-object:before,.gift-object:after,.gift-object .gift-bow,.gift-object .gift-tag{display:none}.birthday-entry--home{gap:17px;padding-left:0;padding-right:0}
/* v5: clearer gift silhouette and card occluded inside envelope. */
.gift-object{width:160px;height:150px;background-size:140% auto;filter:contrast(1.16) saturate(1.08) drop-shadow(0 5px 4px #53432926)}.birthday-entry--home{gap:15px;min-height:182px}.birthday-entry--home h2{font-size:26px}.gift-card{clip-path:inset(0 0 10px 0);height:178px}.gift-sleeve .gift-guide{right:-19px;top:-1px}.gift-pocket{box-shadow:0 5px 12px #54472b22}.gift-sleeve.is-opening .gift-card{clip-path:none}
@media(max-width:360px){.gift-object{width:140px;height:140px}.birthday-entry--home{gap:10px}.birthday-entry--home h2{font-size:24px}}

.birthday-entry--home .birthday-entry__note:empty{display:none}
.birthday-entry--home .birthday-entry__head{display:flex;flex-direction:column;align-items:flex-start;gap:0}
