@custom-variant dark (&:is(.dark *));@font-face{font-family:Birthday V4 ZCOOL KuaiLe;src:url(/birthday-v4/fonts/ZCOOLKuaiLe-Regular.ttf) format("truetype");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Birthday V4 Caveat;src:url(/birthday-v4/fonts/Caveat.ttf) format("truetype");font-weight:400 700;font-style:normal;font-display:swap}.dark:is(.birthday-v4,.birthday-v4 *){--background:#221a20;--foreground:#f7edf1;--primary:#e692af;--primary-foreground:#221a20;--muted:#43323b;--muted-foreground:#b7a6ae;--border:#56434d;--input:#56434d;--ring:#e692af}:is(.birthday-v4,.birthday-v4 *){box-sizing:border-box}.birthday-v4:is(.birthday-v4,.birthday-v4 *){margin:0;font:16px/1.6 Microsoft YaHei,PingFang SC,sans-serif;color:#302b31;background:#fffafc}button:is(.birthday-v4,.birthday-v4 *),input:is(.birthday-v4,.birthday-v4 *),select:is(.birthday-v4,.birthday-v4 *),textarea:is(.birthday-v4,.birthday-v4 *){font:inherit}button:is(.birthday-v4,.birthday-v4 *){cursor:pointer}a:is(.birthday-v4,.birthday-v4 *){text-decoration:none;color:inherit}button:disabled:is(.birthday-v4,.birthday-v4 *){cursor:wait;opacity:.6}a:focus-visible:is(.birthday-v4,.birthday-v4 *),button:focus-visible:is(.birthday-v4,.birthday-v4 *){outline:3px solid #b94367;outline-offset:4px}.topbar:is(.birthday-v4,.birthday-v4 *){height:90px;border-bottom:1px solid #eedfe6;padding:0 max(24px,calc((100vw - 1150px)/2));display:flex;align-items:center;justify-content:space-between;background:#fff}.brand:is(.birthday-v4,.birthday-v4 *){display:flex;gap:12px;align-items:center;color:#b94367;font-weight:700;font-size:20px}.brand small:is(.birthday-v4,.birthday-v4 *){display:block;font-size:10px;letter-spacing:2px;font-weight:400;color:#8b7a81}.admin-link:is(.birthday-v4,.birthday-v4 *){display:flex;gap:8px;align-items:center;font-size:14px;color:#786771}.workspace:is(.birthday-v4,.birthday-v4 *){max-width:1150px;margin:46px auto 58px;display:grid;grid-template-columns:1fr 420px;gap:90px;padding:0 24px}.eyebrow:is(.birthday-v4,.birthday-v4 *){color:#b94367;font-size:14px;letter-spacing:2px}h1:is(.birthday-v4,.birthday-v4 *){font-size:36px;letter-spacing:1px;margin:8px 0}h2:is(.birthday-v4,.birthday-v4 *){font-size:18px;margin:18px 0 16px;font-weight:600}.intro:is(.birthday-v4,.birthday-v4 *){color:#83727b;margin:8px 0 30px}.editor-tabs:is(.birthday-v4,.birthday-v4 *){width:100%;height:48px!important;background:#f4eaf0!important;padding:5px!important;border-radius:12px!important}.editor-tabs button:is(.birthday-v4,.birthday-v4 *){height:38px!important;font-size:15px!important}.form-body:is(.birthday-v4,.birthday-v4 *){padding-top:10px}label:is(.birthday-v4,.birthday-v4 *){display:block;font-size:14px;color:#67545f;margin-bottom:18px}input:not([type=file]):is(.birthday-v4,.birthday-v4 *),select:is(.birthday-v4,.birthday-v4 *),textarea:is(.birthday-v4,.birthday-v4 *){display:block;width:100%;margin-top:7px;padding:11px 14px;border:1px solid #e7d8e0;border-radius:9px;background:#fff;color:#302b31;outline:none}input:focus:is(.birthday-v4,.birthday-v4 *),textarea:focus:is(.birthday-v4,.birthday-v4 *){border-color:#b94367;box-shadow:0 0 0 3px #b9436710}textarea:is(.birthday-v4,.birthday-v4 *){resize:vertical;line-height:1.8}.two-cols:is(.birthday-v4,.birthday-v4 *){display:grid;grid-template-columns:1fr 1fr;gap:16px}.themes:is(.birthday-v4,.birthday-v4 *){display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.theme-choice:is(.birthday-v4,.birthday-v4 *){background:#fff;border:1px solid #e7d8e0;border-radius:10px;padding:10px 5px;font-size:14px;color:#77616b;display:flex;align-items:center;justify-content:center;gap:7px}.theme-choice span:is(.birthday-v4,.birthday-v4 *){width:17px;height:17px;border-radius:50%;background:var(--card-bg)}.theme-choice.selected:is(.birthday-v4,.birthday-v4 *){border-color:#b94367;box-shadow:0 0 0 1px #b94367}.pink:is(.birthday-v4,.birthday-v4 *){--card-bg:#edacba;--ink:#8d4158;--light:#fff0f4}.green:is(.birthday-v4,.birthday-v4 *){--card-bg:#bbd88c;--ink:#527522;--light:#f0f8df}.blue:is(.birthday-v4,.birthday-v4 *){--card-bg:#a7cafa;--ink:#325f9e;--light:#edf5ff}.orange:is(.birthday-v4,.birthday-v4 *){--card-bg:#e9a574;--ink:#8b4326;--light:#fff2e6}.primary:is(.birthday-v4,.birthday-v4 *){border:0;background:#b94367;color:#fff;border-radius:10px;padding:13px 20px;font-weight:600;display:flex;align-items:center;justify-content:center;gap:9px}.generate:is(.birthday-v4,.birthday-v4 *){width:100%;margin-top:30px}.hint:is(.birthday-v4,.birthday-v4 *){color:#897a82;font-size:13px}.centered:is(.birthday-v4,.birthday-v4 *){text-align:center}.preview-area:is(.birthday-v4,.birthday-v4 *){padding-top:16px}.preview-caption:is(.birthday-v4,.birthday-v4 *){display:flex;align-items:center;gap:7px;color:#705965;font-size:14px;margin-bottom:18px}.preview-caption span:is(.birthday-v4,.birthday-v4 *){margin-left:auto;color:#a08c96;font-size:12px}.phone:is(.birthday-v4,.birthday-v4 *){max-width:360px;margin:auto;background:var(--card-bg);border:7px solid #fff;border-radius:32px;box-shadow:0 20px 60px #9150651a,0 0 0 1px #eadde3;overflow:hidden;height:670px;overflow-y:auto;scrollbar-width:none}.card-cover:is(.birthday-v4,.birthday-v4 *){text-align:center;min-height:440px;padding:36px 20px 25px;color:var(--ink);display:flex;flex-direction:column;align-items:center;justify-content:center}.tiny-note:is(.birthday-v4,.birthday-v4 *){font:10px/1.3 Georgia,serif;letter-spacing:3px;opacity:.7}.card-cover h2:is(.birthday-v4,.birthday-v4 *){font-size:28px;margin:30px 0 3px;font-weight:500;overflow-wrap:anywhere}.card-cover>p:is(.birthday-v4,.birthday-v4 *){font-size:22px;letter-spacing:8px;margin:0 0 14px}.cake-slot:is(.birthday-v4,.birthday-v4 *){font-size:80px;height:130px;display:flex;align-items:center;justify-content:center}.cake-art:is(.birthday-v4,.birthday-v4 *){width:185px;height:155px;object-fit:contain}.birthday-script:is(.birthday-v4,.birthday-v4 *){font:italic 32px/1.2 Georgia,serif;margin:12px 0 25px}.cover-line:is(.birthday-v4,.birthday-v4 *){font-size:12px;letter-spacing:2px;opacity:.8}.letter:is(.birthday-v4,.birthday-v4 *){margin:0 18px 24px;background:var(--light);border-radius:13px;padding:28px 22px;color:var(--ink);box-shadow:0 8px 20px #00000008}.letter>span:is(.birthday-v4,.birthday-v4 *){font:italic 19px Georgia,serif}.letter p:is(.birthday-v4,.birthday-v4 *){white-space:pre-wrap;font-size:15px;line-height:2.2;overflow-wrap:anywhere}.letter footer:is(.birthday-v4,.birthday-v4 *){text-align:right;font:italic 15px Georgia,serif}.preview-footer:is(.birthday-v4,.birthday-v4 *){text-align:center;font-size:13px;color:#a28b97;margin-top:24px}.site-footer:is(.birthday-v4,.birthday-v4 *){max-width:1150px;border-top:1px solid #ecdfe5;padding:22px 24px;margin:auto;color:#b94367;font-size:14px}.site-footer span:is(.birthday-v4,.birthday-v4 *){float:right;color:#98818e}.secondary:is(.birthday-v4,.birthday-v4 *){padding:11px 17px;background:white;color:#994561;border:1px solid #e2c9d4;border-radius:9px;display:inline-flex;align-items:center;justify-content:center;gap:7px}@media(max-width:850px){.workspace:is(.birthday-v4,.birthday-v4 *){grid-template-columns:1fr 340px;gap:35px;margin-top:30px}.phone:is(.birthday-v4,.birthday-v4 *){height:600px}.topbar:is(.birthday-v4,.birthday-v4 *){height:75px}}@media(max-width:700px){.topbar:is(.birthday-v4,.birthday-v4 *){padding:0 20px}.workspace:is(.birthday-v4,.birthday-v4 *){display:flex;flex-direction:column;padding:0 20px;margin:25px auto;gap:30px}.editor h1:is(.birthday-v4,.birthday-v4 *){font-size:29px}.preview-area:is(.birthday-v4,.birthday-v4 *){padding:0 0 24px}.preview-caption:is(.birthday-v4,.birthday-v4 *){max-width:360px;margin:0 auto 16px}.phone:is(.birthday-v4,.birthday-v4 *){height:600px;width:100%}.themes:is(.birthday-v4,.birthday-v4 *){gap:7px}.theme-choice:is(.birthday-v4,.birthday-v4 *){font-size:13px}.intro:is(.birthday-v4,.birthday-v4 *){font-size:14px}.site-footer:is(.birthday-v4,.birthday-v4 *){margin:0 20px;padding:20px 0}.admin-link:is(.birthday-v4,.birthday-v4 *){font-size:12px}.brand:is(.birthday-v4,.birthday-v4 *){font-size:18px}}@media(prefers-reduced-motion:reduce){:is(.birthday-v4,.birthday-v4 *){animation:none!important;scroll-behavior:auto!important}}.upload:is(.birthday-v4,.birthday-v4 *){border:1px dashed #d9b5c5;border-radius:12px;padding:24px;text-align:center;background:white;margin:18px 0}.upload svg:is(.birthday-v4,.birthday-v4 *){display:block;margin:0 auto 10px;color:#b94367}.upload strong:is(.birthday-v4,.birthday-v4 *){font-size:16px;font-weight:500}.upload span:is(.birthday-v4,.birthday-v4 *){display:block;font-size:13px;color:#8a7680;margin:4px 0}.upload input:is(.birthday-v4,.birthday-v4 *){display:block;max-width:100%;font-size:13px;margin:15px auto 0}.compact:is(.birthday-v4,.birthday-v4 *){padding:16px}.voice-button:is(.birthday-v4,.birthday-v4 *){display:flex;align-items:center;justify-content:center;gap:10px;width:100%;background:#f6e6ed;color:#a43c5e;border:1px solid #e8c3d2;border-radius:10px;padding:14px}.voice-button.recording:is(.birthday-v4,.birthday-v4 *){background:#b94367;color:white}.error:is(.birthday-v4,.birthday-v4 *){color:#ac2947;background:#fff0f2;border-radius:10px;padding:12px;font-size:14px;margin:15px 0;overflow-wrap:anywhere}.photo-list:is(.birthday-v4,.birthday-v4 *){display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.photo-list img:is(.birthday-v4,.birthday-v4 *){width:100%;height:95px;object-fit:cover;border-radius:8px}.photo-tile:is(.birthday-v4,.birthday-v4 *){position:relative}.photo-tile button:is(.birthday-v4,.birthday-v4 *){position:absolute;right:3px;top:3px;border:0;border-radius:50%;background:#ffffffdb;padding:5px}.audio-preview:is(.birthday-v4,.birthday-v4 *){width:100%;margin:10px 0}.memory:is(.birthday-v4,.birthday-v4 *){margin:20px 18px;background:var(--light);border-radius:12px;padding:12px;text-align:center;color:var(--ink)}.memory img:is(.birthday-v4,.birthday-v4 *){width:100%;border-radius:8px;display:block}.memory figcaption:is(.birthday-v4,.birthday-v4 *){font-size:14px;line-height:1.8;padding:18px 0 8px}.voice-block:is(.birthday-v4,.birthday-v4 *){margin:20px 18px;background:var(--light);padding:25px 16px;border-radius:14px;text-align:center;color:var(--ink)}.voice-block audio:is(.birthday-v4,.birthday-v4 *){width:100%}.voice-block h3:is(.birthday-v4,.birthday-v4 *){font-size:18px;margin:0 0 20px}.music-toggle:is(.birthday-v4,.birthday-v4 *){position:absolute;top:20px;right:20px;z-index:2;background:#ffffff8a;border:1px solid #ffffffa6;padding:10px;border-radius:50%}.phone:is(.birthday-v4,.birthday-v4 *){position:relative}.viewer:is(.birthday-v4,.birthday-v4 *){min-height:100dvh;background:var(--card-bg);color:var(--ink);max-width:520px;margin:auto;position:relative;overflow:hidden}.viewer .card-cover:is(.birthday-v4,.birthday-v4 *){min-height:100dvh}.viewer .letter:is(.birthday-v4,.birthday-v4 *){padding:35px 28px}.viewer .card-cover h2:is(.birthday-v4,.birthday-v4 *){font-size:36px}.viewer .cake-art:is(.birthday-v4,.birthday-v4 *){width:240px;height:210px}.viewer .letter p:is(.birthday-v4,.birthday-v4 *){font-size:17px}.open-card:is(.birthday-v4,.birthday-v4 *){margin:28px 0 0;color:var(--ink);border:1px solid;background:#ffffff30;border-radius:30px;padding:12px 32px}.reveal:is(.birthday-v4,.birthday-v4 *){animation:birthday-v4-rise 1s both}.reveal .cake-art:is(.birthday-v4,.birthday-v4 *){animation:birthday-v4-rise 1.3s .4s both}.reveal .birthday-script:is(.birthday-v4,.birthday-v4 *){animation:birthday-v4-rise 1.3s .7s both}.name-letter:is(.birthday-v4,.birthday-v4 *){display:inline-block;animation:birthday-v4-rise .7s both}@keyframes birthday-v4-rise{0%{opacity:0;transform:translateY(22px)}to{opacity:1;transform:translateY(0)}}.finished-note:is(.birthday-v4,.birthday-v4 *){text-align:center;padding:35px;font-size:13px}.letter footer:is(.birthday-v4,.birthday-v4 *){display:flex;align-items:center;justify-content:flex-end;gap:7px}.audio-notice:is(.birthday-v4,.birthday-v4 *){font-size:13px!important;letter-spacing:0!important}.share-result:is(.birthday-v4,.birthday-v4 *){text-align:center}.share-result img:is(.birthday-v4,.birthday-v4 *){width:185px;margin:15px auto}.share-result input:is(.birthday-v4,.birthday-v4 *){font-size:13px}.share-actions:is(.birthday-v4,.birthday-v4 *){display:flex;gap:10px;margin-top:14px}.share-actions>:is(.birthday-v4,.birthday-v4 *){flex:1}.poster-img:is(.birthday-v4,.birthday-v4 *){width:100%!important;max-height:58vh;object-fit:contain}.admin:is(.birthday-v4,.birthday-v4 *){max-width:950px;margin:40px auto;padding:24px}.admin-panel:is(.birthday-v4,.birthday-v4 *){background:white;padding:26px;border:1px solid #e8dbe2;border-radius:16px;margin:20px 0}.admin-grid:is(.birthday-v4,.birthday-v4 *){display:grid;grid-template-columns:1fr 1fr;gap:0 20px}.cards-table:is(.birthday-v4,.birthday-v4 *){width:100%;font-size:14px}.cards-table td:is(.birthday-v4,.birthday-v4 *),.cards-table th:is(.birthday-v4,.birthday-v4 *){padding:12px;text-align:left;border-bottom:1px solid #ecdfe5}.state-page:is(.birthday-v4,.birthday-v4 *){max-width:550px;margin:20vh auto;padding:30px;text-align:center}.toast:is(.birthday-v4,.birthday-v4 *){position:fixed;bottom:24px;left:50%;transform:translateX(-50%);background:#422c39;color:white;padding:12px 22px;border-radius:10px;z-index:99;max-width:90vw}.version-tip:is(.birthday-v4,.birthday-v4 *){font-size:13px;color:#84717c;margin:0 0 16px}.progress:is(.birthday-v4,.birthday-v4 *){font-size:14px;color:#9c4562;margin:10px 0}.variants:is(.birthday-v4,.birthday-v4 *){display:grid!important;grid-template-columns:repeat(3,1fr);gap:10px!important;margin:0 0 24px}.variant:is(.birthday-v4,.birthday-v4 *){display:flex;align-items:center;gap:8px;padding:13px 10px;border:1px solid #e7d8e0;border-radius:10px;cursor:pointer;background:#fff;margin:0;font-size:15px}.variant small:is(.birthday-v4,.birthday-v4 *){display:block;font-size:12px;color:#9b8290}.variant.active:is(.birthday-v4,.birthday-v4 *){border-color:#b94367;background:#fff5f8;color:#a43c5e}.themes label:is(.birthday-v4,.birthday-v4 *){margin:0;cursor:pointer}.music-options:is(.birthday-v4,.birthday-v4 *){display:flex!important;flex-wrap:wrap;gap:12px!important}.music-options label:is(.birthday-v4,.birthday-v4 *){display:flex;align-items:center;gap:7px;font-size:14px;margin:0}.voice-upload:is(.birthday-v4,.birthday-v4 *){font-size:13px;margin-top:20px}.voice-upload input:is(.birthday-v4,.birthday-v4 *){display:block;max-width:100%;margin-top:10px}.text-button:is(.birthday-v4,.birthday-v4 *){border:0;background:transparent;color:#a13f61;font-size:14px;padding:8px;cursor:pointer;display:inline-block}.custom-color:is(.birthday-v4,.birthday-v4 *){display:flex;align-items:center;justify-content:space-between;font-size:13px;margin:15px 0 0}.custom-color input:is(.birthday-v4,.birthday-v4 *){width:40px!important;height:30px;padding:2px!important;margin:0!important}.char-count:is(.birthday-v4,.birthday-v4 *){display:block;text-align:right;font-size:12px;color:#9c8b93;margin:4px 0 0}.editor-actions:is(.birthday-v4,.birthday-v4 *){display:flex;gap:12px;margin-top:24px}.editor-actions .generate:is(.birthday-v4,.birthday-v4 *){margin:0;flex:1;width:auto}.editor-actions .secondary:is(.birthday-v4,.birthday-v4 *){font-size:14px;white-space:nowrap}.full-preview:is(.birthday-v4,.birthday-v4 *){padding:0!important;max-width:450px!important;width:90vw;overflow:hidden;max-height:90dvh;overflow-y:auto;border-radius:24px!important}.full-preview .viewer .card-cover:is(.birthday-v4,.birthday-v4 *){min-height:75dvh}.login-panel:is(.birthday-v4,.birthday-v4 *){max-width:500px}.invite-form:is(.birthday-v4,.birthday-v4 *){display:flex;gap:15px;align-items:center}.invite-form label:is(.birthday-v4,.birthday-v4 *){flex:1}.invite-form .primary:is(.birthday-v4,.birthday-v4 *){margin-top:8px;white-space:nowrap}details:is(.birthday-v4,.birthday-v4 *){margin-top:18px;text-align:left;font-size:13px}summary:is(.birthday-v4,.birthday-v4 *){cursor:pointer;color:#896070}.share-result details input:is(.birthday-v4,.birthday-v4 *){font-size:12px}.result-dialog:is(.birthday-v4,.birthday-v4 *){max-height:90dvh;overflow-y:auto}.form-body h2:is(.birthday-v4,.birthday-v4 *){display:flex;align-items:center;gap:8px}@media(max-width:700px){.admin-grid:is(.birthday-v4,.birthday-v4 *){grid-template-columns:1fr}.admin:is(.birthday-v4,.birthday-v4 *){padding:15px}.cards-table td:first-child:is(.birthday-v4,.birthday-v4 *),.cards-table th:first-child:is(.birthday-v4,.birthday-v4 *){display:none}.viewer .card-cover h2:is(.birthday-v4,.birthday-v4 *){font-size:32px}.share-actions:is(.birthday-v4,.birthday-v4 *){flex-direction:column}.variants:is(.birthday-v4,.birthday-v4 *){gap:7px!important}.variant:is(.birthday-v4,.birthday-v4 *){padding:10px 7px;font-size:14px;gap:5px}.invite-form:is(.birthday-v4,.birthday-v4 *){display:block}.invite-form .primary:is(.birthday-v4,.birthday-v4 *){width:100%;margin-bottom:20px}.editor-actions:is(.birthday-v4,.birthday-v4 *){gap:8px}.editor-actions .secondary:is(.birthday-v4,.birthday-v4 *){padding:10px}.music-options:is(.birthday-v4,.birthday-v4 *){gap:8px!important}}@media(min-width:701px) and (max-width:850px){.editor h1:is(.birthday-v4,.birthday-v4 *){font-size:29px;letter-spacing:0}}.blessing-image:is(.birthday-v4,.birthday-v4 *){position:relative;overflow:hidden;width:100%;border-radius:4px;background:#fff}.blessing-image img:is(.birthday-v4,.birthday-v4 *){position:absolute;height:auto;display:block}.blessing-card:is(.birthday-v4,.birthday-v4 *){margin:24px 20px 38px;text-align:center}.blessing-card figcaption:is(.birthday-v4,.birthday-v4 *){white-space:pre-line;line-height:2;font-size:16px;padding:26px 4px 0;color:var(--ink);overflow-wrap:anywhere}.gallery-heading:is(.birthday-v4,.birthday-v4 *){text-align:center;padding-top:28px;color:var(--ink)}.memory figcaption:is(.birthday-v4,.birthday-v4 *){white-space:pre-line;overflow-wrap:anywhere}.blue .letter:is(.birthday-v4,.birthday-v4 *),.blue .memory:is(.birthday-v4,.birthday-v4 *),.blue .voice-block:is(.birthday-v4,.birthday-v4 *){color:#345e9f}.cake-button:is(.birthday-v4,.birthday-v4 *){position:relative;border:0;background:transparent;padding:0;width:220px;aspect-ratio:1;cursor:pointer}.cake-button img:is(.birthday-v4,.birthday-v4 *){width:100%;height:100%;object-fit:contain}.cake-button:disabled:is(.birthday-v4,.birthday-v4 *){opacity:1;cursor:default}.candle-flame:is(.birthday-v4,.birthday-v4 *){position:absolute;left:50%;top:19.7%;width:22px;height:32px;transform:translate(-50%,-85%);filter:drop-shadow(0 0 8px #fff2a1);animation:birthday-v4-flicker 1s ease-in-out infinite alternate}.viewer .cake-button:is(.birthday-v4,.birthday-v4 *){width:270px}.candle-hint:is(.birthday-v4,.birthday-v4 *){font-size:14px!important;letter-spacing:0!important;margin:18px 0 0!important;opacity:.85}.open-card:is(.birthday-v4,.birthday-v4 *){display:inline-flex;gap:8px;align-items:center}.birthday-intro:is(.birthday-v4,.birthday-v4 *){min-height:100dvh;display:flex;align-items:center;justify-content:center;flex-direction:column;position:relative;color:var(--ink)}.full-preview .birthday-intro:is(.birthday-v4,.birthday-v4 *){min-height:75dvh}.intro-word:is(.birthday-v4,.birthday-v4 *){font-size:clamp(35px,8vw,62px);font-weight:600;letter-spacing:6px;text-align:center;overflow-wrap:anywhere;max-width:90%;animation:birthday-v4-count-pop .85s both}.countdown-digit:is(.birthday-v4,.birthday-v4 *){font-size:150px;font-weight:300;letter-spacing:0}.intro-stars:is(.birthday-v4,.birthday-v4 *){font-size:30px;letter-spacing:18px;margin-top:28px;opacity:.65}.skip-intro:is(.birthday-v4,.birthday-v4 *){position:absolute;bottom:35px;border:1px solid;background:transparent;color:inherit;padding:8px 20px;border-radius:25px;font-size:14px}.audio-notice:is(.birthday-v4,.birthday-v4 *){text-align:center;padding:12px}.gallery-picker:is(.birthday-v4,.birthday-v4 *){display:grid;grid-template-columns:1fr 1fr;gap:18px}.gallery-option:is(.birthday-v4,.birthday-v4 *){padding:12px;border:1px solid #e7d8e0;border-radius:12px;background:#fff}.gallery-option.chosen:is(.birthday-v4,.birthday-v4 *){border-color:#b94367}.gallery-option .blessing-image:is(.birthday-v4,.birthday-v4 *){max-height:210px}.gallery-option textarea:is(.birthday-v4,.birthday-v4 *){font-size:14px;padding:8px}.inline-check:is(.birthday-v4,.birthday-v4 *){display:flex;align-items:center;gap:9px}.gallery-actions:is(.birthday-v4,.birthday-v4 *){display:flex;align-items:center;gap:10px;margin-bottom:15px}.gallery-actions span:is(.birthday-v4,.birthday-v4 *){margin-left:auto}.photo-list:is(.birthday-v4,.birthday-v4 *){grid-template-columns:repeat(2,1fr)}.photo-tile label:is(.birthday-v4,.birthday-v4 *){margin-top:8px}.photo-tile textarea:is(.birthday-v4,.birthday-v4 *){font-size:14px;padding:8px}.editor-tabs button:is(.birthday-v4,.birthday-v4 *){font-size:14px!important}.effect-controls:is(.birthday-v4,.birthday-v4 *){margin-top:24px}@keyframes birthday-v4-flicker{0%{opacity:.85;scale:1}to{opacity:1;scale:1.06}}@keyframes birthday-v4-count-pop{0%{opacity:0;transform:scale(.82)}25%{opacity:1}to{opacity:1;transform:scale(1)}}@media(max-width:400px){.editor-tabs button:is(.birthday-v4,.birthday-v4 *){font-size:12px!important;padding:5px!important}.gallery-picker:is(.birthday-v4,.birthday-v4 *){gap:10px}.gallery-option:is(.birthday-v4,.birthday-v4 *){padding:8px}}.full-preview .viewer:is(.birthday-v4,.birthday-v4 *){width:100%;max-width:none}.gallery-option .blessing-image:is(.birthday-v4,.birthday-v4 *){max-height:none}.music-toggle:is(.birthday-v4,.birthday-v4 *){color:var(--ink)}.invite-settings:is(.birthday-v4,.birthday-v4 *){display:grid;grid-template-columns:1fr 1fr;gap:20px}.batch-result:is(.birthday-v4,.birthday-v4 *){padding:16px;border:1px solid #ecdfe5;border-radius:12px;margin:14px 0;background:#fffafc}.batch-result p:is(.birthday-v4,.birthday-v4 *){overflow-wrap:anywhere}@media(max-width:500px){.invite-settings:is(.birthday-v4,.birthday-v4 *){grid-template-columns:1fr}}.viewer:is(.birthday-v4,.birthday-v4 *){overflow:clip}.celebration-cover:is(.birthday-v4,.birthday-v4 *){position:relative;isolation:isolate;overflow:hidden;color:#fff3db;background:radial-gradient(ellipse at 50% 65%,#a7735038,transparent 52%),radial-gradient(ellipse at 15% 12%,#777bc938,transparent 50%),linear-gradient(165deg,#17213c,#090f20 68%,#151326)}.celebration-cover:before:is(.birthday-v4,.birthday-v4 *){content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;background-image:radial-gradient(circle at 12% 19%,#fff2 1px,transparent 2px),radial-gradient(circle at 78% 12%,#fff4 1px,transparent 2px),radial-gradient(circle at 89% 53%,#ffcf8a44 1px,transparent 2px),radial-gradient(circle at 23% 68%,#fff3 1px,transparent 2px);background-size:133px 179px,171px 213px,193px 147px,211px 239px}.birthday-fireworks:is(.birthday-v4,.birthday-v4 *){position:absolute;inset:0;width:100%;height:100%;z-index:-1;pointer-events:none}.reading-celebration:is(.birthday-v4,.birthday-v4 *){position:sticky;top:0;height:0;z-index:2;pointer-events:none}.reading-fireworks:is(.birthday-v4,.birthday-v4 *){height:100dvh;z-index:0;pointer-events:none}.celebration-cover .tiny-note:is(.birthday-v4,.birthday-v4 *){color:#f8db9e;opacity:.85;letter-spacing:3px}.celebration-cover h2:is(.birthday-v4,.birthday-v4 *){text-shadow:0 2px 15px #0004}.celebration-cover .birthday-name:is(.birthday-v4,.birthday-v4 *),.viewer .celebration-cover .birthday-name:is(.birthday-v4,.birthday-v4 *){font-family:Birthday V4 Caveat,Birthday V4 ZCOOL KuaiLe,KaiTi,cursive;font-size:clamp(34px,9vw,48px);font-weight:400;line-height:1.45;letter-spacing:.02em;max-width:100%;margin:24px 0 4px}.birthday-greeting:is(.birthday-v4,.birthday-v4 *){font-family:Birthday V4 Caveat,cursive;font-size:1.15em;font-weight:600}.celebration-cover>.birthday-title:is(.birthday-v4,.birthday-v4 *){font-family:Birthday V4 ZCOOL KuaiLe,KaiTi,cursive;font-size:clamp(32px,9vw,44px);font-weight:400;line-height:1.45;letter-spacing:.14em;text-indent:.14em;margin:0 0 18px;text-shadow:0 2px 12px #ffc56b33}.birthday-intro .intro-word:is(.birthday-v4,.birthday-v4 *){font-family:Birthday V4 Caveat,Birthday V4 ZCOOL KuaiLe,KaiTi,cursive;font-weight:400;font-size:clamp(34px,11vw,60px);line-height:1.45;letter-spacing:.04em}.birthday-intro .countdown-digit:is(.birthday-v4,.birthday-v4 *){font-family:Birthday V4 Caveat,cursive;font-size:82px;font-weight:600}.celebration-cover>.birthday-script:is(.birthday-v4,.birthday-v4 *){color:#ffdfa0;text-shadow:0 0 22px #ffd77b44;font-size:clamp(29px,8vw,40px);margin:0 0 22px}.celebration-cover>.birthday-script:is(.birthday-v4,.birthday-v4 *){font-family:Birthday V4 Caveat,cursive;font-weight:600;font-style:normal;font-size:clamp(38px,10vw,52px);line-height:1.2}.celebration-cover .cover-line:is(.birthday-v4,.birthday-v4 *){font-size:14px;letter-spacing:1px;color:#fff3d9}.celebration-cover .candle-hint:is(.birthday-v4,.birthday-v4 *){font-size:14px!important;line-height:1.8;max-width:28em;color:#f5ddb6;min-height:2em}.celebration-cover .open-card:is(.birthday-v4,.birthday-v4 *){position:relative;color:#ffebc6;background:#fff2;border-color:#f6d69c77;font-size:15px;backdrop-filter:blur(6px);margin-top:22px}.music-toggle:is(.birthday-v4,.birthday-v4 *){z-index:4;background:#ffffffbd}.full-preview .viewer:is(.birthday-v4,.birthday-v4 *){min-height:0}.celebration-cake:is(.birthday-v4,.birthday-v4 *){position:relative;width:250px;max-width:85%;aspect-ratio:320/290;margin:4px 0 9px}.viewer .celebration-cake:is(.birthday-v4,.birthday-v4 *){width:300px}.celebration-cake svg:is(.birthday-v4,.birthday-v4 *){display:block;width:100%;height:100%;overflow:visible;position:relative;z-index:1}.cake-floor-glow:is(.birthday-v4,.birthday-v4 *){position:absolute;bottom:7%;left:13%;width:74%;height:15%;border-radius:50%;background:#ffbf6730;filter:blur(18px);opacity:0;transition:opacity 1.2s}.is-lit .cake-floor-glow:is(.birthday-v4,.birthday-v4 *){opacity:1}.cake-arriving .cake-candle:is(.birthday-v4,.birthday-v4 *),.cake-arriving .cake-icing:is(.birthday-v4,.birthday-v4 *),.cake-arriving .cake-tier:is(.birthday-v4,.birthday-v4 *){animation:birthday-v4-cake-settle .65s cubic-bezier(.16,1,.3,1) both}.cake-arriving .tier-middle:is(.birthday-v4,.birthday-v4 *){animation-delay:.18s}.cake-arriving .cake-icing:is(.birthday-v4,.birthday-v4 *){animation-delay:.4s}.cake-arriving .cake-candle:is(.birthday-v4,.birthday-v4 *){animation-delay:.65s}.cake-flame:is(.birthday-v4,.birthday-v4 *){transform-origin:160px 114px;animation:birthday-v4-candle-ignite .45s both,birthday-v4-candle-sway 1.5s ease-in-out .45s infinite alternate}@keyframes birthday-v4-cake-settle{0%{opacity:0;transform:translateY(-28px)}to{opacity:1;transform:translateY(0)}}@keyframes birthday-v4-candle-ignite{0%{opacity:0;transform:scale(.15)}to{opacity:1;transform:scale(1)}}@keyframes birthday-v4-candle-sway{0%{transform:scale(.96,1.03) rotate(-2deg);opacity:.9}to{transform:scale(1.04,.97) rotate(2deg);opacity:1}}.festive-caption:is(.birthday-v4,.birthday-v4 *){position:relative;padding-left:32px!important;padding-right:32px!important}.festive-caption>span:not(.reading-sparkles):is(.birthday-v4,.birthday-v4 *){position:relative;z-index:1}.festive-letter:is(.birthday-v4,.birthday-v4 *){position:relative;padding-left:42px!important;padding-right:42px!important}.reading-sparkles:is(.birthday-v4,.birthday-v4 *){position:absolute;inset:0;overflow:hidden;pointer-events:none;user-select:none}.tiny-firework:is(.birthday-v4,.birthday-v4 *){position:absolute;width:28px;height:28px;top:38%;opacity:0;fill:currentColor;color:#ffcf72;animation:birthday-v4-reading-burst 10s var(--spark-delay,0s) infinite;animation-play-state:paused}.tiny-firework.left:is(.birthday-v4,.birthday-v4 *){left:1px}.tiny-firework.right:is(.birthday-v4,.birthday-v4 *){right:1px;top:66%;color:#ffc0d9;animation-delay:calc(var(--spark-delay,0s) - 4.6s);animation-duration:12s}.tiny-firework path:is(.birthday-v4,.birthday-v4 *){fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round}.sparkles-visible .tiny-firework:is(.birthday-v4,.birthday-v4 *){animation-play-state:running}.orange .tiny-firework:is(.birthday-v4,.birthday-v4 *),.pink .tiny-firework:is(.birthday-v4,.birthday-v4 *){color:#bb6547}.orange .tiny-firework.right:is(.birthday-v4,.birthday-v4 *),.pink .tiny-firework.right:is(.birthday-v4,.birthday-v4 *){color:#a15980}.green .tiny-firework:is(.birthday-v4,.birthday-v4 *){color:#779541}.green .tiny-firework.right:is(.birthday-v4,.birthday-v4 *){color:#b67b46}.festive-letter .tiny-firework:is(.birthday-v4,.birthday-v4 *){color:#b37a46}.festive-letter .tiny-firework.right:is(.birthday-v4,.birthday-v4 *){color:#a75e87}@keyframes birthday-v4-reading-burst{0%,64%,to{opacity:0;transform:scale(.25) rotate(-8deg)}68%{opacity:.65}77%{opacity:.4;transform:scale(1) rotate(4deg)}84%{opacity:0;transform:scale(1.12) rotate(8deg)}}@media(max-width:400px){.viewer .celebration-cake:is(.birthday-v4,.birthday-v4 *){width:270px}.festive-caption:is(.birthday-v4,.birthday-v4 *){padding-left:30px!important;padding-right:30px!important}.festive-letter:is(.birthday-v4,.birthday-v4 *){padding-left:34px!important;padding-right:34px!important}}@media(prefers-reduced-motion:reduce){.birthday-fireworks:is(.birthday-v4,.birthday-v4 *),.reading-sparkles:is(.birthday-v4,.birthday-v4 *){display:none}.cake-candle:is(.birthday-v4,.birthday-v4 *),.cake-flame:is(.birthday-v4,.birthday-v4 *),.cake-icing:is(.birthday-v4,.birthday-v4 *),.cake-tier:is(.birthday-v4,.birthday-v4 *){opacity:1!important;transform:none!important}.cake-floor-glow:is(.birthday-v4,.birthday-v4 *){transition:none}}.birthday-v4:is(.birthday-v4,.birthday-v4 *){font-family:system-ui,-apple-system,Segoe UI,sans-serif}.editor h1:is(.birthday-v4,.birthday-v4 *){font-family:Birthday V4 Caveat,cursive;font-size:46px;line-height:1.1;letter-spacing:0}.celebration-cover>.birthday-title:is(.birthday-v4,.birthday-v4 *){font-family:Birthday V4 Caveat,cursive;font-size:clamp(36px,10vw,50px);letter-spacing:.02em;text-indent:0}.birthday-intro .intro-word:is(.birthday-v4,.birthday-v4 *){letter-spacing:.01em;max-width:90%;overflow-wrap:anywhere}.gallery-heading:is(.birthday-v4,.birthday-v4 *){font-family:Birthday V4 Caveat,cursive;font-style:normal;font-size:40px}.festive-caption:is(.birthday-v4,.birthday-v4 *){font-family:Georgia,serif;font-size:17px;line-height:1.9}.letter p:is(.birthday-v4,.birthday-v4 *){font-family:Georgia,serif;font-size:17px;line-height:1.9}.variants:is(.birthday-v4,.birthday-v4 *){grid-template-columns:repeat(3,minmax(0,1fr))}.variant:is(.birthday-v4,.birthday-v4 *){min-width:0;gap:6px}.editor-tabs button:is(.birthday-v4,.birthday-v4 *){min-width:0;font-size:12px!important;padding-left:5px;padding-right:5px}.whatsapp-share:is(.birthday-v4,.birthday-v4 *){background:#187d46;border-color:#187d46;color:white;margin-top:12px;width:100%}@media(max-width:700px){.editor h1:is(.birthday-v4,.birthday-v4 *){font-size:40px}.site-footer span:is(.birthday-v4,.birthday-v4 *){float:none;display:block;margin-top:7px}.variant small:is(.birthday-v4,.birthday-v4 *){font-size:11px}}