/* Richer memory pages. Text remains readable before and without effects. */
.extra-art{background-image:url('/DUOVE/assets/memory-extra-illustrations.webp');background-size:200% 200%;aspect-ratio:1}.extra-crush{background-position:0 0}.extra-birthday{background-position:100% 0}.extra-farewell{background-position:0 100%}.reading-progress{position:fixed;top:0;left:0;right:0;height:3px;background:#00000009;z-index:120;pointer-events:none}.reading-progress span{display:block;height:100%;background:currentColor;transform:scaleX(0);transform-origin:left}.memory-reveal-section.section-arrived{animation:memory-section-arrive .7s ease-out both}.birthday-ticker{overflow:hidden;white-space:nowrap}.birthday-ticker>span{display:block;width:max-content;animation:memory-marquee 35s linear infinite}.crush-envelope{animation:memory-paper-breathe 10s ease-in-out infinite}.crush-envelope:focus-within,.crush-envelope:has([aria-expanded=true]){animation:none}.romance-two-voices{padding:65px 45px;background:#ece2d6;margin:0 0 85px}.romance-two-voices header{text-align:center}.romance-two-voices h2{font-size:55px;margin:22px 0 40px}.romance-two-voices>div{display:grid;grid-template-columns:1fr 1fr;gap:50px}.romance-two-voices article>span{font-size:7px;letter-spacing:2px;color:#9b7b68}.romance-two-voices h3{font-size:34px;margin:18px 0}.romance-two-voices article p{font-size:13px;line-height:1.9}.romance-two-voices>p{font-family:var(--serif);font-size:25px;line-height:1.4;text-align:center;margin:40px auto 0;color:#775b4e;max-width:550px}
/* Small moments growing into a confession. */
.crush-chance{padding:25px 20px 75px}.crush-chance>.occasion-kicker,.crush-chance>h2{text-align:center}.crush-chance h2{font-size:66px;margin:25px 0 45px}.crush-chance h2 em{color:#a84e70}.crush-chance-road{max-width:660px;margin:auto;border-left:1px solid #d2a7b6;padding:0 0 0 35px}.crush-chance-road article{padding-bottom:35px;position:relative;max-width:550px}.crush-chance-road article:last-child{padding:0}.crush-chance-road article:before{content:'';position:absolute;width:9px;height:9px;left:-40px;top:5px;background:#a84e70;border:2px solid #f7e8eb;border-radius:50%}.crush-chance-road article>span{font-size:7px;letter-spacing:1.5px;color:#aa7c8e}.crush-chance-road h3{font-size:32px;line-height:1.1;margin:17px 0}.crush-chance-road p{font-size:12px;line-height:1.9;color:#916d7d}.crush-keepsakes{padding:55px 0;display:grid;grid-template-columns:1fr 1fr;gap:7%;align-items:center}.crush-keepsakes>.extra-art{border:12px solid #fff7ed;transform:rotate(-3deg);box-shadow:8px 10px 0 #e5cdd4}.crush-keepsake-caption>span{font-size:7px;letter-spacing:1.8px;color:#aa7c8e}.crush-keepsake-caption h2{font-size:58px;margin:25px 0}.crush-keepsake-caption h2 em{color:#a84e70}.crush-keepsake-caption p{font-size:12px;line-height:1.9;color:#916d7d;margin-top:17px}.crush-folded-note{max-width:750px;background:#fff7ef;padding:35px;margin:30px auto 20px;box-shadow:7px 8px 0 #e5cdd4}.crush-folded-note details{border:0}.crush-folded-note summary{font-family:var(--serif);font-size:29px;line-height:1.2;padding:22px 0}.crush-folded-note summary span{color:#a84e70}.crush-folded-note details p{font-family:var(--serif);font-size:24px;color:#916d7d;line-height:1.5;padding:0;margin:15px 0}.crush-possibilities{padding:20px 0 70px}.crush-possibilities>p,.crush-possibilities>h2{text-align:center}.crush-possibilities h2{font-size:60px;margin:25px 0 40px}.crush-possibilities h2 em{color:#a84e70}.crush-possibilities>div{display:grid;grid-template-columns:repeat(3,1fr);gap:25px}.crush-possibilities article{border-top:1px solid #d2a7b6;padding:23px 0 0}.crush-possibilities article>span{font-size:7px;letter-spacing:1.2px;color:#aa7c8e}.crush-possibilities h3{font-size:29px;margin:20px 0 15px}.crush-possibilities article p{font-size:12px;line-height:1.9;color:#916d7d}
/* Birthday features: a cover story, appreciation cards and an editor's note. */
.birthday-cover-story{padding:65px 8%;background:#f0dfac}.birthday-story-heading{display:grid;grid-template-columns:1fr 1.6fr;gap:35px;align-items:start;margin-bottom:35px}.birthday-story-heading>.occasion-kicker{max-width:180px;color:#8e7541;font-size:8px;line-height:1.9;margin-top:12px}.birthday-story-heading h2{font-size:70px;line-height:.98;letter-spacing:-4px}.birthday-cover-story>.extra-art{aspect-ratio:1.7;background-size:200% 200%}.birthday-story-columns{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;margin-top:30px}.birthday-story-columns p{font-size:12px;line-height:1.9;color:#7a6c52}.birthday-reasons{padding:70px 8%}.birthday-reasons>.occasion-kicker{color:#8c926b}.birthday-reasons h2{font-size:60px;letter-spacing:-3px;margin:25px 0}.birthday-reasons>p:last-of-type{font-size:12px;color:#64749e}.birthday-reason-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:15px;margin-top:30px;align-items:start}.birthday-reason{min-height:200px;background:#eee6cc;border:1px solid #e1d8be;text-align:left;padding:22px;display:flex;flex-direction:column;color:#183896;gap:18px;transition:transform .2s,background .2s}.birthday-reason:hover{transform:translateY(-3px)}.birthday-reason:nth-child(3n+2){background:#e3e8f4;border-color:#cfd8ee}.birthday-reason:nth-child(3n){background:#f1dc56;border-color:#e4cb48}.birthday-reason[aria-expanded=true]{background:#183896;color:#fff9e8}.reason-number{font-size:10px;font-weight:500;opacity:.65}.birthday-reason strong{font-size:23px;line-height:1.1;letter-spacing:-1px;font-weight:600;overflow-wrap:anywhere}.flip-prompt{font-size:7px;letter-spacing:1px;margin-top:auto}.flip-note-body{font-size:12px;line-height:1.8;font-weight:400}.flip-note-body[hidden]{display:none}.birthday-reason[aria-expanded=true] .reason-number{color:#f1dc56}.birthday-year-ahead{padding:65px 8%;background:#e4e9f5}.birthday-year-ahead>.occasion-kicker{color:#64749e}.birthday-year-ahead h2{font-size:53px;letter-spacing:-2.5px;margin:25px 0 40px}.birthday-year-ahead>div{display:grid;grid-template-columns:1fr 1fr;gap:35px}.birthday-year-ahead article{border-top:1px solid #b7c3db;padding-top:20px}.birthday-year-ahead article>span{font-size:8px;letter-spacing:1.3px}.birthday-year-ahead h3{font-size:26px;letter-spacing:-1px;margin:18px 0 15px}.birthday-year-ahead article p{font-size:12px;color:#64749e;line-height:1.9}.birthday-editors-note{padding:65px 8%;background:#f1dc56}.birthday-editors-note>.occasion-kicker{color:#8e7541;font-size:8px}.birthday-editors-note h2{font-size:58px;letter-spacing:-3px;margin:30px 0}.birthday-editors-note>div{max-width:650px;border-top:2px solid #183896;padding-top:20px}.birthday-editors-note p{font-family:var(--serif);font-size:26px;line-height:1.4;color:#3e548d;margin:15px 0}.birthday-editors-note>div>span{display:block;font-size:12px;margin-top:25px}.birthday-editors-note>a{display:inline-block;font-size:8px;letter-spacing:1.5px;margin-top:35px;border-bottom:1px solid;padding-bottom:7px}
/* Friendship: a route map, a new postcard and a parcel to unfold. */
.farewell-map-section{padding:20px 0 65px}.farewell-map-section .occasion-kicker{color:#6e826d}.farewell-map-section h2{font-size:60px;margin:25px 0}.farewell-map-section>div>p:last-child{font-size:10px;color:#6e826d;max-width:420px}.friendship-map{position:relative;margin-top:30px;background:#dbe0cf;border:1px solid #bfc9b3;padding:25px 15px 10px}.friendship-map svg{width:100%;display:block;overflow:visible}.friendship-map path{fill:none;stroke-width:3}.map-background-line{stroke:#b5c1a8}.map-travel-line{stroke:#b2874c;stroke-dasharray:9 8}.friendship-map circle{fill:#254b3b;stroke:#e8e9de;stroke-width:5}.map-label{position:absolute;font-size:6px;letter-spacing:1.2px;color:#5b7455;background:#e8e9de;padding:7px 10px;box-shadow:2px 3px 0 #c7cfba}.label-home{left:3%;bottom:7%}.label-stories{left:29%;top:28%;transform:rotate(-4deg)}.label-next{right:0;top:8%;transform:rotate(4deg)}.label-call{right:19%;bottom:23%;transform:rotate(3deg)}.section-arrived .map-travel-line{animation:friendship-map-reveal 2s ease both}.farewell-chai{display:grid;grid-template-columns:1fr 1fr;gap:7%;align-items:center;padding:0 0 65px}.farewell-chai>.extra-art{border:10px solid #fcf8e9;transform:rotate(-3deg);box-shadow:7px 9px 0 #d3d9c8}.farewell-chai>div>.occasion-kicker{font-size:7px;color:#6e826d;line-height:1.8}.farewell-chai h2{font-size:54px;margin:25px 0}.farewell-chai h2 em{color:#718060}.farewell-chai p{font-size:12px;line-height:1.9;color:#6e826d;margin:15px 0}.farewell-chai .postcard-signature{font-size:21px}.farewell-parcel{background:#d4bb96;border:1px solid #bba585;padding:40px;margin-top:65px;position:relative}.parcel-label{display:flex;justify-content:space-between;gap:15px;font-size:7px;letter-spacing:1px;color:#776c50;border-bottom:1px solid #b39c79;padding-bottom:18px}.farewell-parcel h2{font-size:57px;margin:30px 0}.farewell-parcel h2 em{color:#657250}.parcel-open{font-size:10px;background:#254b3b;color:#fcf8e9;padding:15px 23px}.farewell-parcel>div[id]{background:#fcf8e9;padding:30px;margin-top:25px;box-shadow:5px 7px 0 #bfa681}.farewell-parcel>div[id][hidden]{display:none}.farewell-parcel>div[id]>p{font-family:var(--serif);font-size:25px;line-height:1.5;color:#67735e;margin-bottom:20px}.farewell-parcel>div[id]>em{font-family:var(--serif);font-size:26px;color:#5b7455}.farewell-future-trips{padding:65px 0 0}.farewell-future-trips>.occasion-kicker{color:#6e826d;font-size:8px}.farewell-future-trips h2{font-size:60px;margin:25px 0 35px}.farewell-future-trips h2 em{color:#718060}.farewell-future-trips>div{display:grid;grid-template-columns:repeat(3,1fr);gap:25px}.farewell-future-trips article{border-top:1px dashed #9eae94;padding-top:22px}.farewell-future-trips article>span{font-size:7px;letter-spacing:1.3px;color:#8b774c}.farewell-future-trips h3{font-size:28px;line-height:1.1;margin:20px 0}.farewell-future-trips p{font-size:12px;line-height:1.9;color:#6e826d}
/* Family: the fridge-door memory cabinet. */
.album-fridge{padding:20px 8% 80px;max-width:1450px;margin:auto}.album-fridge>p{font-size:12px;margin-top:-20px}.album-fridge-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:30px;margin-top:40px;align-items:start}.album-fridge-note{background:#e4d7aa;padding:35px 25px 22px;min-height:230px;text-align:left;display:flex;flex-direction:column;gap:18px;color:#4b5841;position:relative;transform:rotate(-2deg);box-shadow:3px 6px 0 #d6cdb8;transition:transform .25s}.album-fridge-note:nth-child(even){transform:rotate(2deg);background:#d6ddc4}.album-fridge-note:nth-child(3n){background:#e2cdbb}.album-fridge-note:hover,.album-fridge-note[aria-expanded=true]{transform:rotate(0deg)}.fridge-note-pin{width:10px;height:10px;border-radius:50%;background:#6f8060;position:absolute;top:12px;left:calc(50% - 5px);box-shadow:1px 2px 0 #b5ad94}.album-fridge-note strong{font-family:var(--serif);font-size:30px;font-weight:500;line-height:1.1}.album-fridge-note small{font-size:7px;letter-spacing:1px;margin-top:auto;opacity:.6}.album-fridge-note .flip-note-body{font-family:var(--serif);font-size:23px;line-height:1.4}.album-fridge-note .flip-prompt{font-size:7px}
@keyframes memory-section-arrive{from{opacity:.35;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}@keyframes memory-marquee{from{transform:translateX(0)}to{transform:translateX(-50%)}}@keyframes memory-paper-breathe{0%,100%{transform:rotate(-.3deg)}50%{transform:rotate(.3deg)}}@keyframes friendship-map-reveal{from{stroke-dasharray:1100;stroke-dashoffset:1100}to{stroke-dasharray:1100;stroke-dashoffset:0}}
@media(max-width:760px){.romance-two-voices{padding:40px 22px;margin:0 -22px 55px}.romance-two-voices h2{font-size:41px;margin-bottom:30px}.romance-two-voices>div{grid-template-columns:1fr;gap:30px}.romance-two-voices h3{font-size:30px}.romance-two-voices article p{font-size:12px}.romance-two-voices>p{font-size:24px;margin-top:30px}.crush-chance{padding:5px 0 45px}.crush-chance h2{font-size:48px;margin-bottom:32px}.crush-chance-road{padding-left:24px;margin-left:5px}.crush-chance-road article:before{left:-29px}.crush-chance-road article>span{font-size:6px;letter-spacing:1.1px}.crush-chance-road h3{font-size:29px;margin:15px 0}.crush-chance-road p{font-size:12px}.crush-keepsakes{grid-template-columns:1fr;gap:30px;padding:40px 0}.crush-keepsakes>.extra-art{border-width:9px;max-width:95%;margin:auto}.crush-keepsake-caption>span{font-size:6px}.crush-keepsake-caption h2{font-size:48px;margin:20px 0}.crush-folded-note{padding:25px;margin:15px 0 0}.crush-folded-note>.occasion-kicker{font-size:7px}.crush-folded-note summary{font-size:26px}.crush-folded-note details p{font-size:23px}.crush-possibilities{padding:0 0 45px}.crush-possibilities h2{font-size:45px;margin-bottom:30px}.crush-possibilities>div{grid-template-columns:1fr;gap:25px}.crush-possibilities h3{font-size:29px;margin:15px 0}.birthday-cover-story{padding:45px 7%}.birthday-story-heading{grid-template-columns:1fr;gap:20px;margin-bottom:28px}.birthday-story-heading>.occasion-kicker{max-width:240px;margin:0;font-size:7px}.birthday-story-heading h2{font-size:52px;letter-spacing:-2.5px}.birthday-cover-story>.extra-art{aspect-ratio:1.1}.birthday-story-columns{grid-template-columns:1fr;gap:17px;margin-top:25px}.birthday-story-columns p{font-size:12px}.birthday-reasons{padding:45px 7%}.birthday-reasons h2{font-size:46px;letter-spacing:-2px;margin:20px 0}.birthday-reasons>p:last-of-type{font-size:11px}.birthday-reason-grid{grid-template-columns:1fr 1fr;gap:10px;margin-top:25px}.birthday-reason{min-height:185px;padding:17px;gap:17px}.birthday-reason strong{font-size:21px;letter-spacing:-.8px}.birthday-reason .flip-prompt{font-size:6px;letter-spacing:.7px}.birthday-reason .flip-note-body{font-size:11px;line-height:1.7}.birthday-year-ahead{padding:45px 7%}.birthday-year-ahead h2{font-size:40px;letter-spacing:-2px;margin:20px 0 30px}.birthday-year-ahead>div{grid-template-columns:1fr;gap:25px}.birthday-year-ahead h3{font-size:25px;margin:15px 0 12px}.birthday-editors-note{padding:45px 7%}.birthday-editors-note>.occasion-kicker{font-size:6px;letter-spacing:1px}.birthday-editors-note h2{font-size:44px;letter-spacing:-2px;margin:25px 0}.birthday-editors-note p{font-size:24px}.birthday-editors-note>div>span{font-size:11px}.farewell-map-section{padding:0 0 45px}.farewell-map-section h2{font-size:48px;margin:20px 0}.farewell-map-section>div>p:last-child{font-size:9px}.friendship-map{padding:35px 15px 20px;margin-top:25px}.friendship-map svg{aspect-ratio:1.35}.map-label{font-size:5px;letter-spacing:.5px;padding:6px 7px}.label-home{bottom:10%}.label-stories{left:23%;top:28%}.label-call{right:12%;bottom:24%}.label-next{top:10%;right:3%}.farewell-chai{grid-template-columns:1fr;gap:30px;padding-bottom:45px}.farewell-chai>.extra-art{max-width:95%;margin:auto;border-width:8px}.farewell-chai h2{font-size:49px;margin:20px 0}.farewell-chai>div>.occasion-kicker{font-size:6px}.farewell-chai p{font-size:12px}.farewell-parcel{padding:25px;margin-top:45px}.parcel-label{font-size:5px;letter-spacing:.7px;gap:15px}.parcel-label>span{max-width:110px}.parcel-label>span:last-child{text-align:right}.farewell-parcel h2{font-size:43px;margin:25px 0}.parcel-open{font-size:10px;padding:14px 18px}.farewell-parcel>div[id]{padding:22px;margin-top:22px}.farewell-parcel>div[id]>p{font-size:23px}.farewell-future-trips{padding-top:45px}.farewell-future-trips>.occasion-kicker{font-size:6px;letter-spacing:1px}.farewell-future-trips h2{font-size:48px;margin:20px 0 30px}.farewell-future-trips>div{grid-template-columns:1fr;gap:25px}.farewell-future-trips h3{font-size:29px;margin:15px 0}.album-fridge{padding:0 7% 55px}.album-fridge>p{font-size:11px;line-height:1.8;margin-top:-10px}.album-fridge-grid{grid-template-columns:1fr;gap:25px;margin-top:30px}.album-fridge-note{min-height:200px;padding:33px 25px 22px}.album-fridge-note strong{font-size:32px}.album-fridge-note .flip-note-body{font-size:23px}}
@media(prefers-reduced-motion:reduce){.memory-reveal-section.section-arrived,.birthday-ticker>span,.crush-envelope,.section-arrived .map-travel-line{animation:none}.album-fridge-note,.birthday-reason{transition:none}}
.personal-memory-page .memory-progress{display:none}
.memory-effects-toggle{font-family:var(--sans);font-size:8px;padding:7px 10px;border:1px solid currentColor;white-space:nowrap;opacity:.75}.memory-effects-toggle:disabled{cursor:default;border-style:dashed;opacity:.5}.memory-motion-paused *, .memory-motion-paused *::before,.memory-motion-paused *::after{animation:none!important;transition:none!important}@media(max-width:760px){.memory-effects-toggle{font-size:7px;padding:6px 8px;margin-left:auto}.occasion-nav,.album-nav,.memory-personal-nav{gap:12px}}
