@charset "UTF-8";
/* First-page spacing follows the viewport; expanded fields remain in normal flow. */
/* 成笺：画式与纸幅独立，预览和导出共用绘制器。 */
.letter.rendered-letter{padding:0;min-height:0;border:0;background:transparent;overflow:visible}
.letter.rendered-letter:after{display:none}.letter-canvas{display:block;width:100%;height:auto;background:#faf9f2}.canvas-status{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:.875rem;color:var(--muted);background:#fffef9}.canvas-status.preview-failed{position:static;padding:30px;min-height:150px;line-height:1.8}
.design-choice-heading{display:flex;justify-content:space-between;align-items:center;gap:12px}.design-choice-heading .field-label{margin:0}.design-choices{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:12px 0 26px}.design-choice{display:flex;flex-direction:column;min-width:0;text-align:left;background:#fffef9;border:1px solid #cbd2c3;border-radius:4px;overflow:hidden;padding:0}.design-choice[aria-pressed="true"]{border-color:var(--green);box-shadow:0 0 0 2px var(--green)}.design-choice[aria-pressed="true"] .design-caption b:after{content:" ✓";font-family:var(--sans)}.design-thumb{height:84px;display:block;width:100%;background:#f8f6ed;overflow:hidden}.design-thumb img{width:100%;height:100%;object-fit:cover}.choice-ink .design-thumb img{object-position:center 70%}.choice-print .design-thumb img{object-position:right 60%}.choice-plain .design-thumb{background:#f7f9fc;padding:12px 20px;color:#25344a}.choice-plain .design-thumb>span{display:block;border-left:3px solid #b75237;padding-left:12px;font:1.125rem/1.5 var(--sans)}.design-caption{padding:12px;display:flex;flex-direction:column;gap:6px}.design-caption b{font:1rem var(--serif)}.design-caption small{font-size:.75rem;line-height:1.7;color:var(--muted)}.design-compare-dialog{width:min(1140px,calc(100% - 24px))}.design-comparison{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:26px;margin-top:24px;align-items:start}.design-comparison section{min-width:0}.design-comparison h3{font-size:1.25rem}.design-comparison section>p{font-size:.875rem;color:var(--muted);margin:7px 0 14px}.stage-2 .preview-column{position:sticky;top:20px}
@media(max-width:800px){.stage-2 .preview-column{position:static}.design-thumb{height:95px}.design-comparison{gap:22px;grid-template-columns:1fr}.design-compare-dialog{padding:22px}.design-caption{padding:12px}}
.current-hou-label{display:block;font-size:.875rem;line-height:1.8;color:var(--green);letter-spacing:.5px;margin-bottom:8px;overflow-wrap:anywhere}
.choice-foil .design-thumb{background:#191c20;padding:12px 22px;color:#ead7a2;font:1.6rem/1.3 KaiTi,STKaiti,serif}.choice-foil .design-thumb>span{display:block;border-left:1px solid #9e8551;padding-left:20px}.tone-choices .chip{display:flex;align-items:center;gap:7px}.tone-choices .chip>span{width:12px;height:12px;border-radius:50%;background:#547158}.tone-choices .tone-black>span{background:#222}.tone-choices .tone-cinnabar>span{background:#9e4030}.tone-choices .tone-gold>span{background:linear-gradient(135deg,#725022,#d1b577,#806020)}.editor .tone-note{font-size:.75rem;margin:-9px 0 23px}
.version-bar{display:flex;justify-content:center;align-items:center;flex-wrap:wrap;gap:16px;padding:10px 18px;background:#e5e8df;border-bottom:1px solid #cbd3c2;color:#345042;font:14px/1.6 "Microsoft YaHei",sans-serif}.version-bar a{color:inherit;text-underline-offset:4px}.version-bar [aria-current]{font-weight:bold;text-decoration:none}
:root{--paper:#eeeee7;--white:#fffef9;--ink:#203b32;--muted:#647168;--green:#254b3d;--line:#d8dcd2;--soft:#e8ede3;--rust:#a0462e;--serif:"Noto Serif CJK SC","Source Han Serif SC","Songti SC","SimSun",serif;--sans:"Microsoft YaHei","PingFang SC",sans-serif;color:var(--ink);background:var(--paper);font:16px var(--sans);font-synthesis:none}
*{box-sizing:border-box}body{margin:0}button,input,textarea,select{font:inherit;color:inherit}button,a,input,textarea,select{touch-action:manipulation}button{cursor:pointer;border:0}button:disabled{opacity:.5;cursor:not-allowed}a{color:inherit;text-underline-offset:5px}h1,h2,h3,p{margin:0}h1,h2,h3{font-family:var(--serif);font-weight:400}p{line-height:1.9}small{font-size:.8125rem}textarea{resize:vertical}input,textarea,select{border-radius:3px}::selection{background:#dce5ba}button,a{-webkit-tap-highlight-color:transparent}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid #b87439;outline-offset:4px}button:hover:not(:disabled){filter:brightness(.95)}[hidden]{display:none!important}.skip{position:fixed;top:-100px;left:20px;background:white;padding:15px;z-index:100}.skip:focus{top:10px}
.site-header{background:#203f36;color:#f6f5e9;min-height:92px;padding:18px max(28px,calc((100vw - 1264px)/2));display:flex;align-items:center;justify-content:space-between;gap:28px;border-bottom:4px solid #bcbf9b}.brand{display:flex;align-items:center;gap:14px;text-decoration:none;flex-shrink:0}.brand-seal{border:1px solid #cad0a7;font:18px/1.2 var(--serif);padding:6px 8px;color:#e2e4c5}.brand b{font:27px var(--serif);letter-spacing:5px}.brand small{display:block;font-size:.75rem;letter-spacing:1.3px;margin-top:5px;color:#bdcabe}.site-header nav{display:flex;align-items:center;gap:10px}.site-header nav a{font-size:.9375rem;text-decoration:none;padding:13px 20px;border-radius:3px;color:#d0dacf;white-space:nowrap}.site-header nav a[aria-current]{background:#ffffff12;color:#fff8db;box-shadow:inset 0 -2px #d9d6a8}.site-header nav span{font-size:.75rem;margin-left:5px}.icon-btn{background:transparent;border:1px solid var(--line);width:38px;height:38px;border-radius:50%;flex-shrink:0}.site-header .icon-btn{border-color:#668274;color:#eef3dc}.site-footer{max-width:1264px;margin:24px auto 0;padding:24px 0 30px;border-top:1px solid #c9d0c3;display:flex;justify-content:space-between;gap:20px;color:var(--muted);font-size:.8125rem;line-height:1.9}.site-footer i{font-style:normal;margin:0 8px}.text-btn{padding:0;background:none;font-size:.875rem;border-bottom:1px solid currentColor}.little-dot{display:inline-block;width:4px;height:4px;border-radius:50%;background:#83917e;margin:0 10px;vertical-align:middle}
main{max-width:1320px;min-height:72vh;margin:auto;padding:30px 28px 20px}main:focus{outline:none}.eyebrow{font-size:.75rem;letter-spacing:1.9px;color:var(--muted)}.section-top{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:22px}.desk-label{display:flex;align-items:center;gap:20px}.desk-label>span:last-child{font:1.0625rem var(--serif);padding-left:20px;border-left:1px solid #bdc6b8}.theme-picker{display:flex;align-items:center;gap:16px}.theme-picker>span{font-size:.875rem;color:var(--muted)}.theme-switch{display:flex;gap:4px;padding:4px;border:1px solid #cbd1c3;border-radius:4px;background:#e4e7dc}.theme-switch button{background:transparent;padding:8px 21px;font:1.125rem var(--serif);border-radius:2px}.theme-switch button[aria-pressed="true"]{background:var(--white);box-shadow:0 1px 5px #24392918;color:var(--green)}
.workspace{display:grid;grid-template-columns:minmax(0,.83fr) minmax(0,1fr);gap:36px;align-items:start}.write-workspace{grid-template-columns:minmax(270px,.68fr) minmax(0,1.32fr);gap:0;background:var(--white);border:1px solid #c8cebf;box-shadow:0 14px 45px #23382d0b}.editor{padding:30px 40px 28px;min-width:0}.write-workspace:not(.stage-2) .editor{grid-column:2;grid-row:1}.steps{list-style:none;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:0 0 23px;margin:0 0 28px;border-bottom:1px solid var(--line);font-size:.875rem;color:var(--muted)}.steps li{display:flex;align-items:center;gap:9px;white-space:nowrap}.steps b{font:italic 1rem Georgia,serif;color:#7f8a77}.steps .current{color:var(--green);font-weight:600}.steps .current b{background:var(--green);color:#fff9dc;border-radius:50%;width:29px;height:29px;display:inline-flex;align-items:center;justify-content:center;font-size:.875rem}.writing-heading{margin-bottom:25px}.writing-heading .eyebrow{color:#888962}.writing-heading h1{font-size:clamp(1.7rem,2.5vw,2.25rem);line-height:1.5;margin:10px 0 8px;letter-spacing:.5px}.writing-heading p{font-size:1rem;color:var(--muted)}.field-label,.editor label{display:block;font-size:.875rem;margin-bottom:10px}.chips{display:flex;flex-wrap:wrap;gap:8px;margin:10px 0 19px}.chip{border:1px solid #ced5c5;background:#f4f6ef;border-radius:3px;padding:8px 11px;font-size:.875rem;line-height:1.4;min-height:37px}.chip[aria-pressed="true"]{background:#e0e8d3;color:#294a38;border-color:#66825c;box-shadow:inset 0 0 0 1px #66825c}.writing-box{border:1px solid #ccd3bf;background:#fafbf5;border-radius:4px;padding:16px 19px 10px;transition:border-color .15s,box-shadow .15s}.writing-box:focus-within{border-color:#658354;box-shadow:0 0 0 3px #c7d8b333}.prompt{font-size:.875rem;color:#66765c;line-height:1.7;padding-bottom:12px;border-bottom:1px dashed #d3dcc5;margin-bottom:12px}.writing-box textarea{width:100%;min-height:112px;border:0;background:transparent;padding:0;color:var(--ink);font:1.125rem/2 var(--serif)}.writing-box textarea:focus-visible{outline:0}.writing-box textarea::placeholder{color:#8c9581}.writing-meta{display:flex;justify-content:space-between;align-items:center;gap:12px;font-size:.75rem;color:var(--muted);padding:5px 0}.no-observation{background:none;padding:5px 0;text-decoration:underline;text-underline-offset:4px;font-size:.875rem;color:var(--muted)}.form-options{margin-top:16px}.form-options summary{cursor:pointer;font-size:.875rem;color:var(--muted);padding:6px 0;line-height:1.8}.form-options summary span{font-size:.75rem;margin-left:8px;color:#77816e}.fields{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:16px}.fields input{width:100%;min-width:0;padding:11px;border:1px solid var(--line);background:#fff;font-size:.9375rem}.full-field{grid-column:1/-1}.action-row{display:flex;gap:18px;align-items:center;flex-wrap:wrap;margin-top:23px}.primary{display:inline-flex;align-items:center;justify-content:center;gap:24px;min-height:48px;padding:13px 23px;border-radius:3px;background:var(--green);color:#fffdec;font-size:.9375rem;text-decoration:none;line-height:1.6}.primary span{font-size:1.25rem}.secondary{border:1px solid #bfcbb6;background:#f7f9f2;padding:11px 17px;min-height:44px;border-radius:3px;font-size:.875rem;line-height:1.6}.quiet{background:none;padding:10px 0;font-size:.875rem;line-height:1.6;color:var(--muted)}.save-status{display:block;font-size:.75rem;color:var(--muted);margin-top:15px;min-height:19px;line-height:1.7}.save-status:before{content:"";display:inline-block;background:#8e9f78;width:5px;height:5px;border-radius:50%;margin-right:7px;vertical-align:middle}.save-status.error{color:#9b352c}.save-status.error:before{background:currentColor}
.season-cover{grid-column:1;grid-row:1;align-self:stretch;display:flex;flex-direction:column;min-width:0;background:#244637;color:#f2f1db;border-right:1px solid #193b2c}.cover-heading{padding:28px 30px 24px}.cover-edition{font-size:.75rem;letter-spacing:2px;color:#bdcba9}.cover-title{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:22px 0 12px}.cover-title h2{font-size:clamp(2.75rem,4vw,4rem);letter-spacing:8px;white-space:nowrap}.cover-title>span{font-size:.75rem;color:#cad5b9;line-height:2;letter-spacing:1px}.cover-heading>p{font:1.125rem/1.9 var(--serif);color:#e1e4c9}.art-panel{margin:0 19px;min-height:255px;flex:1;position:relative;overflow:hidden;background:#f1f1e6}.art-panel img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:62% 60%}.art-verse{position:absolute;left:23px;top:27px;writing-mode:vertical-rl;font:1.5rem/1.8 var(--serif);letter-spacing:7px;color:#3e543a}.art-mark{position:absolute;bottom:18px;right:18px;writing-mode:vertical-rl;border:1px solid var(--rust);color:var(--rust);font:1rem var(--serif);letter-spacing:3px;padding:7px 5px}.cover-foot{padding:24px 30px 29px}.cover-foot>span{font-size:.75rem;letter-spacing:2px;color:#b6c7a7}.cover-foot p{font:1rem/1.9 var(--serif);margin:9px 0 13px;color:#e4e7d0}.cover-foot small{font-size:.75rem;color:#bfccae;line-height:1.8;display:block}.season-cover.amber{background:#5b4b2e;border-color:#493d27}.amber .cover-edition,.amber .cover-title>span,.amber .cover-foot>span,.amber .cover-foot small{color:#dac8a6}.ritual-strip{display:flex;justify-content:space-between;gap:20px;align-items:center;margin-top:25px;padding:6px 0}.ritual-strip p{font-size:.875rem;color:var(--muted)}.ritual-strip b{font-weight:400;color:var(--ink);margin-right:6px}.ritual-strip i{font-style:normal;margin:0 18px;color:#98a18f}
.page-title{font-size:2.125rem;margin:12px 0 17px;line-height:1.5}.page-description{color:var(--muted);font-size:1rem;margin-bottom:28px}.your-note{border-left:3px solid #779067;background:#eef2e7;padding:17px 22px;margin-bottom:26px}.your-note small{color:#60724f;font-size:.8125rem;letter-spacing:1px}.your-note p{font:1.125rem/2 var(--serif);margin-top:9px;white-space:pre-wrap;overflow-wrap:anywhere}.reading{border-top:1px solid var(--line);padding:21px 0}.reading summary{font:1.375rem/1.6 var(--serif);cursor:pointer}.reading .tag{display:block;font-size:.75rem;letter-spacing:1px;color:var(--muted);margin:14px 0 9px}.reading p{font-size:1rem;line-height:2.1;margin-bottom:13px}.source-link{font-size:.8125rem;color:var(--muted)}.reading-page{max-width:900px;margin:10px auto;background:var(--white);border-top:5px solid var(--green);padding:36px 54px;box-shadow:0 10px 40px #23382d0a}.reading-page .theme-switch{margin-bottom:25px;width:max-content}.reading-page .page-title{font-size:2.5rem}.edition-note{font-size:.8125rem;color:var(--muted);line-height:1.9;margin-top:20px}.reply-row{margin-top:24px}.reply-row p{font-size:.875rem}.stage-2{grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);background:#e4e8dc}.stage-2 .editor{background:var(--white);align-self:stretch}.stage-2 .steps{flex-wrap:wrap}.preview-column{min-width:0;padding:24px;background:#e4e8dc}.preview-label{display:flex;justify-content:space-between;flex-wrap:wrap;gap:8px;color:var(--muted);font-size:.75rem;margin-bottom:16px;letter-spacing:.5px}.letter{position:relative;isolation:isolate;overflow:hidden;background:var(--white);box-shadow:0 12px 30px #283c2420;border:1px solid #d0d4c5;min-height:570px;padding:40px 38px 28px}.letter:after{content:"";position:absolute;inset:0;background:url('art.png') right bottom/100% auto no-repeat;opacity:.19;z-index:-1}.letter.long{min-height:670px;padding-bottom:50px}.letter-top{display:flex;justify-content:space-between;gap:12px;color:var(--muted);font-size:.75rem;letter-spacing:1px}.letter h2{font-size:2.875rem;letter-spacing:9px;margin:36px 0 12px}.letter h3{font-size:1.0625rem;line-height:1.8;color:var(--muted);margin:0 0 28px;overflow-wrap:anywhere}.letter-body{font:1.25rem/2.2 var(--serif);white-space:pre-wrap;overflow-wrap:anywhere;min-height:180px}.letter-details{font-size:.8125rem;color:var(--muted);line-height:2;margin-top:25px;overflow-wrap:anywhere}.letter-footer{display:flex;justify-content:space-between;align-items:end;gap:10px;margin-top:48px;font-size:.75rem;color:var(--muted)}.letter-stamp{font:.875rem/1.3 var(--serif);border:1px solid var(--rust);color:var(--rust);padding:5px}.privacy-options{display:flex;flex-wrap:wrap;gap:16px;margin:20px 0}.privacy-options label{display:flex;align-items:center;gap:7px;font-size:.875rem;margin:0}.privacy-options input,.compare-select input{accent-color:var(--green);width:17px;height:17px}.settings-note{font-size:.875rem;color:var(--muted);line-height:1.9}.success-panel{padding:32px 20px}.success-icon{display:inline-flex;align-items:center;justify-content:center;width:48px;height:48px;background:#dce6ce;border-radius:50%;font:1.75rem Georgia;color:var(--green);margin-bottom:16px}.success-panel h1{font-size:2.125rem;line-height:1.7}.success-panel p{font-size:1rem;color:var(--muted);margin:20px 0}.success-panel .settings-note{font-size:.875rem}
.journal-heading{display:flex;justify-content:space-between;align-items:center;gap:20px;margin:8px 0 25px}.journal-heading .page-title{font-size:2.625rem}.journal-heading .page-description{margin:0}.journal-tools{display:flex;justify-content:space-between;align-items:center;gap:12px;margin:20px 0 28px}.journal-tools select{background:var(--white);padding:11px 15px;border:1px solid #c7cebf;font-size:.875rem}.journal-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}.entry-card{position:relative;background:var(--white);padding:26px;border:1px solid #cdd3c4;border-top:4px solid #73856a;box-shadow:0 6px 20px #23382d08}.entry-date{font-size:.75rem;color:var(--muted);letter-spacing:1px}.entry-card h3{font-size:1.75rem;line-height:1.6;margin:17px 0;overflow-wrap:anywhere}.entry-text{font:1rem/1.9 var(--serif);display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden;overflow-wrap:anywhere;white-space:pre-wrap;min-height:122px}.entry-card footer{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;border-top:1px solid var(--line);padding-top:16px;margin-top:24px}.entry-card footer button{background:none;font-size:.875rem;padding:5px 0}.compare-select{display:flex;align-items:center;gap:5px;font-size:.875rem;color:var(--muted)}.empty{background:var(--white);border:1px solid var(--line);padding:75px 24px;text-align:center}.empty .eyebrow{margin-bottom:20px}.empty h2{font-size:1.875rem;margin-bottom:16px}.empty p{font-size:1rem;color:var(--muted);margin-bottom:28px}.compare-grid{display:grid;grid-template-columns:1fr 1fr;gap:25px}.compare-grid .your-note{margin:0;padding:26px}.review-writing{max-width:800px;margin:30px auto}.review-writing textarea{width:100%;min-height:160px;padding:20px;background:var(--white);border:1px solid var(--line);font:1.125rem/1.9 var(--serif)}.review-list{margin-top:40px}.review-saved{padding:20px 0;border-bottom:1px solid var(--line)}.review-saved p{font-size:1rem;white-space:pre-wrap;overflow-wrap:anywhere;margin-top:10px}.review-saved small{color:var(--muted)}
dialog{width:min(620px,calc(100% - 30px));max-height:85vh;background:var(--white);color:var(--ink);padding:30px;border:1px solid #aaba9b;border-radius:5px;box-shadow:0 25px 100px #10221d40}dialog::backdrop{background:#17261f88;backdrop-filter:blur(3px)}.dialog-head{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:22px}.dialog-head h2{font-size:1.5rem;line-height:1.5}.dialog-head .icon-btn{font-size:1.375rem}dialog p{font-size:1rem;margin:12px 0;overflow-wrap:anywhere}dialog .actions{display:flex;flex-wrap:wrap;gap:10px;margin:22px 0}dialog .divider{height:1px;background:var(--line);margin:25px 0}dialog input[type="file"]{max-width:100%;font-size:.875rem;margin-top:15px}dialog textarea{width:100%;min-height:180px;font-size:1rem;background:#fafbf5;padding:12px;border:1px solid var(--line)}.danger{color:#a23a2d}.warning{max-width:1264px;margin:20px auto 0;padding:18px;background:#f4e5d7;color:#783e28;font-size:.875rem;line-height:1.8}.warning button{background:none;text-decoration:underline;margin-left:15px}.toast{position:fixed;bottom:25px;left:50%;transform:translateX(-50%) translateY(90px);opacity:0;transition:.2s;background:var(--green);color:#fff;padding:14px 24px;font-size:.875rem;line-height:1.7;max-width:calc(100% - 32px);z-index:30;border-radius:4px;box-shadow:0 5px 25px #10221d30}.toast.visible{transform:translateX(-50%) translateY(0);opacity:1}
@media(min-width:1500px){main{padding-top:40px}.editor{padding:36px 44px}.writing-box textarea{min-height:145px}.cover-heading{padding-top:36px}.art-panel{min-height:295px}}
@media(max-width:1120px){.site-header{padding:18px 28px}.site-footer{margin-left:28px;margin-right:28px;flex-wrap:wrap}.write-workspace{grid-template-columns:minmax(250px,.65fr) minmax(0,1.35fr)}.editor{padding:27px}.cover-heading{padding:27px 22px 22px}.cover-title{display:block;margin-top:18px}.cover-title>span{display:block;margin-top:12px}.cover-title>span br{display:none}.cover-title h2{font-size:3.25rem}.cover-foot{padding:22px}.steps{gap:10px;font-size:.8125rem}.steps li{gap:6px}.journal-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.stage-2{grid-template-columns:minmax(0,1fr) minmax(0,1.1fr)}.letter{padding:30px 25px}.preview-column{padding:20px}.ritual-strip i{margin:0 10px}.desk-label{gap:13px}.desk-label>span:last-child{padding-left:13px}.site-header nav a{padding:12px 13px}}
@media(max-width:800px){.site-header{padding:17px 20px;flex-wrap:wrap;gap:14px}.brand b{font-size:1.5rem}.site-header nav{order:3;width:100%;justify-content:space-between;gap:7px;border-top:1px solid #496554;padding-top:9px}.site-header nav a{font-size:.875rem;text-align:center;flex:1;padding:11px 7px}.site-header>.icon-btn{margin-left:auto}main{padding:21px 18px}.section-top{gap:12px;margin-bottom:17px}.desk-label>span:last-child,.theme-picker>span{display:none}.desk-label .eyebrow{font-size:.75rem;letter-spacing:1px}.theme-switch button{padding:6px 15px;font-size:1rem}.theme-switch{gap:0}.workspace,.write-workspace{display:flex;flex-direction:column;gap:24px}.write-workspace{gap:0}.write-workspace .editor{width:100%;order:0;padding:25px 22px}.steps{font-size:.8125rem;margin-bottom:24px;padding-bottom:20px;flex-wrap:wrap}.steps li{white-space:normal;line-height:1.6}.steps b{flex-shrink:0}.writing-heading h1{font-size:1.8rem}.writing-heading p{font-size:.9375rem}.writing-heading .eyebrow{display:none}.writing-heading{margin-bottom:22px}.chips{gap:7px}.chip{padding:8px 10px}.writing-box{padding:14px}.writing-box textarea{min-height:142px}.action-row{gap:14px}.action-row .primary{flex:1}.season-cover{width:100%;order:1;border:0;border-top:1px solid #bdc7b0;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:stretch}.cover-heading{padding:24px 20px}.cover-title{margin:12px 0}.cover-title h2{font-size:2.625rem}.cover-heading>p{font-size:1rem}.art-panel{min-height:230px;margin:14px 14px 14px 0}.art-verse{font-size:1.125rem;left:12px;top:20px}.art-mark{right:12px;bottom:12px;font-size:.875rem}.cover-foot{grid-column:1/-1;padding:0 20px 20px}.cover-foot>span{display:none}.cover-foot p{margin:0 0 7px}.cover-title>span{font-size:.75rem;margin-top:8px}.cover-edition{letter-spacing:1px}.ritual-strip{display:block;margin-top:22px;padding:0}.ritual-strip>.eyebrow{display:none}.ritual-strip p{font-size:.8125rem;line-height:2}.ritual-strip i{margin:0 6px}.ritual-strip b{margin-right:3px}.stage-2 .preview-column{width:100%;padding:20px}.preview-column{width:100%;max-width:600px;align-self:center}.letter{min-height:510px;padding:30px 26px}.letter.long{min-height:610px}.letter h2{font-size:2.5rem}.letter-body{font-size:1.125rem;line-height:2.1}.page-title{font-size:1.875rem}.page-description{font-size:.9375rem}.reading-page{padding:26px 22px;margin:0}.reading-page .page-title{font-size:1.875rem}.reading summary{font-size:1.25rem}.site-footer{margin:20px 18px 0;padding:22px 0;gap:13px;font-size:.75rem;display:block}.site-footer>span{display:block;margin:6px 0}.journal-heading{align-items:flex-start;flex-wrap:wrap}.journal-heading .page-title{font-size:2rem}.journal-heading .primary{font-size:.875rem;padding:12px 16px}.journal-grid{grid-template-columns:1fr}.journal-tools{flex-wrap:wrap}.compare-grid{grid-template-columns:1fr}.success-panel{padding:15px 4px}.success-panel h1{font-size:1.875rem}.fields{grid-template-columns:1fr;gap:14px}.full-field{grid-column:auto}dialog{padding:23px}.empty{padding:55px 22px}.empty h2{font-size:1.5rem}}
@media(max-width:380px){.brand small{letter-spacing:0}.desk-label .eyebrow{max-width:110px;line-height:1.6}.write-workspace .editor{padding:22px 16px}.steps{gap:6px}.steps li{gap:4px;font-size:.75rem}.steps .current b{width:25px;height:25px}.cover-heading{padding:20px 15px}.cover-title h2{font-size:2.25rem}.cover-heading>p{font-size:.9375rem}.letter{padding:24px 20px}.letter-top{letter-spacing:0}.ritual-strip i{margin:0 2px}.ritual-strip p{font-size:.75rem}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{transition:none!important;animation:none!important;scroll-behavior:auto!important}}
/* 七十二候：长候名、可检索目录和四季索引 */
.hou-index-dialog [data-season="春"],.hou-index-card[data-hou-season="春"]{--season-ink:#943e49;--season-paper:#fff0ed;--season-selected:#f8d7d2;--season-border:#d29898}
.hou-index-dialog [data-season="夏"],.hou-index-card[data-hou-season="夏"]{--season-ink:#286243;--season-paper:#eaf5e7;--season-selected:#d0e8c7;--season-border:#83b28a}
.hou-index-dialog [data-season="秋"],.hou-index-card[data-hou-season="秋"]{--season-ink:#875212;--season-paper:#fff3d9;--season-selected:#f3dda9;--season-border:#c7a35f}
.hou-index-dialog [data-season="冬"],.hou-index-card[data-hou-season="冬"]{--season-ink:#305d87;--season-paper:#eaf3fc;--season-selected:#cedff3;--season-border:#8eaccb}
.hou-index-dialog .chip[data-season]:not([data-season="全部"]){background:var(--season-paper);border-color:var(--season-border);color:var(--season-ink);box-shadow:none}
.hou-index-dialog .chip[data-season]:not([data-season="全部"])[aria-pressed="true"]{background:var(--season-ink);border-color:var(--season-ink);color:#fff;box-shadow:0 2px 0 var(--season-border)}
.hou-index-dialog .hou-index-card[data-hou-season]{background:var(--season-paper);border-color:var(--season-border);border-top:4px solid var(--season-ink);color:var(--season-ink);transition:background .15s,box-shadow .15s}
.hou-index-dialog .hou-index-card[data-hou-season] small,.hou-index-dialog .hou-index-card[data-hou-season]>span{color:var(--season-ink)}
.hou-index-dialog .hou-index-card[data-hou-season]:hover{background:var(--season-selected);filter:none}
.hou-index-dialog .hou-index-card[data-hou-season][aria-pressed="true"]{background:var(--season-selected);border-color:var(--season-ink);box-shadow:inset 0 0 0 1px var(--season-ink)}
.hou-switch{display:flex;gap:14px;align-items:center;flex-wrap:wrap}.hou-switch .secondary{white-space:nowrap;background:#fffef9}.hou-switch .theme-switch button{font-size:1rem;padding:8px 13px}.theme-picker>span{display:none}.cover-title{display:block}.cover-title h2{white-space:normal;font-size:clamp(2rem,3.1vw,3rem);line-height:1.6;letter-spacing:4px;overflow-wrap:anywhere}.cover-title>span{display:block;margin-top:14px;line-height:1.9}.cover-title>span br{display:none}.cover-title>span br:after{content:" / "}.cover-heading>p{font-size:1rem}.letter h2{font-size:clamp(1.7rem,3vw,2.5rem);line-height:1.65;letter-spacing:4px;margin-top:15px;overflow-wrap:anywhere}.hou-context{font-size:.8125rem;color:var(--muted);margin:24px 0 0}.reading-page .hou-switch{margin:0 0 25px}.reading-page .theme-switch{margin:0}.hou-index-dialog{width:min(980px,calc(100% - 30px))}.hou-search-row{display:flex;align-items:center;gap:15px;margin:20px 0}.hou-search-row label{font-size:.875rem;white-space:nowrap}.hou-search-row input{width:100%;min-width:0;padding:13px;border:1px solid var(--line);background:#fafbf5;font-size:1rem}.hou-index-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:18px}.hou-index-card{text-align:left;min-width:0;display:flex;flex-direction:column;padding:18px;background:#f1f4e9;border:1px solid #d3dbc8;border-radius:3px;gap:10px}.hou-index-card[aria-pressed="true"]{background:#e3ebd6;border-color:#59764a;box-shadow:inset 0 0 0 1px #59764a}.hou-index-card small{font-size:.75rem;color:var(--muted);line-height:1.7}.hou-index-card small span{float:right;margin-left:10px}.hou-index-card b{font:1.25rem/1.5 var(--serif);overflow-wrap:anywhere}.hou-index-card>span{font-size:.8125rem;color:var(--muted);line-height:1.7}.empty-search{padding:35px 10px;text-align:center;color:var(--muted)}
@media(max-width:1120px){.desk-label>span:last-child{display:none}.hou-switch{gap:8px}.cover-title h2{font-size:2.1rem}}
@media(max-width:800px){.section-top{flex-wrap:wrap}.desk-label>span:last-child{display:block;border:0;padding:0;font-size:1rem}.desk-label>.eyebrow{display:none}.theme-picker{width:100%}.hou-switch{width:100%;justify-content:space-between}.hou-switch .secondary{padding:9px 12px}.hou-index-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.cover-title h2{font-size:1.875rem;letter-spacing:2px}.cover-title>span{font-size:.75rem}.letter h2{font-size:1.875rem}.hou-index-card{padding:14px}}
@media(max-width:430px){.hou-index-grid{grid-template-columns:1fr}.hou-switch .theme-switch button{padding:8px 10px;font-size:.875rem}.hou-switch .secondary{font-size:.875rem}.cover-title h2{font-size:1.625rem}}

/* Keep the first writing action visible without locking page scroll. */
.home-writing .version-bar{padding:3px 18px;font-size:.75rem;gap:14px}
.home-writing .site-header{min-height:64px;padding:9px max(20px,calc((100vw - 1264px)/2));gap:16px;border-bottom-width:2px}
.home-writing .brand-seal{font-size:14px;padding:3px 6px}.home-writing .brand b{font-size:23px}.home-writing .brand small{font-size:10px;margin-top:3px}
.home-writing .site-header nav a{padding:9px 14px}
.home-writing main{min-height:0;padding:10px 20px 0}
.home-writing .section-top{margin-bottom:10px;gap:10px}.home-writing .section-top .secondary{min-height:36px;padding:6px 12px}
.home-writing .theme-switch{padding:2px}.home-writing .theme-switch button{padding:5px 12px}
.home-writing .write-workspace{grid-template-columns:minmax(170px,.5fr) minmax(0,1.5fr)}
.home-writing .editor{padding:16px 24px 12px}
.home-writing .steps{padding-bottom:9px;margin-bottom:12px;font-size:.8125rem}.home-writing .steps .current b{width:24px;height:24px}
.home-writing .writing-heading{margin-bottom:10px}.home-writing .current-hou-label{font-size:.75rem;line-height:1.5;margin:0}
.home-writing .writing-heading h1{font-size:1.75rem;margin:2px 0;line-height:1.4}.home-writing .writing-heading p{display:none}
.home-writing .editor>label[for="observation"]{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.home-writing .chips{gap:6px;margin:8px 0 12px}.home-writing .chip{padding:7px 10px;min-height:36px;font-size:.8125rem}
.home-writing .writing-box{padding:10px 14px 5px}.home-writing .prompt{font-size:.8125rem;padding-bottom:6px;margin-bottom:6px}
.home-writing .writing-box textarea{height:clamp(78px,calc(100dvh - 590px),220px);min-height:78px;font-size:1.125rem;line-height:1.8}
.home-writing .writing-meta{padding:0}.home-writing .no-observation{padding:5px 0;font-size:.8125rem}
.home-writing .form-options{margin-top:7px}.home-writing .form-options summary{padding:3px 0;font-size:.8125rem}
.home-writing .action-row{margin-top:9px;gap:16px}.home-writing .action-row .primary{min-height:44px;padding:8px 16px}
.home-writing .save-status{margin-top:6px;font-size:.6875rem;min-height:17px}
.home-writing .cover-heading{padding:19px 18px 14px}.home-writing .cover-edition{letter-spacing:1px}.home-writing .cover-title{margin:10px 0 6px}
.home-writing .cover-title h2{font:2rem/1.4 KaiTi,STKaiti,var(--serif);letter-spacing:3px}.home-writing .cover-title>span{margin-top:7px;font-size:.6875rem}
.home-writing .cover-heading>p{font-size:.875rem}.home-writing .art-panel{min-height:100px;margin:0 12px 14px}.home-writing .art-verse{left:12px;top:16px;font-size:1.25rem}
.home-writing .cover-foot{padding:0 18px 16px}.home-writing .cover-foot>span,.home-writing .cover-foot p{display:none}.home-writing .cover-foot small{font-size:.6875rem}
.home-writing .ritual-strip{display:none}.home-writing .site-footer{margin:6px 20px 0;padding:4px 0;gap:8px;font-size:.6875rem}.home-writing .site-footer .text-btn{font-size:.75rem}
@media(min-width:801px) and (max-height:720px){.home-writing .editor{padding-top:12px;padding-bottom:8px}.home-writing .site-header{min-height:60px;padding-top:7px;padding-bottom:7px}}
@media(min-width:801px){.stage-2 .preview-column .letter-canvas{width:auto;max-width:100%;max-height:calc(100dvh - 95px);margin:auto}.stage-2 .preview-column{top:10px}}
@media(min-width:1121px){.home-writing .write-workspace{grid-template-columns:minmax(240px,.6fr) minmax(0,1.4fr)}.home-writing .editor{padding:20px 32px 16px}.home-writing .site-footer{max-width:1280px;margin-left:auto;margin-right:auto}}
@media(max-width:800px){
 .home-writing .version-bar>span{display:none}.home-writing .site-header{padding:10px 16px;gap:6px;flex-wrap:wrap}.home-writing .site-header nav{order:3;width:100%;justify-content:space-between}.home-writing .site-header nav a{padding:9px 8px}
 .home-writing .section-top .desk-label{display:none}.home-writing main{padding:10px 12px 0}.home-writing .editor{padding:16px}.home-writing .steps{font-size:.75rem;gap:6px}.home-writing .steps li{gap:4px}.home-writing .writing-heading h1{font-size:1.6rem}
 .home-writing .writing-box textarea{height:100px;min-height:100px}.home-writing .chip{min-height:40px}.home-writing .season-cover{display:none}.home-writing .site-footer{margin:10px 12px 0}.home-writing .site-footer>span:first-child{display:none}
}
.typography-settings{border:1px solid var(--line);border-radius:4px;padding:18px;margin:0 0 24px;min-width:0;background:#fafbf6}.typography-settings legend{font:1.0625rem var(--serif);padding:0 7px}.type-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin:5px 0 12px}.typography-settings input,.typography-settings select{width:100%;min-width:0;border:1px solid #c7cebf;background:#fffef9;padding:10px;font-size:.875rem;min-height:44px}.typography-settings .settings-note{font-size:.75rem;margin:9px 0;line-height:1.8}.typography-settings label span{font-size:.75rem;color:var(--muted)}.typography-settings #font-licenses{font-size:.75rem;margin-bottom:10px}
@media(max-width:430px){.typography-settings{padding:13px}.type-fields{grid-template-columns:1fr}}
.hou-index-dialog .hou-index-card[data-hou-visual]{--season-ink:var(--hou-ink);--season-paper:var(--hou-paper);--season-selected:var(--hou-selected);--season-border:var(--hou-border);overflow:hidden;gap:9px}
.hou-thumb{display:block;width:calc(100% + 36px);max-width:none;height:135px;margin:-18px -18px 5px;object-fit:contain;background:#f5f0e3}
.season-cover[data-hou-visual]{background:var(--hou-ink);border-color:var(--hou-ink)}.season-cover[data-hou-visual] .cover-edition,.season-cover[data-hou-visual] .cover-title>span,.season-cover[data-hou-visual] .cover-foot small{color:#f0e6d2}
.season-cover .art-panel{background:#f5f0e3}.season-cover .art-panel img{object-fit:contain;object-position:center}
.reading-art{float:right;width:240px;margin:0 0 24px 28px}.reading-art img{width:100%;height:auto;display:block;border:1px solid var(--hou-border)}.reading-art figcaption{font-size:.75rem;color:var(--hou-ink);margin-top:8px;text-align:center}.reading-page[data-hou-visual]{border-color:var(--hou-ink)}.reading-page .hou-switch{clear:both}
@media(max-width:800px){.hou-thumb{width:calc(100% + 28px);margin:-14px -14px 5px;height:120px}.reading-art{float:none;width:min(100%,280px);margin:0 auto 22px}.home-writing .season-cover{display:none}}
.hou-spectrum{display:grid;grid-template-columns:repeat(72,minmax(0,1fr));height:8px;border-radius:4px;overflow:hidden;margin:14px 0 20px}.hou-spectrum span{background:var(--hou-color)}.design-thumb img{object-fit:contain;object-position:center}
/* Paper composition and a compact Gregorian microseason calendar. */
.current-hou-date{display:inline-block;margin-left:10px;font-size:.6875rem;color:var(--muted);font-variant-numeric:tabular-nums}
.season-cover[data-hou-visual]{background:var(--hou-paper);color:var(--hou-ink);border-color:var(--hou-border);border-left:4px solid var(--hou-color)}
.season-cover[data-hou-visual] .cover-edition,.season-cover[data-hou-visual] .cover-title>span,.season-cover[data-hou-visual] .cover-foot small,.season-cover[data-hou-visual] .cover-heading>p{color:var(--hou-ink)}
.season-cover .art-panel{background:transparent}
.season-cover .art-panel img,.reading-art img{mix-blend-mode:multiply;border:0;mask-image:linear-gradient(to right,transparent,#000 14%,#000 86%,transparent),linear-gradient(to bottom,transparent,#000 14%,#000 86%,transparent);mask-composite:intersect}
.design-thumb img{mix-blend-mode:multiply;mask-image:radial-gradient(ellipse,#000 45%,transparent 74%)}
.calendar-toolbar{display:flex;justify-content:space-between;align-items:center;gap:12px;margin:16px 0}
.index-modes{display:flex;border:1px solid #bec7b6;border-radius:4px;padding:3px;background:#f2f4eb}
.index-modes button{border:0;background:transparent;padding:10px 17px;color:#425543;font-size:.875rem;border-radius:2px;min-height:42px}
.index-modes button[aria-pressed="true"]{background:#294d3d;color:#fffdf3}
.calendar-year{display:flex;align-items:center;gap:8px;font-size:.8125rem;white-space:nowrap}
.calendar-year select,.calendar-month-nav select{padding:9px 12px;border:1px solid #b7c2af;border-radius:3px;background:#fffef8;color:#294d3d;font:inherit;min-height:42px}
.hou-date-range{font-variant-numeric:tabular-nums;font-weight:600}
.calendar-month-nav{display:flex;align-items:center;gap:10px;margin:22px 0 16px;flex-wrap:wrap}
.calendar-month-nav>label{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
.calendar-month-nav>button:not(.quiet){width:42px;height:42px;border:1px solid #c8cfbf;background:#fafbf5;border-radius:3px;font-size:1.5rem;color:#36513a}
.calendar-month-nav #calendar-today{margin-left:auto;font-size:.875rem}
.calendar-month-nav button:disabled{opacity:.35;cursor:default}
.calendar-weekdays,.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px}
.calendar-weekdays{margin:12px 0 8px;text-align:center;color:#63705e;font-size:.8125rem}
.calendar-day{min-width:0;height:76px;padding:9px 10px;text-align:left;display:flex;flex-direction:column;gap:7px;border:1px solid var(--hou-border);border-top:3px solid var(--hou-color);border-radius:3px;background:var(--hou-paper);color:var(--hou-ink)}
.calendar-day>b{font:1.0625rem Georgia,serif}.calendar-day>span{font-size:.75rem;line-height:1.35;overflow-wrap:anywhere}.calendar-day>i{display:block;width:18px;border-top:1px solid var(--hou-border);margin-top:5px}
.calendar-day[aria-pressed="true"]{background:var(--hou-selected);outline:2px solid var(--hou-ink);outline-offset:-2px}
.calendar-day[aria-current="date"]>b:after{content:"今";font-size:.625rem;border-radius:2px;margin-left:5px;padding:1px 3px;background:var(--hou-ink);color:var(--hou-paper)}
.calendar-detail{margin-top:22px;background:var(--hou-paper);border-top:2px solid var(--hou-color);padding:22px;display:grid;grid-template-columns:1fr 160px;gap:20px;align-items:center;color:var(--hou-ink)}
.calendar-detail h3{font:1.875rem/1.5 var(--serif);margin:6px 0}.calendar-detail p{font-size:.875rem;line-height:1.8;margin:5px 0}.calendar-detail p>span{display:inline-block;margin-left:10px}.calendar-detail .eyebrow{font-size:.6875rem}.calendar-detail .primary{margin-top:12px;min-height:42px;padding:9px 16px;font-size:.875rem}
.calendar-detail img{width:100%;height:auto;mix-blend-mode:multiply;mask-image:radial-gradient(ellipse,#000 45%,transparent 73%)}
.calendar-hint,.calendar-method{font-size:.75rem;color:#63705e;line-height:1.9;margin-top:16px}.calendar-method{border-top:1px solid #dce0d3;padding-top:12px}.calendar-method summary{cursor:pointer;padding:5px 0}.calendar-method a{color:#365c46;text-underline-offset:4px}
@media(max-width:600px){
 .calendar-toolbar{align-items:flex-start;gap:8px}.index-modes button{padding:8px 10px;font-size:.8125rem}.calendar-year{font-size:.75rem;gap:5px}.calendar-year select{padding:8px 5px}
 .calendar-grid,.calendar-weekdays{gap:3px}.calendar-day{height:67px;padding:7px 4px;gap:4px}.calendar-day>b{font-size:.9375rem}.calendar-day>span{font-size:.625rem}.calendar-day[aria-current="date"]>b:after{margin-left:2px;padding:1px}
 .calendar-detail{grid-template-columns:1fr 84px;padding:15px;gap:10px}.calendar-detail h3{font-size:1.5rem}.calendar-detail p>span{display:block;margin:0}.calendar-detail .eyebrow{font-size:.625rem}
 .current-hou-date{display:block;margin-left:0}.calendar-month-nav{gap:8px}
}
.hou-index-dialog:has(.calendar-grid) .index-intro{display:none}
.hou-index-dialog:has(.calendar-grid) .hou-spectrum{height:5px;margin:12px 0}
.hou-index-dialog:has(.calendar-grid) .calendar-toolbar{margin:10px 0}
.hou-index-dialog:has(.calendar-grid) .calendar-month-nav{margin:12px 0}
@media(min-width:801px){
 .calendar-layout{display:grid;grid-template-columns:minmax(0,1fr) 210px;gap:20px;align-items:start}
 .calendar-detail{display:flex;flex-direction:column;align-items:stretch;gap:12px;margin-top:36px;padding:16px}
 .calendar-detail h3{font-size:1.5rem}.calendar-detail p>span{display:block;margin:0}.calendar-detail img{width:140px;align-self:center}.calendar-day{height:63px}
 .calendar-detail .primary{width:100%;padding-left:8px;padding-right:8px}
}
@media(max-width:430px){.calendar-toolbar{flex-wrap:wrap}.calendar-year{margin-left:auto}.calendar-day{height:63px;padding:6px 3px}.calendar-detail{grid-template-columns:1fr 72px}}
