:root{--bg:#f7f3ec;--ink:#2b2a27;--muted:#6b665d;--accent:#3f5a4a;--line:#d9d1c3;--card:#fffdf9}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;min-height:100vh;display:flex;flex-direction:column;background:var(--bg);color:var(--ink);
  font-family:system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;line-height:1.6}
main{flex:1;width:100%;max-width:38rem;margin:0 auto;padding:4rem 1.25rem 2rem}
.hero{text-align:center;margin-bottom:3rem}
.mark{display:inline-block;margin:0 0 1rem;padding:.35rem .9rem;border:1px solid var(--line);border-radius:999px;
  font-family:Georgia,"Times New Roman",serif;letter-spacing:.15em;color:var(--accent);font-size:.85rem}
h1{font-family:Georgia,"Times New Roman",serif;font-weight:normal;font-size:clamp(2.2rem,8vw,3.2rem);line-height:1.15;margin:0 0 1rem}
.lede{font-size:1.15rem;color:var(--muted);margin:0 auto;max-width:30rem}
h2{font-family:Georgia,"Times New Roman",serif;font-weight:normal;font-size:1.6rem;margin:0 0 .25rem}
.contact{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:1.75rem 1.5rem}
.hint{margin:0 0 1.25rem;color:var(--muted)}
label{display:block;font-size:.9rem;font-weight:600;margin:1rem 0 .35rem}
input,textarea{width:100%;font:inherit;color:inherit;background:#fff;border:1px solid var(--line);border-radius:8px;padding:.7rem .8rem}
input:focus,textarea:focus{outline:2px solid var(--accent);outline-offset:1px;border-color:var(--accent)}
textarea{resize:vertical;min-height:8rem}
button{margin-top:1.25rem;width:100%;font:inherit;font-weight:600;color:#fff;background:var(--accent);border:0;border-radius:8px;padding:.85rem 1rem;cursor:pointer}
button:hover{filter:brightness(1.08)}
button[disabled]{opacity:.6;cursor:wait}
.hp{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}
.status{min-height:1.5em;margin:.9rem 0 0;font-size:.95rem}
.status.ok{color:var(--accent)}
.status.err{color:#9b2c2c}
a{color:var(--accent)}
footer{text-align:center;color:var(--muted);font-size:.85rem;padding:1.5rem 1rem 2rem}
@media (min-width:640px){main{padding-top:6rem}.contact{padding:2rem 2.25rem}}
