.background-effects[data-v-4a571c3a]{z-index:1;pointer-events:none;position:absolute;inset:0;overflow:hidden}.effect-burst[data-v-4a571c3a]{width:0;height:0;color:var(--color-accent);position:absolute}.effect-ring[data-v-4a571c3a]{background:radial-gradient(circle,#fff8df99,#0000 70%);border:2px solid #b36f7b99;border-radius:50%;animation:1.1s ease-out forwards ripple-4a571c3a;position:absolute;inset:-32px}.effect-ring-inner[data-v-4a571c3a]{border-color:#ad853e80;animation-duration:.85s;inset:-20px}.effect-flash[data-v-4a571c3a]{text-align:center;color:#b58b48;width:44px;font-size:44px;line-height:44px;animation:.5s ease-out forwards flash-4a571c3a;position:absolute;top:-22px;left:-22px}.effect-particle[data-v-4a571c3a]{text-align:center;text-shadow:0 1px 6px #fffaeae6;width:18px;font-size:16px;line-height:18px;animation:1s ease-out forwards sparkle-4a571c3a;position:absolute;top:-9px;left:-9px}@keyframes ripple-4a571c3a{0%{opacity:1;transform:scale(.2)}to{opacity:0;transform:scale(3.4)}}@keyframes sparkle-4a571c3a{0%{opacity:0;transform:scale(.4)}15%{opacity:1}to{transform:translate(var(--dx), var(--dy)) scale(.7) rotate(20deg);opacity:0}}@keyframes flash-4a571c3a{0%{opacity:0;transform:scale(.3)rotate(-20deg)}25%{opacity:1}to{opacity:0;transform:scale(1.3)rotate(25deg)}}@media (prefers-reduced-motion:reduce){.background-effects[data-v-4a571c3a]{display:none}}.desk-backdrop[data-v-8ec213bc]{pointer-events:none;position:absolute;inset:0;overflow:hidden;box-shadow:inset 0 0 120px #77523114}.desk-note[data-v-8ec213bc]{aspect-ratio:.8;background:#fff9ed;border:1px solid #e8d8c2;width:clamp(120px,18vw,220px);padding:2.5rem 1.5rem 1rem;position:absolute;top:9%;left:-2rem;transform:rotate(-17deg);box-shadow:5px 10px 24px #64482c1f}.paperclip[data-v-8ec213bc]{border:2px solid #b99b66;border-radius:10px;width:16px;height:45px;position:absolute;top:-12px;right:25%;transform:rotate(12deg)}.paperclip[data-v-8ec213bc]:after{content:"";border:1px solid #b99b66;border-top:0;border-radius:0 0 5px 5px;position:absolute;inset:5px 3px 7px}.note-line[data-v-8ec213bc]{background:#e6d9ca;height:1px;margin:1rem 0;display:block}.note-line[data-v-8ec213bc]:nth-of-type(3){width:65%}.note-heart[data-v-8ec213bc]{color:#bc8d8a;font-size:1.75rem}.desk-sprig[data-v-8ec213bc]{filter:drop-shadow(5px 8px 3px #4b53371f);width:clamp(125px,20vw,250px);position:absolute;top:-2rem;right:-1rem;transform:rotate(-24deg)}.desk-ribbon[data-v-8ec213bc]{width:clamp(150px,25vw,310px);position:absolute;bottom:-1rem;right:-2rem;transform:rotate(-12deg)}.petal[data-v-8ec213bc]{background:linear-gradient(135deg,#ebc7c1,#c58c8c);border-radius:75% 25% 65% 35%;width:18px;height:27px;position:absolute;box-shadow:2px 4px 5px #794d3f21}.petal-one[data-v-8ec213bc]{bottom:19%;left:9%;transform:rotate(35deg)}.petal-two[data-v-8ec213bc]{bottom:13%;left:13%;transform:rotate(-48deg)scale(.75)}.petal-three[data-v-8ec213bc]{top:42%;right:12%;transform:rotate(110deg)scale(.8)}@media (width<=600px){.desk-note[data-v-8ec213bc]{opacity:.7;top:5%;left:-4rem}.desk-sprig[data-v-8ec213bc]{opacity:.8;top:-3rem;right:-3.5rem}.desk-ribbon[data-v-8ec213bc]{opacity:.8;bottom:0;right:-4rem}.petal-three[data-v-8ec213bc]{top:22%;right:4%}}.envelope-scene[data-v-df9e9e60]{isolation:isolate;text-align:center;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;background:radial-gradient(at 25% 15%,#fffcefd9,#0000 65%),repeating-linear-gradient(2deg,#0000 0 7px,#8b663d09 8px,#0000 9px 17px),repeating-linear-gradient(90deg,#0000 0 240px,#88633d14 241px,#fffaeb40 243px,#0000 245px 480px),#eddfca;grid-template-rows:minmax(min-content,1fr) auto minmax(min-content,1fr);place-items:center;gap:1.5rem;width:100%;min-height:100svh;padding:3rem 1.25rem;display:grid;position:relative}.envelope-scene[data-v-df9e9e60]:before{content:"";z-index:-1;pointer-events:none;border:1px solid #fffdf659;border-radius:8px;position:absolute;inset:.75rem}.envelope-header[data-v-df9e9e60]{z-index:2;overflow-wrap:anywhere;align-self:end;width:100%;max-width:30rem;position:relative}.envelope-eyebrow[data-v-df9e9e60]{color:var(--color-text-soft);letter-spacing:.16em;text-transform:uppercase;margin:0 0 .6rem;font-size:.75rem}.envelope-recipient[data-v-df9e9e60]{color:var(--color-text);font-family:var(--font-letter);margin:0;font-size:clamp(2rem,8vw,3rem);font-weight:400}.header-ornament[data-v-df9e9e60]{color:var(--color-accent);margin-top:.75rem;font-size:1.25rem;display:block}.envelope-stage[data-v-df9e9e60]{z-index:2;width:min(100%,540px);position:relative}.envelope-opening-space[data-v-df9e9e60]{pointer-events:none;height:0}.envelope[data-v-df9e9e60]{aspect-ratio:1.45;perspective:1000px;isolation:isolate;filter:drop-shadow(0 20px 25px #57423326);width:100%;position:relative}.envelope-back[data-v-df9e9e60],.envelope-letter[data-v-df9e9e60],.envelope-front[data-v-df9e9e60],.envelope-flap[data-v-df9e9e60],.envelope-stitching[data-v-df9e9e60],.envelope-mark[data-v-df9e9e60]{pointer-events:none}.envelope-back[data-v-df9e9e60]{z-index:1;background:linear-gradient(150deg,#dec3aa,#c5a58b);border:1px solid #7d594024;border-radius:5px;position:absolute;inset:0}.envelope-letter[data-v-df9e9e60]{z-index:2;background:var(--color-paper);transform-origin:bottom;border:1px solid #eee5dc;border-radius:3px;flex-direction:column;align-items:center;gap:1rem;width:84%;height:88%;padding:clamp(1rem,4vw,2rem) 1rem;display:flex;position:absolute;bottom:5%;left:8%;transform:scale(.98);box-shadow:0 3px 12px #46322314}.envelope-letter[data-v-df9e9e60]:before{content:"";border:1px solid var(--color-border);pointer-events:none;position:absolute;inset:.45rem}.letter-rule[data-v-df9e9e60]{background:var(--color-border);width:38%;height:1px}.letter-date[data-v-df9e9e60]{color:var(--color-text-soft);letter-spacing:.12em;font-size:.65rem}.letter-teaser[data-v-df9e9e60]{color:var(--color-text);font-family:var(--font-letter);margin:0;font-size:clamp(.9rem,2.5vw,1.2rem);font-style:italic;line-height:1.5}.envelope-front[data-v-df9e9e60]{z-index:3;background:linear-gradient(32deg, transparent 49.7%, #7c573e21 50%, transparent 50.4%), linear-gradient(-32deg, transparent 49.7%, #fffaf066 50%, transparent 50.4%), linear-gradient(145deg, #e6cfb9, var(--color-envelope-dark));clip-path:polygon(0 0,50% 56%,100% 0,100% 100%,0 100%);border-radius:0 0 5px 5px;position:absolute;inset:0}.envelope-stitching[data-v-df9e9e60]{z-index:3;border:1px dashed #fffaf080;border-top:0;border-radius:0 0 3px 3px;height:25%;position:absolute;inset:auto .75rem .75rem}.envelope-mark[data-v-df9e9e60]{z-index:3;color:#715744;letter-spacing:.14em;font-size:.6rem;position:absolute;bottom:1.4rem;right:1.5rem}.envelope-flap[data-v-df9e9e60]{z-index:4;clip-path:polygon(0 0,100% 0,50% 100%);transform-origin:50% 0;background:linear-gradient(160deg,#ebdac9,#d4b69d);width:100%;height:58%;position:absolute;top:0;left:0;box-shadow:inset 0 2px #fffdf980}.envelope-seal[data-v-df9e9e60]{z-index:5;aspect-ratio:100/92;color:#fffaf5;width:clamp(88px,20vw,112px);font-family:var(--font-letter);cursor:pointer;filter:drop-shadow(0 5px 5px #50322d38);background:0 0;border:0;border-radius:1rem;place-items:center;padding:0;font-size:1rem;display:grid;position:absolute;top:53%;left:50%;transform:translate(-50%,-50%)}.seal-heart[data-v-df9e9e60]{grid-area:1/1;width:100%;height:100%;overflow:visible}.seal-heart-fill[data-v-df9e9e60]{fill:var(--color-accent);stroke:#946966;stroke-width:1px;transition:fill var(--transition-smooth)}.seal-heart-border[data-v-df9e9e60]{fill:none;stroke:#fffaf559;stroke-width:.8px}.seal-label[data-v-df9e9e60]{z-index:1;grid-area:1/1;padding-bottom:.4rem}.envelope-seal:hover:not(:disabled) .seal-heart-fill[data-v-df9e9e60]{fill:#956c69}.envelope-seal[data-v-df9e9e60]:disabled{cursor:default}.envelope-footer[data-v-df9e9e60]{z-index:2;overflow-wrap:anywhere;max-width:100%;color:var(--color-text-soft);flex-direction:column;align-self:start;gap:.4rem;font-size:.85rem;display:flex;position:relative}.envelope-footer strong[data-v-df9e9e60]{color:var(--color-text);font-family:var(--font-letter);font-size:1.2rem;font-weight:400}@media (width<=480px){.envelope-scene[data-v-df9e9e60]{padding-inline:.875rem}.envelope-letter[data-v-df9e9e60]{padding:.8rem}.envelope-scene[data-v-df9e9e60]:before{inset:.4rem}}@media (width>=600px) and (height<=850px){.envelope-stage[data-v-df9e9e60]{max-width:440px}}.memory-frame[data-v-0aefbcbb]{z-index:1;padding:clamp(.4rem,1.5vw,.75rem);background:var(--color-paper);border:1px solid var(--color-border);width:100%;max-width:20rem;margin:0 auto;padding-bottom:clamp(1.5rem,4vw,2.25rem);position:relative;transform:rotate(-5deg);box-shadow:2px 8px 18px #57423326}.memory-frame[data-v-0aefbcbb]:nth-child(2n){z-index:2;margin-top:1.5rem;transform:rotate(4deg)}.memory-frame[data-v-0aefbcbb]:before{content:"";z-index:1;pointer-events:none;background:repeating-linear-gradient(90deg,#d6bba399 0 3px,#e5d0b8a6 3px 6px);border-inline:1px dashed #fffdf9b3;width:40%;height:1.6rem;position:absolute;top:-.75rem;left:30%;transform:rotate(-5deg)}.memory-drawing[data-v-0aefbcbb]{background:#f0e6d8;position:relative;overflow:hidden}.memory-image[data-v-0aefbcbb]{width:100%;height:auto;display:block}@media (width<=560px){.memory-frame[data-v-0aefbcbb]{width:94%;transform:rotate(-3deg)}.memory-frame[data-v-0aefbcbb]:nth-child(2n){margin-top:0;transform:rotate(3deg)}}.pencil-message[data-v-33d86e24]{border-top:1px solid var(--color-border);text-align:center;max-width:29rem;margin:clamp(3.5rem,9vw,5rem) auto 0;padding:2rem 0 .5rem}.pencil-copy[data-v-33d86e24]{color:#746154;text-shadow:.4px .4px #7461542e;margin:0;font-family:Segoe Print,Bradley Hand,cursive;font-size:clamp(1.25rem,4.5vw,1.75rem);line-height:1.9;position:relative}.pencil-word[data-v-33d86e24]{white-space:nowrap;display:inline-block}.pencil-character[data-v-33d86e24]{display:inline-block}.writing-pencil[data-v-33d86e24]{opacity:0;transform-origin:3px 36px;pointer-events:none;width:24px;height:40px;position:absolute;top:0;left:0;transform:rotate(18deg)}.pencil-underline[data-v-33d86e24]{stroke:#b9978b;stroke-width:1.2px;stroke-linecap:round;stroke-dasharray:1;width:min(70%,220px);height:20px;margin:.5rem auto 0;display:block}.accessible-message[data-v-33d86e24]{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.letter-scene[data-v-019e6be1]{min-height:100svh;padding:clamp(1.5rem,5vw,4rem) 1rem;padding-bottom:calc(6rem + env(safe-area-inset-bottom,0px));background:radial-gradient(80% 35rem at 0 0,#c2969538,#0000 75%),radial-gradient(75% 40rem at 100% 70%,#cfb8912e,#0000 75%),repeating-linear-gradient(0deg,#0000 0 3px,#826d5e06 3px 4px),repeating-linear-gradient(90deg,#0000 0 3px,#826d5e06 3px 4px),#efe7e2}.letter-paper[data-v-019e6be1]{isolation:isolate;background:radial-gradient(ellipse at 0 0, #e4cfb021, transparent 65%), repeating-linear-gradient(0deg, transparent 0 5px, #a0815d05 5px 6px), var(--color-paper);overflow-wrap:anywhere;border:1px solid #e4d7c9;border-radius:3px 0 3px 3px;width:100%;max-width:46rem;margin-inline:auto;padding:clamp(2.5rem,7vw,5rem) clamp(1.4rem,6vw,4.5rem);position:relative;box-shadow:0 6px 0 -3px #f7f0e7,0 7px 0 -3px #ddcfc2,0 12px 0 -6px #f7f0e7,0 13px 0 -6px #ddcfc2,0 24px 60px #644b3e21}.letter-paper[data-v-019e6be1]:before{content:"";z-index:-1;pointer-events:none;border:1px solid #c2a6894d;position:absolute;inset:clamp(.6rem,2vw,1.1rem)}.letter-paper[data-v-019e6be1]:after{content:"";pointer-events:none;background:linear-gradient(225deg,#efe7e2 48%,#d9c8b8 49%,#fff7e9 53%);border-bottom-left-radius:4px;width:2.2rem;height:2.2rem;position:absolute;top:-1px;right:-1px;box-shadow:-3px 3px 5px #644b3e0f}.paper-sprig[data-v-019e6be1]{stroke:#b2a18a;stroke-width:1px;opacity:.5;pointer-events:none;width:clamp(42px,8vw,65px);position:absolute;top:2.5rem;right:1.25rem}.letter-header[data-v-019e6be1]{text-align:center;margin-bottom:clamp(2rem,6vw,3.5rem);position:relative}.letter-eyebrow[data-v-019e6be1]{color:#8b7468;letter-spacing:.16em;text-transform:uppercase;margin:0;font-size:.7rem;line-height:1.7}h1[data-v-019e6be1]{font-family:var(--font-letter);margin:1.25rem 0;font-size:clamp(2rem,7vw,3rem);font-style:italic;font-weight:400;line-height:1.2}.letter-body[data-v-019e6be1]{max-width:36rem;font-family:var(--font-letter);margin-inline:auto;font-size:clamp(1rem,2.5vw,1.125rem);line-height:1.9}.letter-body p[data-v-019e6be1]{margin:0}.letter-body p+p[data-v-019e6be1]{margin-top:1.5em}.letter-decoration[data-v-019e6be1]{color:var(--color-accent);justify-content:center;align-items:center;gap:1rem;font-size:1.5rem;display:flex}.letter-decoration[data-v-019e6be1]:before,.letter-decoration[data-v-019e6be1]:after{content:"";background:linear-gradient(90deg,#0000,#d8c0b5);width:3.5rem;height:1px}.letter-decoration[data-v-019e6be1]:after{transform:rotate(180deg)}.letter-ending[data-v-019e6be1]{text-align:center;color:var(--color-accent);margin-top:2.5rem;font-size:1.25rem}.letter-memories[data-v-019e6be1]{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:0;margin:2.5rem auto 1rem;padding-inline:.5rem;display:grid}@media (width<=560px){.letter-memories[data-v-019e6be1]{grid-template-columns:minmax(0,1fr);gap:3rem;max-width:20rem}}@media (width<=480px){.paper-sprig[data-v-019e6be1]{opacity:.3;top:1.5rem;right:.8rem}.letter-eyebrow[data-v-019e6be1]{max-width:13rem;margin-inline:auto;font-size:.65rem}}.store-letter-button[data-v-a0609f91]{right:max(1rem, env(safe-area-inset-right));bottom:max(1rem, env(safe-area-inset-bottom));z-index:10;border:1px solid var(--color-border);background:var(--color-paper);min-height:48px;color:var(--color-text);cursor:pointer;transition:background var(--transition-smooth);border-radius:999px;align-items:center;gap:.6rem;padding:.75rem 1rem;font-size:.85rem;display:inline-flex;position:fixed;box-shadow:0 4px 18px #5742331f}.store-letter-button[data-v-a0609f91]:hover:not(:disabled){background:var(--color-background)}.store-letter-button[data-v-a0609f91]:disabled{opacity:.6;cursor:default}.store-letter-button svg[data-v-a0609f91]{stroke:currentColor;stroke-width:1.5px;stroke-linejoin:round;width:20px;height:20px}:root{--color-background:#f8f5f0;--color-paper:#fffdf9;--color-envelope:#d9c1ac;--color-envelope-dark:#c6a58c;--color-text:#51483f;--color-text-soft:#96877b;--color-accent:#a77c79;--color-border:#e8ded3;--shadow-soft:0 20px 50px #5742331f;--font-ui:"Segoe UI", sans-serif;--font-letter:Georgia, "Times New Roman", serif;--transition-smooth:.35s ease}*,:before,:after{box-sizing:border-box}html{scroll-behavior:smooth}body{background:var(--color-background);min-width:320px;min-height:100vh;color:var(--color-text);font-family:var(--font-ui);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;margin:0}button{font:inherit}html.envelope-view,html.envelope-view body{overscroll-behavior:none;overflow:hidden}button:focus-visible{outline:3px solid var(--color-accent);outline-offset:4px}#app{min-height:100svh}.app-shell{width:100%;min-height:100svh}::selection{color:var(--color-text);background:#e7d4cf}.scene-enter-active,.scene-leave-active{transition:opacity .45s,transform .45s}.scene-enter-from,.scene-leave-to{opacity:0;transform:translateY(12px)}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}
