@font-face{font-family:Cormorant Garamond;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/cormorant-garamond-cyrillic-400-normal-DD2KOZkl.woff2) format("woff2"),url(/assets/cormorant-garamond-cyrillic-400-normal-CVFrM67f.woff) format("woff")}@font-face{font-family:Cormorant Garamond;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/cormorant-garamond-latin-400-normal-B-1hWBU7.woff2) format("woff2"),url(/assets/cormorant-garamond-latin-400-normal-B7YtguxJ.woff) format("woff")}@font-face{font-family:Cormorant Garamond;font-style:italic;font-display:swap;font-weight:400;src:url(/assets/cormorant-garamond-cyrillic-400-italic-D3GtrbRZ.woff2) format("woff2"),url(/assets/cormorant-garamond-cyrillic-400-italic-AH1vqu4S.woff) format("woff")}@font-face{font-family:Cormorant Garamond;font-style:italic;font-display:swap;font-weight:400;src:url(/assets/cormorant-garamond-latin-400-italic-Dc_OZ8oc.woff2) format("woff2"),url(/assets/cormorant-garamond-latin-400-italic-BLh7T8o8.woff) format("woff")}@font-face{font-family:Manrope;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/manrope-cyrillic-400-normal-BMzJvInZ.woff2) format("woff2"),url(/assets/manrope-cyrillic-400-normal-Dvx59UGC.woff) format("woff")}@font-face{font-family:Manrope;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/manrope-latin-400-normal-PaqtzbVb.woff2) format("woff2"),url(/assets/manrope-latin-400-normal-8tf8FM3T.woff) format("woff")}:root{font-family:Manrope,sans-serif;color:#571c23;background:#f1e8d9;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;--paper: #f5edde;--ink: #571c23;--serif: "Cormorant Garamond", Georgia, serif;--ease: cubic-bezier(.22, .65, .3, 1)}*{box-sizing:border-box}body{margin:0}button{font:inherit;color:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent}button:focus-visible{outline:2px solid var(--ink);outline-offset:7px}::selection{background:#d7afa5;color:#3d1820}body:has(dialog[open]){overflow:hidden}img{display:block;max-width:100%}button{touch-action:manipulation}button svg{flex-shrink:0}h1{font:400 140px/.86 var(--serif);letter-spacing:-.035em;margin:8px 0}h2{font:400 54px/1 var(--serif);letter-spacing:-.02em;margin:28px 0 30px}h3{font:400 36px/1.1 var(--serif);margin:22px 0 16px}@media(max-width:900px){h1{font-size:104px;margin:10px 0 8px}h2{font-size:42px;margin:24px 0}h3{font-size:31px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}.keepsake{min-height:100svh;overflow:hidden;position:relative;padding:32px 24px 24px}.greeting{text-align:center;position:relative;z-index:1}.greeting time{font:24px/1.2 var(--serif)}.birthday{font:34px/1.15 var(--serif);margin:0}.invitation{font:20px/1.4 var(--serif);margin:22px 0 0}.invitation:before{content:"";display:block;width:22px;height:1px;background:#8d6358;margin:0 auto 15px}.objects{position:relative;width:min(900px,100%);margin:6px auto 0}.object{position:absolute;border:0;padding:0;background:none;transform:rotate(var(--angle, 0deg));transition:transform .7s var(--ease),filter .7s;animation:arrive 1.8s var(--ease) backwards;font-family:var(--serif)}.object>span{pointer-events:none}.object img{pointer-events:none}.object:hover{transform:translateY(-5px) rotate(var(--angle, 0deg))}.object:active{transform:translateY(-1px) rotate(var(--angle, 0deg))}.envelope{width:560px;left:-42px;top:2px;--angle: -5deg;z-index:2}.envelope>span{position:absolute;left:25%;top:29%;font:italic 34px/1 var(--serif);width:50%;text-align:center}.photostrip{top:-16px;padding:10px 10px 16px;background:#fcf5e8;box-shadow:4px 10px 15px #52372329;--angle: 6deg;z-index:3;animation-delay:.15s}.strip-images{display:grid;gap:8px}.strip-images img{width:100%;height:113px;object-fit:cover;filter:saturate(.8)}.photostrip>span:last-child{display:block;font:24px/1.1 var(--serif);margin-top:12px;white-space:nowrap}.folded-note{left:45px;top:295px;width:248px;height:143px;box-shadow:3px 9px 12px #5c302323,inset 4px 0 #b98c80;--angle: -9deg;animation-delay:.25s}.folded-note>span:first-child{font:italic 34px/1.2 var(--serif)}.ink-rule{display:block;width:18px;height:1px;margin:16px auto 0;background:currentColor}.ticket{left:348px;top:316px;width:342px;height:144px;display:flex;--angle: -6deg;animation-delay:.35s;text-align:left}.ticket-edge{background:#64242c;color:#f7e6d2;writing-mode:vertical-rl;transform:rotate(180deg);padding:16px 9px;font:10px/1 sans-serif;letter-spacing:.16em}.ticket-body{padding:15px 17px;flex:1}.ticket-title{font:33px/.9 var(--serif);display:block}.ticket-route{display:block;font:9px/1.4 Manrope,sans-serif;margin-top:9px;letter-spacing:.06em}.ticket-concert{display:block;border-top:1px solid #aa83764f;margin-top:7px;padding-top:6px;font:16px/1 var(--serif)}.ticket-stub{border-left:1px dashed #99796866;writing-mode:vertical-rl;padding:15px 11px;font:16px/1 var(--serif)}.candle{right:5px;top:273px;width:118px;animation-delay:.45s}.candle-art{position:relative;display:block;width:100%}.candle-art img{width:100%;height:auto}.candle>span:last-child{display:block;font:25px/1 var(--serif);margin-top:-3px}.flame{position:absolute;left:46%;top:2%;width:10%;height:15%;border-radius:80% 20% 65% 35%;background:radial-gradient(ellipse at 50% 75%,#fff 0%,#fff8d0 48%,#ffbb5266 80%,transparent 85%);transform-origin:50% 100%;animation:flicker 2.3s ease-in-out infinite alternate;transition:opacity .7s,scale .7s;filter:drop-shadow(0 0 7px #eaa94080)}.is-out .flame{opacity:0;scale:.1}.postcard-footer{text-align:center;margin:25px auto 0}.postcard-footer p{font:italic 23px/1.3 var(--serif);margin:0 0 10px}.postcard-footer>span{font-size:9px;letter-spacing:.15em;text-transform:uppercase;color:#7b564e}@keyframes arrive{0%{opacity:.1;translate:0 28px}to{opacity:1;translate:0 0}}@keyframes flicker{0%{rotate:-5deg;scale:.94 1}to{rotate:6deg;scale:1.04 .91}}@media(min-width:1000px){.keepsake{padding-top:28px}.greeting h1{font-size:128px}.greeting .invitation{margin-top:14px}.objects{margin-top:4px}}@media(max-width:900px){.keepsake{padding:25px 18px 24px}.greeting time{font-size:20px}.birthday{font-size:29px}.invitation{font-size:17px;margin-top:19px}.invitation:before{margin-bottom:12px}.objects{width:354px;max-width:100%;margin-top:14px}.envelope{width:79%;left:-9%;top:5px;--angle: -5deg}.envelope>span{font-size:23px;top:28%}.photostrip{top:8px;padding:6px 6px 11px;--angle: 5deg}.strip-images{gap:5px}.strip-images img{height:86px}.photostrip>span:last-child{font-size:16px;margin-top:9px}.folded-note{left:1%;top:185px;width:52%;height:112px;--angle: -8deg}.folded-note>span:first-child{font-size:28px}.ticket{left:2%;top:319px;width:73%;height:111px}.ticket-edge{font-size:7px;padding:10px 6px}.ticket-body{padding:11px}.ticket-title{font-size:27px}.ticket-route{font-size:7px;margin-top:7px}.ticket-concert{font-size:12px;margin-top:5px;padding-top:4px}.ticket-stub{font-size:12px;padding:12px 8px}.candle{right:-2%;top:246px;width:26%}.candle>span:last-child{font-size:21px;margin-top:-2px}.postcard-footer{margin-top:26px}.postcard-footer p{font-size:20px;min-height:26px}.postcard-footer>span{font-size:8px}}@media(max-width:360px){.envelope>span{font-size:20px}.photostrip>span:last-child{font-size:14px}.strip-images img{height:74px}.ticket-concert{font-size:10px}.ticket-title{font-size:24px}.ticket-stub{padding-inline:6px}.folded-note{top:174px}.candle{top:240px}.ticket{top:308px}}.envelope img{width:100%;height:auto}.folded-note{z-index:3}.keepsake{background:radial-gradient(ellipse at 18% 12%,#fff8e9 0%,transparent 38%),radial-gradient(ellipse at 86% 88%,#d9b8a7 0%,transparent 34%),radial-gradient(ellipse at 50% 28%,#fff9ed,#f4e6d2 48%,#cbb6a3)}.greeting,.objects,.postcard-footer{position:relative;z-index:1}.photostrip{right:25px;width:194px}.photostrip>span:last-child{text-align:center}@media(max-width:900px){.photostrip{right:0;width:32%}}.objects{height:475px}@media(max-width:900px){.objects{height:432px}}@media(max-width:360px){.objects{height:424px}}.envelope{isolation:isolate}.envelope .envelope-inside{top:16%;right:11%;bottom:16%;left:11%;width:auto;background:#d9c7aa;opacity:0;transition:opacity .35s}.envelope .envelope-letter{top:22%;right:19%;bottom:20%;left:19%;width:auto;padding:12% 4% 0;font:italic clamp(18px,3vw,32px)/1.1 var(--serif);background:#fff8ec;box-shadow:0 5px 12px #52372326;opacity:0;transition:transform .95s var(--ease) .25s,opacity .4s}.envelope-pocket{position:relative;z-index:2;clip-path:polygon(10.6% 16%,50% 64%,89.4% 16%,89.4% 84%,10.6% 84%)}.envelope .envelope-flap{position:absolute;top:0;right:0;bottom:0;left:0;z-index:3;clip-path:polygon(10.6% 15.5%,89.4% 15.5%,86% 25%,56% 70%,44% 70%,14% 25%);transform-origin:50% 16%;transition:transform .95s var(--ease),opacity .65s}.envelope .envelope-label{z-index:4;transition:opacity .3s}.envelope.is-opened .envelope-inside,.envelope.is-opened .envelope-letter{opacity:1}.envelope.is-opened .envelope-letter{transform:translateY(-32%)}.envelope.is-opened .envelope-flap{transform:scaleY(-.65);opacity:0}.envelope.is-opened .envelope-label{opacity:0}.photostrip .strip-images img{transition:transform 1.1s var(--ease),box-shadow 1.1s var(--ease)}.photostrip.is-opened .strip-images img:first-child{transform:translate(-7%,-4%) rotate(-8deg);box-shadow:3px 7px 12px #52372335}.photostrip.is-opened .strip-images img:last-child{transform:translate(4%,2%) rotate(5deg);box-shadow:3px 7px 12px #52372335}.folded-note{perspective:1000px;background:#efd1c5}.folded-note .note-inside{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-content:center;font:italic clamp(24px,3vw,32px)/1.15 var(--serif)}.folded-note .note-cover{position:absolute;top:0;right:0;bottom:0;left:0;transform-origin:left center;transform-style:preserve-3d;transition:transform 1.2s var(--ease)}.note-cover-front,.note-cover-back{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-content:center;backface-visibility:hidden;-webkit-backface-visibility:hidden;box-shadow:3px 9px 12px #5c302323,inset 0 1px #b98c80}.note-cover-front{background:linear-gradient(100deg,#c8998d,#dfb4a8 7%,#d9ada1 90%,#c49b90);font:italic 34px/1.2 var(--serif)}.note-cover-back{background:#e6bfb2;transform:rotateY(180deg)}.folded-note.is-opened .note-cover{transform:rotateY(-110deg)}@media(max-width:900px){.note-cover-front{font-size:28px}}.ticket{background:transparent;box-shadow:none}.ticket-body,.ticket-stub{background:#ede0c9}.ticket-body,.ticket-stub,.ticket-edge{box-shadow:3px 9px 16px #614b3026}.ticket-stub{transition:transform 1.1s var(--ease),background-color .7s;transform-origin:bottom left}.ticket.is-opened .ticket-stub{transform:translate(12px,5px) rotate(12deg);background:#ede0c9}.object.is-opening{z-index:5}@media(prefers-reduced-motion:reduce){.envelope.is-opened .envelope-flap{display:none}}.scene-dialog{border:0;padding:24px;background:transparent;color:var(--ink);max-width:none;width:100%;height:100%;max-height:100%;margin:0;overflow-y:auto;overscroll-behavior:contain;scrollbar-color:#9c7667 #efe4d2}.scene-dialog::backdrop{background:#30201887;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}.scene-paper{position:relative;width:min(680px,100%);margin:20px auto;padding:24px 46px 32px;background:var(--paper);box-shadow:10px 24px 65px #26100a33;min-height:540px}.scene-toolbar{display:flex;align-items:center;justify-content:space-between;font-size:10px;letter-spacing:.09em;text-transform:uppercase}.close-scene{display:grid;place-items:center;border:0;background:transparent;width:44px;height:44px}.close-scene:hover{background:#dcc6b750}.letter-copy p{font-size:14px;line-height:1.95;color:#543d36;margin:20px 0}.letter-copy .signature{font:italic 30px/1.2 var(--serif);color:var(--ink);margin:35px 0}.future-page>img{width:100%;height:300px;object-fit:cover}.future-page>p,.note-page>p{font-size:14px;line-height:1.85;color:#62453d;max-width:52ch}.note-page{min-height:290px;display:flex;flex-direction:column;justify-content:center}.note-page h3{font-size:46px}.note-page.has-photo{display:block}.scene-notes .scene-paper{background:#efd1c5}.scene-aside{font-style:italic}.page-controls{display:flex;align-items:center;justify-content:space-between;margin-top:30px;border-top:1px solid #91655540;padding-top:12px}.page-controls button{display:grid;place-items:center;width:48px;height:48px;border:1px solid #91655550;background:transparent;border-radius:50%}.page-controls button:hover{background:#d9bca655}.page-controls>span{font-size:12px;font-variant-numeric:tabular-nums}.return-link{display:flex;align-items:center;gap:15px;border:0;background:none;padding:14px 0;margin:22px 0 0;font-size:12px;min-height:44px}.page-turn{animation:page-turn 1.1s var(--ease)}@keyframes page-turn{0%{opacity:.25;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}@media(max-width:900px){.scene-dialog{padding:10px}.scene-paper{padding:18px 23px 26px;margin:0 auto;min-height:calc(100svh - 20px)}.letter-copy p{font-size:13px;line-height:1.9}.scene-toolbar{font-size:8px}.future-page>img{height:260px}.note-page h3{font-size:38px}.scene-dialog::backdrop{-webkit-backdrop-filter:none;backdrop-filter:none}}.note-page>.photo-frame{width:100%;margin-bottom:8px;background:transparent}.note-page>.photo-frame>img{display:block;width:100%;height:auto;max-height:min(360px,58svh);object-fit:contain;object-position:center}.future-years{display:flex;gap:4px;margin:0 0 22px;border-bottom:1px solid #91655540}.future-years button{flex:1;min-width:0;min-height:44px;border:0;border-bottom:2px solid transparent;background:none;padding:8px 2px;font-size:12px}.future-years button[aria-current]{border-bottom-color:var(--ink);background:#dcc6b730}.future-years button:hover{background:#dcc6b750}.future-art{width:100%;aspect-ratio:3 / 2;background-image:url(/images/future-dreams.webp);background-size:200% 200%;background-repeat:no-repeat}.future-page>img.future-personal-image{width:100%;height:auto;aspect-ratio:3 / 2;max-width:100%;margin-inline:auto;object-fit:cover}.future-personal-image[src$="future-wedding.webp"]{object-position:center 65%}.future-art-home{background-position:right top}.future-art-energylandia{background-position:right bottom}.future-route{display:grid;grid-template-columns:1fr 1fr;gap:16px 12px}.future-route figure{margin:0;min-width:0}.future-route img{width:100%;aspect-ratio:3 / 2;object-fit:cover}.future-route figcaption{font:19px/1.15 var(--serif);margin-top:7px}.future-unwritten{min-height:260px;padding:32px 18px;display:flex;flex-direction:column;justify-content:center;gap:28px;text-align:center;background:#fcf5e8;box-shadow:3px 7px 15px #52372317;font:italic 36px/1.15 var(--serif)}.future-unwritten span:last-child{font-size:21px}@media(max-width:600px){.future-route figcaption{font-size:17px}.future-unwritten{font-size:30px}}.memory-deck{position:relative;isolation:isolate;margin:12px 8px 28px;touch-action:pan-y pinch-zoom}.memory-deck:before,.memory-deck:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:#f8eddd;box-shadow:2px 6px 14px #52372320;pointer-events:none;z-index:-1}.memory-deck:before{transform:rotate(-3deg) translateY(5px)}.memory-deck:after{transform:rotate(2deg) translateY(3px)}.memory-card{margin:0;padding:12px 12px 18px;background:#fff9ef;box-shadow:3px 9px 18px #52372324;animation:memory-card-in 1.1s var(--ease) both;--card-x: 32px;--card-angle: 4deg}.memory-card.from-left{--card-x: -32px;--card-angle: -4deg}.memory-card img{width:100%;height:clamp(220px,43svh,400px);object-fit:contain;-webkit-user-select:none;user-select:none}@keyframes memory-card-in{0%{opacity:0;transform:translate(var(--card-x)) rotate(var(--card-angle))}to{opacity:1;transform:translate(0) rotate(0)}}@media(max-width:600px){.memory-card{padding:8px 8px 16px}}.memories-intro{margin:-8px 0 28px;max-width:48ch;color:#62453d;font-size:14px;line-height:1.8}
