@charset "UTF-8";
:root{--paper:#f5f3eb;--ink:#202e29;--muted:#58645d;--line:#c8cec2;--green:#244f3f;--rust:#854932}
*{box-sizing:border-box}
body{margin:0;background:var(--paper);color:var(--ink);font-family:"Segoe UI Variable Text","Microsoft YaHei",sans-serif;line-height:1.7}
a{color:inherit;text-decoration:none}
a:focus-visible,button:focus-visible,input:focus-visible{outline:3px solid var(--rust);outline-offset:5px}
.masthead,main,footer{width:min(1180px,calc(100% - 80px));margin:auto}
.masthead{display:flex;align-items:center;justify-content:space-between;padding:24px 0;border-bottom:1px solid var(--line)}
.wordmark{font-weight:800;letter-spacing:.12em;font-size:16px}
.wordmark span{font-weight:400;font-size:12px;letter-spacing:.08em}
button,input{font:inherit}
button{cursor:pointer}
.quiet{background:none;border:0;color:var(--muted);font-size:13px;padding:8px}
.opening{padding:64px 0 42px;max-width:820px}
.eyebrow{font-size:11px;letter-spacing:.17em;font-weight:700;color:var(--green);margin:0 0 20px}
h1{font-family:"Palatino Linotype","Songti SC","SimSun",serif;font-size:clamp(36px,4.4vw,62px);line-height:1.25;letter-spacing:-.035em;font-weight:500;margin:0 0 24px}
h1 span{color:var(--green)}
.intro{color:var(--muted);font-size:16px;max-width:650px;margin:0}
.tools{display:grid;grid-template-columns:1fr 1fr;border-top:2px solid var(--ink);border-bottom:1px solid var(--line)}
.tool{padding:30px 38px 32px 0}
.tool+.tool{border-left:1px solid var(--line);padding-left:38px;padding-right:0}
.tool-meta{display:flex;justify-content:space-between;gap:16px;font-size:10px;letter-spacing:.08em;color:var(--muted)}
.tool-meta span:first-child{font-size:12px;letter-spacing:.02em;color:var(--green)}
h2{font-size:clamp(25px,3vw,34px);line-height:1.3;letter-spacing:-.025em;margin:28px 0 16px;font-weight:650}
.tool p{font-size:14px;color:var(--muted);max-width:470px}
.tool ul{padding-left:19px;font-size:13px;margin:24px 0 30px}
.enter{display:flex;justify-content:space-between;align-items:center;background:var(--green);color:#f4f3ea;padding:13px 18px;font-weight:600;transition:background .18s}
.tool-attribution .enter{background:var(--rust)}
.enter:hover{background:#173d2e}
.tool-attribution .enter:hover{background:#693622}
.source{display:inline-block;color:var(--muted);font-size:11px;margin-top:16px;text-decoration:underline;text-underline-offset:4px}
.notes{display:grid;grid-template-columns:1fr 2fr;gap:40px;padding:36px 0 46px}
.notes h3{font-weight:500;font-size:18px;margin:0}
.notes p{font-size:12px;color:var(--muted);margin:0 0 12px}
.notes strong{color:var(--ink);font-weight:650}
footer{padding:20px 0 26px;border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:20px;color:var(--muted);font-size:10px;letter-spacing:.06em}
.login-page{min-height:100dvh;display:grid;place-items:center;padding:36px 0}
.login-panel{width:min(440px,calc(100% - 48px));margin:auto}
.login-panel .wordmark{display:block;margin-bottom:64px}
.login-panel h1{font-size:42px}
.login-panel .intro{font-size:14px}
.login-panel form{margin-top:32px}
label{display:block;font-size:13px;margin-bottom:9px}
input[type=password]{width:100%;padding:12px;background:#eeeee4;border:1px solid #a2aea0;border-radius:0;color:var(--ink)}
.login-panel button{width:100%;margin-top:18px;background:var(--green);color:#f4f3ea;padding:12px 16px;border:0;display:flex;justify-content:space-between}
.error{font-size:13px;color:#9b3025}
.fine-print{margin-top:30px;color:var(--muted);font-size:11px}
@media(max-width:720px){.masthead,main,footer{width:calc(100% - 40px)}.wordmark span{font-size:9px}.opening{padding:40px 0 32px}.tools{grid-template-columns:1fr}.tool,.tool+.tool{padding:25px 0;border-left:0}.tool+.tool{border-top:1px solid var(--line)}.tool-meta{font-size:8px}h2{margin-top:20px}.notes{grid-template-columns:1fr;gap:15px;padding:30px 0}footer{flex-direction:column;gap:7px}.login-panel{width:calc(100% - 48px)}}
@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}
