:root{--paper:#f7ddf2;--ink:#40224f;--muted:#72517f;--rose:#963c91;--rose-light:#edb5dc;--lavender:#d9bdef;--butter:#d9aceb;--mint:#d8c5f0;--line:#d5addb}
body{background:linear-gradient(140deg,#f9d7ed 0%,#eddbfa 40%,#f6cce8 75%,#dfcdf5 100%);color:var(--ink)}.draft-note{background:#dfc2ec;color:#533260}.draft-dot{background:#963c91}.hero-small,.hero-bottom,.header-note{color:#72517f}.hero-description{color:#6f2d83}.section-number{color:#795082}.section-heading>p:last-child,.center-heading>p:last-child{color:#72517f}.hero-note,.floating-heart{color:#a23c89}.round-link .arrow-circle{border-color:#ab7cbd}.round-link:hover .arrow-circle{background:#e8bee4}
.polaroid{background:#fff3fc;border-color:#dec0e4;box-shadow:0 12px 25px #663c7a19,0 1px 4px #663c7a12}.tape{background:#dcabdfcc}.tape-lavender{background:#c6a4e2cc}.love-sticker{background:#9a4caa;color:#fff2fc;outline-color:#ebc2ed}.ribbon{background:linear-gradient(90deg,#d6a7e2,#edadd4,#c7a6e7);color:#5f2c75}.songs-section{background:linear-gradient(130deg,#d9c0ee,#ecc1e8);border-color:#c9a2db}.songs-intro>p:not(.section-number):not(.hand-note),.song-artist,.song-note,.song-status{color:#6b477c}.song{border-color:#bc98ce}.song:first-child{border-color:#bc98ce}.song-art.rose{background:#e7a6cd;color:#7b3976}.song-art.lavender{background:#bea0de;color:#57306e}.song-art.mint{background:#d4b0ea;color:#6b3a85}.song-open{border-color:#9970ad}.song-art{box-shadow:3px 4px #cdb2df}.more-songs>summary{color:#693575;border-color:#b78dc8}.hand-note{color:#794187}.record-label{background:#d994cc;color:#5f2b70}.record-spark{color:#aa69be}.playlist-link{color:#673076;border-color:#ac78bd}.shared-playlist iframe{background:#d9b8e6}
.favorite-card,.favorite-card:nth-child(1){background:#efbddd;border-color:#cb8dbd;box-shadow:2px 3px #dca8ce}.favorite-card:nth-child(2){background:#d8c0ed;border-color:#b79ad2;box-shadow:2px 3px #c5acde}.favorite-card:nth-child(3){background:#efc9e6;border-color:#cfa0cc;box-shadow:2px 3px #ddb4d9}.favorite-card:nth-child(4){background:#cfc0ed;border-color:#ae97cf;box-shadow:2px 3px #baa8db}.favorite-card:nth-child(5){background:#edb3d9;border-color:#c389bd;box-shadow:2px 3px #dba0ca}.favorite-card:nth-child(6){background:#d9b9ee;border-color:#b491d0;box-shadow:2px 3px #c49ddd}.favorite-tag,.favorite-card>p:last-child{color:#694474}.food-icon,.favorite-card:nth-child(2) .food-icon,.favorite-card:nth-child(3) .food-icon,.favorite-card:nth-child(4) .food-icon{color:#864294}.restaurant-sticker{background:#ebbee1;border-color:#b572ae;color:#773077;box-shadow:2px 4px #cba1ce}
.appreciation-note{border-color:#bd91c8}.note-number{color:#8b519d}.note-flower,.appreciation-note:nth-child(2) .note-flower,.appreciation-note:nth-child(3) .note-flower{color:#ad60b2}.appreciation-note>p{color:#72517f}.letter-section{background:linear-gradient(130deg,#e9acdc,#d3b2ed 70%,#e6bfe9)}.letter-section .section-number{color:#784184}.letter-section h2 em{color:#8e368d}.envelope{background:#efcae6;border-color:#b68dc2;box-shadow:0 15px 30px #6d32851a}.envelope-flap{background:#ddb4df}.envelope:before{background:linear-gradient(33deg,transparent 49.5%,#a16fb777 50%,transparent 50.5%),linear-gradient(-33deg,transparent 49.5%,#a16fb777 50%,transparent 50.5%)}.wax-heart{background:#9f4ba7;box-shadow:0 2px #703981}.envelope.is-open .envelope-open-label{color:#6f337e}.letter-paper{background:#fff0fc;border-color:#c59dce}.letter-paper p{color:#60416e}.letter-flower{color:#b56db9}.letter-paper .letter-draft-note{color:#795186;border-color:#d5b4df}.home-sticker{background:#f5d4ec;border-color:#c794cb;box-shadow:2px 4px #a985bc33}.home-sticker>span{color:#a257a5}.home-sticker p{color:#72517f}
.together-counter{background:linear-gradient(120deg,#f3bfe1,#dfc4f2);border-color:#c28ac9}.counter-kicker{color:#813786}.counter-since{color:#72517f}.keepsake-date{border-color:#be8bc9}.keepsake-date-label{color:#72517f}.couple-outline{fill:#edc5ec;stroke:#b460ad}.couple-date-label{color:#875194}.portrait-frame{background:#fff0fb;border-color:#d1a4d5;box-shadow:0 8px 20px #66316e1a}.portrait-caption{color:#843b8a}.love-measure button,.love-return{background:#9950ad;border-color:#783b91;box-shadow:0 4px #c291d0}.love-measure>p{color:#8b529c}.love-doodle{color:#b45ab1}.love-dialog{background:linear-gradient(125deg,#f8d5ee,#e2c7f4);border-color:#bc7fc8;box-shadow:0 20px 100px #5f287b66}.love-dialog::backdrop{background:#462153bb}.love-close,.love-dialog-heart,.love-code{color:#8a3b98}.more-memories{background:#eac0ec;border-color:#bc8bc9;color:#733281}.video-card{background:#fbedfb;border-color:#caa7d8}.photo-dialog{background:#f3d7f1;border-color:#c194ce}.photo-dialog::backdrop{background:#3f2259bb}.dialog-close{border-color:#b78bc4}.site-footer p,.back-top{color:#72517f}
.princess-frame:after{content:"";position:absolute;inset:-13px -16px -11px;border:2px solid #a04aaa;border-radius:46% 50% 47% 45%;transform:rotate(-7deg);pointer-events:none}.favorite-person-callout{position:absolute;right:-142px;top:47%;width:130px;font:italic 18px/1.25 var(--serif);color:#8b378e;transform:rotate(7deg);z-index:5;pointer-events:none}.favorite-person-callout svg{display:block;width:88px;height:62px;fill:none;stroke:currentColor;stroke-width:1.6;margin:-4px 0 0 -34px}.favorite-person-callout span{background:#f4d3edbd;padding:3px 6px;border-radius:9px;display:inline-block}
@media(max-width:800px){.favorite-person-callout{right:-35px;top:auto;bottom:4px;width:125px;font-size:13px}.favorite-person-callout svg{position:absolute;bottom:16px;left:0;width:60px;height:50px;margin:0}.favorite-person-callout span{margin-left:20px}}
@media(max-width:540px){.princess-frame:after{inset:-9px -10px -8px;border-width:1.5px}.favorite-person-callout{right:-9px;bottom:3px;width:105px;font-size:11px}.favorite-person-callout svg{width:48px;height:43px;left:-2px;bottom:12px}.favorite-person-callout span{margin-left:14px;padding:3px 4px}.portrait-caption{padding-top:4px}}

/* Real keepsakes and a little more room for the words. */
.appreciation-section .section-heading{grid-template-columns:150px minmax(0,1fr) minmax(160px,235px);column-gap:44px}.appreciation-section .section-heading h2{min-width:0}.appreciation-section .section-heading>p:last-child{padding-top:5px;line-height:1.9;margin-left:8px}.favorite-photo{display:block;width:100%;height:200px;object-fit:contain;background:#fff8fd;border-radius:15px;margin:15px auto 20px;padding:7px}.favorite-card{min-width:0}.favorite-card h3{overflow-wrap:anywhere}.favorite-card>p:last-child{min-height:0}.letter-paper p{line-height:1.95}
@media(max-width:1000px) and (min-width:801px){.appreciation-section .section-heading{grid-template-columns:110px minmax(0,1fr);gap:25px}.appreciation-section .section-heading>p:last-child{grid-column:2;margin-left:0;padding-top:0;max-width:280px}}
@media(max-width:800px){.appreciation-section .section-heading{grid-template-columns:1fr;gap:22px}.appreciation-section .section-heading>p:last-child{margin-left:0;padding-top:0;max-width:280px}.favorite-photo{height:170px}}
@media(max-width:540px){.favorite-photo{height:120px;margin:12px auto 15px;padding:4px}.favorite-card h3{font-size:21px;min-height:55px;line-height:1.25}.favorite-card>p:last-child{min-height:0}.appreciation-section .section-heading{gap:20px}.letter-paper p{font-size:14px;line-height:1.9}}

.picture-credits{font-size:10px;color:#795186;padding-block:12px}.picture-credits summary{cursor:pointer;width:max-content}.picture-credits p{max-width:850px;margin:10px 0;line-height:1.9}.picture-credits a{text-decoration:underline;text-underline-offset:3px}
@media(min-width:801px) and (max-width:1200px){.favorite-person-callout{right:-65px;width:118px;font-size:16px}.favorite-person-callout svg{width:72px;margin-left:-18px}}

/* The longer promise gets its own breathing room. */
.appreciation-section .section-heading{grid-template-columns:140px minmax(0,1fr);gap:30px 44px}.appreciation-section .section-heading>p:last-child{grid-column:2;max-width:320px;margin:0;padding:0}.appreciation-section .section-heading h2{font-size:clamp(37px,4.2vw,58px);line-height:1.18;overflow-wrap:normal}.hero-bottom{justify-content:space-between}
@media(max-width:800px){.appreciation-section .section-heading{grid-template-columns:1fr;gap:22px}.appreciation-section .section-heading>p:last-child{grid-column:1}.appreciation-section .section-heading h2{font-size:clamp(34px,5.3vw,48px)}}
@media(max-width:540px){.appreciation-section .section-heading{padding-right:0;padding-top:55px}.appreciation-section .section-heading h2{font-size:36px}}
/* Stable references for Luke's photo-caption review. */
.gallery-photo{position:relative}
.photo-number{position:absolute;top:8px;left:8px;z-index:1;padding:4px 8px;border:1px solid #cba4d2;border-radius:999px;background:#fff2fbeF;color:#643273;font:600 12px/1.2 var(--sans);box-shadow:0 2px 8px #48215a14;pointer-events:none}
.site-footer{position:relative;padding-bottom:78px}
.private-corner{position:absolute;right:0;bottom:16px;display:grid;place-items:center;width:44px;height:44px;border-radius:50%;font-size:25px;line-height:1;background:#f5d9f5aa;transition:transform .2s,background .2s}
.private-corner:hover{transform:rotate(-8deg);background:#efc7ee}

/* A tiny fairy watching over the letter. */
.envelope-stage{position:relative}.fairy-sticker{width:116px;height:136px;right:-18px;top:-30px;transform:rotate(8deg);filter:drop-shadow(2px 5px 4px #6d328523)}
@media(max-width:540px){.fairy-sticker{width:76px;height:89px;right:2px;top:-20px}}
