/* A letter from the same illustrated woodland as the home. */
dialog#modal.modal-letter{width:min(780px,calc(100vw - 28px));padding:26px;background:linear-gradient(130deg,#ece9d2,#dce6cf);border:1px solid #c3cfa7!important;box-shadow:0 28px 100px #15352366,0 2px 0 #fff7dc inset;max-height:94svh;scrollbar-color:#a6b78d #edead5;scrollbar-width:thin}.modal-letter .modal-close{position:sticky;float:right;top:0;z-index:20;background:#fff8df;color:#6e8452;border-color:#c9cda7;box-shadow:0 4px 10px #4c613d19}.modal-letter #modalContent{clear:both}.modal-letter:has(.letter-paper:not([hidden])) .modal-close{margin-bottom:8px}
.letter-intro{position:relative;isolation:isolate;overflow:hidden;border:1px solid #d6cdad;background:radial-gradient(ellipse at 50% 65%,#fff7d6aa,transparent 64%),linear-gradient(#f9f4e2,#f2ebd2);border-radius:21px;padding:175px 24px 28px;text-align:center;box-shadow:0 8px 22px #4a5a3012,inset 0 1px 0 #fffbeb}.letter-intro:before{content:'';position:absolute;z-index:-1;inset:0 0 auto;height:210px;background:linear-gradient(0deg,#f8f2df,transparent 80%),url('/assets/courtyard-art-preview.png') center 49%/cover;opacity:.93}.letter-intro>.modal-eyebrow{font-size:8px;letter-spacing:2px;color:#9a8d5a}.letter-intro>.modal-title{font-size:28px;line-height:1.6;color:#506d42;margin:12px 0}.letter-intro>.modal-subtitle{color:#8b906a;font-size:12px;line-height:1.9;margin-bottom:0}.letter-intro .letter-slogan{margin-top:23px;color:#7e8c5d;font-size:12px}.letter-intro .envelope-hint{display:block;font-size:11px;letter-spacing:1px;color:#8e895e;margin:5px 0 0}.letter-intro .envelope-hint:before,.letter-intro .envelope-hint:after{content:' ✧ ';color:#b49e59;margin:0 8px}
.modal-letter .envelope{width:345px;height:225px;margin:61px auto 30px;transform:rotate(-5deg);filter:drop-shadow(0 19px 11px #75643b2c)}.modal-letter .envelope:hover{transform:rotate(-2deg) translateY(-5px)}.modal-letter .envelope-back{background:linear-gradient(140deg,#b8a477,#d3bf8c);border-radius:9px;box-shadow:0 2px 0 #fff1bc inset}.modal-letter .envelope-front{background:linear-gradient(35deg,#d6c498,#f3e4bd 50%,#ddcda3);border-radius:8px}.modal-letter .envelope-front:after{background:linear-gradient(115deg,#f6e8c0,#e7d7aa 62%,#e2cfa0);box-shadow:inset 0 2px 1px #fff2c8}.modal-letter .envelope-flap{background:linear-gradient(130deg,#fff0cc,#e5d3a7);filter:drop-shadow(0 2px 1px #a6926340)}.modal-letter .envelope-paper{background:linear-gradient(#fffae7,#f5edcf);border:1px solid #e3d3aa;border-radius:4px;color:#7b895b}.modal-letter .wax-seal{top:96px;left:calc(50% - 26px);width:52px;height:52px;font-size:29px;color:#f4e7ac;background:radial-gradient(at 34% 28%,#9aaa69,#66804b 65%,#536b3c);border:4px double #b7c28b;box-shadow:0 4px 6px #7b6c3f52,inset 0 2px 3px #ced59a77;text-shadow:0 1px 0 #506331}.modal-letter .envelope-to{left:97px;right:18px;bottom:31px;text-align:center;font-size:11px;line-height:1.8;letter-spacing:1px;color:#8b7c4f}.forest-envelope-stamp{position:absolute;z-index:4;left:23px;bottom:23px;width:58px;height:70px;background:#fff8df;border:2px dashed #c4b58e;outline:3px solid #f8eccb;padding:5px;transform:rotate(-6deg);box-shadow:0 2px 4px #84703b17}.forest-envelope-stamp i{display:block;height:43px;background:url('/assets/courtyard-art-preview.png') 48% 53%/250%;border:1px solid #d9d0a7}.forest-envelope-stamp small{display:block;font-size:7px;letter-spacing:.6px;line-height:15px;color:#8d8d5f}.forest-envelope-postmark{position:absolute;right:16px;top:24px;z-index:6;color:#8f946766;font-size:7px;line-height:1.9;letter-spacing:1.2px;transform:rotate(10deg);padding:6px 11px;border-top:1px solid #9ba27877;border-bottom:1px solid #9ba27877}.envelope.opened .forest-envelope-postmark{opacity:0;transition:opacity .25s}.envelope.opened .forest-envelope-stamp{opacity:.65}.modal-letter .envelope.opened .envelope-paper{transform:translateY(-100px)}
.modal-letter .letter-paper{position:relative;overflow:hidden;background:linear-gradient(100deg,#fff9e6,#faf2d9 70%,#f2e9ca);padding:24px 36px 32px;border:1px solid #d4c49a;border-radius:9px 9px 17px 17px;box-shadow:0 9px 20px #55633816,0 2px 0 #fffdf0 inset;isolation:isolate}.modal-letter .letter-paper:before{content:'';position:absolute;inset:0;z-index:-1;pointer-events:none;opacity:.4;background:repeating-linear-gradient(0deg,transparent 0px,transparent 3px,#b7aa7b0c 4px)}.modal-letter .letter-paper:after{content:'';position:absolute;left:20px;right:20px;bottom:9px;height:5px;border-bottom:1px solid #d6c89d;pointer-events:none}.modal-letter .letter-paper-top{border:0;padding:0 0 17px;font-size:8px;letter-spacing:1.2px;color:#9a8f63;align-items:center}.forest-letter-scene{height:170px;position:relative;margin:0 -13px 0;border-radius:12px;overflow:hidden;background:#aec294;border:1px solid #d2cca7}.forest-letter-scene>img{width:100%;height:100%;object-fit:cover;object-position:50% 51%;filter:saturate(.85)}.forest-letter-scene:after{content:'';position:absolute;inset:0;background:linear-gradient(0deg,#2e513bb0,transparent 65%)}.forest-letter-route{position:absolute;bottom:17px;left:20px;right:100px;color:#fff5d8;font:15px/1.7 var(--serif);z-index:2;text-shadow:0 2px 4px #213c2999}.forest-letter-route small{display:block;font:9px/1.7 var(--sans);color:#e8e9c8;margin-top:4px}.forest-postmark{position:absolute;z-index:3;right:17px;bottom:16px;width:80px;height:80px;border:2px solid #f9f1ca99;outline:1px dashed #f8ebc880;outline-offset:-6px;border-radius:50%;transform:rotate(-13deg);display:flex;flex-direction:column;align-items:center;justify-content:center;font:12px/1.5 var(--serif);color:#f7efc8;background:#36573e3d}.forest-postmark small{font:6px/1.8 var(--sans);letter-spacing:1px;color:#e7e4bc}.forest-postmark b{font:8px/1.7 Georgia,serif;letter-spacing:1px;border-top:1px solid #ece1b86b;margin-top:3px;padding-top:2px}.forest-letter-greeting{display:flex;align-items:center;gap:12px;justify-content:space-between;color:#a19b70;font-size:9px;line-height:1.8;border-bottom:1px solid #d5c99e;padding:18px 0 14px}.forest-letter-greeting i{font-style:normal;color:#a5ae77;font-size:20px}.modal-letter .letter-paper h2{font:500 25px/1.8 var(--serif);color:#506c43;margin:26px 0 19px}.modal-letter .letter-paper p{color:#6c7654;font:14px/2.2 var(--serif);margin:19px 0;letter-spacing:.2px;overflow-wrap:anywhere}.modal-letter .letter-paper p.letter-emphasis{position:relative;border:0;border-left:3px solid #9eaf73;padding:14px 17px;background:linear-gradient(90deg,#e5e8ca77,transparent);font-size:18px;color:#68824d;line-height:1.95;margin:28px 0;border-radius:0 12px 12px 0}.modal-letter .letter-sign{margin-top:26px;padding-top:20px;border-top:1px dashed #d6caa4;color:#8d9369;font:12px/1.9 var(--serif);text-align:right}.modal-letter .letter-sign strong{display:block;font:italic 23px/1.8 var(--serif);color:#74885b;margin-top:5px}.modal-letter .letter-last{display:block;text-align:center;font-size:7px;letter-spacing:1.3px;color:#a59c71;margin-top:20px}.modal-letter .village-letter>.letter-house-stamp{display:none}.modal-letter .village-letter>small:first-of-type{display:none}.modal-letter .letter-paper>.green-button{width:100%;margin-top:25px;white-space:normal;line-height:1.8;padding:12px 16px}
@media(max-width:700px){dialog#modal.modal-letter{padding:13px;width:calc(100vw - 16px);max-height:95svh;border-radius:20px!important}.letter-intro{padding:132px 10px 24px;border-radius:16px}.letter-intro:before{height:165px}.letter-intro>.modal-title{font-size:23px;padding:0 12px}.letter-intro>.modal-subtitle{font-size:11px}.modal-letter .envelope{width:min(290px,85vw);height:190px;margin:53px auto 27px}.modal-letter .wax-seal{top:81px;width:46px;height:46px;left:calc(50% - 23px);font-size:25px}.modal-letter .envelope-to{left:81px;right:12px;bottom:25px;font-size:9px}.forest-envelope-stamp{width:48px;height:59px;left:20px;bottom:20px;padding:4px}.forest-envelope-stamp i{height:34px}.forest-envelope-stamp small{font-size:6px;line-height:13px}.forest-envelope-postmark{right:12px;top:19px;font-size:6px;padding:5px 7px}.modal-letter .letter-paper{padding:19px 20px 27px}.modal-letter .letter-paper-top{font-size:6px;letter-spacing:.6px;gap:10px}.forest-letter-scene{height:140px;margin:0 -6px}.forest-letter-route{font-size:13px;left:13px;bottom:13px;right:85px}.forest-letter-route small{font-size:8px}.forest-postmark{width:65px;height:65px;right:11px;bottom:12px;font-size:10px}.forest-postmark small{font-size:5px}.forest-postmark b{font-size:7px}.forest-letter-greeting{font-size:8px;gap:7px;padding:13px 0}.forest-letter-greeting>span:last-child{text-align:right}.modal-letter .letter-paper h2{font-size:22px;margin:23px 0 18px}.modal-letter .letter-paper p{font-size:13px;line-height:2.15;margin:17px 0}.modal-letter .letter-paper p.letter-emphasis{font-size:16px;padding:13px;margin:23px 0}.modal-letter .letter-last{font-size:6px;letter-spacing:.7px}.modal-letter .letter-sign{font-size:11px}}
@media(prefers-reduced-motion:reduce){.modal-letter .envelope,.modal-letter .envelope-paper,.forest-envelope-postmark{transition:none!important}.modal-letter .envelope.opened .envelope-paper{transform:none}.letter-paper{animation:none!important}}
.letter-compose .forest-letter-scene{height:135px;margin:0 0 14px}.letter-compose .forest-letter-greeting{margin-bottom:23px}.letter-compose .modal-title{margin:12px 0}.letter-compose textarea{background:linear-gradient(#fff9e8,#faf2d9);border:1px solid #d4c59c!important;box-shadow:0 3px 6px #8b773512 inset;line-height:2.1;font-family:var(--serif);padding:17px}.letter-compose .form-field select{background:#f0ebd1;border-color:#d7c99f;color:#7f845d}.letter-compose-foot{border-top:1px dashed #d3c79f;padding-top:15px;color:#9c9468}.compose-status{color:#93916a;font-size:11px;line-height:1.9}.inbox-heading{background:linear-gradient(120deg,#e5ebd0,#f5edcf);border:1px solid #cdd3ac;border-radius:19px;padding:18px;gap:17px}.inbox-heading>.forest-prop{width:95px;height:95px}.inbox-heading>div{flex:1}.neighbor-letter{position:relative;border:1px solid #d4c49b;background:linear-gradient(120deg,#fff9e8,#f4ecd1);border-bottom:4px solid #d9cda6;box-shadow:0 8px 16px #6a663812;border-radius:13px;padding:23px}.neighbor-letter.sent{background:linear-gradient(120deg,#f0f2dc,#e4eacf);border-color:#c2ccaa}.neighbor-letter header{color:#89916b;font-size:10px;border-bottom:1px dashed #d3c9a4;padding-bottom:12px;gap:10px;flex-wrap:wrap}.neighbor-letter>p{color:#6c7853;font:14px/2.1 var(--serif);margin:17px 0;white-space:pre-wrap;overflow-wrap:anywhere}.neighbor-letter>small{color:#9b9569}.empty-neighbor-mail{background:#f3efd8;border:1px dashed #c7cda6;border-radius:18px;padding:35px;color:#7c8b60}.host-welcome{overflow:auto;background:linear-gradient(#fff9e8,#f1e8c9);border:1px solid #d3c39a;border-bottom:4px solid #c7ba8e;border-radius:18px;box-shadow:0 15px 35px #25432e44}.host-welcome:before{content:'';display:block;height:75px;margin:-20px -20px 20px;background:linear-gradient(0deg,#fff8e5,transparent),url('/assets/courtyard-art-preview.png') center 45%/cover;border-radius:14px 14px 0 0}.host-welcome h3{font-family:var(--serif);color:#597346}.host-welcome p{font-family:var(--serif);color:#7b815d;line-height:2}.host-welcome .close-welcome{z-index:2;background:#fff8e6;border:1px solid #cbd2ab;color:#7a8d5a}
@media(max-width:700px){.inbox-heading{padding:13px;gap:10px;flex-wrap:wrap}.inbox-heading>.forest-prop{width:65px;height:65px}.inbox-heading>div{min-width:160px}.inbox-heading .outline-button{margin-left:auto;font-size:10px}.neighbor-letter{padding:18px}.neighbor-letter>p{font-size:13px}.letter-compose .forest-letter-scene{height:115px}.letter-compose .forest-letter-route{font-size:12px}.letter-compose .forest-letter-greeting{margin-bottom:18px}}

/* The opened letter is tactile stationery; keep the envelope-opening design intact. */
.modal-letter:has(.letter-paper:not([hidden])){background:#e4dbc5;border-color:#b8a182!important}
.modal-letter .letter-paper{--letter-hand:"KaiTi","楷体","STKaiti","Kaiti SC",cursive;background-color:#d9bd8d;background-image:radial-gradient(ellipse at 22% 15%,#f2dfb55c,transparent 65%),repeating-linear-gradient(4deg,#7e603109 0px,#7e603109 1px,transparent 1px,transparent 4px),linear-gradient(95deg,#c5a47440,transparent 9%,#f4e1ba22 48%,#9d794520 50%,transparent 51%,#c9a67638 100%);border:1px solid #baa075;border-radius:3px 5px 8px 3px;padding:30px 42px 44px;box-shadow:0 12px 22px #6e54372a,inset 0 0 55px #94703c16;color:#58432d}
.modal-letter .letter-paper:before{opacity:1;background:linear-gradient(0deg,transparent calc(33% - 2px),#89663710 33%,#f6e5c936 calc(33% + 1px),transparent calc(33% + 4px)),linear-gradient(0deg,transparent calc(67% - 2px),#8966370d 67%,#f6e5c92b calc(67% + 1px),transparent calc(67% + 4px));inset:0;z-index:-1}
.modal-letter .letter-paper:after{left:auto;right:0;bottom:0;width:25px;height:25px;border:0;background:linear-gradient(135deg,#bca074 48%,#efe0be 50%,#e5d1a6);box-shadow:-2px -2px 5px #8e6b3320;clip-path:polygon(100% 0,100% 100%,0 100%)}
.modal-letter .letter-paper-top{font-size:8px;letter-spacing:1.8px;color:#826d4f;padding-bottom:12px;border-bottom:1px solid #95784955}
.kraft-letter-heading{display:flex;justify-content:space-between;align-items:center;min-height:112px;gap:24px;padding:14px 2px 8px}.kraft-letter-number{font:21px/1.7 var(--letter-hand);color:#76583d}.kraft-letter-heading>div>small{display:block;color:#8e7654;font:12px/1.9 var(--letter-hand);margin-top:5px}.kraft-postmark{flex-shrink:0;width:76px;height:76px;border:2px solid #916b4d77;outline:1px dashed #916b4d66;outline-offset:-6px;border-radius:50%;color:#8d634cbb;display:flex;align-items:center;justify-content:center;flex-direction:column;transform:rotate(-12deg);font:15px/1.6 var(--letter-hand)}.kraft-postmark small{font-size:10px;letter-spacing:2px}.kraft-postmark b{font-size:14px;line-height:1.2}.kraft-letter-rule{display:flex;justify-content:space-between;align-items:center;color:#9a7d57;border-bottom:1px solid #a58a5b55;padding:7px 0 12px;font:12px var(--letter-hand);letter-spacing:2px}.kraft-letter-rule i{font-style:normal;font-size:20px;color:#97845d}
.modal-letter .letter-paper h2{font:500 29px/1.7 var(--letter-hand);color:#5b432f;margin:27px 0 20px;letter-spacing:1px}
.modal-letter .letter-paper p{font:19px/2.05 var(--letter-hand);color:#604d36;letter-spacing:.7px;margin:22px 0;text-align:justify}
.modal-letter .letter-paper p.letter-emphasis{border:0;background:none;padding:7px 0 10px;margin:28px 0;font:22px/1.9 var(--letter-hand);color:#79523a;border-radius:0;text-decoration:underline;text-decoration-color:#a47b4550;text-decoration-thickness:5px;text-underline-offset:7px;text-decoration-skip-ink:none}
.modal-letter .letter-sign{border:0;margin:34px 0 12px;padding-top:15px;color:#7a6349;font:17px/1.9 var(--letter-hand)}.modal-letter .letter-sign:before{content:'愿你今天，也有一点小小的欢喜。';display:block;text-align:left;font:16px/1.8 var(--letter-hand);color:#957653;margin-bottom:24px}.modal-letter .letter-sign strong{font:27px/1.8 var(--letter-hand);color:#674a35;transform:rotate(-3deg);transform-origin:right center}.modal-letter .letter-last{color:#92754e;font-size:8px;letter-spacing:1px;border-top:1px solid #a48a5b44;padding-top:20px}.modal-letter .letter-paper .green-button{background:#7e7952;border-color:#6f704c;color:#fff7dc;font-family:var(--sans)}
@media(max-width:600px){.modal-letter .letter-paper{padding:23px 23px 34px}.modal-letter .letter-paper-top{font-size:6px;letter-spacing:.6px}.kraft-letter-heading{gap:10px;min-height:100px}.kraft-letter-number{font-size:18px}.kraft-letter-heading>div>small{font-size:11px}.kraft-postmark{width:64px;height:64px;font-size:13px}.modal-letter .letter-paper h2{font-size:25px}.modal-letter .letter-paper p{font-size:17px;line-height:2}.modal-letter .letter-paper p.letter-emphasis{font-size:20px}.modal-letter .letter-sign{font-size:15px}}

@font-face{font-family:ManmanHand;src:url("/assets/fonts/ManmanLetterHand.woff2") format("woff2");font-weight:400;font-style:normal;font-display:swap}.modal-letter .letter-paper{--letter-hand:ManmanHand,"Microsoft YaHei",sans-serif}.modal-letter .letter-paper p{font-size:19px;line-height:2;letter-spacing:.25px;text-align:left}.modal-letter .letter-paper h2{font-size:28px}.modal-letter .letter-paper p.letter-emphasis{font-size:22px;text-decoration-thickness:3px}@media(max-width:600px){.modal-letter .letter-paper p{font-size:17px;line-height:1.95}.modal-letter .letter-paper p.letter-emphasis{font-size:20px}}

.letter-keepsake-footer{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-top:38px;padding-top:22px;border-top:1px solid #9b7e4740}.letter-keepsake-footer>small{font-family:system-ui,sans-serif!important;font-size:10px!important;color:#8d7655!important;line-height:1.8;letter-spacing:.4px!important}.letter-save-image{flex-shrink:0;background:#f5e7c6;border:1px solid #b89a65;border-radius:9px;color:#765a38;padding:10px 14px;font-size:12px;cursor:pointer}.letter-save-image:hover{background:#ecdbb1}.letter-save-image:disabled{opacity:.6;cursor:wait}@media(max-width:550px){.letter-keepsake-footer{align-items:flex-end;gap:12px}.letter-keepsake-footer>small{font-size:9px!important}.letter-save-image{padding:9px 10px;font-size:11px}}

/* Quiet imprint replaces the former English sign-off. */
.letter-paper .letter-site-imprint{display:block;text-align:center;font-family:system-ui,sans-serif!important;font-size:9px!important;line-height:1.8!important;letter-spacing:1px!important;color:#977c55!important}.letter-paper .letter-keepsake-footer{justify-content:flex-end;border-top:0;margin-top:12px;padding-top:0}.letter-paper .letter-save-image{font-size:10px!important;font-weight:400;line-height:1.6;padding:4px 0!important;background:transparent!important;border:0!important;border-radius:0!important;box-shadow:none!important;color:#927953!important;min-height:0;min-width:0}.letter-paper .letter-save-image:hover{color:#614c32!important;text-decoration:underline;text-underline-offset:4px}

.shop-slot-tabs{display:flex;gap:8px;flex-wrap:wrap;margin:18px 0 8px}.shop-slot-tabs button{padding:9px 14px;background:#f3ecd7;border:1px solid #c6c7a5;border-radius:12px;color:#637954;cursor:pointer}.shop-slot-tabs button[aria-pressed=true]{background:#587a61;color:#fff5dd}

.modal-letter .letter-sign:before{display:none}
