:root { --paper: #f8f5f0; --ink: #2c2825; --muted: #7a736a; --rule: #d4cfc7; --accent: #4a6670; }
* { box-sizing: border-box; }
body { margin: 0; background: var(--paper); color: var(--ink); font: 18px/1.6 'Crimson Text', Georgia, serif; }
.contact-page { max-width: 680px; margin-inline: auto; padding-inline: 1.5rem; }
header { padding-block: 2.5rem 1.25rem; border-bottom: 1px solid var(--rule); }
a { color: var(--accent); text-underline-offset: .2em; }
.author { font-size: 1.7rem; color: var(--ink); text-decoration: none; }
nav { display: flex; flex-wrap: wrap; gap: .25rem 1.5rem; margin-top: .4rem; font-size: 1rem; }
nav a { text-decoration: none; }
nav a:hover { text-decoration: underline; }
main { padding-block: 1.25rem 2rem; }
h1 { margin: 0 0 .5rem; font-size: 2.1rem; line-height: 1.2; font-weight: 400; }
.introduction { margin: .5rem 0 1.5rem; }
.contact-field { margin-bottom: 1rem; }
label { display: block; margin-bottom: .3rem; }
label span, .privacy-note { color: var(--muted); font-size: .95rem; }
input, textarea { display: block; width: 100%; border: 1px solid var(--rule); border-radius: 0; background: transparent; color: var(--ink); padding: .55rem .7rem; font: inherit; line-height: 1.4; }
textarea { resize: vertical; min-height: 9rem; }
button { min-height: 44px; padding: .45rem 1.1rem; border: 1px solid var(--accent); border-radius: 0; color: var(--accent); background: transparent; font: inherit; cursor: pointer; }
button:hover { background: #eeebe5; }
button:disabled { opacity: .6; cursor: wait; }
:focus-visible { outline: 2px solid var(--accent); outline-offset: 3px; }
.privacy-note { margin-block: .5rem 1rem; }
.form-status { color: #8a342c; }
footer { padding-block: 1.1rem 2rem; border-top: 1px solid var(--rule); font-size: 1rem; }
[hidden] { display: none !important; }
@media (max-width: 480px) { header { padding-top: 1.5rem; } .contact-page { padding-inline: 1.25rem; } }
