.letters-page{--letter-ink:#214b59;--letter-muted:#6c8890;--letter-blue:#357c92;--letter-line:#d8e6e9;color:var(--letter-ink);max-width:1180px;margin:auto;padding:48px 30px 80px}
.letters-page [hidden],.letters-admin [hidden]{display:none!important}
.letters-page button,.letters-admin button{font:inherit;cursor:pointer}
.letters-page button:disabled,.letters-admin button:disabled{opacity:.5;cursor:not-allowed}
.letters-page :focus-visible,.letters-admin :focus-visible{outline:3px solid #4c96ad;outline-offset:5px}
.letter-kicker{font-size:11px;letter-spacing:.2em;color:var(--letter-muted);font-weight:600}
.letter-hero{display:grid;grid-template-columns:1fr .85fr;gap:80px;align-items:center;min-height:550px;padding:28px 0 70px}
.letter-hero h1{font-family:Georgia,'Songti SC',STSong,serif;font-weight:400;font-size:clamp(40px,4.5vw,64px);line-height:1.45;letter-spacing:.06em;margin:24px 0}
.letter-hero p{max-width:430px;font-size:15px;line-height:2.2;color:var(--letter-muted)}
.letter-actions{display:flex;flex-wrap:wrap;align-items:center;gap:16px;margin-top:30px}
.letter-primary,.letter-secondary{display:inline-flex;align-items:center;justify-content:center;gap:22px;padding:14px 24px;border-radius:5px;border:1px solid var(--letter-blue);font-size:14px;min-height:48px;text-decoration:none}
.letter-primary{color:white;background:var(--letter-blue)}
.letter-primary:hover{background:#28677d}
.letter-secondary{color:var(--letter-ink);background:transparent;border-color:var(--letter-line)}
.letter-link{border:0;background:none;color:var(--letter-muted);padding:10px 0;font-size:13px;text-decoration:none}
.letter-book{position:relative;max-width:370px;width:100%;aspect-ratio: .73;justify-self:center;background:linear-gradient(160deg,#f7fbfa 15%,#dfedf1 65%,#b7d6e1);box-shadow:inset 7px 0 9px #7897a71a,14px 20px 50px #2a637b1c;border-left:1px solid #d5e3e8;transform:rotate(3deg);padding:45px 32px;display:flex;flex-direction:column;overflow:hidden}
.letter-book:before,.letter-book:after{content:'';position:absolute;width:160%;height:35%;border:1px solid #7eb5c344;border-radius:50%;left:-30%;bottom:-5%;transform:rotate(-16deg)}
.letter-book:after{bottom:2%;transform:rotate(12deg)}
.letter-book small{font-size:10px;letter-spacing:.25em;color:#7997a2}
.letter-book strong{font-family:Georgia,'Songti SC',STSong,serif;font-size:38px;line-height:1.9;letter-spacing:.16em;font-weight:400;margin-top:42px}
.letter-book .book-air{font:italic 60px Georgia,serif;color:#6d9da9;margin:auto 0 12px;z-index:1}
.letter-book footer{display:block;padding:0;border:0;min-height:0;font-size:11px;color:#668995;letter-spacing:.18em;z-index:1}
.letter-wall{padding-top:40px;border-top:1px solid var(--letter-line);scroll-margin-top:90px}
.letter-wall-heading{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:25px}
.letter-wall-heading h2{font:400 28px 'Songti SC',STSong,serif;margin:8px 0}
.letter-wall-heading p,.letter-help{font-size:12px;color:var(--letter-muted);line-height:1.9}
.letter-filters{display:flex;gap:8px;flex-wrap:wrap;margin:22px 0}
.letter-filter{padding:9px 16px;background:transparent;color:var(--letter-muted);border:1px solid transparent;border-radius:30px;font-size:13px}
.letter-filter[aria-pressed=true]{background:#fff9;border-color:var(--letter-line);color:var(--letter-ink)}
.letter-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}
.letter-card{background:#fffc;border:1px solid #e1eaec;padding:25px;border-radius:3px;align-self:start;overflow:hidden}
.letter-card small{font-size:11px;color:var(--letter-muted)}
.letter-card p{font:16px/2 'Songti SC',STSong,serif;white-space:pre-wrap;overflow-wrap:anywhere;margin:18px 0}
.letter-card img{width:100%;max-height:270px;object-fit:contain;background:#f3f7f7;border-radius:2px}
.letter-card footer{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:20px;padding:0;border:0;min-height:0;font-size:12px;color:var(--letter-muted)}
.letter-photo-button{display:block;width:100%;border:0;background:transparent;padding:0}
.letter-empty{padding:50px 15px;text-align:center;color:var(--letter-muted);font-size:14px;line-height:2}
.letter-note{padding:12px 16px;border-radius:5px;background:#edf5f6;font-size:13px;line-height:1.8;margin:0 0 25px;color:#496e79}
.letter-error{color:#9b453f;font-size:13px;line-height:1.8;white-space:pre-wrap}
.letter-step-heading{max-width:720px;margin:30px auto}
.letter-step-heading h2{font:400 34px 'Songti SC',STSong,serif;margin:16px 0}
.letter-step-heading p{font-size:14px;color:var(--letter-muted);line-height:2}
.letter-category-list{max-width:720px;margin:28px auto;display:grid;gap:15px}
.letter-category{display:flex;gap:25px;align-items:center;text-align:left;padding:25px;background:#fff9;border:1px solid var(--letter-line);border-radius:6px;color:var(--letter-ink)}
.letter-category[aria-pressed=true]{border-color:var(--letter-blue);background:#f4fbfd}
.letter-category .number{font:italic 28px Georgia,serif;color:#90b1ba}
.letter-category strong{display:block;font:400 21px 'Songti SC',STSong,serif;margin-bottom:8px}
.letter-category small{font-size:13px;color:var(--letter-muted);line-height:1.8}
.letter-category .check{margin-left:auto;white-space:nowrap;font-size:12px;color:var(--letter-blue)}
.letter-step-actions{max-width:720px;margin:30px auto;display:flex;justify-content:space-between;align-items:center;gap:15px}
.letter-compose{display:grid;grid-template-columns:1fr .85fr;gap:45px;align-items:start}
.letter-form{background:#fff9;padding:32px;border:1px solid var(--letter-line);border-radius:6px}
.letter-form label:not(.letter-consent){display:block;font-size:14px;margin-bottom:10px}
.letter-form input[type=text],.letter-form textarea,.letters-admin input,.letters-admin textarea{font-family:inherit;font-size:16px;line-height:1.8;width:100%;border:1px solid var(--letter-line);background:#fff9;color:var(--letter-ink);border-radius:5px;padding:12px;box-sizing:border-box;outline-offset:2px}
.letter-form textarea{font:16px/2 'Songti SC',STSong,serif;min-height:220px;resize:vertical}
.letter-field{margin-bottom:25px}
.letter-field-head{display:flex;justify-content:space-between;gap:10px}
.letter-count{font-size:12px;color:var(--letter-muted)}
.letter-count.over-limit{color:#ad403b}
.letter-upload{border:1px dashed #b4cbd3;border-radius:5px;background:#f5fafb;padding:22px;text-align:center}
.letter-upload input{display:block;max-width:100%;font-size:12px;margin:12px auto 0}
.letter-upload input::file-selector-button{border:0;border-radius:4px;padding:8px 12px;background:#deedf2;color:#315f70;cursor:pointer;margin-right:10px}
.letter-upload p{font-size:12px;color:var(--letter-muted);margin:10px 0 0}
.letter-upload img{max-height:180px;max-width:100%;margin:12px auto;display:block}
.letter-consent{display:flex;align-items:flex-start;gap:10px;font-size:12px;line-height:1.9;margin:20px 0;color:var(--letter-muted)}
.letter-consent input{margin-top:5px;flex-shrink:0;accent-color:var(--letter-blue)}
.letter-form .letter-primary{width:100%}
.letter-preview-caption{font-size:11px;letter-spacing:.12em;color:var(--letter-muted);margin:0 0 16px}
.letter-paper{background:#fffefa;padding:38px 32px;min-height:450px;box-shadow:0 12px 38px #2b596315;border:1px solid #e5e9e3;position:relative}
.letter-paper .paper-top{display:flex;justify-content:space-between;gap:15px;font-size:10px;letter-spacing:.12em;color:#829a9c;padding-bottom:20px;border-bottom:1px solid #dce6e4}
.letter-paper h3{font:400 24px 'Songti SC',STSong,serif;margin:28px 0 20px}
.letter-paper .paper-message{white-space:pre-wrap;overflow-wrap:anywhere;font:17px/2.2 'Songti SC',STSong,serif;min-height:150px;color:#3d5a62}
.letter-paper .paper-image{width:100%;max-height:300px;object-fit:contain;margin-top:20px}
.letter-paper .paper-sign{text-align:right;font:16px/2 'Songti SC',STSong,serif;overflow-wrap:anywhere;margin-top:30px}
.letter-paper .paper-date{font-size:11px;color:var(--letter-muted);text-align:right;margin-top:4px}
.letter-review{max-width:600px;margin:25px auto}
.letter-success{text-align:center;max-width:650px;margin:40px auto}
.letter-success h2{font:400 36px 'Songti SC',STSong,serif;margin:22px 0}
.letter-success p{font-size:14px;line-height:2;color:var(--letter-muted)}
.letter-success-mark{display:inline-grid;place-items:center;background:#deece9;color:#458274;border-radius:50%;width:56px;height:56px;font-size:24px}
.letter-lightbox{position:fixed;inset:0;margin:auto;width:fit-content;height:fit-content;max-width:90vw;max-height:90dvh;padding:35px 20px 20px;border:0;border-radius:6px;background:#f8fcfd;color:#214b59}
.letter-lightbox::backdrop{background:#153c4db3}
.letter-lightbox img{display:block;max-width:80vw;max-height:75dvh;object-fit:contain}
.letter-lightbox button{position:absolute;right:10px;top:7px;background:none;border:0;font-size:22px;cursor:pointer;color:inherit}
.letters-admin{--letter-ink:#214b59;--letter-muted:#6c8890;--letter-blue:#357c92;--letter-line:#d8e6e9;font:14px/1.7 -apple-system,BlinkMacSystemFont,'Segoe UI','PingFang SC',sans-serif;color:var(--letter-ink);background:#f1f7f8;margin:0}
.letters-admin *{box-sizing:border-box}
.admin-shell{max-width:1100px;padding:30px;margin:auto}
.admin-top{display:flex;justify-content:space-between;gap:20px;align-items:center;border-bottom:1px solid var(--letter-line);padding-bottom:22px}
.admin-top a{color:var(--letter-blue);font-size:13px}
.admin-top h1{font:400 30px 'Songti SC',STSong,serif;margin:10px 0}
.admin-toolbar{display:flex;gap:12px;flex-wrap:wrap;align-items:center;justify-content:space-between;margin:22px 0}
.admin-list{display:grid;gap:18px}
.admin-card{padding:26px;background:white;border:1px solid var(--letter-line);border-radius:6px}
.admin-card-head{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap}
.admin-card h3{margin:0;font-size:16px;overflow-wrap:anywhere}
.admin-card .admin-message{white-space:pre-wrap;overflow-wrap:anywhere;line-height:2;font-size:16px}
.admin-card img{max-width:100%;max-height:260px;display:block}
.admin-card small{color:var(--letter-muted);overflow-wrap:anywhere}
.admin-card .letter-actions{margin-top:20px}
.admin-card .letter-actions button{min-height:40px;padding:8px 16px;font-size:13px}
.admin-reason{background:#f6f8f8;padding:10px 14px;font-size:12px;white-space:pre-wrap;overflow-wrap:anywhere}
.admin-panel{margin-top:30px;padding:25px;background:#fff;border:1px solid var(--letter-line);border-radius:6px}
.admin-panel summary{cursor:pointer;font-size:17px}
.admin-reviewer-form{display:flex;gap:12px;align-items:center;margin:20px 0}
.admin-reviewer-form input{min-width:0;flex:1}
.admin-reviewer-row{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:12px 0;border-top:1px solid var(--letter-line);overflow-wrap:anywhere}
.admin-dialog{width:min(480px,90vw);padding:28px;border:0;border-radius:6px;color:var(--letter-ink);background:#f8fcfd}
.admin-dialog::backdrop{background:#153c4d80}
.admin-dialog textarea{min-height:120px}
.admin-history{font-size:12px;line-height:1.9;padding:15px;background:#f5f9fa;white-space:pre-wrap;overflow-wrap:anywhere}
.letter-honeypot{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
@media(max-width:900px){.letter-hero{gap:35px}.letter-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.letter-compose{gap:25px}.letter-form{padding:24px}.letter-paper{padding:28px 24px}}
@media(max-width:700px){.letters-page{padding:28px 20px 60px}.letter-hero{grid-template-columns:1fr;gap:35px;padding:10px 0 50px;min-height:auto}.letter-hero h1{font-size:42px;margin:18px 0}.letter-hero p{font-size:14px}.letter-book{width:240px;padding:30px 25px;aspect-ratio:.8}.letter-book strong{font-size:28px;margin-top:22px}.letter-book .book-air{font-size:42px}.letter-grid{grid-template-columns:1fr}.letter-wall-heading{align-items:flex-start}.letter-wall-heading h2{font-size:25px}.letter-compose{grid-template-columns:1fr}.letter-live-preview{display:none}.letter-step-heading{margin-top:18px}.letter-step-heading h2{font-size:28px}.letter-category{padding:20px 16px;gap:15px}.letter-category strong{font-size:19px}.letter-category .check{font-size:0}.letter-category[aria-pressed=true] .check{font-size:15px}.letter-paper{min-height:400px;padding:28px 23px}.letter-form{padding:22px 18px}.letter-card{padding:24px}.admin-shell{padding:20px 15px}.admin-top{align-items:flex-start}.admin-top h1{font-size:26px}.admin-card{padding:20px}.admin-reviewer-form{flex-wrap:wrap}.admin-reviewer-form input{flex-basis:100%}.letter-lightbox img{max-width:calc(90vw - 40px)}}
@media(prefers-reduced-motion:reduce){.letter-book{transform:none}}
@media(max-width:700px){.nav nav{gap:clamp(4px,1.7vw,12px)}.nav nav a{white-space:nowrap}}

/* The letters area has its own warm, paper-like appearance. */
body[data-route="messages"]{background:#f8f7f0;color:#30302b}
body[data-route="messages"]:before{background:linear-gradient(160deg,#f5f7f0eb,#fcf9f2f0),url('assets/ocean-wide-v2-light.webp') center / cover no-repeat}
body[data-route="messages"] .ocean-wash,body[data-route="messages"] .jelly-companion,body[data-route="messages"] .egg-bubble{display:none!important}
.letters-page{--letter-ink:#30302b;--letter-muted:#89887e;--letter-blue:#33332d;--letter-line:#e6e3db;max-width:none;padding:0;margin:0;font-family:-apple-system,BlinkMacSystemFont,'PingFang SC','Microsoft YaHei',sans-serif}
.letters-topbar{min-height:76px;padding:18px 5%;display:flex;align-items:center;justify-content:space-between;gap:24px;border-bottom:1px solid var(--letter-line);background:#faf9f6}
.letters-brand{display:flex;align-items:center;gap:13px;background:none;border:0;white-space:nowrap;color:var(--letter-ink);padding:0;font-size:17px;letter-spacing:2px}
.letters-brand img{width:36px;height:36px;object-fit:contain}
.letters-top-tag,.letters-top-right{font-size:13px;color:var(--letter-muted)}
.letters-top-right{display:flex;flex-direction:column;align-items:flex-end;gap:3px}
.letters-top-right a{font-size:10px;letter-spacing:.05em;color:#969489}
.letters-shell{max-width:1540px;padding:30px 5% 65px;margin:auto}
.letter-kicker{color:#bd7960;font-size:12px;letter-spacing:.18em;font-weight:400}
.letter-hero{grid-template-columns: .9fr 1.25fr;gap:70px;min-height:calc(100dvh - 150px);padding:0 0 45px;align-items:center}
.letter-welcome-copy{padding:0 0 0 18px}
.letter-hero h1{font-family:inherit;font-size:clamp(32px,3.45vw,52px);font-weight:650;line-height:1.45;letter-spacing:.015em;color:var(--letter-ink);margin:30px 0 32px;white-space:nowrap}
.letter-hero p{max-width:none;font-size:16px;line-height:2.2;color:#777568;margin:0}
.letter-hero .letter-actions{margin-top:34px;gap:22px}
.letters-page .letter-primary{border:1px solid #33332d;background:#33332d;color:#fff;border-radius:10px;min-height:50px;padding:12px 28px;gap:24px;font-size:14px}
.letters-page .letter-primary:hover{color:#fff;background:#494940}
.letters-page .letter-primary:disabled{background:#92938d;border-color:#92938d;opacity:1}
.letter-hero .letter-primary{min-width:190px}
.letters-page .letter-secondary{border-radius:9px;border-color:var(--letter-line);color:var(--letter-ink);background:#fff}
.letters-page .letter-link{color:#89887e;font-size:13px}
.letter-cover-label{font-size:13px!important;letter-spacing:.15em;line-height:1.5!important;margin:0 0 15px!important;color:var(--letter-muted)!important}
.letter-cover-stage{display:flex;justify-content:center;align-items:center;padding:14px 25px;background:#efeee8;border-radius:14px;box-shadow:0 15px 50px #57534409}
.letter-cover-stage img{display:block;width:auto;max-width:100%;height:auto;max-height:calc(100dvh - 190px);object-fit:contain;box-shadow:0 8px 30px #48433d1c}
.letter-wall{margin:20px 18px 45px;padding-top:45px;border-color:var(--letter-line)}
.letter-wall-heading h2{font-family:inherit;font-weight:600;font-size:27px;letter-spacing:.02em}
.letter-filter[aria-pressed=true]{background:#fff;color:#54483d}
.letter-card{background:#fff;border-color:var(--letter-line);border-radius:12px}
.letter-card p{font-family:inherit;font-size:15px}
.letter-card img{background:#f7f6f2}
.letter-flow-card{max-width:810px;margin:10px auto 40px;padding:44px 48px;background:#fff;border:1px solid var(--letter-line);border-radius:20px;box-shadow:0 12px 45px #77705d06}
.letter-step-heading{max-width:none;margin:0 0 25px}
.letter-step-heading h2{font-family:inherit;font-size:28px;font-weight:650;line-height:1.5;letter-spacing:.01em;margin:20px 0 15px;color:var(--letter-ink)}
.letter-step-heading p{font-size:14px;color:var(--letter-muted);line-height:2;margin:0}
.letter-category-list{max-width:none;margin:25px 0;gap:13px}
.letter-category{padding:23px 20px;gap:18px;border-color:var(--letter-line);background:#fff;border-radius:12px}
.letter-category:hover{border-color:#c5b4a7;background:#fdfcf9}
.letter-category[aria-pressed=true]{border-color:#bd7960;background:#fcf7f2}
.letter-category .number{font-size:20px;color:#bd7960}
.letter-category strong{font-family:inherit;font-size:16px;font-weight:600;margin-bottom:5px}
.letter-category small{font-size:12px;color:var(--letter-muted)}
.letter-category .check{font-size:12px;color:var(--letter-muted);font-weight:400}
.letter-category[aria-pressed=true] .check{color:#a5674f}
.letter-step-actions{max-width:none;margin:28px 0 0;gap:20px}
.letter-step-actions .letter-primary{min-width:245px}
.letter-form{padding:0;border:0;border-radius:0;background:transparent}
.letter-form fieldset{padding:0;border:0;margin:0;min-width:0}
.letter-field{margin-bottom:25px}
.letter-form label:not(.letter-consent){font-size:14px;font-weight:600;margin-bottom:11px}
.letter-form label b{color:#bd7960;font-weight:500}
.letter-form input[type=text],.letter-form textarea{background:#fdfcf9;border-color:var(--letter-line);border-radius:10px;color:#30302b;font-family:inherit;font-size:16px;padding:14px 16px}
.letter-form input::placeholder,.letter-form textarea::placeholder{color:#99998f}
.letter-form textarea{min-height:180px;line-height:1.9;display:block}
.letter-form .letter-help{font-weight:400;font-size:12px}
.letter-form label>.letter-help{margin-left:7px;color:#a3a297}
.letter-count{display:block;font-size:12px;line-height:1.8;margin-top:10px;color:var(--letter-muted)}
.letter-prompts{padding:16px 18px;margin-bottom:14px;background:#faf7f1;border:1px solid #eee4d8;border-radius:11px;color:#807b6e;font-size:12px;line-height:1.9}
.letter-prompts strong{font-weight:600;color:#99715d;font-size:13px}
.letter-prompts p{margin:4px 0 10px}
.letter-prompts ul{margin:0;padding-left:20px;list-style:none}
.letter-prompts li+li{margin-top:4px}
.letter-upload{padding:14px;background:#fdfcf9;border:1px dashed #d4cebf;border-radius:12px;text-align:left}
.letter-upload-row{display:flex;align-items:center;gap:14px}
.letter-upload-icon{width:42px;height:42px;flex-shrink:0;display:grid;place-items:center;background:#f0ede4;border-radius:11px;color:#88806a;font-size:22px}
.letter-upload-copy{min-width:0;flex:1;display:flex;flex-direction:column;gap:3px}
.letter-upload-copy strong{font-size:14px;font-weight:600;color:var(--letter-ink)}
.letter-upload-copy small{font-size:11px;color:var(--letter-muted);line-height:1.7}
.letter-pick{border:1px solid var(--letter-line);background:#fff;padding:9px 12px;white-space:nowrap;border-radius:9px;color:var(--letter-ink);font-size:13px}
.letter-upload p:empty{display:none}
.letter-consent input{accent-color:#555449}
.letter-form #letterSubmit{width:100%;margin-top:12px}
.letter-form #letterChallenge:empty{display:none}
.letter-form .letter-error:empty{display:none}
.letters-page .letter-note{margin:36px auto 0;max-width:810px;font-size:11px;color:#959081;background:transparent;padding:0;text-align:center}
.letters-page .letter-success{padding:50px 0 80px}
.letters-page .letter-success h2{font-family:inherit;font-weight:600;color:var(--letter-ink);letter-spacing:.02em}
.letters-page .letter-success-mark{background:#efede3;color:#787b60}
.letters-page .letter-lightbox{background:#faf9f6;color:#30302b}
.letters-page :focus-visible{outline-color:#b4876a}
.letter-identity{display:flex;align-items:center;gap:12px}
.letter-identity img{width:30px;height:30px;object-fit:contain}
.letter-form .letter-choice-group{margin:0 0 24px;padding:0;border:0}
.letter-choice-group legend{font-size:14px;font-weight:600;margin:0 0 12px;padding:0}
.letter-choice-row{display:flex;flex-wrap:wrap;gap:12px 20px}
.letter-form .letter-choice{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:400;margin:0;cursor:pointer;padding:9px 12px;border:1px solid var(--letter-line);border-radius:8px;background:#fcfbf7}
.letter-choice:has(input:checked){border-color:#b99a80;background:#f8f1e7}
.letter-choice input{accent-color:#726553;margin:0;width:15px;height:15px}
.letter-anonymous-line{display:flex;align-items:center;gap:6px;white-space:nowrap;font-size:14px}
.letter-anonymous-line input{min-width:0;flex:1}
.letter-card>p:first-child{margin-top:0}
.admin-privacy{font-size:12px;background:#f3f1e9;padding:8px 12px;border-radius:5px;color:#77694f}
@media(min-width:1650px){.letter-hero{gap:90px}.letter-cover-stage img{max-height:760px}}
@media(max-width:1000px) and (min-width:701px){.letter-hero{gap:30px;grid-template-columns:1fr 1fr}.letter-hero h1{font-size:32px}.letter-hero p{font-size:14px}.letters-top-tag{display:none}.letter-cover-stage{padding:12px}.letter-cover-stage img{max-height:620px}}
@media(max-width:700px){
 body[data-route="messages"]:before{background:linear-gradient(160deg,#f5f7f0eb,#fcf9f2f0),url('assets/sea-reference-light.webp') center / cover no-repeat}
 .letter-choice-row{gap:8px}.letter-form .letter-choice{font-size:12px;padding:9px 10px}.letter-anonymous-line{font-size:12px;gap:2px}.letter-anonymous-line input{padding:11px 8px!important;font-size:14px!important}
 .letters-page{padding:0}.letters-topbar{min-height:68px;padding:14px 20px;gap:12px}.letters-brand{font-size:15px;gap:8px;letter-spacing:1px}.letters-brand img{width:30px;height:30px}.letters-top-tag{display:none}.letters-top-right>span{display:none}.letters-top-right a{font-size:11px}
 .letters-shell{padding:22px 18px 45px}.letter-hero{display:flex;flex-direction:column;gap:35px;padding:18px 0 35px;min-height:0;align-items:stretch}.letter-welcome-copy{padding:0 6px}.letter-kicker{font-size:11px}.letter-hero h1{font-size:clamp(28px,7.8vw,39px);white-space:normal;margin:20px 0 24px}.letter-hero p{font-size:14px;line-height:2.1}.letter-hero .letter-actions{gap:20px;margin-top:24px}.letter-hero .letter-primary{min-width:165px}.letter-cover-label{font-size:11px!important}.letter-cover-stage{padding:12px 18px;border-radius:11px}.letter-cover-stage img{width:100%;max-width:380px;max-height:none}
 .letter-wall{margin:20px 0 35px;padding-top:30px}.letter-wall-heading h2{font-size:23px}.letter-filters{gap:4px}.letter-filter{font-size:12px;padding:8px 10px}
 .letter-flow-card{padding:28px 20px;margin:0 auto 30px;border-radius:17px}.letter-step-heading{margin-bottom:22px}.letter-step-heading h2{font-size:24px;line-height:1.6;margin-top:16px}.letter-step-heading p{font-size:13px}.letter-category{gap:12px;padding:18px 13px;align-items:flex-start}.letter-category .number{font-size:17px;margin-top:2px}.letter-category strong{font-size:15px}.letter-category small{font-size:11px}.letter-category .check{display:none}.letter-category[aria-pressed=true]{box-shadow:inset 3px 0 #bd7960}.letter-step-actions{gap:12px;flex-wrap:wrap}.letter-step-actions .letter-primary{min-width:0;flex:1}.letter-step-actions .letter-link{font-size:12px}.letters-page .letter-primary{padding:12px 18px;font-size:14px}
 .letter-form{padding:0}.letter-form input[type=text],.letter-form textarea{font-size:16px;padding:13px}.letter-prompts{padding:14px 12px;font-size:12px}.letter-prompts ul{padding-left:8px}.letter-upload-row{gap:10px;flex-wrap:wrap}.letter-upload-icon{width:35px;height:35px}.letter-upload-copy{flex-basis:calc(100% - 50px)}.letter-pick{margin-left:45px}.letter-consent{font-size:11px}.letter-form textarea{min-height:210px}
}

/* Keep publication choices together immediately before submission. */
.letter-sharing{border-top:1px solid var(--letter-line);padding-top:22px;margin:8px 0 24px}
.letter-form label.letter-toggle{display:flex;align-items:center;gap:10px;cursor:pointer;font-size:15px;font-weight:600;margin:0;min-height:32px}
.letter-toggle input{width:18px;height:18px;flex:0 0 18px;margin:0;accent-color:#726553;cursor:pointer}
.letter-sharing>.letter-help{margin:6px 0 18px}
#letterAnonymousChoice{margin-bottom:20px}
.letter-sharing .letter-field{margin:18px 0 0}

/* Quiet input focus: keep the field border without an outer glow. */
.letters-page .letter-form input[type=text]:focus,
.letters-page .letter-form textarea:focus{outline:none;box-shadow:none;border-color:#bdb7a9}
.letter-receipt-dialog{inset:0;height:fit-content;max-width:none;transform:none;font-family:inherit;box-sizing:border-box;width:min(860px,calc(100% - 32px));max-height:calc(100dvh - 36px);margin:auto;padding:40px 55px 36px;border:0;border-radius:24px;background:#fff;color:#30302b;text-align:center;box-shadow:0 24px 80px #0002;overflow:auto;overscroll-behavior:contain}
.letter-receipt-dialog::backdrop{background:#292723c9}
body:has(#letterSuccessDialog[open]){overflow:hidden}
.letter-dialog-close{position:absolute;right:16px;top:12px;width:36px;height:36px;background:transparent;border:0;color:#908b80;font-size:25px;cursor:pointer}
.letter-receipt-check{display:grid;place-items:center;width:64px;height:64px;margin:0 auto 24px;border:1px solid #d1dbd0;border-radius:50%;color:#788e7b;font-size:36px;font-family:Georgia,serif}
.letter-receipt-dialog h2{font-family:inherit;font-size:26px;margin:0 0 18px;font-weight:650;outline:none}
.letter-receipt-intro{font-size:15px;line-height:1.9;color:#827e71;margin:0 0 28px}
#letterReceiptImage{display:block;width:100%;max-width:570px;height:auto;margin:0 auto 18px;box-shadow:0 10px 35px #443c3010}
.letter-receipt-dialog .letter-download{display:inline-block;text-decoration:none;padding:12px 22px;border:1px solid #e2d9ca;border-radius:10px;color:#9d7868;background:#fff;font-size:15px}
.letter-receipt-dialog .letter-help{font-size:12px;line-height:1.8;color:#918c80;margin:12px 0}
.letter-receipt-dialog #letterReceipt{font-size:10px;overflow-wrap:anywhere}
.letter-receipt-actions{display:flex;gap:15px;margin-top:24px}
.letter-receipt-actions button{flex:1;min-width:0;padding:16px 10px;border-radius:11px;font-size:16px}
.letter-receipt-actions .letter-secondary{background:#fff;border:1px solid #d8d0c1;color:#736b5a}
#letterReceiptFallback{text-align:left;white-space:pre-wrap;overflow-wrap:anywhere;padding:24px;background:#faf8f1}
@media(max-width:700px){.letter-receipt-dialog{width:calc(100% - 24px);max-height:calc(100dvh - 24px);padding:30px 20px 24px;border-radius:20px}.letter-receipt-check{width:52px;height:52px;font-size:30px;margin-bottom:20px}.letter-receipt-dialog h2{font-family:inherit;font-size:23px}.letter-receipt-intro{font-size:13px;margin-bottom:20px}.letter-receipt-actions{gap:10px;margin-top:20px}.letter-receipt-actions button{font-size:13px;padding:13px 8px}}
