:root{--bg:#f6f2e9;--ink:#141414;--mut:#5d5a52;--red:#8f1d2c;--line:#d9d3c4;--card:#fffdf8}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:17px/1.6 Georgia,'Times New Roman',serif}
h1,h2,h3,button,label,input,textarea,select,.btn{font-family:'Helvetica Neue',Arial,sans-serif}
a{color:var(--red)}.wrap{max-width:1040px;margin:0 auto;padding:0 20px}
.hero{text-align:center;padding:24px 0 8px}.hero img{width:min(420px,80%);height:auto}
.hero p{font-size:1.3rem;max-width:34ch;margin:0 auto;font-style:italic}
h2{font-size:1.6rem;margin:56px 0 8px;letter-spacing:-.01em}
.grid{display:grid;gap:22px;grid-template-columns:repeat(auto-fill,minmax(290px,1fr));margin-top:20px}
.card{background:var(--card);border:1px solid var(--line);display:flex;flex-direction:column}
.card img{width:100%;aspect-ratio:16/9;object-fit:cover;background:#e8e2d3}
.card div{padding:16px;display:flex;flex-direction:column;gap:8px;flex:1}.card h3{margin:0;font-size:1.1rem}
.card p{margin:0;color:var(--mut);font-size:.95rem;flex:1}.row{display:flex;gap:8px;flex-wrap:wrap}
.btn,button{background:var(--ink);color:#fff;border:0;padding:10px 16px;font-size:.95rem;cursor:pointer;text-decoration:none;display:inline-block}
.btn.alt,button.alt{background:transparent;color:var(--ink);border:1px solid var(--ink)}
.btn:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible{outline:3px solid var(--red);outline-offset:2px}
.bar{height:6px;background:var(--line)}.bar i{display:block;height:100%;background:var(--red)}
small{color:var(--mut)}footer{margin:64px 0 32px;border-top:1px solid var(--line);padding-top:16px;color:var(--mut)}
dialog{max-width:520px;width:92%;border:1px solid var(--ink);background:var(--card);padding:22px}
dialog::backdrop{background:#000a}label{display:block;margin:10px 0 2px;font-size:.9rem}
input,textarea,select{width:100%;padding:9px;border:1px solid #999;background:#fff;font-size:1rem}
table{width:100%;border-collapse:collapse;font:14px Arial}td,th{border-bottom:1px solid var(--line);padding:6px;text-align:left}
.msg{padding:10px;background:#eee6cf;margin:10px 0;font-size:.95rem}
