.birthday-home[hidden]{display:none}
.birthday-home{margin:2.2rem 0}
.birthday-home-card{display:flex;align-items:center;gap:1rem;padding:1.25rem 1.5rem;border:1px solid #efd6dc;border-radius:22px;background:linear-gradient(110deg,#fff0ed,#fff8e7 55%,#f2e8f9);text-decoration:none;color:#523951;box-shadow:0 12px 30px rgba(98,48,80,.08);transition:transform .2s,box-shadow .2s}
.birthday-home-card:hover{transform:translateY(-3px);box-shadow:0 16px 34px rgba(98,48,80,.13)}
.birthday-home-icon{display:grid;place-items:center;flex:none;width:56px;height:56px;border-radius:16px;background:white;font-size:29px}
.birthday-home-card>span:last-child{display:grid;gap:3px}
.birthday-home-card small{font-size:11px;font-weight:800;letter-spacing:.08em;color:#9b5b76}
.birthday-home-card strong{font-size:20px;line-height:1.3}
.birthday-home-card>span:last-child>span{font-size:13px;color:#7d687a}
.birthday-hub{max-width:980px;margin:2rem auto 5rem;color:#463747}
.birthday-hero{position:relative;overflow:hidden;text-align:center;padding:3.3rem 1.3rem 2.6rem;border-radius:32px;background:radial-gradient(circle at 15% 15%,#fff7eb 0,transparent 35%),radial-gradient(circle at 90% 30%,#f8e0f4 0,transparent 36%),linear-gradient(135deg,#f9e3e2,#f8f0da);border:1px solid #eed6d3}
.birthday-overline{font-size:11px;letter-spacing:.24em;font-weight:800;color:#a15f7e}
.birthday-emblem{display:grid;place-items:center;width:74px;height:74px;margin:1.1rem auto;border-radius:50%;background:#fffaf9;box-shadow:0 10px 24px #9d628032;font-size:40px}
.birthday-hero h1{margin:.25rem 0 .7rem;font-size:clamp(2.6rem,7vw,4.7rem);line-height:1.15;letter-spacing:.05em;color:#723f68}
.birthday-hero h1 em{font-style:normal;color:#b86780}
.birthday-hero p{margin:0;color:#765f70;font-size:15px}
.birthday-sparkle{position:absolute;color:#c882a3;font-size:40px}
.birthday-sparkle.one{top:16%;left:15%}
.birthday-sparkle.two{right:14%;bottom:23%;font-size:33px}
.birthday-progress{display:flex;align-items:center;justify-content:center;gap:1rem;margin:1.8rem auto .65rem}
.birthday-progress-step{display:grid;place-items:center;width:42px;height:42px;border:2px solid #d9b5c2;border-radius:50%;background:#fff9f7;color:#ad8b9b;font-weight:800}
.birthday-progress-step.is-done{background:#b56682;color:white;border-color:#b56682}
.birthday-progress-step i{font-style:normal}
.birthday-count{font-size:12px;font-weight:800;color:#8b667b}
.birthday-questions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;margin:1.25rem 0}
.birthday-question{min-width:0;display:flex;flex-direction:column;padding:1.45rem;border:1px solid #e9dade;border-radius:23px;background:white;box-shadow:0 8px 25px #68465a0d}
.birthday-question.is-solved{background:#fffaf5;border-color:#e6d1ca}
.birthday-question-top{display:flex;justify-content:space-between;align-items:center;gap:.5rem}
.birthday-number{font-size:13px;font-weight:900;letter-spacing:.1em;color:#b96983}
.birthday-status{font-size:11px;color:#89717d}
.birthday-question.is-solved .birthday-status{font-weight:800;color:#78946b}
.birthday-question h2{font-size:20px;line-height:1.4;margin:1rem 0 1.2rem;color:#50394a}
.birthday-hints{display:grid;gap:.55rem;margin-bottom:1.3rem}
.birthday-hint{border-radius:12px;padding:.7rem .85rem;background:#fbf5f5}
.birthday-hint span{font-size:10px;letter-spacing:.08em;font-weight:900;color:#b67590}
.birthday-hint p{margin:.2rem 0 0;font-size:13px;line-height:1.4;color:#67535e}
.birthday-answer-form{margin-top:auto}
.birthday-answer-form label{display:block;margin-bottom:.4rem;font-size:12px;font-weight:800;color:#6d5363}
.birthday-answer-row{display:flex;gap:.45rem}
.birthday-answer-row input{min-width:0;flex:1;width:100%;border:1px solid #dfcdd3;border-radius:10px;padding:.7rem .75rem;background:#fff;color:#493743;font-size:14px}
.birthday-answer-row input:focus{outline:2px solid #b96d8b;outline-offset:1px}
.birthday-answer-row button{flex:none;border:0;border-radius:10px;padding:.65rem .85rem;background:#a95779;color:white;font-weight:800;cursor:pointer}
.birthday-answer-row button:disabled{opacity:.6;cursor:wait}
.birthday-feedback{min-height:1.5em;margin:.35rem 0 0;font-size:12px;color:#b25174}
.birthday-success{display:grid;gap:.2rem;margin-top:auto;padding:.9rem;border-radius:12px;background:#f1f6ec;color:#638359;font-size:13px;font-weight:800}.birthday-success strong{font-size:17px;color:#446d42}
.birthday-reveal{position:relative;overflow:hidden;text-align:center;margin-top:1rem;padding:2.5rem 1.5rem;border-radius:26px;background:linear-gradient(130deg,#6d3c69,#af6d85);color:white;box-shadow:0 15px 35px #6d3c6926}
.birthday-reveal:before,.birthday-reveal:after{content:"✦  ✧  ✦";position:absolute;font-size:27px;letter-spacing:.5em;color:#ffe4ad8c;transform:rotate(-15deg)}
.birthday-reveal:before{top:1rem;left:1rem}.birthday-reveal:after{right:1rem;bottom:1rem}
.birthday-reveal-icon{display:block;font-size:48px;margin-bottom:.5rem}
.birthday-reveal small{letter-spacing:.2em;font-weight:800;color:#ffe9c6}
.birthday-reveal h2{font-size:clamp(1.7rem,4vw,2.6rem);margin:.45rem 0 .8rem}
.birthday-reveal p{font-size:clamp(1rem,2.5vw,1.3rem);line-height:1.7;margin:0 auto;max-width:650px}
.birthday-footer-actions{display:flex;justify-content:center;gap:1.5rem;align-items:center;margin:1.6rem 0;color:#8a6b7b;font-size:13px}
.birthday-footer-actions a{color:inherit;text-decoration:none}
.birthday-footer-actions button{border:0;background:none;color:inherit;font:inherit;cursor:pointer;text-decoration:underline}
@media(max-width:650px){.birthday-questions{grid-template-columns:1fr}.birthday-question{padding:1.25rem}.birthday-hints{grid-template-columns:repeat(3,minmax(0,1fr))}.birthday-hint{min-width:0}}
@media(max-width:550px){.birthday-hub{margin:1rem auto 3rem}.birthday-hero{padding:2.4rem 1rem 2rem;border-radius:23px}.birthday-hero p{font-size:13px}.birthday-sparkle.one{left:5%}.birthday-sparkle.two{right:5%}.birthday-questions{gap:.8rem}.birthday-hints{grid-template-columns:1fr}.birthday-home-card{padding:1rem}.birthday-home-card strong{font-size:17px}.birthday-reveal{padding:2.2rem 1.2rem}.birthday-reveal:before,.birthday-reveal:after{font-size:16px}.birthday-answer-row button{padding:.65rem .75rem}}


/* Birthday quest interactions */
.birthday-emblem{animation:birthdayBob 2.7s ease-in-out infinite}
.birthday-emblem svg{width:55px;height:55px}
.birthday-path{position:relative;width:min(320px,74%);margin:3.1rem auto .8rem}
.birthday-path-line{position:absolute;left:0;right:0;top:20px;border-top:3px dashed #c999ab}
.birthday-path .birthday-progress{position:relative;justify-content:space-between;gap:0;margin:0}
.birthday-progress-step{box-shadow:0 3px 0 #e9d3d8}
.birthday-progress-step.is-done{box-shadow:0 4px 12px #ad668b55;animation:birthdayStamp .35s ease-out}
.birthday-guide-duck{position:absolute;top:-48px;z-index:2;width:39px;height:39px;transform:translateX(-50%);filter:drop-shadow(0 4px 3px #ad69864d);animation:birthdayDuckMove .8s ease-out both}
.birthday-guide-duck.step-0{--duck-left:-9%;left:-9%}
.birthday-guide-duck.step-1{--duck-left:0%;left:0%}
.birthday-guide-duck.step-2{--duck-left:33.33%;left:33.33%}
.birthday-guide-duck.step-3{--duck-left:66.67%;left:66.67%}
.birthday-guide-duck.step-4{--duck-left:100%;left:100%}
.birthday-guide-duck svg{display:block;width:100%;height:100%}
.birthday-progress-step svg{display:block;width:29px;height:29px}
.birthday-hint-closed{display:grid;gap:.2rem;width:100%;text-align:left;border:1px dashed #c77e9b;border-radius:12px;padding:.7rem .85rem;background:linear-gradient(110deg,#fff2ef,#fffaea);color:#8f5572;cursor:pointer;box-shadow:0 0 0 3px #f9e8ec;animation:birthdayHintGlow 2s ease-in-out infinite}
.birthday-hint-closed span{font-size:10px;letter-spacing:.08em;font-weight:900}
.birthday-hint-closed strong{font-size:13px}
.birthday-hint-closed:hover,.birthday-hint-closed:focus-visible{background:#ffe8ef;outline:2px solid #a95779;outline-offset:2px}
.birthday-hint.is-opened{animation:birthdayHintOpen .4s ease-out}
.birthday-hint-waiting{border:1px dashed #e3d4d9;background:#faf7f8;color:#a897a1}
.birthday-question{transform-style:preserve-3d}
.birthday-question.is-flipping-out{animation:birthdayFlipOut .18s ease-in forwards}
.birthday-question.is-flipping-in{animation:birthdayFlipIn .42s ease-out}
.birthday-question.is-wrong{animation:birthdayShake .34s ease-in-out}
.birthday-success{background:#f3f8ed;border:1px solid #dae9ce}
.birthday-final{position:relative;min-height:180px;margin-top:1rem}
.birthday-envelope{position:relative;overflow:hidden;display:grid;place-items:center;gap:.45rem;width:100%;min-height:195px;padding:2rem 1rem;border:0;border-radius:26px;background:linear-gradient(145deg,#a75f7e,#804362);color:white;cursor:pointer;box-shadow:0 15px 35px #86476135;transition:transform .22s,box-shadow .22s}
.birthday-envelope:before{content:"";position:absolute;inset:0 0 auto;height:55%;background:#ffe2dc4d;clip-path:polygon(0 0,100% 0,50% 100%)}
.birthday-envelope>*{position:relative;z-index:1}
.birthday-envelope>span{font-size:52px;line-height:1}
.birthday-envelope strong{font-size:21px}
.birthday-envelope small{font-size:13px;letter-spacing:.05em}
.birthday-envelope:hover{transform:translateY(-4px);box-shadow:0 20px 40px #8647614a}
.birthday-envelope:focus-visible{outline:3px solid #744166;outline-offset:3px}
.birthday-letter{position:relative;z-index:1;overflow:hidden;text-align:center;padding:2.5rem 1.5rem;border-radius:26px;background:linear-gradient(130deg,#6d3c69,#af6d85);color:white;box-shadow:0 15px 35px #6d3c6926;animation:birthdayLetterOpen .55s cubic-bezier(.19,1,.22,1)}
.birthday-letter small{display:block;letter-spacing:.2em;font-weight:800;color:#ffe9c6}
.birthday-letter h2{font-size:clamp(1.7rem,4vw,2.6rem);margin:.45rem 0 .8rem}
.birthday-letter p{font-size:clamp(1rem,2.5vw,1.3rem);line-height:1.7;margin:0 auto;max-width:650px}
.birthday-confetti{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:2}
.birthday-confetti i{position:absolute;top:-12px;width:9px;height:17px;background:#ffe09e;opacity:0;animation:birthdayConfetti 1.7s ease-out forwards}
.birthday-confetti i:nth-child(3n){background:#f0a4be}.birthday-confetti i:nth-child(3n+1){background:#c8eedf}
.birthday-confetti .piece-0{left:7%;animation-delay:0ms}.birthday-confetti .piece-1{left:15%;animation-delay:60ms}.birthday-confetti .piece-2{left:24%;animation-delay:130ms}.birthday-confetti .piece-3{left:32%;animation-delay:30ms}.birthday-confetti .piece-4{left:40%;animation-delay:180ms}.birthday-confetti .piece-5{left:48%;animation-delay:80ms}.birthday-confetti .piece-6{left:56%;animation-delay:210ms}.birthday-confetti .piece-7{left:64%;animation-delay:120ms}.birthday-confetti .piece-8{left:72%;animation-delay:240ms}.birthday-confetti .piece-9{left:80%;animation-delay:70ms}.birthday-confetti .piece-10{left:88%;animation-delay:170ms}.birthday-confetti .piece-11{left:96%;animation-delay:110ms}
@keyframes birthdayBob{50%{transform:translateY(-6px)}}
@keyframes birthdayStamp{0%{transform:scale(.65)}65%{transform:scale(1.13)}100%{transform:scale(1)}}
@keyframes birthdayDuckMove{from{left:-9%;opacity:.2}to{left:var(--duck-left);opacity:1}}
@keyframes birthdayHintGlow{50%{box-shadow:0 0 0 5px #f7dce7}}
@keyframes birthdayHintOpen{from{transform:rotateX(-70deg);opacity:.1}to{transform:rotateX(0);opacity:1}}
@keyframes birthdayFlipOut{to{transform:rotateY(86deg);opacity:.35}}
@keyframes birthdayFlipIn{from{transform:rotateY(-85deg);opacity:.35}to{transform:rotateY(0);opacity:1}}
@keyframes birthdayShake{20%{transform:translateX(-5px)}40%{transform:translateX(5px)}60%{transform:translateX(-4px)}80%{transform:translateX(3px)}}
@keyframes birthdayLetterOpen{from{transform:translateY(24px) scale(.96);opacity:0}to{transform:translateY(0) scale(1);opacity:1}}
@keyframes birthdayConfetti{0%{transform:translateY(-10px) rotate(0);opacity:0}10%{opacity:1}100%{transform:translateY(235px) rotate(530deg);opacity:0}}
@media(prefers-reduced-motion:reduce){.birthday-emblem,.birthday-progress-step.is-done,.birthday-guide-duck,.birthday-hint-closed,.birthday-hint.is-opened,.birthday-question.is-flipping-out,.birthday-question.is-flipping-in,.birthday-question.is-wrong,.birthday-letter,.birthday-confetti i{animation:none!important}.birthday-envelope{transition:none}}

