/* A quiet, paper-and-postage opening for the birthday journey. */
.birthday-flow .hero,.birthday-flow .celebration-ticker,.birthday-flow #letter,.birthday-flow #navigation,.birthday-flow .mobile-menu{display:none}
.birthday-flow[data-journey="envelope"] .journey-progress,.birthday-flow[data-journey="letter"] .journey-progress{pointer-events:none}
.journey-overlay-open{overflow:hidden}
.journey-overlay-open>.site-header,.journey-overlay-open>.journey-progress,.journey-overlay-open>main,.journey-overlay-open>.music-toggle{visibility:hidden}
.opening-scene{position:fixed;inset:0;z-index:60;overflow:auto;overscroll-behavior:contain;background:radial-gradient(ellipse at 50% 48%,#f2e7d644,transparent 65%),var(--paper);padding:24px 46px 30px;scrollbar-gutter:stable;isolation:isolate}
.opening-scene:before{content:"";position:fixed;width:60vw;height:60vw;max-width:750px;max-height:750px;left:50%;top:48%;transform:translate(-50%,-50%);border:1px solid #d8c8af40;border-radius:50%;pointer-events:none;z-index:-1}
.opening-topline{display:flex;align-items:center;justify-content:space-between;max-width:1160px;margin:0 auto;gap:14px;position:relative;z-index:2}
.opening-brand{display:flex;align-items:center;gap:10px;font-size:12px;letter-spacing:1px;color:#8b7962}.opening-brand>span:first-child{font-size:27px;color:var(--accent);line-height:1}.opening-music{width:34px;height:34px;font-size:18px;color:var(--accent);background:#fdf8ee88}.opening-music.playing{background:#e8eddf;border-color:#a5af95;color:#748769}
.envelope-view{max-width:850px;margin:32px auto 0;text-align:center;position:relative}.envelope-view>.eyebrow{font-size:9px;letter-spacing:3px;margin-bottom:12px}.envelope-view h1{font:500 36px/1.65 var(--serif);letter-spacing:3px;max-width:740px;margin:0 auto 12px;overflow-wrap:anywhere}.opening-description{font-size:12px;letter-spacing:.8px;color:var(--muted);line-height:2;max-width:590px;margin:0 auto;white-space:pre-line}.envelope-stage{position:relative;width:min(440px,88%);aspect-ratio:1.58;margin:48px auto 13px;perspective:1100px}.envelope{position:absolute;inset:0;width:100%;height:100%;border:0;background:none;isolation:isolate;padding:0;border-radius:6px;transform:rotate(-3deg);transition:transform .55s cubic-bezier(.2,.6,.3,1);-webkit-tap-highlight-color:transparent}.envelope:not(:disabled):hover{transform:rotate(-1deg) translateY(-5px)}.envelope:focus-visible{outline-offset:12px}.envelope-back{position:absolute;inset:0;border:1px solid #d7bfa2;border-radius:6px;background:#e4cbaa;box-shadow:0 14px 40px #89634116}.envelope-front{position:absolute;inset:0;clip-path:polygon(0 40%,50% 68%,100% 40%,100% 100%,0 100%);background:linear-gradient(0deg,#eddbc0,#f5e7d1);z-index:4;border-radius:0 0 6px 6px}.envelope-left,.envelope-right{position:absolute;inset:0;z-index:3;border-radius:6px}.envelope-left{background:linear-gradient(135deg,#f4e4cd,#dec29d);clip-path:polygon(0 0,53% 59%,0 100%)}.envelope-right{background:linear-gradient(225deg,#eedcc0,#dcbc94);clip-path:polygon(100% 0,47% 59%,100% 100%)}.envelope-flap{position:absolute;inset:0 0 33%;background:linear-gradient(155deg,#f8ead3,#e2c7a2);clip-path:polygon(0 0,100% 0,50% 100%);transform-origin:center top;z-index:6;transition:transform .8s cubic-bezier(.35,.05,.25,1),filter .6s;backface-visibility:visible;filter:drop-shadow(0 2px 1px #a37c4d19)}.envelope-insert{position:absolute;inset:12% 7% 7%;background:var(--cream);border:1px solid #e4d9c8;border-radius:3px;z-index:2;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;padding:17px 25px;color:#84725b;font:21px/1.8 var(--serif);box-shadow:0 -3px 14px #85644308;transition:transform .8s .36s cubic-bezier(.2,.65,.3,1)}.insert-flower{font-size:30px;line-height:1;color:var(--sage);margin-bottom:13px}.insert-lines{width:78%;height:65px;margin-top:16px;display:block;background:repeating-linear-gradient(0deg,transparent 0,transparent 18px,#e8e0d4 19px,transparent 20px)}.envelope-address{position:absolute;left:8%;bottom:12%;z-index:5;font:19px/1.8 var(--serif);color:#8a7054;letter-spacing:1px;max-width:58%;overflow-wrap:anywhere;text-align:left}.envelope-postmark{position:absolute;right:6%;bottom:10%;z-index:5;border:1px solid #ae9474;border-radius:50%;width:70px;height:70px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;color:#a08664;transform:rotate(13deg);outline:1px dashed #b7a080;outline-offset:-5px}.envelope-postmark>span:first-child{font-size:18px}.envelope-postmark>span:last-child{font-size:7px;letter-spacing:.2px;max-width:48px;line-height:1.6}.wax-seal{position:absolute;left:calc(50% - 34px);top:calc(62% - 34px);width:68px;height:68px;border-radius:48% 53% 48% 50%;background:radial-gradient(ellipse at 35% 25%,#c78a70,#a8654d 75%);z-index:7;box-shadow:0 4px 6px #79513b25,inset 0 0 0 2px #cb967455,inset 0 0 0 6px #a9694e33;display:flex;flex-direction:column;align-items:center;justify-content:center;color:#f6dfbd;transition:opacity .35s,transform .55s}.wax-seal>span:first-child{font-size:29px;line-height:1;margin-top:4px;text-shadow:0 1px #8b513d}.wax-seal>span:last-child{font-size:7px;letter-spacing:1px;margin-top:4px}.envelope-shadow{position:absolute;left:8%;right:6%;height:20px;bottom:-14px;background:#92704419;filter:blur(12px);border-radius:50%;z-index:-1}.opening-hint{margin:18px 0 15px;font-size:10px;color:#b29878;letter-spacing:1px;display:flex;align-items:center;justify-content:center;gap:9px}.opening-hint>span:first-child{font-size:20px;transform:rotate(-15deg);color:#b58f68}.envelope-view>.button{font-size:11px;min-height:46px;padding-inline:24px}.opening-status{font-size:10px;color:#ac9271;min-height:18px;margin:10px 0 0}.opening-note{font-size:9px;color:#af9e87;letter-spacing:1.2px;margin:10px 0 0}.opening-speckles{pointer-events:none;position:fixed;inset:0;z-index:-1}.opening-speckles i{position:absolute;color:#bba17a;font:26px Georgia,serif;animation:letter-speckle 6s ease-in-out infinite alternate}.opening-speckles i:nth-child(1){left:16%;top:27%;font-size:31px}.opening-speckles i:nth-child(2){right:18%;top:35%;font-size:15px;color:#a3ae92;animation-delay:-2s}.opening-speckles i:nth-child(3){left:21%;bottom:17%;font-size:19px;animation-delay:-3s}.opening-speckles i:nth-child(4){right:11%;bottom:21%;font-size:24px;color:#bba68b;animation-delay:-1s}.opening-speckles i:nth-child(5){right:26%;top:14%;font-size:14px;animation-delay:-4s}.opening-animation .envelope{transform:rotate(0) translateY(12px)}.opening-animation .envelope-flap{transform:rotateX(180deg);filter:brightness(.95);animation:flap-behind 1ms .4s forwards}.opening-animation .wax-seal{opacity:0;transform:translateY(25px) rotate(22deg) scale(.8)}.opening-animation .envelope-insert{transform:translateY(-45%) rotate(-1deg)}.opening-animation .opening-hint{opacity:0;transition:opacity .3s}.opening-animation .envelope-view>.button{opacity:.45}.letter-reader{width:min(720px,100%);margin:29px auto 12px;text-align:center;animation:reader-arrive .65s ease-out}.letter-reader>.eyebrow{font-size:9px;letter-spacing:2.5px;margin-bottom:12px}.letter-reader>h1{font:500 31px/1.6 var(--serif);letter-spacing:2px;margin:0 0 28px;overflow-wrap:anywhere}.reader-paper{position:relative;text-align:left;background:#fffdf7;border:1px solid #e6dccb;box-shadow:0 9px 35px #7358370a;padding:27px 54px 36px;transform:rotate(-.35deg)}.reader-paper:before,.reader-paper:after{content:"";position:absolute;top:0;bottom:0;width:1px;background:#e7d6be77;left:20px}.reader-paper:after{left:auto;right:20px}.reader-paper-heading{display:flex;align-items:center;justify-content:space-between;gap:15px;padding-bottom:22px}.reader-flower{font-size:28px;color:var(--sage);line-height:1}.reader-postmark{padding:4px 9px;border:1px solid #c5a989;color:#ac8f6b;font-size:8px;letter-spacing:1.5px;transform:rotate(6deg)}.reader-paper h2{font:500 25px/1.7 var(--serif);letter-spacing:1px;margin:2px 0 21px}.reader-body{font-size:14px;line-height:2.35;color:#81715b;letter-spacing:.65px;white-space:pre-line;overflow-wrap:anywhere}.reader-signoff{font:19px/1.8 var(--serif);color:var(--accent);text-align:right;margin:31px 0 17px;white-space:pre-line;overflow-wrap:anywhere}.reader-paper-rule{display:block;width:50px;height:1px;background:#d5c1a3;margin-left:auto}.reader-actions{margin:26px auto 0}.reader-actions .button{min-height:48px;padding-inline:28px}.reader-actions p{font-size:9px;letter-spacing:1px;color:#b19c80;margin:12px 0 0}.birthday-flow .site-header{height:84px}.birthday-flow #letter-reopen{font-size:11px;white-space:nowrap}.journey-progress{list-style:none;padding:0;display:flex;justify-content:center;gap:46px;max-width:640px;margin-top:27px;margin-bottom:0}.journey-progress li{display:flex;align-items:center;gap:9px;font-size:10px;color:#b3a38c;position:relative;min-width:0}.journey-progress li>span:first-child{width:25px;height:25px;border-radius:50%;display:grid;place-items:center;border:1px solid #ded3c0;font:10px Georgia,serif;flex-shrink:0}.journey-progress li:not(:last-child):after{content:"";position:absolute;width:23px;height:1px;background:#ddd0ba;right:-35px;top:50%}.journey-progress li.active{color:var(--accent)}.journey-progress li.active>span:first-child{background:#f1e1cc;border-color:#c8a887}.journey-progress li.complete{color:var(--sage)}.journey-progress li.complete>span:first-child{background:#edf0e4;border-color:#a5b292}.birthday-flow #cake{padding-top:35px;padding-bottom:50px;max-width:1040px;min-height:calc(100svh - 160px)}.birthday-flow .section-heading{margin-bottom:30px}.birthday-flow #cake .section-heading>.eyebrow{margin-bottom:10px}.birthday-flow #cake .section-heading h2{font-size:31px}.birthday-flow .cake-card{min-height:405px}.birthday-flow #gift{padding:38px 0 25px;max-width:1000px}.birthday-flow #gift .gift-card{min-height:350px}.birthday-flow #memories{padding-top:40px;padding-bottom:40px}.birthday-flow .site-footer{padding-top:35px}.gift-reminder{border-top:1px dashed #e0cbb1;padding-top:17px;margin-top:20px}.gift-reminder-title{font:20px/1.7 var(--serif);color:var(--accent);margin-bottom:8px}.gift-reminder .small-note{margin:0 0 18px}.birthday-flow #done-panel>.text-button{display:block;width:fit-content;margin-top:16px}.birthday-flow #done-panel>.interaction-title{font-size:20px;margin-bottom:8px}.journey-finale-actions{display:flex;justify-content:center;align-items:center;gap:23px;flex-wrap:wrap;padding:5px 0 25px}.journey-finale-actions .button{font-size:11px}.birthday-flow[data-journey="gift"] #gift,.birthday-flow[data-journey="memories"] #memories{animation:reader-arrive .6s ease-out}.birthday-flow .noscript-notice{z-index:110;margin:0;font-size:12px}.effects-off .opening-speckles i{animation:none}.effects-off .envelope,.effects-off .envelope-insert,.effects-off .envelope-flap,.effects-off .wax-seal{transition:none}.effects-off .letter-reader{animation:none}
.opening-keepsake{position:absolute;top:155px;left:calc(50% - 275px);width:144px;padding:8px 8px 22px;background:var(--cream);border:1px solid var(--line);box-shadow:0 5px 20px #6a543712;transform:rotate(-13deg);pointer-events:none}.opening-keepsake img{width:100%;height:128px;object-fit:cover}.envelope-stage{z-index:1}
@keyframes flap-behind{to{z-index:1}}@keyframes reader-arrive{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes letter-speckle{from{transform:translateY(0) rotate(-7deg);opacity:.5}to{transform:translateY(-10px) rotate(8deg);opacity:.9}}
@media(min-height:880px) and (min-width:701px){.envelope-view{margin-top:60px}.envelope-stage{width:490px;margin-top:65px;margin-bottom:22px}.envelope-view h1{font-size:41px}.opening-note{margin-top:18px}}
@media(max-width:1000px){.opening-scene{padding-inline:32px}.envelope-view h1{font-size:32px}.opening-speckles i:nth-child(1){left:8%}.opening-speckles i:nth-child(2){right:9%}.birthday-flow .brand{font-size:12px}}
@media(max-width:700px){.opening-scene{padding:20px 20px 30px;scrollbar-gutter:auto}.opening-topline{gap:10px}.opening-brand{font-size:10px;letter-spacing:.3px;gap:8px}.opening-brand>span:first-child{font-size:25px}.opening-music{width:31px;height:31px;font-size:16px;flex-shrink:0}.envelope-view{margin-top:34px}.envelope-view>.eyebrow{font-size:7px;letter-spacing:2px;margin-bottom:15px}.envelope-view h1{font-size:28px;letter-spacing:2px;max-width:310px;line-height:1.7;margin-bottom:16px}.opening-description{font-size:10px;max-width:280px;letter-spacing:.4px;line-height:2.1}.envelope-stage{width:min(340px,96%);margin-top:49px;margin-bottom:18px}.envelope{transform:rotate(-3deg)}.envelope-address{font-size:15px;left:7%;bottom:11%;max-width:56%}.envelope-postmark{width:55px;height:55px;right:6%;bottom:9%}.envelope-postmark>span:first-child{font-size:15px}.envelope-postmark>span:last-child{font-size:6px;max-width:39px;line-height:1.5}.wax-seal{width:54px;height:54px;left:calc(50% - 27px);top:calc(62% - 27px)}.wax-seal>span:first-child{font-size:23px}.wax-seal>span:last-child{font-size:6px;letter-spacing:.6px}.envelope-insert{padding:12px 16px;font-size:17px}.insert-flower{font-size:22px;margin-bottom:10px}.insert-lines{height:50px;margin-top:6px}.opening-hint{font-size:9px;margin-top:16px;margin-bottom:16px;letter-spacing:.7px}.opening-hint>span:first-child{font-size:18px}.envelope-view>.button{font-size:10px;min-height:44px;padding-inline:22px;gap:20px}.opening-status{font-size:9px;margin-top:10px}.opening-note{font-size:8px;letter-spacing:.5px;margin-top:9px}.opening-speckles i:nth-child(1){left:5%;top:27%;font-size:19px}.opening-speckles i:nth-child(2){right:5%;top:35%;font-size:12px}.opening-speckles i:nth-child(3){left:4%;bottom:16%;font-size:14px}.opening-speckles i:nth-child(4){right:5%;bottom:16%;font-size:18px}.opening-speckles i:nth-child(5){right:20%;top:12%;font-size:11px}.letter-reader{margin:28px auto 10px}.letter-reader>.eyebrow{font-size:7px;letter-spacing:1.5px;margin-bottom:12px}.letter-reader>h1{font-size:25px;line-height:1.6;letter-spacing:1.5px;margin-bottom:24px}.reader-paper{padding:22px 25px 29px;transform:rotate(-.25deg);margin-inline:1px}.reader-paper:before{left:11px}.reader-paper:after{right:11px}.reader-paper-heading{padding-bottom:19px;gap:10px}.reader-flower{font-size:23px}.reader-postmark{font-size:6px;letter-spacing:.7px;padding:4px 7px}.reader-paper h2{font-size:22px;margin:0 0 18px}.reader-body{font-size:13px;line-height:2.25;letter-spacing:.3px}.reader-signoff{font-size:16px;margin-top:26px}.reader-actions{margin-top:23px}.reader-actions .button{font-size:11px;min-height:46px;padding-inline:22px;gap:14px}.reader-actions p{font-size:8px;letter-spacing:.5px}.birthday-flow .site-header{height:74px;gap:10px}.birthday-flow .brand{font-size:10px;gap:6px;letter-spacing:.2px}.birthday-flow .brand-icon{font-size:25px}.birthday-flow #letter-reopen{font-size:9px;letter-spacing:.2px}.journey-progress{gap:23px;margin-top:21px;width:calc(100% - 32px)}.journey-progress li{font-size:8px;gap:5px}.journey-progress li>span:first-child{width:21px;height:21px;font-size:8px}.journey-progress li:not(:last-child):after{width:13px;right:-18px}.birthday-flow #cake{padding-top:28px;padding-bottom:35px;min-height:calc(100svh - 130px)}.birthday-flow #cake .section-heading h2{font-size:24px}.birthday-flow #cake .section-heading{margin-bottom:23px}.birthday-flow #cake .section-heading>p:last-child{font-size:10px}.birthday-flow .cake-stage{min-height:270px;max-height:295px}.birthday-flow .interactive-cake{max-width:305px}.birthday-flow .cake-controls{padding:24px 23px 28px}.birthday-flow #gift{padding-top:30px;padding-bottom:20px}.birthday-flow #gift .gift-card{min-height:0}.birthday-flow #gift .gift-content h2{font-size:23px}.gift-reminder-title{font-size:20px}.gift-reminder{padding-top:16px;margin-top:18px}.birthday-flow #done-panel>.text-button{font-size:10px;margin-top:14px}.journey-finale-actions{gap:17px;padding-bottom:20px}.journey-finale-actions .button{min-height:43px;font-size:10px;padding-inline:18px}.journey-finale-actions .text-button{font-size:10px}.birthday-flow #memories{padding-top:30px}.birthday-flow .site-footer{padding-top:24px}}
@media(max-width:359px){.opening-scene{padding-inline:16px}.opening-brand{font-size:9px}.envelope-view{margin-top:28px}.envelope-view h1{font-size:25px;letter-spacing:1.5px}.opening-description{font-size:9px;max-width:250px}.envelope-stage{margin-top:43px;width:95%}.opening-note{font-size:7px}.journey-progress{gap:17px}.journey-progress li{font-size:7px;gap:4px}.journey-progress li:not(:last-child):after{width:9px;right:-13px}.birthday-flow .brand{font-size:9px}.birthday-flow #letter-reopen{font-size:8px}.birthday-flow #cake .section-heading h2{font-size:22px}.reader-paper{padding-inline:21px}.reader-body{font-size:12px}}
@media(max-width:700px){.opening-keepsake{width:95px;top:180px;left:0;padding:6px 6px 16px}.opening-keepsake img{height:84px}}
@media(prefers-reduced-motion:reduce){.opening-scene *{animation:none!important;transition:none!important}}
