.birthday-scope{--bg:#fff8ee;--bg-soft:#f8e9dc;--surface:#fffefa;--ink:#342827;--ink-soft:#6c5552;--line:#ddc9bf;--accent:#a52a43;--accent-deep:#822137;--accent-soft:#f4c9d0;--gold:#8a6634;background:var(--bg);color:var(--ink);font-family:var(--font-inter),sans-serif;line-height:1.65;-webkit-font-smoothing:antialiased}.birthday-scope *{box-sizing:border-box}.birthday-scope [hidden]{display:none!important}.birthday-scope :is(button,a,select,input,textarea,summary):focus-visible{outline:2px solid var(--accent);outline-offset:4px}.birthday-scope button:disabled{cursor:default}.birthday-scope :is(h1,h2,h3){font-family:var(--font-playfair),Georgia,serif;line-height:1.15}.bday-experience{overflow-x:clip}.bday-experience main{opacity:1;transition:opacity .8s cubic-bezier(.4,0,.2,1)}.bday-experience.is-fading main{opacity:0}.bday-guided{position:relative;height:100dvh;display:flex;flex-direction:column;overflow:hidden}.bday-guided>[data-music-control]{position:absolute;top:10px;right:16px;bottom:auto;width:44px;height:44px}.bday-guided.has-music .bday-progress-dots{visibility:hidden}.bday-session-viewport{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin}.bday-session-stage{min-height:100%}.bday-guided .bday-section{min-height:calc(100dvh - 64px);padding-bottom:100px}.bday-session-back{display:grid;place-items:center;width:44px;height:44px;border:1px solid var(--line);border-radius:50%;background:var(--surface)}.bday-session-back:disabled{opacity:.3}.bday-session-progress{font-size:12px;font-weight:600}.bday-session-progress span{color:var(--ink-soft)}.bday-progress-dots{display:flex;gap:5px}.bday-progress-dots i{width:6px;height:6px;border-radius:50%;background:var(--line)}.bday-progress-dots i.is-active{background:var(--accent)}.bday-opening-music{margin-top:8px}.bday-wish-popup{position:absolute;top:-6px;left:50%;transform:translateX(-50%);width:min(220px,85%);z-index:5;pointer-events:none}.bday-wish-popup p{padding:8px 12px;border:1px solid var(--line);border-radius:10px;background:var(--surface);color:var(--accent-deep);box-shadow:0 4px 12px #34282712;font:500 12px/1.5 var(--font-inter),sans-serif;animation:bday-wish-toast 1.8s ease both}.bday-wishes-section{background:#fcf1d4}.bday-wishes-grid{display:grid;gap:28px;max-width:500px;margin:0 auto;padding-top:12px}.bday-wish-card{--card-tint:#f8dce1;position:relative;border:1px solid #d7beb7;border-radius:5px 18px 18px 18px;background:var(--surface);text-align:left;box-shadow:3px 5px 0 #ddc9bf40;transform:rotate(-1deg)}.bday-wish-tone-1{--card-tint:#f7e9b8;transform:rotate(1deg)}.bday-wish-tone-2{--card-tint:#dbe5d5}.bday-wish-card summary{position:relative;list-style:none;padding:28px 82px 24px 24px;min-height:145px;cursor:pointer;background:linear-gradient(140deg,var(--card-tint),#fffefa 75%);border-radius:inherit}.bday-wish-card summary::-webkit-details-marker{display:none}.bday-wish-card h3{font-family:var(--font-caveat),cursive;font-size:33px;line-height:1.15;margin:12px 0 18px;overflow-wrap:anywhere}.bday-wish-tape{position:absolute;top:-12px;left:24px;width:75px;height:23px;transform:rotate(-8deg);background:#f6d879a6;border-inline:2px dashed #fff8eea0}.bday-wish-stamp{position:absolute;top:24px;right:18px;width:47px;height:62px;display:flex;align-items:center;flex-direction:column;padding:5px;border:2px dotted #a52a4355;background:#fffefaaa;color:var(--accent);transform:rotate(9deg)}.bday-wish-stamp svg{width:28px;height:28px}.bday-wish-stamp span{font-size:10px;letter-spacing:.12em}.bday-wish-kicker{font-size:8px;letter-spacing:.14em}.bday-wish-card-hint{color:var(--accent);font-size:13px;font-weight:600;text-decoration:underline;text-underline-offset:4px}.bday-wish-card .when-open,.bday-wish-card[open] .when-closed{display:none}.bday-wish-card[open] .when-open{display:inline}.bday-wish-note{margin:0 18px 18px;padding:20px 8px 8px;border-top:1px dashed var(--line);animation:bday-reveal .5s ease-out}.bday-wish-note p{font-size:16px;line-height:1.85;white-space:pre-line;overflow-wrap:anywhere}.bday-wish-note>.bday-hand{display:block;font-size:23px;margin-top:18px;color:var(--accent)}@keyframes bday-wish-toast{0%{opacity:0;transform:translateY(6px) scale(.95)}12%,75%{opacity:1;transform:none}to{opacity:0;transform:translateY(-5px)}}@keyframes bday-box-burst{0%{opacity:0;transform:translate(0) rotate(0)}12%{opacity:1}70%{opacity:1}to{opacity:0;transform:translate(var(--burst-x),var(--burst-y)) rotate(var(--burst-turn))}}.bday-nav{position:sticky;top:0;z-index:30;display:flex;justify-content:space-between;align-items:center;gap:8px;min-height:64px;padding:8px max(16px,env(safe-area-inset-left));background:#fff8eef5;border-bottom:1px solid var(--line);backdrop-filter:blur(12px)}.bday-nav select{min-height:44px;max-width:60%;background:transparent;color:var(--ink);border:0;font-size:13px;font-weight:600;padding:0 8px}.bday-music-control{display:flex;align-items:center;gap:6px;border:1px solid var(--line);border-radius:12px;min-height:44px;padding:8px 10px;font-size:12px;background:var(--surface)}.bday-section{position:relative;scroll-margin-top:72px;padding:84px 20px;text-align:center}.bday-section-title{max-width:560px;margin:0 auto 36px}.bday-eyebrow{display:flex;justify-content:center;align-items:center;gap:10px;font-size:10px;line-height:1.5;letter-spacing:.18em;font-weight:600;color:var(--accent)}.bday-eyebrow>span:not(.bday-dot){display:grid;place-items:center;width:26px;height:26px;border:1px solid;border-radius:50%;font-size:10px;letter-spacing:0}.bday-dot{width:7px;height:7px;border-radius:50%;background:var(--accent)}.bday-section h2{font-size:clamp(28px,5vw,40px);margin:18px 0;text-wrap:balance}.bday-description{color:var(--ink-soft);font-size:16px;max-width:500px;margin:16px auto;white-space:pre-line;overflow-wrap:anywhere}.bday-button{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:48px;padding:12px 22px;border:1px solid transparent;border-radius:14px;background:var(--accent);color:white;font:600 14px/1.5 var(--font-inter),sans-serif;text-decoration:none;cursor:pointer;transition:background .16s,transform .16s}.bday-button:hover{background:var(--accent-deep)}.bday-button:active{transform:scale(.98)}.bday-button:disabled{opacity:.5}.bday-button-light{background:var(--surface);border-color:#92736b;color:var(--ink)}.bday-button-light:hover{background:#f8e9dc}.bday-text-button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:8px 12px;font-size:13px;font-weight:600;color:var(--accent);text-decoration:underline;text-underline-offset:4px;background:transparent;border:0}.bday-icon-button{display:grid;place-items:center;width:46px;height:46px;border:1px solid #92736b;background:var(--surface);color:var(--ink);border-radius:50%}.bday-small{font-size:12px;color:var(--ink-soft)}.bday-hand{font-family:var(--font-caveat),cursive;font-size:28px;line-height:1.35;overflow-wrap:anywhere}.bday-next{margin-top:24px}.bday-opening{padding-top:64px;padding-bottom:64px;background:radial-gradient(ellipse at 50% 60%,#f6d87938,transparent 60%),var(--bg)}.bday-recipient{margin:10px auto;font:500 clamp(26px,6vw,38px)/1.2 var(--font-caveat),cursive;color:var(--accent);overflow-wrap:anywhere}.bday-opening h1{font-size:clamp(36px,7vw,60px);letter-spacing:-.035em;max-width:630px;margin:18px auto;text-wrap:balance}.bday-gift-art{position:relative;width:min(260px,65vw);height:270px;margin:24px auto 32px}.bday-gift-art img{width:100%;height:100%;object-fit:contain;transition:transform .7s cubic-bezier(.22,1,.36,1)}.bday-box-base{clip-path:inset(53% 0 0)}.bday-box-lid{position:absolute;inset:0;clip-path:inset(0 0 47%)}.bday-gift-art.is-open .bday-box-lid{transform:translateY(-32px) rotate(-8deg)}.bday-gift-tag{position:absolute;right:-14px;bottom:17px;padding:10px 18px;background:var(--surface);border:1px solid var(--line);box-shadow:0 8px 16px #34282710;transform:rotate(7deg);font:500 21px/1.2 var(--font-caveat),cursive;max-width:160px;overflow-wrap:anywhere}.bday-opening>.bday-small{margin:16px auto 0;max-width:460px}.bday-cake-section{background:#fbe9e8;border-block:1px solid #e9d2ca}.bday-cake{position:relative;width:min(380px,95%);margin:0 auto;padding-top:60px}.bday-cake>img{width:100%;height:auto}.bday-candles{position:absolute;z-index:2;left:26%;right:26%;top:24px;display:flex;justify-content:space-between;align-items:flex-start}.bday-candle{display:flex;align-items:center;flex-direction:column;position:relative;min-width:48px;height:115px;border:0;background:transparent;cursor:pointer;padding:0}.bday-candle-stick{width:12px;height:54px;border-radius:3px;background:repeating-linear-gradient(45deg,#a52a43 0 5px,#fffefa 5px 11px);box-shadow:2px 2px 0 #34282715}.bday-wick{height:7px;width:2px;background:var(--ink)}.bday-flame{display:block;height:23px;width:15px;margin:4px 0;border-radius:80% 20% 60% 40%;background:#f5bb42;box-shadow:0 0 12px #f6d87980;transform:rotate(-30deg)}.bday-cake.is-visible .bday-flame:not(.is-out){animation:bday-flame 1.4s ease-in-out infinite alternate}.bday-flame.is-out{opacity:0}.bday-cake-message{min-height:94px;max-width:480px;margin:12px auto 20px}.bday-cake-message>p:not(.bday-hand){font-size:14px;color:var(--ink-soft)}.bday-confetti{position:absolute;inset:0;pointer-events:none;overflow:hidden}.bday-confetti i{position:absolute;top:0;width:7px;height:13px;border-radius:1px;animation:bday-confetti 1.2s ease-out forwards}.bday-album-section,.bday-photo{background:#fffefa}.bday-photo{position:relative;padding:14px 14px 12px;max-width:340px;margin:0 auto;border:1px solid var(--line);box-shadow:0 12px 30px #34282714;transform:rotate(-2deg)}.bday-photo-tape{position:absolute;top:-12px;width:100px;height:25px;left:calc(50% - 50px);background:#f6d879a0;transform:rotate(4deg);z-index:1}.bday-photo-content{aspect-ratio:3/4;overflow:hidden;background:var(--bg-soft)}.bday-photo-face,.bday-photo-face img,.bday-photo-note{width:100%;height:100%}.bday-photo-face img{object-fit:cover}.bday-photo-placeholder{display:grid;align-content:center;height:100%;padding:24px;color:var(--ink-soft);background:repeating-linear-gradient(0deg,transparent 0 31px,#ddc9bf50 31px 32px)}.bday-photo-placeholder span{font-family:var(--font-caveat),cursive;font-size:30px}.bday-photo-placeholder p{font-size:13px}.bday-photo-note{display:flex;justify-content:center;flex-direction:column;padding:24px;background:repeating-linear-gradient(0deg,#fff8ee 0 31px,#ddc9bf60 31px 32px)}.bday-photo-note .bday-hand{font-size:27px;white-space:pre-line}.bday-photo-caption{min-height:32px;margin:14px 4px 0;font:500 24px/1.3 var(--font-caveat),cursive;overflow-wrap:anywhere}.bday-album-controls{display:flex;align-items:center;justify-content:center;gap:24px;margin:24px 0}.bday-album-controls p{font-size:12px;color:var(--ink-soft)}.bday-quiz-section{background:#fcf1d4}.bday-quiz-card{max-width:490px;padding:30px;margin:0 auto;border:1px solid var(--line);background:var(--surface);border-radius:24px;text-align:left;box-shadow:0 8px 0 #f6d87950}.bday-quiz-card h3{font-size:24px;line-height:1.3;margin:12px 0 24px;overflow-wrap:anywhere}.bday-quiz-options{display:grid;gap:10px}.bday-quiz-option{display:flex;align-items:center;gap:12px;text-align:left;padding:14px;min-height:54px;border:1px solid #92736b;border-radius:12px;background:var(--surface);font-size:15px;color:var(--ink);overflow-wrap:anywhere}.bday-quiz-option>span{display:grid;place-items:center;flex-shrink:0;width:28px;height:28px;border-radius:50%;background:var(--bg-soft);font-size:11px;font-weight:600}.bday-quiz-option svg{margin-left:auto;flex-shrink:0}.bday-quiz-option.is-selected{background:#f8dce1;border-color:var(--accent)}.bday-feedback{margin-top:18px;color:var(--ink-soft);font-size:14px}.bday-feedback p{margin-bottom:18px}.bday-letter{max-width:550px;margin:0 auto;background:var(--surface);border:1px solid var(--line);box-shadow:0 15px 40px #3428270b;text-align:left}.bday-letter-cover,.bday-ticket>summary{display:flex;flex-direction:column;align-items:center;gap:28px;padding:36px 20px;text-align:center;list-style:none;cursor:pointer}.bday-letter-cover::-webkit-details-marker,.bday-ticket>summary::-webkit-details-marker{display:none}.bday-ribbon{width:100%;display:flex;align-items:center;gap:12px;font-size:10px;font-weight:600;letter-spacing:.18em;color:var(--accent)}.bday-ribbon span{height:5px;flex:1;background:var(--accent)}.bday-letter[open] .bday-letter-cover{padding:24px 20px 0}.bday-letter[open] .bday-letter-cover>.bday-button,.bday-letter[open] .bday-letter-cover>.bday-hand{display:none}.bday-letter-content{padding:28px 32px 36px;font-size:16px;line-height:1.8;animation:bday-reveal .5s ease-out}.bday-letter-content>p{margin-bottom:20px;white-space:pre-line;overflow-wrap:anywhere}.bday-letter-content .bday-letter-greeting{font-family:var(--font-playfair),Georgia,serif;font-size:23px}.bday-gift-section{background:#f7e2df}.bday-ticket{position:relative;max-width:490px;margin:0 auto;border:1px solid #92736b;border-radius:12px;background:var(--surface);overflow:hidden}.bday-ticket[open]>summary{padding:20px 24px 0}.bday-ticket[open]>summary>.bday-button,.bday-ticket[open]>summary>.bday-hand{display:none}.bday-ticket-content{padding:28px;animation:bday-reveal .4s ease-out}.bday-ticket-content h3{font-size:30px;margin:20px 0;overflow-wrap:anywhere}.bday-ticket dl{display:grid;grid-template-columns:auto 1fr;gap:12px 20px;text-align:left;padding-top:24px;margin-top:24px;border-top:1px dashed #92736b;font-size:14px}.bday-ticket dt{color:var(--ink-soft)}.bday-ticket dd{overflow-wrap:anywhere}.bday-closing{margin:28px auto}.bday-replay{display:flex;margin:18px auto}.bday-brand{margin:52px auto 0;font-size:11px;color:var(--ink-soft)}.bday-editor{height:100dvh;display:flex}.bday-editor-form{min-width:0;flex:1}.bday-editor .bday-step-intro{padding:0 0 20px;color:var(--ink-soft);font-size:14px}.bday-form-stack{display:grid;gap:22px}.bday-form-row{display:grid;gap:16px}.bday-edit-card{padding:18px;background:var(--surface);border:1px solid var(--line);border-radius:16px;min-width:0}.bday-card-controls{display:flex;gap:6px;justify-content:flex-end;margin-bottom:18px}.bday-card-controls button{display:grid;place-items:center;width:44px;height:44px;border:1px solid var(--line);border-radius:10px;background:var(--bg);color:var(--ink)}.bday-card-controls button:disabled{opacity:.35}.bday-add-button{min-height:48px;border:1px dashed #92736b;border-radius:12px;background:transparent;font-size:14px;font-weight:600;color:var(--accent);padding:12px}.bday-error{color:#822137;font-size:13px;font-weight:500;margin-top:6px}.bday-error-banner{border:1px solid var(--accent);border-radius:12px;padding:14px;background:#f8dce1;color:#822137;font-size:14px}.bday-summary{display:grid;grid-template-columns:1fr auto;gap:12px;font-size:14px}.bday-summary button{color:var(--accent);text-decoration:underline;text-underline-offset:3px;min-height:44px;text-align:left}.bday-preview-overlay{position:fixed;inset:0;width:100%;height:100dvh;margin:0;z-index:80;background:var(--bg);display:flex;flex-direction:column}dialog.bday-preview-overlay:not([open]){display:none}.bday-preview-overlay::backdrop{background:#34282780}.birthday-demo{background:#fff8ee;height:100dvh;display:flex;flex-direction:column;overflow:hidden;padding-bottom:max(8px,env(safe-area-inset-bottom))}.birthday-demo>.bday-guided{flex:1;height:auto;min-height:0}.birthday-demo>.bday-guided .bday-section{min-height:calc(100dvh - 150px)}.bday-preview-content>.bday-guided{height:100%}.birthday-demo .bday-demo-cta{margin:8px auto 0;padding:6px 16px;flex-shrink:0}.bday-demo-cta{display:flex;flex-direction:column;align-items:center;padding:10px 20px;width:calc(100% - 32px);max-width:350px;margin:0 auto;background:#a52a43;color:#fffefa;border:1px solid #fffefa50;border-radius:14px;font:600 13px/1.6 var(--font-inter),sans-serif}.bday-demo-cta span{font-size:10px;font-weight:400;letter-spacing:.1em}.bday-preview-toolbar{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line);background:var(--surface);font-size:13px;flex-shrink:0;padding:max(12px,env(safe-area-inset-top)) 16px 12px}.bday-preview-content{overflow-y:auto;flex:1;min-height:0}.bday-success{min-height:100dvh;padding:32px 16px;display:grid;place-items:center}.bday-success-card{max-width:470px;width:100%;padding:28px;border:1px solid var(--line);border-radius:24px;background:var(--surface);text-align:center}.bday-success-card h1{font-size:30px;margin:20px 0}.bday-success-actions{display:grid;gap:12px;margin-top:22px}@keyframes bday-flame{to{transform:rotate(-20deg) scale(.88,1.04)}}@keyframes bday-confetti{0%{opacity:1;translate:0 -20px}to{opacity:0;translate:24px 350px;rotate:300deg}}@keyframes bday-reveal{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}@media(min-width:600px){.bday-section{padding:100px 28px}.bday-opening{padding-top:72px}.bday-form-row{grid-template-columns:1fr 1fr}}@media(max-width:360px){.bday-section{padding-inline:16px}.bday-gift-art{height:240px}.bday-quiz-card{padding:20px}.bday-letter-content{padding:24px}.bday-ticket-content{padding:20px}}@media(max-width:600px) and (max-height:700px){.bday-opening{padding-top:28px;padding-bottom:32px}.bday-opening h1{font-size:32px;margin:14px auto}.bday-opening .bday-description{font-size:14px}.bday-gift-art{width:180px;height:185px;margin:16px auto 24px}.bday-gift-tag{font-size:18px;right:-20px;bottom:0}}@media(prefers-reduced-motion:reduce){.birthday-scope *,.birthday-scope :after,.birthday-scope :before{animation:none!important;transition:none!important;scroll-behavior:auto!important}.birthday-scope .bday-confetti{display:none}}