/* Birthday scene: original artwork remains the visual focus. */
.card-scene{background:#45445f}.birthday-halo{display:none}.birthday{inset:0;height:100%;background-size:cover;background-position:center 60%}.card-shade{background:linear-gradient(180deg,#292a4412 45%,#37324915 70%,#292a4455)}.card-scene .back{z-index:3;top:20px;left:24px;min-width:44px;width:44px;min-height:44px;padding:0;letter-spacing:0;font-size:20px;background:#44415e66}.birthday-controls{position:absolute;z-index:2;left:50%;top:auto;bottom:max(70px,9dvh);transform:translateX(-50%);width:min(410px,88vw);text-align:center}.voice{display:flex;align-items:center;gap:16px;width:100%;height:78px;padding:14px 20px;border:1px solid #fff1c4;border-radius:60px;background:#f7ecc6;color:#191919;box-shadow:0 12px 35px #25233e28,inset 0 2px 0 #fff7dd;transition:transform .2s,box-shadow .2s}.voice:hover{transform:translateY(-2px);box-shadow:0 15px 40px #25233e40}.play-icon{flex:none;width:45px;height:45px;display:grid;place-items:center;border-radius:50%;background:#191919;color:#faefcb}.play-icon svg{width:20px;height:20px;fill:currentColor}.pause-icon{display:none}.playing .triangle{display:none}.playing .pause-icon{display:block}.waves{display:flex;align-items:center;gap:4px;height:32px;flex:none}.waves i{display:block;width:3px;height:var(--height);background:#191919;border-radius:3px;transform-origin:center}.playing .waves i{animation:wave .7s ease-in-out infinite alternate;animation-delay:var(--delay)}@keyframes wave{to{transform:scaleY(.35)}}.voice-copy{text-align:left;flex:1;min-width:0}.voice-label{display:block;white-space:nowrap;font-size:17px;letter-spacing:.8px;font-weight:700}.voice-time{display:block;font-size:10px;letter-spacing:1px;margin-top:5px;opacity:.65}.audio-progress{width:76%;height:2px;background:#fff9e233;margin:10px auto 0;border-radius:4px;overflow:hidden}.audio-progress span{display:block;width:0;height:100%;background:#fff1c4}.voice-status{min-height:18px;margin:7px 0 14px;font-size:11px;letter-spacing:1px;color:#fff9e5;text-shadow:0 1px 7px #242338}.earth-enter{display:inline-flex;align-items:center;justify-content:center;gap:21px;min-width:218px;min-height:59px;border:1px solid #eee8ffb3;border-radius:60px;background:linear-gradient(110deg,#d4e4f7,#d8c6ee);color:#484362;font-size:17px;font-weight:700;letter-spacing:3px;box-shadow:0 8px 24px #30244033;transition:transform .2s,box-shadow .2s}.earth-enter:hover{transform:translateY(-3px);box-shadow:0 10px 30px #d6c4f84d}.earth-enter:active{transform:scale(.97)}#celebration{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:1}.birthday-footer{position:absolute;left:26px;right:26px;bottom:20px;display:flex;justify-content:space-between;font-size:10px;letter-spacing:2px;color:#fff7e1}.birthday-footer .pages i:first-child{width:4px;background:#ffffff66}.birthday-footer .pages i:nth-child(2){width:19px;background:#fff8e4}.earth-preview{display:grid;place-items:center;background:radial-gradient(ellipse at 50% 45%,#f0f1ff,#d8e4f0 55%,#b7bddb);color:#474865;text-align:center}.earth-preview-content{width:min(90vw,500px)}.earth-preview h1{font-size:clamp(27px,5vw,40px);margin:10px 0 24px}.earth-preview p{font-size:13px;line-height:1.9}.earth-preview .kicker{color:#9e772c;letter-spacing:3px;font-size:12px}.preview-orb{display:grid;place-items:center;width:180px;height:180px;margin:25px auto;border-radius:50%;background:radial-gradient(circle at 32% 28%,#f9fcff,#a8d0ea 60%,#a4b6dc);box-shadow:inset -15px -12px 30px #8fa8cb44,0 0 60px #ffffffaa;font-size:48px;color:#fff4b8}.earth-preview .pill{color:#474865;margin-top:20px;text-shadow:none}
@media(max-width:600px){.birthday{inset:0;height:100%;background-size:cover;background-position:52% center}.card-shade{background:linear-gradient(180deg,#45445f33,transparent 20%,transparent 53%,#45445f66 75%,#45445f99)}.birthday-controls{top:auto;bottom:max(76px,calc(env(safe-area-inset-bottom) + 60px));width:min(360px,88vw)}.voice{height:71px;padding:12px 17px;gap:12px}.play-icon{width:41px;height:41px}.waves{gap:3px}.voice-label{font-size:15px;letter-spacing:.3px}.voice-time{font-size:9px}.voice-status{margin-bottom:15px}.earth-enter{min-height:53px;min-width:198px;font-size:16px}.birthday-footer{font-size:9px}.card-scene .back{left:18px;top:18px}}
@media(max-height:600px) and (orientation:landscape){.birthday-controls{top:auto;bottom:35px;width:330px}.voice{height:58px;padding:9px 17px;gap:11px}.play-icon{width:37px;height:37px}.voice-label{font-size:14px}.voice-time{font-size:9px}.waves{height:26px}.voice-status{margin:3px 0 5px;font-size:10px}.audio-progress{margin-top:5px}.earth-enter{min-height:43px;font-size:14px}.birthday-footer{bottom:11px}.preview-orb{width:90px;height:90px;margin:10px auto}.earth-preview h1{margin:7px 0}.earth-preview .pill{margin:0}}
@media(prefers-reduced-motion:reduce){.playing .waves i{animation:none}}


/* v8: complete artwork and separate animated stars. */
.card-scene{background:radial-gradient(ellipse at 50% 45%,#46445f 0%,#27263f 65%,#171628 100%)}
.birthday{inset:18px 0 0;height:calc(100% - 18px);background:url('./assets/birthday.jpg') center top / contain no-repeat}
.card-shade{background:linear-gradient(180deg,transparent 50%,#22203825 72%,#171628a8 100%);pointer-events:none}
.birthday-controls{bottom:max(44px,6dvh);width:min(300px,84vw)}
.voice{height:62px;padding:11px 16px;gap:12px;background:linear-gradient(115deg,#fff9e7,#f5eacb)}
.play-icon{width:34px;height:34px}.play-icon svg{width:17px;height:17px}
.waves{gap:3px;height:25px}.waves i{width:2px;max-height:25px}
.voice-label{font-size:13px;letter-spacing:.2px}.voice-time{font-size:9px;letter-spacing:.3px}
.voice-status{margin:5px 0 12px;font-size:10px}.audio-progress{margin-top:8px}
.earth-enter{min-height:48px;min-width:168px;font-size:14px;background:linear-gradient(110deg,#d5e9ff,#dec8f3)}
.firework-left,.firework-right{position:absolute;top:0;bottom:15%;width:30%;overflow:hidden}
.firework-left{left:0}.firework-right{right:0}.firework-left canvas,.firework-right canvas{display:block;width:100%;height:100%}
.birthday-stars{position:absolute;inset:0;z-index:1;pointer-events:none}.birthday-stars canvas{display:block;width:100%;height:100%}
.card-scene .back{top:20px;left:18px;background:#29263d99}
@media(max-width:600px){
 .birthday{inset:70px 8px auto;height:calc(100% - 280px);background-position:center center;background-size:contain}
 .birthday-controls{bottom:max(48px,calc(env(safe-area-inset-bottom) + 38px));width:min(300px,84vw)}
 .card-shade{background:linear-gradient(180deg,transparent 60%,#17162866)}
 .firework-left,.firework-right{width:42%}
}
@media(max-height:600px) and (orientation:landscape){
 .birthday{inset:12px 0 0;height:calc(100% - 12px)}
 .birthday-controls{bottom:26px;width:270px}.voice{height:50px;padding:8px 14px}
 .voice-status{margin:3px 0 6px;font-size:9px}.earth-enter{min-height:40px;font-size:12px}
 .audio-progress{margin-top:4px}.birthday-footer{bottom:9px}
}

/* Local recording import, kept separate from the playback button. */
.audio-import-row{display:flex;justify-content:center;margin:0 0 5px}
.audio-import{border:1px solid #fff4d288;border-radius:24px;padding:8px 18px;min-height:36px;background:#302b49bd;color:#fff5d9;font-size:12px;cursor:pointer}
.audio-import:hover{background:#50425d}.audio-import:disabled{opacity:.6;cursor:wait}
.audio-import-note{font-size:10px;color:#fff2d7;margin:0 0 12px;line-height:1.5;text-shadow:0 1px 5px #161322}
.voice-status{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.birthday-controls{bottom:max(34px,4dvh)}
@media(max-width:600px){.birthday{height:calc(100% - 340px)}.birthday-controls{bottom:max(38px,calc(env(safe-area-inset-bottom) + 28px))}}
@media(max-height:600px) and (orientation:landscape){.audio-import{min-height:28px;padding:4px 14px}.audio-import-note{margin-bottom:6px;font-size:9px}.birthday-controls{bottom:24px}}

/* Bundled recording: retain accessible playback announcements without a visible status row. */
.voice-status{position:absolute!important;width:1px!important;height:1px!important;min-height:0!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip-path:inset(50%);white-space:nowrap;border:0}
.birthday-controls .audio-progress{margin:10px auto 18px}
