:root{--bg:#fafaf7;--surface:#fff;--ink:#1a1a1a;--muted:#555;--line:#e5e5e0;--accent:#8b2635;--accent-hover:#6b1d28;--max:760px;--radius:6px;--shadow:0 1px 3px rgba(0,0,0,.06)}
*{box-sizing:border-box;margin:0;padding:0}
html{font-size:17px;-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{font-family:Georgia,"Times New Roman",serif;line-height:1.65;color:var(--ink);background:var(--bg);min-height:100vh;display:flex;flex-direction:column}
main{flex:1;max-width:var(--max);width:100%;margin:0 auto;padding:2rem 1.25rem}
a{color:var(--accent);text-decoration:underline;text-underline-offset:2px}
a:hover{color:var(--accent-hover)}
h1,h2,h3,h4{font-family:Georgia,serif;line-height:1.25;margin:1.8rem 0 .8rem;color:var(--ink)}
h1{font-size:2rem;margin-top:.5rem}
h2{font-size:1.45rem;border-bottom:1px solid var(--line);padding-bottom:.4rem}
h3{font-size:1.2rem}
p,ul,ol,table{margin:.8rem 0}
ul,ol{padding-left:1.5rem}
li{margin:.3rem 0}
table{width:100%;border-collapse:collapse;font-size:.95rem}
th,td{text-align:left;padding:.55rem .7rem;border-bottom:1px solid var(--line)}
th{background:#f2f2ec;font-family:system-ui,sans-serif;font-size:.9rem}
code,pre{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.93rem;background:#f2f2ec;padding:.1rem .3rem;border-radius:3px}
pre{padding:.8rem;overflow-x:auto}
blockquote{border-left:3px solid var(--accent);padding:.2rem 0 .2rem 1rem;margin:1rem 0;color:var(--muted);font-style:italic}
header.site{background:var(--surface);border-bottom:1px solid var(--line);padding:.9rem 1.25rem}
header.site .wrap{max-width:var(--max);margin:0 auto;display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap}
.logo{font-family:Georgia,serif;font-size:1.3rem;font-weight:700;color:var(--ink);text-decoration:none;letter-spacing:.5px}
.logo:hover{color:var(--accent)}
nav.primary ul{display:flex;gap:1.2rem;list-style:none;padding:0;margin:0;flex-wrap:wrap}
nav.primary a{font-family:system-ui,sans-serif;font-size:.92rem;color:var(--ink);text-decoration:none}
nav.primary a:hover,nav.primary a[aria-current=page]{color:var(--accent)}
footer.site{background:var(--surface);border-top:1px solid var(--line);padding:1.5rem 1.25rem;margin-top:3rem;font-size:.88rem;color:var(--muted);font-family:system-ui,sans-serif}
footer.site .wrap{max-width:var(--max);margin:0 auto;display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap}
footer.site a{color:var(--muted)}
footer.site ul{list-style:none;padding:0;display:flex;gap:1rem;flex-wrap:wrap}
.lede{font-size:1.08rem;color:var(--muted);margin:.5rem 0 1.5rem}
.card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:1rem;margin:1.5rem 0}
.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:1rem;box-shadow:var(--shadow);transition:border-color .15s}
.card:hover{border-color:var(--accent)}
.card a{text-decoration:none;color:var(--ink);display:block}
.card h3{margin:0 0 .3rem;font-size:1.05rem}
.card p{margin:0;font-size:.9rem;color:var(--muted);font-family:system-ui,sans-serif}
.tool{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:1.25rem;margin:1.5rem 0;box-shadow:var(--shadow)}
.tool textarea,.tool input,.tool select{width:100%;font-family:Georgia,serif;font-size:1rem;padding:.7rem;border:1px solid var(--line);border-radius:4px;background:#fff;color:var(--ink);resize:vertical}
.tool textarea{min-height:180px}
.tool textarea:focus,.tool input:focus,.tool select:focus{outline:none;border-color:var(--accent)}
.tool label{display:block;font-family:system-ui,sans-serif;font-size:.88rem;font-weight:600;margin:.8rem 0 .3rem;color:var(--ink)}
.tool button{background:var(--accent);color:#fff;border:0;padding:.7rem 1.2rem;font-family:system-ui,sans-serif;font-size:.95rem;font-weight:600;border-radius:4px;cursor:pointer;margin-top:.8rem}
.tool button:hover{background:var(--accent-hover)}
.tool button.secondary{background:transparent;color:var(--accent);border:1px solid var(--accent)}
.tool button.secondary:hover{background:var(--accent);color:#fff}
.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:.8rem;margin:1rem 0;font-family:system-ui,sans-serif}
.stat{background:#f2f2ec;padding:.8rem;border-radius:4px;text-align:center}
.stat .value{font-size:1.5rem;font-weight:700;color:var(--accent);display:block}
.stat .label{font-size:.8rem;color:var(--muted);text-transform:uppercase;letter-spacing:.5px}
.result-box{background:#f2f2ec;padding:1rem;border-radius:4px;margin-top:1rem;font-family:system-ui,sans-serif;font-size:.95rem;min-height:3rem}
.toc{background:#f2f2ec;border-left:3px solid var(--accent);padding:1rem 1rem 1rem 1.5rem;margin:1.5rem 0;font-family:system-ui,sans-serif;font-size:.92rem}
.toc h2{font-size:1rem;margin:0 0 .5rem;border:0;padding:0}
.toc ul{padding-left:1.2rem;margin:.3rem 0}
.toc li{margin:.2rem 0}
.breadcrumbs{font-family:system-ui,sans-serif;font-size:.85rem;color:var(--muted);margin-bottom:.8rem}
.breadcrumbs a{color:var(--muted)}
.ad-slot{margin:2rem 0;text-align:center;min-height:90px;font-family:system-ui,sans-serif;font-size:.75rem;color:#bbb}
.notice{background:#fff8e6;border-left:3px solid #d4a72c;padding:.8rem 1rem;margin:1rem 0;font-size:.95rem}
form.contact label{display:block;margin:1rem 0 .3rem;font-family:system-ui,sans-serif;font-weight:600;font-size:.9rem}
form.contact input,form.contact textarea{width:100%;padding:.7rem;border:1px solid var(--line);border-radius:4px;font-family:Georgia,serif;font-size:1rem}
@media(max-width:600px){html{font-size:16px}h1{font-size:1.7rem}h2{font-size:1.3rem}main{padding:1.5rem 1rem}footer.site .wrap{flex-direction:column}nav.primary ul{gap:.9rem}}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
