.birthday-button{background:#eee5ce;border:1px solid #d5c69f;border-radius:24px;padding:10px 16px;font-size:12px;color:#7b7052;white-space:nowrap}.birthday-button span{margin-right:5px}.header-actions{gap:15px}.birthday-intro{width:100vw;max-width:100vw;height:100dvh;max-height:100dvh;margin:0;background:#f5f1e7;border-radius:0;overflow:auto;box-shadow:none;color:#385342}.birthday-intro::backdrop{background:#f5f1e7}.birthday-cover{max-width:1360px;min-height:100%;margin:auto;padding:33px 60px 22px;display:flex;flex-direction:column;background:radial-gradient(ellipse at 80% 50%,#e3e9d460 0%,transparent 60%)}.cover-masthead{display:flex;align-items:center;gap:10px;font-size:11px;letter-spacing:2px;color:#8d977e}.cover-mark{font-size:23px;color:#ac9b73}.cover-masthead button{margin-left:auto;font-size:11px;background:transparent;color:#929881;border-bottom:1px solid #d8d8c3;padding:5px 0}.cover-layout{display:grid;grid-template-columns:1fr 1fr;align-items:center;flex:1;min-height:540px;gap:40px}.cover-words{padding:25px 0}.cover-edition{font-size:9px;letter-spacing:2.6px;color:#9a9d88}.birthday-date{font:italic 19px Georgia,var(--serif);color:#a48b63;margin:30px 0 15px;letter-spacing:2px}.cover-words h1{font:400 clamp(42px,5vw,66px)/1.35 var(--serif);letter-spacing:2px;margin:0 0 22px}.cover-words h1 span{white-space:normal}.cover-words h1 span:after{display:none}.cover-words h1 #birthday-name{font-family:Georgia,var(--serif);font-style:italic;color:#64805d}.birthday-period{font-style:normal;color:#64805d}.opening-copy{font-size:13px;line-height:2;white-space:pre-line;color:#87947b;margin:0 0 30px}.open-gift{background:#3d604b;color:#fff8e5;padding:14px 22px;border-radius:4px;font-size:12px;letter-spacing:1px;box-shadow:0 5px 15px #43604414}.open-gift span{margin-left:35px}.cover-film-link{display:block;padding:16px 0 0;font-size:11px;color:#8b937b;background:transparent;letter-spacing:1px}.cover-keepsakes{position:relative;height:470px;min-width:0}.cover-orbit{position:absolute;width:380px;height:380px;left:50%;top:25px;transform:translateX(-50%);border:1px solid #d1dac184;border-radius:50%}.cover-orbit:before{content:"";position:absolute;inset:22px;border:1px dashed #d4dcc44f;border-radius:50%}.keepsake{position:absolute;width:205px;height:252px;padding:10px 10px 0;background:#fffdf4;box-shadow:0 8px 27px #6e745422;border:1px solid #e4e4d5;margin:0;top:45px;left:calc(50% - 102px);transform-origin:center 90%}.keepsake img{width:100%;height:205px;object-fit:cover;object-position:center 30%;display:block}.keepsake figcaption{text-align:center;font:12px var(--serif);color:#9a9b84;padding-top:9px;letter-spacing:2px}.keepsake-0{transform:translateX(-100px) rotate(-13deg);top:73px;z-index:1}.keepsake-1{transform:rotate(4deg);z-index:3}.keepsake-2{transform:translateX(112px) rotate(15deg);top:89px;z-index:2}.envelope{position:absolute;bottom:10px;left:50%;width:335px;height:175px;transform:translateX(-50%) rotate(-5deg);background:#e4d5b4;border:1px solid #cfba91;border-radius:4px;z-index:4;box-shadow:0 10px 23px #8d805422}.envelope-letter{position:absolute;left:17px;right:17px;top:-29px;height:135px;padding:20px 24px;background:#faf5e4;border:1px solid #e7dec7;font:10px Georgia;letter-spacing:2px;color:#b09d79;transform:rotate(2deg)}.envelope-letter strong{display:block;font:italic 28px Georgia;margin:8px 0;color:#69805c;letter-spacing:1px}.envelope-letter>span{font:9px var(--sans);letter-spacing:1px;color:#a4a58b}.envelope-fold{position:absolute;inset:0;background:linear-gradient(29deg,#e9dcc0 49.5%,transparent 50%) left/51% 100% no-repeat,linear-gradient(-29deg,#e4d5b4 49.5%,transparent 50%) right/51% 100% no-repeat;clip-path:polygon(0 0,50% 56%,100% 0,100% 100%,0 100%);border-radius:4px}.envelope-seal{position:absolute;width:43px;height:43px;top:76px;left:calc(50% - 21px);border-radius:50%;display:grid;place-items:center;color:#f4e2c0;background:#b78f72;border:3px double #d3af8a;font:italic 23px Georgia;box-shadow:0 3px 4px #79583225}.paper-star{position:absolute;color:#c4ac77;z-index:5;font-size:28px}.star-one{left:6%;top:28px;transform:rotate(12deg)}.star-two{right:3%;bottom:100px;font-size:47px;transform:rotate(-9deg)}.cover-foot{padding-top:20px;border-top:1px solid #dedfce;display:flex;justify-content:space-between;color:#9ba08b;font-size:10px;letter-spacing:1.2px}
.birthday-book{width:min(1040px,94vw);max-height:92dvh;border-radius:16px;overflow:hidden;background:#f7f4e9}.gift-header{display:flex;justify-content:space-between;align-items:flex-start;padding:25px 32px 13px;gap:20px}.gift-header h2{font:500 22px/1.5 var(--serif);letter-spacing:1px;margin:7px 0 0}.gift-tabs{display:flex;align-items:center;gap:22px;padding:0 32px;border-bottom:1px solid #dce1cf}.gift-tabs [role=tab]{padding:11px 0 13px;font-size:12px;color:#9ba28a;background:transparent;border-bottom:2px solid transparent}.gift-tabs [aria-selected=true]{color:#44684e;border-bottom-color:#6f8c63}.gift-tabs .replay-opening{margin-left:auto;background:transparent;font-size:10px;color:#9aa28b;padding:9px 0}.gift-scroll{overflow:auto;max-height:calc(92dvh - 140px);overscroll-behavior:contain}.film-panel{padding:28px 40px 35px;display:flex;gap:46px;align-items:center}.film-frame{width:310px;flex-shrink:0;border-radius:6px;overflow:hidden;background:#e3e2d3;box-shadow:0 6px 30px #4854381a}.film-frame video{width:100%;aspect-ratio:3/4;display:block;background:#f5f2e7}.film-copy{flex:1;min-width:0}.film-copy h3{font:500 34px/1.5 var(--serif);letter-spacing:1px;max-width:270px;margin:19px 0}.film-copy p{font-size:12px;line-height:2.1;color:#8a967d;margin:0 0 24px}.film-copy .open-gift{font-size:11px}.film-download{display:block;font-size:11px;color:#8b987d;margin-top:14px;text-decoration:underline;text-underline-offset:4px}.film-next{border-top:1px solid #dce1cf;margin-top:30px;padding-top:18px}.film-next>span{display:block;font-size:9px;color:#a3aa95;letter-spacing:2px}.film-next button{display:block;padding:8px 0;background:transparent;font:16px var(--serif);color:#7b8c67}.film-finished{animation:letter-pulse 2s ease 2}@keyframes letter-pulse{50%{background:#e6ecd9}}.letter-panel{padding:25px 50px 35px}.wish-scene{display:flex;align-items:center;flex-direction:column;padding:12px 0 20px;text-align:center}.wish-scene h3{font:500 31px/1.4 var(--serif);letter-spacing:2px;margin:13px 0 9px}.wish-scene p{color:#8b987d;font-size:12px;line-height:1.8;margin:0}.cake-button{display:block;width:220px;height:210px;background:transparent;margin:5px auto 0;padding:0}.cake-button svg{width:100%;height:100%}.cake-button:disabled{opacity:1;filter:none}.candle-flame{transform-origin:120px 75px;animation:candle-dance 1.7s ease-in-out infinite}.candle-smoke{opacity:0}.extinguished .candle-flame{display:none}.extinguished .candle-smoke{animation:smoke-away 2s both}@keyframes candle-dance{50%{transform:scale(.88,1.08) rotate(-4deg)}}@keyframes smoke-away{0%{opacity:.6}100%{opacity:0;transform:translateY(-18px)}}.quiet-link{background:transparent;color:#96a087;font-size:11px;padding:10px}.birthday-letter{max-width:640px;margin:15px auto 0;padding:36px 45px;background:#fffdf3;border:1px solid #e2dfca;box-shadow:0 8px 30px #5970440b;position:relative;scroll-margin-top:18px}.letter-date{display:block;text-align:right;font-size:11px;color:#a7a38b;letter-spacing:2px}.letter-salutation{display:block;font:italic 24px Georgia;letter-spacing:.5px;margin:20px 0 16px;color:#8d987b}.birthday-letter h3{font:500 30px/1.5 var(--serif);margin:0 0 23px;letter-spacing:1px}.birthday-letter p{font-size:13px;line-height:2.2;color:#6d7e62;margin:0 0 18px;white-space:pre-line}.letter-signature{font-size:13px;text-align:right;color:#7c8b6d;margin:25px 0}.birthday-letter .letter-closing{font:italic 16px/1.9 var(--serif);color:#a28e65;border-top:1px solid #e8e4d1;padding-top:20px;margin-top:25px}.letter-flourish{display:block;text-align:center;color:#c8b281;font-size:23px;margin:25px 0 0}.letter-actions{max-width:640px;margin:25px auto 0;display:flex;align-items:center;justify-content:space-between;gap:15px}.album-birthday-links{display:flex;justify-content:center;gap:15px;margin:15px 0 8px}.album-birthday-links button{background:transparent;border-bottom:1px solid #dce1cd;font-size:11px;color:#8e9b7d;padding:6px}.birthday-post .place-label{border-color:#cbb68e;color:#85734d;background:#faf1db}.birthday-post .place-label:before{background:#faf1db;border-color:#cbb68e}.birthday-confetti{position:fixed;inset:0;pointer-events:none;z-index:2147483647;overflow:hidden}.birthday-confetti i{position:absolute;left:var(--x);top:-20px;width:7px;height:11px;border-radius:1px;animation:birthday-fall 3.5s var(--delay) ease-in both}@keyframes birthday-fall{to{transform:translateY(110dvh) rotate(var(--turn));opacity:.15}}
@media(max-width:1000px){.birthday-cover{padding:25px 32px 22px}.cover-layout{gap:18px}.cover-keepsakes{transform:scale(.85);transform-origin:center center}.cover-words h1{font-size:48px}.opening-copy{font-size:12px}.cover-foot{font-size:9px}.total{display:none}.film-panel{gap:28px;padding:26px 30px}.film-frame{width:280px}.film-copy h3{font-size:28px}.gift-header{padding:22px 26px 12px}.gift-tabs{padding:0 26px}}
@media(max-width:600px){.header-actions{gap:6px}.birthday-button{padding:8px 9px;font-size:10px}.birthday-button span{display:none}.book-button{font-size:10px;padding:8px 9px}.book-button span{display:none}.brand{font-size:15px;gap:6px}.brand-mark{width:24px;height:24px}.topbar{padding:0 12px}.birthday-cover{padding:18px 24px 16px;min-height:100dvh}.cover-masthead{font-size:8px;letter-spacing:1px;gap:7px}.cover-mark{font-size:19px}.cover-masthead button{font-size:9px}.cover-layout{display:flex;flex-direction:column-reverse;justify-content:center;gap:0;min-height:0;flex:1;padding:10px 0}.cover-keepsakes{height:235px;width:100%;transform:none;flex-shrink:0;margin-top:4px}.cover-orbit{width:230px;height:230px;top:0}.keepsake{width:126px;height:155px;left:calc(50% - 63px);padding:6px 6px 0;top:4px}.keepsake img{height:124px}.keepsake figcaption{font-size:9px;padding-top:7px;letter-spacing:1px}.keepsake-0{transform:translateX(-69px) rotate(-13deg);top:17px}.keepsake-2{transform:translateX(69px) rotate(15deg);top:24px}.envelope{width:220px;height:105px;bottom:0;transform:translateX(-50%) rotate(-4deg)}.envelope-letter{height:86px;top:-17px;padding:10px 16px;left:10px;right:10px;font-size:7px}.envelope-letter strong{font-size:20px;margin:3px 0}.envelope-letter>span{font-size:6px;letter-spacing:.6px}.envelope-seal{width:29px;height:29px;top:45px;left:calc(50% - 14px);font-size:16px}.star-one{left:2%;top:0;font-size:18px}.star-two{right:0;bottom:15px;font-size:30px}.cover-words{text-align:center;padding:24px 0 8px;width:100%}.cover-edition{font-size:7px;letter-spacing:1.5px}.birthday-date{font-size:13px;margin:10px 0}.cover-words h1{font-size:36px;line-height:1.2;letter-spacing:1px;margin:0 0 15px}.cover-words h1 br{display:none}.opening-copy{font-size:10px;line-height:1.9;margin:0 0 19px;white-space:normal;max-width:270px;margin-left:auto;margin-right:auto}.open-gift{font-size:11px;padding:12px 18px}.open-gift span{margin-left:16px}.cover-film-link{margin:0 auto;font-size:10px;padding-top:11px}.cover-foot{font-size:8px;letter-spacing:.5px;padding-top:13px;gap:12px}.cover-foot span:last-child{display:none}.cover-foot span:first-child{margin:auto}.birthday-book{width:100vw;max-width:100vw;margin:auto 0 0;border-radius:20px 20px 0 0;max-height:94dvh}.gift-header{padding:21px 18px 11px;gap:8px}.gift-header h2{font-size:19px}.gift-header .eyebrow{font-size:7px}.gift-header .close-button{width:33px;height:33px;font-size:23px}.gift-tabs{padding:0 18px;gap:18px}.gift-tabs [role=tab]{font-size:11px;padding:10px 0}.gift-tabs .replay-opening{font-size:8px}.gift-scroll{max-height:calc(94dvh - 123px)}.film-panel{flex-direction:column;padding:22px 23px 28px;gap:24px}.film-frame{width:min(100%,290px)}.film-copy{width:100%;text-align:center}.film-copy .eyebrow{justify-content:center}.film-copy h3{font-size:27px;max-width:none;margin:12px 0}.film-copy p{font-size:11px;margin-bottom:18px}.film-next{margin-top:22px}.film-next button{margin:0 auto;font-size:15px}.letter-panel{padding:20px 17px 30px}.wish-scene h3{font-size:27px}.wish-scene p{font-size:11px}.birthday-letter{padding:26px 23px}.birthday-letter h3{font-size:25px}.birthday-letter p{font-size:12px;line-height:2.15}.letter-salutation{font-size:22px}.birthday-letter .letter-closing{font-size:15px}.letter-actions{flex-direction:column;gap:8px}.cake-button{width:200px;height:190px}.letter-date{font-size:10px}}
@media(max-width:600px) and (max-height:720px){.birthday-cover{padding-top:13px}.cover-keepsakes{height:195px;scale:.83;margin-top:-14px;margin-bottom:-14px}.cover-words{padding-top:13px}.cover-edition{display:none}.cover-words h1{font-size:32px}.birthday-date{margin:7px 0}.opening-copy{margin-bottom:13px}.cover-foot{padding-top:8px}}
@media(prefers-reduced-motion:reduce){.birthday-confetti{display:none}.candle-flame,.candle-smoke,.film-finished{animation:none!important}.extinguished .candle-smoke{opacity:.3}}

#birthday-heading:focus,#gift-heading:focus{outline:none}

