.letter-desk{position:fixed;inset:var(--mail-top,0px) 0 auto;width:100%;height:var(--mail-height,100dvh);max-width:none;max-height:none;margin:0;padding:0;border:0;background:transparent;color:#354a40;overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable;font-family:'Noto Serif SC','Songti SC',serif;}
.letter-desk::backdrop{background:linear-gradient(125deg,#112b23c2,#0c1a19c9);backdrop-filter:blur(3px)}
.letter-desk[open]{display:block}
.letter-desk *{box-sizing:border-box}
.letter-desk .sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.letter-desk [hidden]{display:none!important}
.letter-desk button,.letter-desk input,.letter-desk textarea{font:inherit}
.letter-desk button{cursor:pointer}
.letter-desk button:disabled{cursor:default;opacity:.5}
.letter-desk button:focus-visible,.letter-desk input:focus-visible,.letter-desk textarea:focus-visible{outline:2px solid #a8563b;outline-offset:4px}
.letter-desk-header{position:sticky;top:0;z-index:4;display:flex;align-items:center;justify-content:space-between;gap:18px;padding:19px 34px;color:#eee8d7;background:#21372fed;border-bottom:1px solid #bdc4a733;backdrop-filter:blur(8px)}
.letter-desk-heading{display:flex;align-items:center;gap:13px}
.letter-brand-seal{display:grid;place-items:center;width:31px;height:34px;background:#a44735;color:#fff7df;transform:rotate(-6deg);font-size:21px}
.letter-desk-heading h1{margin:0;font-size:16px;font-weight:400;letter-spacing:.10em;color:inherit}
.letter-desk-tools{display:flex;align-items:center;gap:18px}
.letter-desk-tools button{background:transparent;color:inherit;border:0;padding:8px 4px;font-size:12px}
.letter-desk-tools #letter-desk-close{padding:8px 12px;border:1px solid #d8dec366}
.letter-desk-body{width:100%;padding:35px 25px 62px;min-height:calc(var(--mail-height,100dvh) - 79px);display:flex;align-items:flex-start;justify-content:center;perspective:1200px}
.letter-paper{width:min(100%,720px);margin:0 auto;padding:38px 49px 27px;background:#faf5e6;color:#354a40;border:1px solid #d6ceb9;box-shadow:0 18px 45px #061c2445,3px 3px 0 #e2dac6,5px 5px 0 #b5bba940;position:relative;isolation:isolate}
.letter-paper:after{position:absolute;inset:9px;content:'';border:1px solid #b3b29938;pointer-events:none;z-index:-1}
.letter-paper h2{font-size:27px;line-height:1.55;font-weight:400;color:#3c5348;margin:0 0 24px;overflow-wrap:anywhere}
.letter-paper-meta{display:flex;justify-content:space-between;gap:18px;flex-wrap:wrap;color:#737f6d;font-size:12px;letter-spacing:.10em;margin:0 0 28px}
.letter-compose fieldset{padding:0;margin:0;border:0;min-width:0}
.letter-compose .letter-title-input{display:block;width:100%;border:0;border-bottom:1px solid #b8bda765;background:transparent;border-radius:0;color:#3c5348;padding:0 0 14px;font-size:25px;line-height:1.5;box-shadow:none}
.letter-compose #letter-content{display:block;width:100%;min-height:330px;resize:none;border:0;border-radius:0;background:repeating-linear-gradient(transparent 0 35px,#acb6a240 35px 36px);color:#354a40;font-size:18px;line-height:36px;padding:0;margin:24px 0 20px;overflow:hidden;box-shadow:none}
.letter-compose input::placeholder,.letter-compose textarea::placeholder{color:#8a907d;opacity:1}
.letter-paper-footer{display:flex;justify-content:space-between;align-items:center;gap:18px;flex-wrap:wrap;margin-top:24px}
.letter-count{font-size:12px;color:#73816e;white-space:nowrap}.letter-count b{font-weight:400}
.letter-primary{border:1px solid #793b2d;background:#a44735;color:#fff5dc;padding:12px 20px;font-size:15px;line-height:1.5;box-shadow:2px 3px 0 #752f25;border-radius:0}
.letter-primary:hover{background:#963b2c}
.letter-text-button{padding:7px 0;border:0;background:transparent;color:#65765e;font-size:13px;line-height:1.6;border-radius:0}
.letter-draft-line{display:flex;justify-content:space-between;gap:14px;align-items:center;flex-wrap:wrap;border-top:1px solid #bfc2aa66;margin-top:26px;padding-top:12px;font-size:12px;color:#77846f}
.letter-draft-line .save-error{color:#a44735}
.letter-paper.is-envelope,.letter-lookup{width:min(100%,620px);margin-top:clamp(0px,8vh,75px);padding:39px 43px 25px}
.letter-paper.is-envelope{background:#e9ddc2}
.letter-address-fields{display:grid;grid-template-columns:1fr 1fr;gap:22px;margin:28px 0 21px}
.letter-address-fields label{display:block;font-size:13px;line-height:1.7;color:#576952;min-width:0}
.letter-address-fields input{display:block;width:100%;min-width:0;margin-top:8px;padding:12px;border:1px solid #a6ad9190;background:#fff9e9;color:#344c3f;font-size:17px;border-radius:0;line-height:1.5}
.letter-code-field{position:relative}.letter-code-field input{padding-right:52px}.letter-code-toggle{position:absolute;right:5px;top:7px;bottom:7px;padding:5px;background:transparent;border:0;color:#54694e;font-size:12px!important}
.letter-help{font-size:14px;line-height:1.9;color:#6c7964;margin:17px 0 23px}
#letter-lookup-error{color:#a44735;font-size:14px;line-height:1.7}
.letter-envelope{position:relative;display:block;width:min(100%,510px);padding:123px 35px 34px;margin:12px auto;background:#e7d9ba;color:#414e40;border:1px solid #bcad8c;box-shadow:0 18px 40px #102e2573;transform-style:preserve-3d;text-align:center}
.letter-envelope:before{content:'';position:absolute;inset:10px;border:1px solid #8c957b6b;pointer-events:none}
.letter-flap{position:absolute;top:-1px;left:-1px;right:-1px;height:120px;background:linear-gradient(130deg,#efe3c8,#d6c7a7);clip-path:polygon(0 0,100% 0,50% 100%);transform-origin:top;pointer-events:none}
.letter-wax{width:48px;height:50px;background:#a74936;color:#f8e6ca;border:3px double #d99770;display:grid;place-items:center;transform:rotate(-8deg);box-shadow:1px 2px 0 #6b38294a;font-size:25px;line-height:1;position:absolute;left:calc(50% - 24px);top:87px}
.letter-offers{width:min(100%,740px);align-self:center;text-align:center}.letter-offer-list{display:grid;gap:24px;width:100%}.letter-offer{font:inherit;border-radius:0;transition:transform .2s}.letter-offer:hover{transform:translateY(-4px)}
.letter-recipient{display:block;margin:23px 0 14px;font-size:25px}.letter-offer-title{display:block;line-height:1.7;font-size:16px;margin-bottom:18px;overflow-wrap:anywhere}.letter-offer-meta{display:block;font-size:12px;color:#6a775f}
.letter-quiet{font-size:14px;line-height:1.8;color:#e0dcc6;text-align:center;margin:12px 0 28px;letter-spacing:.08em}
.letter-light-button{font-size:13px;background:transparent;border:0;color:#e3dfc9;padding:12px 15px;margin-top:20px}
.letter-reading{width:min(100%,720px)}.letter-reading .letter-content{font-family:inherit;line-height:2.05;color:#354a40;white-space:pre-wrap;overflow-wrap:anywhere;font-size:18px}
.letter-sign{text-align:right;font-size:13px;line-height:1.9;color:#78816e;margin:37px 0 24px}
.letter-font-controls{display:flex;align-items:center;gap:9px;font-size:12px;color:#72806a}.letter-font-controls button{padding:6px 9px;min-width:37px;border:1px solid #9ba58b;background:transparent;color:#435b45;font-size:14px}
.letter-read-meta{display:flex;justify-content:space-between;align-items:flex-start;gap:15px;margin-top:30px;padding-top:17px;border-top:1px solid #bfc2aa66;font-size:12px;color:#77846f}.letter-read-meta details{line-height:1.9}.letter-read-meta summary{cursor:pointer}.letter-read-meta p{margin:9px 0}
.letter-receipt,.letter-locked{width:min(100%,600px);text-align:center;align-self:center}.receipt-wax{position:static;margin:2px auto 27px}.letter-receipt-code{margin:25px 0;padding:21px;background:#eee7d2}.letter-receipt-code>span{font-size:12px;color:#6f7b65}.letter-receipt .tracking-code{font-size:23px;margin:14px 0 7px;font-family:monospace;color:#9d4937;letter-spacing:.12em;overflow-wrap:anywhere}.letter-locked .letter-primary{margin:10px 0 15px}
.letter-motion{width:min(100%,720px);align-self:center;padding:30px 0}.motion-envelope{min-height:305px}.motion-envelope h2{font-size:25px;font-weight:400;line-height:1.5;margin:29px 0 17px;color:inherit}.motion-envelope p{font-size:14px;line-height:1.8;color:#6d785f;margin:0 0 13px}.letter-motion>.letter-quiet{margin-top:35px}
.letter-desk-open .scene-tools,.letter-desk-open .character-open,.letter-desk-open .post-hotspots,.letter-desk-open .stage-caption,.letter-desk-open .walk-help,.letter-desk-open .journey-hud,.letter-desk-open .nearby-action,.letter-desk-open .touch-walk,.letter-desk-open .touch-run{visibility:hidden!important}
.letter-feedback{position:fixed;left:50%;bottom:24px;z-index:6;max-width:min(580px,calc(100% - 36px));transform:translateX(-50%);padding:12px 18px;color:#fff5de;background:#284c3fee;box-shadow:0 4px 20px #061c242a;font-size:14px;line-height:1.7;opacity:0;pointer-events:none}.letter-feedback.show{opacity:1}
@media(min-width:1200px){.letter-desk-body{padding-top:40px}.letter-compose #letter-content{min-height:360px}}
@media(max-width:680px){.letter-desk-header{padding:13px 15px;gap:10px}.letter-desk-heading{gap:9px}.letter-desk-heading h1{font-size:13px;letter-spacing:0}.letter-brand-seal{width:25px;height:28px;font-size:18px}.letter-desk-tools{gap:10px}.letter-desk-tools button{font-size:11px}.letter-desk-tools #letter-desk-close{padding:8px}.letter-desk-body{padding:20px 13px 35px;min-height:calc(var(--mail-height,100dvh) - 64px)}.letter-paper{padding:28px 25px 21px;box-shadow:0 12px 26px #061c2445,2px 2px 0 #e2dac6}.letter-paper:after{inset:7px}.letter-compose .letter-title-input{font-size:22px}.letter-compose #letter-content{font-size:17px;min-height:300px}.letter-paper-meta{font-size:11px;letter-spacing:0;gap:9px;margin-bottom:22px}.letter-paper h2{font-size:23px}.letter-address-fields{grid-template-columns:1fr;gap:18px;margin-top:23px}.letter-paper.is-envelope,.letter-lookup{padding:30px 26px 24px;margin-top:12px}.letter-primary{padding:11px 14px;font-size:14px}.letter-paper-footer{gap:14px}.letter-draft-line .letter-text-button{font-size:12px}.letter-envelope{padding:120px 24px 31px}.letter-recipient{font-size:23px}.letter-read-meta{flex-wrap:wrap}.letter-receipt .tracking-code{font-size:20px}.letter-desk-tools #letter-skip{font-size:11px}}
@media(pointer:coarse){.letter-desk button{min-height:44px}.letter-font-controls button{min-width:44px}.letter-code-toggle{min-height:0!important}}
@media(prefers-reduced-motion:reduce){.letter-offer{transition:none}}
