/* A · 桌面拆信. The desk is a photograph; every letter, field and control is live DOM. */
#dialog.letter-experience{--paper-tone:#eee3ca;--paper-light:#f4ead3;--ink:#423e2e;--seal:#713f2f;--fiber:url("data:image/svg+xml,%3Csvg viewBox='0 0 160 160' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.74' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' opacity='.22' filter='url(%23n)'/%3E%3C/svg%3E");position:fixed;inset:0;margin:0;width:100%;max-width:none;height:100svh;max-height:none;padding:0;border:0;border-radius:0;overflow:auto;overflow-x:hidden;overscroll-behavior:contain;color:#f5ead6;color-scheme:light;box-shadow:none;background:#4a2c18 url('assets/letter-desk.webp') center center/cover fixed no-repeat;scrollbar-width:thin;scrollbar-color:#d4b68180 #39220e}
#dialog.letter-experience::backdrop{background:#21180f;backdrop-filter:none}
#dialog.letter-experience #close{position:fixed;z-index:70;right:20px;top:14px;margin:0;padding:8px 12px;color:#eee0c6;font:29px/1 Georgia;min-width:44px;min-height:44px;text-shadow:0 2px 7px #0008}
.letter-ritual{position:relative;min-height:100svh;width:100%;max-width:none;margin:0;isolation:isolate;background:linear-gradient(180deg,#1c140b14,transparent 35%,#170e092b);font-family:'PingFang SC','Microsoft YaHei',sans-serif}
.ritual-heading{position:sticky;top:0;z-index:50;display:flex;align-items:center;gap:15px;min-height:78px;margin:0;padding:15px 86px 15px 32px;color:#f3e8d2;background:linear-gradient(180deg,#1d170edb,#251a10b8 78%,#251a108a);backdrop-filter:blur(9px);border-bottom:1px solid #ddc49820}
.ritual-back{flex-shrink:0;width:30px;min-height:42px;padding:0;color:#e2d0b2;font:23px/1 Georgia}
.ritual-kicker{margin:0 0 5px;color:#d3c1a2;font:8px/1.4 monospace;letter-spacing:2px}
.ritual-heading>div{min-width:0}.ritual-heading h2{white-space:nowrap;margin:0;color:#f7edd8;font:25px/1.25 'Songti SC','Noto Serif CJK SC',Georgia,serif;font-weight:400;letter-spacing:3px}
.ritual-steps{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.compose-exit,.read-exit{position:sticky;top:0;display:flex;align-items:center;gap:9px;margin:0 0 0 auto;padding:0;flex-shrink:0;background:none;backdrop-filter:none}
.compose-exit button,.read-exit button{min-height:40px;padding:8px 14px;border:1px solid #e3cb9c50;background:#2b2117a6;color:#f0dfbf;font-size:11px;letter-spacing:1px;border-radius:2px;box-shadow:0 3px 7px #0002}
.compose-exit button:last-child{background:#dcc59b;color:#352c1d;border-color:#e8d2aa}.compose-exit button:hover,.read-exit button:hover{filter:brightness(1.12)}
.ritual-scene{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:calc(100svh - 78px);max-width:1200px;margin:0 auto;padding:30px 32px 40px;perspective:1600px}
.ritual-status{font-size:11px;line-height:1.7;color:#f0e3c8;letter-spacing:1px;margin:0 0 22px;text-align:center;text-shadow:0 2px 6px #2b1a0c;min-height:18px}
.ritual-actions{position:relative;z-index:15;display:flex;justify-content:center;align-items:center;gap:22px;flex-wrap:wrap;min-height:44px;margin:28px 0 0}
.ritual-primary,.ritual-secondary{min-height:44px;padding:11px 25px;font-size:11px;letter-spacing:2px;transition:background .2s,transform .2s,color .2s;border-radius:2px;text-decoration:none}
.ritual-primary{display:inline-flex;align-items:center;justify-content:center;gap:20px;background:#e8d7b4;border:1px solid #f3e0bc;color:#3e3b2a;box-shadow:0 6px 14px #1e140a45,inset 0 1px 0 #fff6}
.ritual-primary:hover{color:#2e3426;background:#f3e5c7;transform:translateY(-1px)}
.ritual-secondary{color:#f2e3c6;background:#291d12ad;border:1px solid #c5ad7f55;box-shadow:0 3px 8px #180d092d}.ritual-secondary:hover{color:#fff1d1;background:#38291be3}
.ritual-working{color:#ead6b0;font-size:11px;letter-spacing:4px;padding:10px;text-shadow:0 1px 4px #160e07}
.letter-ritual button:focus-visible,.letter-ritual a:focus-visible,.letter-ritual [role=button]:focus-visible{outline:2px solid #f2ce85;outline-offset:5px}
.letter-ritual button:disabled{cursor:wait}
/* Envelope: independent backing, insert, hinged flap, face and printed ink. */
.envelope-table{position:relative;width:min(640px,78vw);margin:145px auto 12px;padding:0;perspective:1400px;flex-shrink:0}
.envelope-table::before{content:'';position:absolute;inset:16px 0 -18px;background:#21120673;filter:blur(21px);transform:rotate(-5deg);border-radius:45%}
.hand-envelope{position:relative;isolation:isolate;aspect-ratio:1.78;width:100%;color:#4c4c38;transform:rotate(-5deg);transform-style:preserve-3d;filter:drop-shadow(1px 8px 5px #1e130a66)}
.envelope-back{position:absolute;inset:0;z-index:0;background:#cabb99;border:1px solid #b6a47e;box-shadow:inset 0 0 34px #5f482b38;border-radius:1px}
.envelope-insert{position:absolute;inset:12px 20px 15px;z-index:1;display:flex;flex-direction:column;align-items:center;gap:16px;padding:23px 25px;background:var(--paper-light);border:1px solid #c5b796;box-shadow:0 2px 5px #4a351322;color:#60624b;overflow:hidden}
.envelope-insert>span{font:9px/1.5 monospace;letter-spacing:3px}.envelope-insert>strong{font:28px/1.5 'Songti SC',Georgia,serif;font-weight:400;letter-spacing:3px}
.envelope-insert .paper-botanical{left:8px;top:-15px;width:50px;height:110px;opacity:.15}
.envelope-flap{position:absolute;top:-1px;left:-1px;right:-1px;height:56%;z-index:5;transform-origin:50% 0;backface-visibility:visible;clip-path:polygon(0 0,100% 0,51% 100%);background:var(--fiber),linear-gradient(165deg,#f0e5cb,#dbccaa 80%);box-shadow:inset 0 1px 0 #fff7;filter:drop-shadow(0 2px 1px #a48a5f);pointer-events:none}
.envelope-flap::after{content:'';position:absolute;inset:0;background:linear-gradient(29deg,transparent 49.6%,#af9b7240 50%,transparent 50.4%)}
.envelope-front{position:absolute;inset:0;z-index:auto}
.envelope-front::before{content:'';position:absolute;inset:0;z-index:3;border:1px solid #ccba94;background:var(--fiber),linear-gradient(29deg,transparent 49.65%,#9d865744 50%,transparent 50.35%) 0 100%/51% 65% no-repeat,linear-gradient(-29deg,transparent 49.65%,#9d865738 50%,transparent 50.35%) 100% 100%/50% 65% no-repeat,linear-gradient(175deg,#eee2c9,#e5d7b7);box-shadow:inset 0 1px 1px #fff9,inset 0 -5px 12px #997a3d12}
.envelope-front::after{content:'';position:absolute;inset:0;z-index:4;border-top:1px solid #f7edd4;pointer-events:none}
.hand-envelope.is-open .envelope-flap{transform:rotateX(-178deg);z-index:0}.hand-envelope.is-open .envelope-insert{transform:translateY(-58px)}
.envelope-address{position:absolute;z-index:7;left:42px;bottom:68px;max-width:76%;display:flex;flex-direction:column;gap:7px;align-items:flex-start;font-family:'Songti SC','Noto Serif CJK SC',Georgia,serif}
.envelope-address>span{font-size:19px;line-height:1.9;letter-spacing:3px;color:#575540;overflow-wrap:anywhere;max-width:100%}.envelope-address strong{font-size:23px;line-height:1.75;letter-spacing:4px;font-weight:400;color:#434c37}
.envelope-series{position:absolute;z-index:7;left:43px;right:32px;bottom:24px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font:9px/1.5 monospace;letter-spacing:2px;color:#8a8064}
.envelope-stamp{position:absolute;z-index:8;right:25px;top:21px;width:73px;height:91px;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:6px 5px;color:#ece0bd;background:#647052;border:5px solid transparent;border-image:repeating-linear-gradient(45deg,#e8d9b9 0 2px,#647052 2px 6px) 5;transform:rotate(2deg);box-shadow:1px 2px 2px #4d3e2228}
.envelope-stamp i{font-size:6px;font-style:normal;letter-spacing:1px;line-height:1.4}.envelope-stamp>span{font:13px/1.2 Georgia;letter-spacing:1px}.stamp-house{display:block;width:45px;height:39px;margin:2px 0}
.postmark{position:absolute;z-index:9;right:78px;top:28px;width:128px;height:88px;display:flex;flex-direction:column;align-items:center;justify-content:center;border:1.5px solid #5c624b;border-radius:50%;color:#555b43;transform:rotate(-13deg);opacity:.78;font-family:'Songti SC',Georgia,serif;line-height:1.8}
.postmark::before{content:'';position:absolute;inset:5px;border:1px solid #5c624b82;border-radius:50%}.postmark::after{content:'';position:absolute;left:108px;top:27px;width:63px;height:31px;background:repeating-linear-gradient(0deg,transparent 0 6px,#59614699 7px 8px);transform:rotate(-3deg)}
.postmark>span{font-size:7px;letter-spacing:2px}.postmark strong{font:14px/1.7 Georgia;letter-spacing:1px;font-weight:400}.postmark small{font-size:6px;letter-spacing:.4px}
.wax-seal{--wax:#793f2d;position:absolute;z-index:10;left:51%;top:55%;transform:translate(-50%,-50%);width:66px;height:62px;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:2px;padding:0;border:2px solid #693623;border-radius:44% 51% 45% 54%/48% 44% 54% 47%;background:radial-gradient(ellipse at 28% 20%,#f3b17936,transparent 65%),var(--wax);box-shadow:inset 0 0 0 3px #4a1f142d,inset 0 0 0 5px #c899602f,inset 0 -4px 6px #240f103d,2px 5px 5px #53301477;color:#c69d71;text-shadow:1px 1px 0 #3c1b15;cursor:pointer;transition:filter .2s}
.wax-seal span{font:17px/1.2 Georgia;letter-spacing:1px}.wax-seal small{font-size:8px;letter-spacing:3px}.wax-seal:hover{filter:brightness(1.13);color:#e1be8f}.wax-seal:disabled{filter:none;cursor:wait}
.broken-seal{position:absolute;z-index:9;top:57%;left:55%;width:40px;height:27px;clip-path:polygon(0 0,100% 8%,86% 70%,61% 41%,47% 87%,22% 67%,0 100%);background:#854a33;color:#bf9466;transform:rotate(14deg);font:11px/24px Georgia;text-align:center;filter:drop-shadow(1px 3px 2px #41241355)}
/* A folded sheet rather than a UI card. All music information is verified metadata. */
.paper-desk{position:relative;z-index:4;width:min(570px,100%);padding:5px 6px 12px;margin:0 auto;perspective:1500px;flex-shrink:0}
.letter-paper{position:relative;width:100%;color:var(--ink);font-family:'Songti SC','Noto Serif CJK SC',Georgia,serif;background:var(--paper-tone);transform:rotate(-1deg);box-shadow:1px 2px 0 #ddceac,-2px 4px 0 #c3b08d,1px 12px 10px #29190b75,0 24px 32px #2716084d;isolation:isolate}
.letter-paper::after{content:'';position:absolute;inset:0;pointer-events:none;z-index:9;background:var(--fiber);opacity:.5;box-shadow:inset 0 0 25px #d3bb7c21}
.paper-top,.paper-bottom{position:relative;background:linear-gradient(90deg,#c6b18519,transparent 6%,transparent 94%,#c6b18515),var(--paper-light);transform-origin:50% 0;transform-style:preserve-3d;backface-visibility:visible;padding:30px 42px 26px}
.paper-top{transform-origin:50% 100%;border-bottom:1px solid #b6a98666}
.paper-bottom{background:linear-gradient(180deg,#b3a27c25,transparent 15px),linear-gradient(90deg,#c6b18519,transparent 6%,transparent 94%,#c6b18515),#ece1c6}
.paper-botanical{position:absolute;width:66px;height:135px;left:10px;top:12px;color:#737c55;opacity:.2;pointer-events:none;z-index:0}
.paper-top>.paper-botanical{left:12px;top:55px;transform:rotate(-17deg)}.paper-bottom>.paper-botanical{left:8px;top:13px;transform:rotate(-14deg);opacity:.15}
.paper-letterhead{position:relative;display:flex;justify-content:space-between;align-items:center;gap:15px;color:#8b8669;font:8px/1.6 monospace;letter-spacing:2px;border-top:0;padding:0}
.paper-postmark{position:absolute;right:27px;top:40px;width:101px;height:69px;border:1px solid #7b7c5d9e;border-radius:50%;color:#6f7351;transform:rotate(-12deg);display:flex;flex-direction:column;justify-content:center;align-items:center;opacity:.7;line-height:1.5}
.paper-postmark>span{font-size:6px;letter-spacing:1.3px}.paper-postmark time{font:11px/1.8 Georgia}.paper-postmark small{font-size:6px;letter-spacing:1.5px}.paper-postmark::after{content:'';position:absolute;left:85px;top:24px;width:40px;height:25px;background:repeating-linear-gradient(0deg,transparent 0 5px,#6f735175 6px 7px)}
.paper-edition{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;width:112px;height:106px;margin:40px auto 23px;color:#7d8261;border:1px solid #8a8f6b66;outline:1px solid #8a8f6b33;outline-offset:5px;box-shadow:inset 0 0 20px #9989530c}
.paper-edition>span{font:22px Georgia;letter-spacing:5px;color:#737b52}.paper-edition i{font-style:normal;font-size:8px;letter-spacing:3px;margin:6px 0}.paper-edition b{font:26px Georgia;color:#8b8b68;font-weight:400}
.paper-eyebrow{position:relative;font:8px/1.7 'Songti SC',serif;color:#928a6e;letter-spacing:3px;margin:0 0 10px;text-align:center}
.paper-song-title{position:relative;margin:0 0 12px;text-align:center;color:#3c4933;font:36px/1.5 'Songti SC','Noto Serif CJK SC',Georgia,serif;font-weight:400;letter-spacing:4px;overflow-wrap:anywhere}
.paper-artist{position:relative;margin:0;text-align:center;font:12px/1.9 'Songti SC',Georgia,serif;letter-spacing:1px;color:#6f7558}
.release-details{position:relative;z-index:1;display:grid;grid-template-columns:1.35fr .8fr 1fr;gap:19px;margin:0 0 24px;text-align:center}
.release-details dt{font:8px/1.8 'PingFang SC',sans-serif;letter-spacing:2px;color:#968d70;margin:0 0 5px}.release-details dd{font:12px/1.7 Georgia,serif;letter-spacing:1px;color:#626c4b;margin:0}
.official-listen{position:relative;z-index:10;display:flex;align-items:center;justify-content:center;gap:24px;width:max-content;max-width:100%;min-height:42px;margin:0 auto;padding:9px 26px;color:#5a6344;border:1px solid #9c9d797a;border-radius:24px;text-decoration:none;font:12px/1.6 'Songti SC',serif;letter-spacing:2px;transition:background .2s,border-color .2s}
.official-listen:hover{color:#3e4c30;background:#64704b0b;border-color:#6e7a53}.official-listen>span:last-child{position:relative;display:block;flex-shrink:0;width:13px;height:13px;font-size:0}.official-listen>span:last-child::before{content:'';position:absolute;top:0;right:0;width:8px;height:8px;border-top:1px solid currentColor;border-right:1px solid currentColor}.official-listen>span:last-child::after{content:'';position:absolute;top:6px;left:0;width:15px;height:1px;background:currentColor;transform:rotate(-45deg)}
.paper-link-note{position:relative;text-align:center;color:#98916f;font:8px/1.8 'PingFang SC',sans-serif;letter-spacing:1px;margin:10px 0 0}
.paper-signoff{position:relative;display:flex;justify-content:space-between;align-items:flex-end;gap:15px;margin-top:26px;font:8px/1.6 'Songti SC',serif;letter-spacing:1px;color:#8c8a68}.paper-signoff span:last-child{font:21px Georgia;letter-spacing:3px;color:#7e8760}
.paper-transition-envelope{position:absolute;z-index:2;top:25%;left:50%;width:min(640px,78vw);transform:translate(-50%,0) rotate(-5deg);pointer-events:none}.paper-transition-envelope .hand-envelope{transform:none}
/* One opaque lined sheet is the writing surface, with a reserved margin. */
.letter-writing-form{display:block;width:min(620px,100%);margin:0 auto}
.writing-paper{position:relative;width:100%;padding:32px 43px 25px;background:var(--fiber),linear-gradient(90deg,#cab88a19,transparent 6%,transparent 94%,#cab88a1c),var(--paper-light);color:#55563e;box-shadow:2px 3px 0 #d8c9a7,0 12px 13px #2416086e,0 25px 35px #25150742;transform:rotate(-.6deg)}
.writing-paper::after{content:'';position:absolute;inset:0;box-shadow:inset 0 0 22px #bfa66b17;pointer-events:none}
.writing-paper>.paper-botanical{left:7px;top:auto;bottom:15px;opacity:.16;width:48px;height:105px;transform:rotate(-18deg)}
.writing-recipient{position:relative;margin:27px 0 22px;font:17px/1.6 'Songti SC',Georgia,serif;letter-spacing:2px;color:#5d6146}
.writing-paper label{position:relative;display:block;margin:17px 0 0;font:9px/1.8 'PingFang SC',sans-serif;letter-spacing:2px;color:#8c8c6e}
.writing-paper label>span{font-size:8px;letter-spacing:0;color:#aaa17e}
.writing-paper input,.writing-paper textarea{display:block;width:100%;color:#485137;background:transparent;border:0;border-bottom:1px solid #a2a18061;border-radius:0;padding:7px 0;font:15px/1.9 'Songti SC',Georgia,serif;box-shadow:none;outline-offset:5px;margin-top:4px}
.writing-paper input::placeholder,.writing-paper textarea::placeholder{font:13px/1.9 'Songti SC',serif;color:#a5a085}
.writing-paper textarea{min-height:224px;max-height:390px;resize:vertical;font-size:15px;line-height:32px;padding:0;margin-top:9px;background:repeating-linear-gradient(transparent 0,transparent 31px,#93997640 31px,#93997640 32px)}
.writing-paper input:focus,.writing-paper textarea:focus{outline:1px solid #7d8b605c;outline-offset:5px}
.writing-paper .writing-sender{display:grid;grid-template-columns:auto auto 1fr;gap:7px;align-items:center;margin-top:17px}
.writing-sender input{grid-column:3;width:180px;max-width:100%;justify-self:end;text-align:right;margin:0;padding:3px 0;font-size:13px}
.writing-foot{display:flex;justify-content:space-between;gap:15px;margin-top:19px;font-size:8px;line-height:1.6;letter-spacing:1px;color:#99906f}
.letter-writing-form>.consent{display:flex;align-items:flex-start;gap:10px;max-width:100%;padding:12px 15px;margin:22px 0 0;background:#21180dc9;border:1px solid #d5bd8a20;border-radius:2px;color:#ddcdae;font-size:11px;line-height:1.85;letter-spacing:0}
.letter-writing-form>.consent input{width:14px;min-width:14px;min-height:14px;margin:3px 0 0;accent-color:#9a9e72}
.local-only-notice{position:relative;z-index:5;margin:20px 0 0;padding:5px 10px;text-align:center;color:#e8d6b5;background:#24190d9e;border-radius:2px;font-size:11px;letter-spacing:1px;text-shadow:0 1px 3px #27170b}
.paper-address{position:relative;display:flex;justify-content:space-between;gap:12px;font:10px/1.8 'Songti SC',serif;color:#8a8768;margin-top:26px}
.visitor-subject{position:relative;overflow-wrap:anywhere;font:26px/1.6 'Songti SC',Georgia,serif;font-weight:400;color:#4d573a;letter-spacing:2px;margin:28px 0 22px}
.visitor-body{position:relative;min-height:170px;white-space:pre-wrap;overflow-wrap:anywhere;font:15px/2.1 'Songti SC',Georgia,serif;letter-spacing:.5px;margin:0;color:#606447}
.visitor-signature{position:relative;display:flex;justify-content:flex-end;align-items:center;gap:22px;font-size:9px;color:#939173}.visitor-signature strong{font:17px/1.6 'Songti SC',serif;font-weight:400;letter-spacing:2px;color:#6a7250;overflow-wrap:anywhere}
/* Fold, seal and a weathered green box with a brass slot. */
.compose-table{width:min(560px,75vw);margin-top:132px}.compose-envelope .envelope-address{left:34px;bottom:61px}.compose-envelope .envelope-address>span{font-size:16px}.compose-envelope .envelope-address strong{font-size:20px;letter-spacing:2px}
.compose-envelope .compose-wax{--wax:var(--seal);cursor:default}.compose-envelope.is-open .compose-wax{opacity:0}.seal-cinnabar{--seal:#793f2d}.seal-pine{--seal:#4b5d3d}.seal-ink{--seal:#3e5260}
.seal-options{display:flex;justify-content:center;gap:23px;border:0;padding:0;margin:24px 0 0;min-width:0}.seal-options legend{display:block;width:100%;text-align:center;font-size:9px;letter-spacing:2px;color:#ead9b9;margin:0 0 9px;text-shadow:0 1px 4px #211507}
.seal-option{display:flex;flex-direction:column;align-items:center;gap:8px;padding:5px 12px;color:#e6d7b6;font-size:9px;letter-spacing:2px;border-bottom:1px solid transparent}.seal-option i{display:block;width:35px;height:34px;border-radius:47% 52% 46% 55%;color:#c4ab7e;background:var(--seal);box-shadow:inset 0 0 0 3px #0002,inset 0 0 0 4px #cfad705e,1px 4px 4px #25150877;font:15px/34px 'Songti SC',serif;font-style:normal;text-align:center}.seal-option[aria-pressed=true]{border-color:#ebd3a1;color:#fff1cd}.seal-options:disabled{opacity:.5;pointer-events:none}
.deposit-table{position:relative;width:min(670px,100%);height:450px;margin:10px auto 0;perspective:1300px;flex-shrink:0}
.deposit-envelope{position:absolute;z-index:9;left:0;top:155px;width:390px;transform:rotate(-8deg);transform-origin:50% 50%;will-change:transform,opacity}.deposit-envelope .hand-envelope{transform:none;cursor:grab;touch-action:manipulation}.deposit-envelope .hand-envelope:active{cursor:grabbing}
.deposit-envelope .envelope-address{left:24px;bottom:45px}.deposit-envelope .envelope-address>span{font-size:12px;letter-spacing:2px}.deposit-envelope .envelope-address strong{font-size:16px;letter-spacing:1px}.deposit-envelope .envelope-series{left:25px;bottom:16px;font-size:7px;letter-spacing:1px}.deposit-envelope .envelope-stamp{right:14px;top:12px;transform:scale(.73);transform-origin:100% 0}.deposit-envelope .postmark{right:53px;top:17px;transform:rotate(-13deg) scale(.73);transform-origin:100% 0}.deposit-envelope .wax-seal{scale:.8}.deposit-envelope .envelope-insert{padding:15px}.deposit-envelope .envelope-insert strong{font-size:22px}
.desktop-postbox{position:absolute;z-index:3;right:22px;top:13px;width:320px;height:405px;border:2px solid #5f5a3b;border-radius:6px 6px 2px 2px;transform:rotateY(-9deg) rotateZ(1deg);background:radial-gradient(ellipse at 13% 30%,#8d743f44,transparent 23%),radial-gradient(ellipse at 95% 88%,#9b83512a,transparent 24%),repeating-linear-gradient(88deg,transparent 0 3px,#070d0708 3px 5px),linear-gradient(100deg,#172f26,#294134 20%,#203a2c 75%,#14271f);box-shadow:inset 5px 0 0 #59604429,inset -7px 0 0 #0d201a70,14px 15px 17px #1b110b77,25px 28px 45px #160c0844;transition:filter .2s}
.desktop-postbox::before{content:'';position:absolute;inset:20px 15px;border:3px double #8b845236;box-shadow:inset 0 1px 2px #0918106b;pointer-events:none}.desktop-postbox::after{content:'';position:absolute;inset:0;opacity:.35;background:var(--fiber);pointer-events:none}
.postbox-top{position:absolute;left:-5px;right:-4px;top:-11px;height:21px;border:1px solid #7d7b4d;border-radius:3px;background:linear-gradient(#596147,#233d2b 55%,#152b21);box-shadow:1px 4px 3px #0e150977}
.postbox-slot{position:absolute;z-index:5;left:30px;right:30px;top:76px;width:calc(100% - 60px);padding:17px 12px 20px;border:1px solid #b99b54;background:radial-gradient(circle at 13% 14%,#f7d58338,transparent 50%),linear-gradient(110deg,#9b7a39,#d5b56d 40%,#8d6d32 82%,#5b4b2a);box-shadow:inset 0 0 0 3px #705d3144,inset 0 0 0 5px #e0c28255,0 4px 4px #09140ec2;color:#4d4529;cursor:pointer}
.postbox-slot>span{display:block;height:22px;border:2px solid #846e40;background:#0d1b14;box-shadow:0 2px 0 #f3cf8580,inset 0 6px 5px #000b;transform:skewX(-2deg)}
.postbox-slot i{display:block;margin-top:8px;font-size:9px;font-style:normal;letter-spacing:6px;line-height:1.4;color:#68562e;text-shadow:0 1px 1px #efd99b80}
.postbox-face{position:absolute;top:219px;left:20px;right:20px;display:flex;flex-direction:column;align-items:center;gap:12px;color:#bea569;text-shadow:1px 2px 0 #0d1b0f}
.postbox-face>span{font:49px/1.1 Georgia;letter-spacing:8px}.postbox-face strong{font:14px/1.6 'Songti SC',serif;letter-spacing:4px;font-weight:400}.postbox-face small{font:7px/1.7 monospace;letter-spacing:1px;opacity:.55}
.desktop-postbox.is-drop-target{filter:brightness(1.17)}.desktop-postbox.is-drop-target .postbox-slot{box-shadow:0 0 20px #f4d59288,inset 0 0 0 3px #705d3144}
.delivery-receipt{position:relative;width:min(480px,100%);padding:35px 36px 31px;margin:25px auto 0;color:#596144;text-align:center;background:var(--fiber),#f0e5ca;box-shadow:2px 3px 0 #d3c09a,0 15px 18px #24150655;transform:rotate(-1deg);border-top:4px double #939774}
.receipt-mark{display:flex;align-items:center;justify-content:center;width:63px;height:63px;margin:0 auto 23px;border:2px double #889363;border-radius:50%;font:30px Georgia;color:#788650;transform:rotate(-12deg)}
.delivery-receipt .paper-eyebrow{font-size:7px;margin-bottom:12px}.delivery-receipt h3{font:25px/1.7 'Songti SC',serif;font-weight:400;margin:0 0 12px;letter-spacing:2px}.delivery-receipt>p:not(.paper-eyebrow){font:12px/1.8 'Songti SC',serif;overflow-wrap:anywhere}
.delivery-receipt dl{margin:25px 0;text-align:left;border-top:1px solid #9d997451}.delivery-receipt dl>div{display:flex;justify-content:space-between;gap:20px;padding:10px 0;border-bottom:1px solid #9d997451;font-size:10px;line-height:1.8}.delivery-receipt dt{color:#9d987a}.delivery-receipt dd{margin:0;color:#6c7652;overflow-wrap:anywhere}.delivery-receipt .receipt-note{font:10px/1.9 'PingFang SC',sans-serif!important;text-align:left;color:#908e6d;margin:0}
#dialog.inbox-dialog{background:#f0e5cf;color:#44523a;max-width:640px}.local-inbox .inbox-item h3{font:21px/1.5 'Songti SC',serif;overflow-wrap:anywhere}.local-inbox .inbox-item p{line-height:2;color:#667054}.local-inbox .delete{padding:8px 10px;margin:-8px -10px 0 10px}
/* Portrait phone: the whole object fits, while long text can scroll under the sticky exits. */
@media(max-width:700px){
 #dialog.letter-experience{background-position:49% center;background-attachment:scroll}#dialog.letter-experience #close{right:7px;top:9px;font-size:27px;padding:8px;min-width:38px;min-height:38px}
 .ritual-heading{min-height:70px;padding:12px 51px 12px 14px;gap:8px}.ritual-back{width:20px;font-size:21px;min-height:38px}.ritual-kicker{font-size:6px;letter-spacing:.8px;max-width:130px}.ritual-heading h2{font-size:20px;letter-spacing:1.5px}.compose-exit,.read-exit{gap:5px}.compose-exit button,.read-exit button{min-height:42px;min-width:44px;padding:8px 9px;font-size:11px;letter-spacing:0}.compose-exit button span{display:none}
 .ritual-scene{min-height:calc(100svh - 70px);padding:26px 20px 32px}.ritual-status{font-size:10px;letter-spacing:.4px;line-height:1.7;margin-bottom:18px}.ritual-actions{gap:13px;margin-top:23px;min-height:42px}.ritual-primary,.ritual-secondary{min-height:42px;font-size:10px;padding:10px 18px;letter-spacing:1px}.ritual-primary{gap:14px}
 .envelope-table{width:calc(100% - 6px);margin-top:98px;margin-bottom:11px}.hand-envelope{aspect-ratio:1.7}.envelope-address{left:24px;bottom:39px;gap:3px}.envelope-address>span{font-size:13px;letter-spacing:2px}.envelope-address strong{font-size:17px;letter-spacing:2px}.envelope-series{left:24px;right:16px;bottom:15px;font-size:7px;letter-spacing:.8px}.envelope-stamp{right:13px;top:12px;transform:rotate(2deg) scale(.7);transform-origin:100% 0}.postmark{right:48px;top:17px;transform:rotate(-13deg) scale(.7);transform-origin:100% 0}.wax-seal{width:48px;height:46px;border-width:1px}.wax-seal>span{font-size:13px}.wax-seal small{font-size:6px;letter-spacing:2px}.envelope-insert{inset:10px 14px 10px;padding:22px 12px;gap:12px}.envelope-insert>span{font-size:7px;letter-spacing:2px}.envelope-insert>strong{font-size:20px;letter-spacing:2px}.envelope-insert .paper-botanical{width:36px;height:90px}.broken-seal{width:30px;height:22px;font-size:8px;line-height:21px}.paper-transition-envelope{width:calc(100% - 45px)}
 .paper-desk{padding:4px 3px 10px;width:100%;max-width:410px}.paper-top,.paper-bottom{padding:24px 25px 22px}.paper-letterhead{font-size:7px;letter-spacing:1px;gap:8px}.paper-postmark{right:21px;top:34px;transform:rotate(-12deg) scale(.83);transform-origin:100% 0}.paper-edition{width:94px;height:88px;margin-top:49px;margin-bottom:22px}.paper-edition>span{font-size:19px}.paper-edition i{font-size:7px;letter-spacing:2px;margin:5px 0}.paper-edition b{font-size:23px}.paper-song-title{font-size:28px;letter-spacing:2px;margin-bottom:10px}.paper-artist{font-size:12px;line-height:1.9;letter-spacing:.5px}.paper-eyebrow{font-size:7px;letter-spacing:2px;margin-bottom:9px}.paper-botanical{width:47px;height:111px}.paper-top>.paper-botanical{left:6px;top:60px}.paper-bottom>.paper-botanical{left:2px;top:10px;width:42px;height:98px}.release-details{gap:10px;margin-bottom:21px;grid-template-columns:1.35fr .8fr 1fr}.release-details dt{font-size:10px;letter-spacing:1px}.release-details dd{font-size:12px;letter-spacing:.5px}.official-listen{font-size:12px;min-height:44px;padding:8px 20px;gap:20px;letter-spacing:1px}.paper-link-note{font-size:10px}.paper-signoff{font-size:10px;letter-spacing:.3px;margin-top:22px}.paper-signoff span:last-child{font-size:19px;letter-spacing:2px}
 .writing-paper{padding:25px 24px 22px}.writing-recipient{font-size:15px;letter-spacing:1px;margin:24px 0 17px}.writing-paper label{font-size:11px;margin-top:14px}.writing-paper input{font-size:14px}.writing-paper textarea{min-height:192px;max-height:340px;font-size:14px;line-height:32px}.writing-paper .writing-sender{gap:5px;margin-top:13px}.writing-sender input{width:150px;font-size:12px}.writing-foot{font-size:10px;gap:10px;letter-spacing:.5px;margin-top:17px}.writing-paper>.paper-botanical{width:36px;height:80px;left:1px;bottom:10px}.letter-writing-form>.consent{font-size:11px;line-height:1.85;padding:10px 12px;margin-top:18px}.local-only-notice{font-size:11px;letter-spacing:.5px;margin-top:17px}.paper-address{font-size:11px;margin-top:25px}.visitor-subject{font-size:23px;letter-spacing:1px;margin:24px 0 19px}.visitor-body{font-size:14px;line-height:2;min-height:145px}.visitor-signature{font-size:11px;gap:17px}.visitor-signature strong{font-size:15px}
 .compose-table{width:calc(100% - 6px);margin-top:95px}.compose-envelope .envelope-address{left:22px;bottom:39px}.compose-envelope .envelope-address>span{font-size:12px;letter-spacing:1px}.compose-envelope .envelope-address strong{font-size:16px;letter-spacing:1px}.seal-options{gap:15px;margin-top:20px}.seal-options legend{font-size:8px;margin-bottom:8px}.seal-option{font-size:8px;padding:4px 10px;letter-spacing:1px}
 .deposit-table{width:100%;max-width:390px;height:410px;margin-top:10px}.desktop-postbox{width:250px;height:310px;right:16px;top:74px}.postbox-slot{left:24px;right:24px;top:55px;width:calc(100% - 48px);padding:13px 9px 14px}.postbox-slot>span{height:19px}.postbox-slot i{font-size:8px;margin-top:7px}.postbox-face{top:175px;gap:9px}.postbox-face>span{font-size:40px;letter-spacing:6px}.postbox-face strong{font-size:11px;letter-spacing:2px}.postbox-face small{font-size:6px}.deposit-envelope{left:0;top:10px;width:290px;transform:rotate(-7deg)}.deposit-envelope .envelope-address{left:19px;bottom:34px}.deposit-envelope .envelope-address>span{font-size:10px;letter-spacing:1px}.deposit-envelope .envelope-address strong{font-size:13px;letter-spacing:.5px}.deposit-envelope .envelope-series{left:19px;bottom:11px;font-size:6px;letter-spacing:.6px}.deposit-envelope .postmark{right:38px;top:13px;transform:rotate(-13deg) scale(.58)}.deposit-envelope .envelope-stamp{right:10px;top:9px;transform:rotate(2deg) scale(.56)}.deposit-envelope .wax-seal{scale:.84}
 .delivery-receipt{padding:28px 25px 25px;margin-top:16px}.delivery-receipt h3{font-size:22px;letter-spacing:1px}.delivery-receipt>p:not(.paper-eyebrow){font-size:11px}.delivery-receipt .receipt-note{font-size:11px!important}.delivery-receipt dl>div{font-size:11px;padding:9px 0}.receipt-mark{width:55px;height:55px;font-size:27px}
}
@media(max-width:370px){.ritual-heading{padding-left:9px;padding-right:50px;gap:5px}.ritual-back{width:17px}.ritual-heading h2{font-size:18px}.ritual-kicker{font-size:5px;letter-spacing:.5px}.compose-exit button,.read-exit button{padding:8px 7px;font-size:11px}.compose-exit{gap:4px}.ritual-scene{padding-left:16px;padding-right:16px}.paper-top,.paper-bottom{padding-left:21px;padding-right:21px}.paper-song-title{font-size:25px}.deposit-envelope{width:260px}.desktop-postbox{width:232px;right:8px}.envelope-address>span{font-size:11px}.envelope-address strong{font-size:15px}.compose-envelope .envelope-address strong{font-size:14px}}
@media(min-width:701px) and (max-height:700px){.ritual-heading{min-height:66px;padding-top:10px;padding-bottom:10px}.ritual-scene{min-height:calc(100svh - 66px);padding-top:24px}.envelope-table{width:min(570px,74vw);margin-top:122px}.compose-table{width:min(520px,74vw)}.deposit-table{height:425px}}
@media(prefers-reduced-motion:reduce){.letter-ritual *,.letter-ritual *::before,.letter-ritual *::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.ritual-primary:hover{transform:none}.hand-envelope,.letter-paper,.writing-paper,.desktop-postbox,.delivery-receipt{transform:none}}
