*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:100px}body{margin:0}button,select,input{font:inherit}button,a,select,input{-webkit-tap-highlight-color:transparent}a{color:inherit}button,a,summary,input,select{touch-action:manipulation}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.52}button:focus-visible,a:focus-visible,select:focus-visible,summary:focus-visible,input:focus-visible{outline:3px solid currentColor;outline-offset:5px}button{border:0}h1,h2,h3,p{margin:0}h1,h2,h3{font-weight:400;white-space:pre-line;text-wrap:balance}p{line-height:1.65}video{width:100%;height:100%;object-fit:cover;display:block}a{text-decoration:none}[hidden]{display:none!important}.eyebrow{font-size:11px;letter-spacing:.16em;font-weight:600;line-height:1.7}.tools{display:flex;align-items:center;gap:12px}.tools select{border:0;background:transparent;color:inherit;max-width:80px;font-size:12px;padding:8px 2px}.tools option{color:#171717;background:#fff}.download{display:inline-flex;justify-content:center;align-items:center;gap:18px;padding:16px 25px;font-size:13px;font-weight:600;line-height:1.35;transition:opacity .2s,transform .2s;min-height:48px}.download:not(:disabled):hover{transform:translateY(-2px)}.arrow{font-size:21px;line-height:1}.download>.spinner{display:none}.download.is-loading>.spinner{display:inline-block}.download.is-loading>.arrow{display:none}.store-note,#unlock-status{font-size:11px;line-height:1.6;margin-top:16px}.store-note{opacity:.65;margin-top:12px}.skip{position:fixed;top:-100px;left:10px;z-index:100;padding:12px;background:white;color:#222}.skip:focus{top:10px}.sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}.modal-open{overflow:hidden}dialog{padding:0;border:0;max-width:calc(100% - 32px);width:440px;max-height:calc(100dvh - 40px);color:inherit}dialog::backdrop{background:#10121999;backdrop-filter:blur(9px)}.modal-shell{padding:40px;position:relative}.modal-close{position:absolute;right:16px;top:12px;background:transparent;color:inherit;font-size:30px;font-weight:300;width:40px;height:40px}.modal-brand{font-size:60px;line-height:1;margin-bottom:26px}.modal-brand small{display:block;font:10px/1.5 Arial,sans-serif;letter-spacing:.18em;margin-top:12px}dialog h2{font-size:32px;line-height:1.16;margin-bottom:15px}#modal-description{font-size:14px;opacity:.82}.modal-action{display:flex;justify-content:center;width:100%;padding:16px;margin-top:27px;font:600 14px/1.4 Arial,sans-serif;min-height:50px;text-align:center}.modal-foot{font:10px/1.6 Arial,sans-serif;opacity:.65;margin-top:20px}.modal-loading{display:flex;gap:15px;align-items:center;margin-top:26px;font-size:12px}.spinner{display:inline-block;width:19px;height:19px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:spin .8s linear infinite;flex-shrink:0}.spinner.large{width:28px;height:28px}.noscript{padding:20px;background:#fff;color:#333;text-align:center}@keyframes spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition:none!important}}@media(max-width:600px){html{scroll-padding-top:80px}.tools{gap:6px}.tools select{max-width:58px;font-size:11px}.download{font-size:12px;padding:13px 16px;gap:10px}.modal-shell{padding:32px 26px}.modal-brand{font-size:47px}dialog h2{font-size:28px}}
:root{--paper:#f4edde;--ink:#632d36;--muted:#897367;--red:#883e48}body{background:var(--paper);color:var(--ink);font-family:Georgia,'Times New Roman',serif;background-image:repeating-linear-gradient(0deg,#92755304 0 1px,transparent 1px 4px)}.paper-nav{max-width:1400px;margin:auto;display:flex;align-items:center;justify-content:space-between;padding:23px 6%;border-bottom:1px solid #baa89670;gap:25px}.brand{font-size:46px;line-height:.8;letter-spacing:-4px;font-style:italic;display:flex;align-items:center;gap:20px}.brand span{font:9px monospace;letter-spacing:.2em;font-style:normal}.tools select{font-family:monospace}.download{background:var(--ink);color:#f7eddf;border-radius:0;font-family:Arial,sans-serif;font-size:12px;border:1px solid var(--ink);box-shadow:3px 3px 0 var(--paper),4px 4px 0 #ac8e83}.letter-cover{max-width:1400px;margin:auto;padding:30px 7% 0}.cover-top{display:flex;justify-content:space-between;gap:30px;align-items:center}.eyebrow,.edition{font:9px/1.6 monospace;letter-spacing:.12em}.edition{white-space:nowrap;color:var(--muted)}.cover-layout{display:grid;grid-template-columns:1.5fr .85fr;gap:6%;align-items:center;padding:57px 0 60px}.salutation{font:italic 30px Georgia,serif;margin-bottom:20px;color:#9e6a65}.cover-copy h1{font-size:clamp(51px,5.8vw,84px);letter-spacing:-.055em;line-height:1.06;margin-bottom:25px}.cover-copy h1 span,.cover-copy h1 em{display:block}.cover-copy h1 em{font-weight:normal}.intro{font-size:16px;line-height:1.7;max-width:400px;color:#80695d}.read-link{display:inline-flex;gap:40px;align-items:center;font:11px monospace;letter-spacing:.02em;border-bottom:1px solid #a98b7f;padding-bottom:9px;margin-top:30px}.read-link>span:last-child{font-size:26px}.moving-postcard{margin:0;background:#fcf8f0;padding:13px 13px 0;transform:rotate(5deg);position:relative;box-shadow:4px 15px 30px #7667542e;max-width:340px;justify-self:center;width:100%}.postcard-film{aspect-ratio:3/4;overflow:hidden;filter:sepia(.18) saturate(.8)}.postcard-film video{object-position:center}.moving-postcard figcaption{min-height:76px;display:flex;align-items:center;gap:20px;justify-content:space-between;font:italic 15px/1.3 Georgia,serif;color:#786454;padding:15px 6px}.moving-postcard figcaption>span:last-child{font-size:35px;color:#a6555c}.tape{position:absolute;width:110px;height:30px;background:#d3c9a887;top:-15px;left:50%;transform:translateX(-50%) rotate(-7deg);z-index:3;border-left:2px dotted #efe5cf;border-right:2px dotted #efe5cf}.postmark{position:absolute;right:-24px;top:31px;border:1px solid #a4515f9e;outline:1px solid #a4515f66;outline-offset:-6px;display:grid;place-items:center;width:84px;height:84px;border-radius:50%;font:10px/1.3 monospace;letter-spacing:.1em;color:#8f3b4d;text-align:center;transform:rotate(14deg);background:#f1e5ceaa}.cover-line{display:flex;align-items:center;justify-content:space-between;gap:30px;font:italic 22px Georgia,serif;color:#a68c80}.cover-line:before,.cover-line:after{content:'';height:1px;background:#b99e8c70;flex:1}.cover-line>span:first-child,.cover-line>span:last-child{display:none}.letter-body{position:relative;max-width:710px;margin:0 auto;padding:80px 50px 58px}.letter-body h2{font-size:43px;letter-spacing:-.04em;line-height:1.13;margin-bottom:35px}.letter-paragraph{font-size:19px;line-height:1.95;color:#766154;margin-bottom:26px}.dropcap:first-letter{float:left;font-size:64px;line-height:.9;margin:9px 12px 0 0;color:var(--ink)}.margin-note{position:absolute;left:-105px;top:90px;font:9px/1.7 monospace;letter-spacing:.12em;transform:rotate(-90deg);color:#a88e7e}.signature{margin-top:35px;text-align:right}.signature p{font:italic 15px Georgia,serif}.signature>span{font:italic 35px/1.5 Georgia,serif;letter-spacing:-2px}.envelope-area{padding:15px 7% 80px}.envelope{max-width:710px;margin:auto;border:1px solid #c8b6a1;background:#e9ddc8;box-shadow:0 12px 25px #8d756412}.envelope summary{min-height:210px;position:relative;cursor:pointer;display:flex;align-items:center;flex-direction:column;justify-content:center;padding:27px 30px;background:linear-gradient(150deg,transparent 49.8%,#bca38466 50%,transparent 50.2%),linear-gradient(210deg,transparent 49.8%,#bca38466 50%,transparent 50.2%);list-style:none}.envelope summary::-webkit-details-marker{display:none}.envelope-to{font:9px/1.6 monospace;letter-spacing:.12em;text-align:center}.wax-seal{display:grid;place-items:center;width:60px;height:60px;background:#8b3b48;color:#f2d9c3;border-radius:48% 52% 44% 55%;box-shadow:inset 0 0 0 4px #a4585c,inset 0 0 0 6px #7e303c,1px 3px 4px #6e443b44;font:italic 24px Georgia,serif;letter-spacing:-2px;margin:18px 0}.envelope-open{font:italic 17px Georgia,serif;text-align:center}.envelope-arrow{position:absolute;right:22px;bottom:18px;font-size:25px}.envelope[open] .envelope-arrow{transform:rotate(45deg)}.inner-letter{margin:0 22px 22px;padding:35px;background:#fcf7ed;border:1px solid #d6c6b1}.inner-letter h3{font-size:29px;line-height:1.17;margin-bottom:22px;letter-spacing:-.03em}.inner-letter p{font-size:16px;color:#786154}.postscript-ending{text-align:center;padding:30px 7% 75px;max-width:850px;margin:auto}.ending-rule{color:#a97c75;font-size:25px;display:flex;align-items:center;justify-content:center;gap:30px;margin-bottom:42px}.ending-rule:before,.ending-rule:after{content:'';background:#c8b2a1;height:1px;width:100px}.postscript-ending h2{font-size:53px;line-height:1.2;letter-spacing:-.04em}.postscript-ending>p:first-of-type{max-width:420px;margin:23px auto 30px;font-size:16px;color:#80695d}.postscript-ending .store-note,.postscript-ending #unlock-status{font-family:Arial,sans-serif}.ending-heart{display:block;font-size:48px;color:#bd8882;margin-top:45px}.paper-footer{padding:26px 7%;border-top:1px solid #baa89670;display:flex;justify-content:space-between;gap:20px;font:9px monospace;letter-spacing:.12em;color:#977d70}.paper-footer p{font-size:9px}dialog{background:#faf3e7;border:1px solid #b79c89;box-shadow:8px 8px 0 #e1d1bc,9px 9px 0 #b79c89}.modal-shell{border:1px solid #dac7b1;margin:9px;padding:35px}.modal-brand{font-style:italic;font-size:54px;letter-spacing:-5px}.modal-brand small{letter-spacing:.18em}dialog h2{letter-spacing:-.035em}#modal-description{font-family:Arial,sans-serif;font-size:13px}.modal-action{background:var(--ink);color:#fff7eb}.modal-foot{color:var(--muted)}@media(max-width:1050px){.brand span{display:none}.cover-layout{grid-template-columns:1.3fr 1fr;gap:7%}.cover-copy h1{font-size:58px}.edition{display:none}.letter-body{max-width:650px}.margin-note{display:none}.moving-postcard figcaption{font-size:13px}}@media(max-width:650px){.paper-nav{padding:19px 6%;gap:14px}.brand{font-size:40px}.paper-nav .download{padding:11px 13px;min-height:42px;font-size:11px}.letter-cover{padding:23px 7% 0}.cover-top .eyebrow{font-size:8px;letter-spacing:.06em}.cover-layout{display:flex;flex-direction:column;padding:35px 0 35px;gap:45px}.cover-copy{width:100%}.salutation{font-size:25px;margin-bottom:15px}.cover-copy h1{font-size:49px;line-height:1.09;margin-bottom:20px}.intro{font-size:15px}.read-link{margin-top:22px;font-size:10px;gap:25px}.moving-postcard{width:72%;max-width:280px;transform:rotate(4deg);padding:10px 10px 0;margin-bottom:20px}.postcard-film{aspect-ratio:4/4.2}.moving-postcard figcaption{min-height:65px;font-size:12px;padding:12px 2px;gap:10px}.postmark{width:65px;height:65px;font-size:8px;right:-17px;top:20px}.letter-body{padding:50px 8% 40px}.letter-body h2{font-size:36px;margin-bottom:28px}.letter-paragraph{font-size:17px;line-height:1.9}.dropcap:first-letter{font-size:53px}.signature>span{font-size:31px}.envelope-area{padding:5px 6% 55px}.envelope summary{min-height:200px;padding:25px}.envelope-to{font-size:8px}.envelope-open{font-size:15px}.inner-letter{margin:0 13px 13px;padding:25px 20px}.inner-letter h3{font-size:26px}.inner-letter p{font-size:15px}.postscript-ending{padding:20px 7% 50px}.postscript-ending h2{font-size:38px}.postscript-ending>p:first-of-type{font-size:15px}.paper-footer{padding:22px 7%;display:block;font-size:8px}.paper-footer p{margin-bottom:9px;font-size:8px}.modal-shell{padding:28px 22px}html[lang=zh] .cover-copy h1,html[lang=ja] .cover-copy h1,html[lang=ko] .cover-copy h1{font-size:43px;line-height:1.3}}

/* Luvessa brand */
.brand{gap:14px;letter-spacing:-2px}.brand span{display:block;letter-spacing:.14em}.cover-line{font-size:23px}.wax-seal{font-size:30px}.modal-brand{letter-spacing:-2px}
@media(max-width:650px){.paper-nav{gap:8px;padding-inline:5%}.brand{font-size:34px;gap:8px}.brand span{font-size:8px;letter-spacing:.1em}.tools select{max-width:46px}.paper-nav .download{padding:11px 11px}}
@media(max-width:360px){.brand{font-size:30px;gap:6px}.brand span{font-size:7px;letter-spacing:.07em}.paper-nav .download{font-size:10px;padding:11px 9px}.tools{gap:4px}.tools select{max-width:42px}}
