:root{font-family:-apple-system,BlinkMacSystemFont,PingFang SC,Microsoft YaHei,sans-serif;color:#293f36;background:#f4f1e8;font-synthesis:none;--green:#294c40;--muted:#737b70;--line:#d8d9ca}*{box-sizing:border-box}body{margin:0;background:repeating-linear-gradient(0deg,transparent,transparent 3px,#746a4903 3px,#746a4903 4px)}button,input,textarea,select{font:inherit}button,a,input,textarea,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer;border:1px solid var(--line);background:transparent;color:inherit;border-radius:4px;padding:10px 15px;min-height:44px}button:hover{background:#e8e9dd}button:disabled{opacity:.45;cursor:not-allowed}a{color:inherit}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:3px solid #a77b38;outline-offset:3px}.app-shell{max-width:1160px;margin:auto;padding:0 40px}header{display:flex;justify-content:space-between;align-items:center;padding:30px 0;border-bottom:1px solid var(--line);gap:14px}.brand{display:flex;gap:14px;align-items:center;text-decoration:none;font-family:Songti SC,SimSun,serif;font-size:22px;letter-spacing:2px}.brand small{display:block;font:9px/2.5 sans-serif;letter-spacing:2px}.seal{border:1px solid #42604f;outline:1px solid #42604f;outline-offset:3px;font-size:27px;padding:4px 7px}.quiet{border:0;background:transparent}main{min-height:65vh;padding:30px 0 45px}h1,h2,h3{font-family:Songti SC,"Noto Serif CJK SC",SimSun,serif;font-weight:500}h1{font-size:42px;line-height:1.4;margin:12px 0 22px}h2{font-size:25px}p{line-height:1.9}small,.muted{color:var(--muted)}.eyebrow{font-size:12px;letter-spacing:3px;color:#617362}.home{display:grid;grid-template-columns:1.1fr .9fr;gap:35px 75px;padding-top:30px}.hero-copy{padding-top:15px}.hero-copy h1{font-size:66px;letter-spacing:4px;line-height:1.35;margin-top:26px}.dot{color:#ad795d}.intro{max-width:365px;color:#6d786b;font-size:16px;white-space:pre-line}.primary,.secondary{display:inline-flex;align-items:center;justify-content:center;gap:28px;padding:14px 24px}.primary{background:var(--green);border-color:var(--green);color:#fff9e9}.primary:hover{background:#3a5d4f}.secondary{background:#faf8ef}.hero-copy .primary{margin-top:20px;min-width:250px}.handwritten{font-family:KaiTi,Kaiti SC,serif;color:#8a8d77;font-size:19px;margin-top:30px}.book{position:relative;background:#335247;border:1px solid #486153;border-radius:3px 9px 9px 3px;box-shadow:10px 12px 0 -6px #dedccc,13px 15px 0 -7px #a8ad95,15px 25px 34px #324a3324;transform:rotate(4deg);min-height:425px;margin:16px 30px 18px 0;color:#dfd9b9;padding:22px 23px 24px 34px}.book:before{content:"";position:absolute;left:10px;top:0;bottom:0;border-left:2px solid #213f34;border-right:1px solid #5a7060;width:6px}.book-inner{border:1px solid #b9b59188;outline:1px solid #b9b59144;outline-offset:-6px;min-height:378px;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center}.book-top{font-size:10px;letter-spacing:4px}.book h2{font-size:45px;letter-spacing:8px;margin:40px 0 10px}.book p{font-family:KaiTi,Kaiti SC,serif;font-size:15px}.book-rule{width:45px;border-top:1px solid #b5b091;margin:23px}.book-inner>span:last-of-type{font-size:9px;letter-spacing:3px}.book small{color:#c1c2a4;margin-top:35px;letter-spacing:3px;font-size:10px}.home-links{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin-top:20px}.home-links button{border:0;text-align:left;padding:27px 30px 27px 0;display:flex;flex-direction:column;gap:14px}.home-links button+button{border-left:1px solid var(--line);padding-left:40px}.index{font-size:11px;letter-spacing:2px;color:#76816e}.home-links strong{font-family:Songti SC,serif;font-size:24px;font-weight:500}.home-links button>span:last-child{font-size:13px;color:#788170;width:100%}.home-links b{float:right}.footnote{grid-column:1/-1;text-align:center;color:#7a8171;font-size:12px;margin:0}.paper{padding:30px;background:#fffcf3;border:1px solid #dedecf;margin:22px 0;box-shadow:0 4px 10px #554c2904}.narrow{max-width:650px;margin:20px auto}.paper h1{font-size:34px}.paper p{color:#6c776b}label{display:block;font-size:14px;line-height:1.7;margin:20px 0 8px}input:not([type=radio]):not([type=checkbox]),textarea,select{display:block;width:100%;border:1px solid #cdd2c4;background:#fffef8;border-radius:3px;padding:12px;margin-top:9px;color:#293f36;min-height:46px}input[type=file]{font-size:13px}textarea{min-height:95px;resize:vertical}.check,.choice{display:flex;align-items:flex-start;gap:10px;line-height:1.8}.check input,.choice input{accent-color:var(--green);margin:6px 0;flex-shrink:0;width:17px;height:17px}.choice{border:1px solid #d4d9cc;padding:10px 14px;background:#fbfaf2;border-radius:3px;margin:8px 0}.choice:has(input:checked){border-color:#4d6c59;background:#e9eedf}.choice small{margin-left:auto}fieldset{border:0;padding:0;margin:28px 0}legend{font-size:14px;margin-bottom:8px}.two{display:grid;grid-template-columns:1fr 1fr;gap:20px}.link{padding-left:0;border:0;text-align:left;text-decoration:underline;text-underline-offset:5px}.notice{background:#e4ebd9;border-left:3px solid #68835c;padding:14px 18px;margin:0 0 20px;overflow-wrap:anywhere;line-height:1.7}.notice button{float:right;padding:0 8px;border:0;min-height:25px}.status-line{border-top:1px solid var(--line);padding:15px 0}.empty{text-align:center;padding:65px 15px;border:1px dashed #bfcab8;margin:30px 0;background:#f9f8ef}.empty p{color:#788170;font-size:14px}.empty-mark{font-family:Songti SC,serif;font-size:36px;border:1px solid #a6b29c;display:inline-block;padding:15px;color:#8b9a7b}.photo-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}.photo{padding:12px;background:#fffdf6;border:1px solid #dedecf;margin:15px 0}.photo img{width:100%;height:240px;object-fit:contain;background:#efeee5}.photo p{font-size:13px}.photo .secondary{margin:10px 0;padding:8px}.image-button{border:0;padding:0;width:100%}.inline{display:flex;gap:12px;align-items:center;margin:20px 0}.inline input{margin:0!important}.tabs{display:flex;gap:10px;overflow:auto;padding:10px 0 20px;white-space:nowrap}.tabs button.active,.bottom-nav button.active{color:#294c40;border-bottom:2px solid #294c40;background:#e5eadb}.stats{display:flex;gap:40px;padding:25px 0}.stats div{font-size:13px;color:#697b66}.stats strong{display:block;font:45px/1.6 Georgia;color:var(--green)}.bar-row{display:flex;gap:12px;align-items:center;margin:18px 0;font-size:14px}.bar-row span{min-width:84px}meter{width:100%;accent-color:#526e4b}details{padding:20px;border-bottom:1px solid var(--line)}summary{cursor:pointer}.download{text-decoration:none}.table-wrap{overflow:auto;margin:25px 0}table{width:100%;border-collapse:collapse;text-align:left;font-size:13px}th,td{padding:14px 10px;border-bottom:1px solid var(--line);min-width:100px;overflow-wrap:anywhere}th{background:#e9ecdf}.person-row{display:flex;flex-wrap:wrap;align-items:center;gap:10px;border-bottom:1px solid var(--line);padding:20px 0}.person-row>div{flex:1;min-width:230px}.person-row small{display:block;overflow-wrap:anywhere;margin-top:7px}.upload{background:#eaf0e1;padding:15px}.modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;background:#18271eea;overflow:auto;padding:25px;display:flex;flex-direction:column;align-items:center}.modal-tools{display:flex;flex-wrap:wrap;gap:10px;position:sticky;top:0;z-index:1;background:#f8f5ea;padding:10px;border-radius:5px}.zoom-area{width:min(100%,900px);overflow:auto;margin-top:20px}.zoom-area img{display:block}.modal-paper{max-width:760px;width:100%;margin:0}.preview{max-width:100%;max-height:60vh;object-fit:contain;display:block;margin:20px auto}.loading{text-align:center;padding:25vh 20px}footer{border-top:1px solid var(--line);padding:25px 0 35px;display:flex;justify-content:space-between;align-items:center;font-size:11px;color:#7d8473}footer button{font-size:11px;border:0;padding:8px}.bottom-nav{display:none}.back{padding-left:0;font-size:13px}section{animation:appear .25s ease-out}@keyframes appear{0%{opacity:0;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}@media(max-width:700px){.app-shell{padding:0 22px}header{padding:20px 0}.brand{font-size:18px;gap:12px}.brand small{font-size:7px;letter-spacing:1px}.seal{font-size:23px}header>.quiet{font-size:12px;padding:5px;max-width:110px}main{padding-top:18px}.home{gap:25px;grid-template-columns:1fr;padding-top:8px}.hero-copy h1{font-size:50px;margin-top:18px}.hero-copy .primary{margin-top:10px}.intro{font-size:15px;max-width:320px}.handwritten{font-size:17px;margin:24px 0 0}.book{grid-row:2;width:225px;min-height:277px;padding:14px 15px 15px 24px;margin:12px auto 15px;transform:rotate(4deg)}.book-inner{min-height:255px}.book h2{font-size:31px;margin-top:25px;letter-spacing:5px}.book-top{font-size:8px;letter-spacing:2px}.book p{font-size:11px}.book-rule{margin:14px}.book-inner>span:last-of-type{font-size:7px;letter-spacing:1px}.book small{font-size:8px;margin-top:22px}.home-links{grid-template-columns:1fr;margin-top:0}.home-links button{padding:22px 0!important}.home-links button+button{border-left:0;border-top:1px solid var(--line)}.home-links strong{font-size:23px}.footnote{line-height:1.9;text-align:left;font-size:11px}.paper{padding:22px 18px}.paper h1,h1{font-size:30px}.paper h2{font-size:22px}.two{grid-template-columns:1fr;gap:0}.photo-grid{grid-template-columns:1fr 1fr;gap:10px}.photo{padding:8px}.photo img{height:185px}.photo span,.photo button{font-size:12px}.stats{gap:22px}.stats strong{font-size:36px}.stats div{font-size:11px}.empty{padding:40px 10px}.modal{padding:12px}.modal-tools{gap:3px}.modal-tools button{font-size:12px;padding:8px}.bottom-nav{position:fixed;bottom:0;left:0;right:0;display:flex;justify-content:space-around;background:#fbf9f0f5;border-top:1px solid var(--line);padding:8px 6px calc(8px + env(safe-area-inset-bottom));z-index:10}.bottom-nav button{border:0;border-radius:0;font-size:12px;padding:10px 7px}.bottom-nav button.active{border-bottom:2px solid #294c40}footer{margin-bottom:75px;flex-direction:column;gap:8px;padding:20px 0}.primary{width:100%}.download{width:auto}}@media(prefers-reduced-motion:reduce){*{animation:none!important;scroll-behavior:auto!important}}
