:root { --ink:#1c1c1c; --paper:#fbfaf6; --sheet:#fff; --line:#d6d2c6; --mut:#55534c; --band:#f0ede3; --accent:#7a1f1f; --red:#a3121c; color-scheme:light; }
*{box-sizing:border-box}
html{scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
body{margin:0;background:var(--paper);color:var(--ink);font:500 17px/1.5 Archivo,system-ui,sans-serif}
h1,h2{font-family:"Libre Baskerville",Georgia,serif;font-weight:700;line-height:1.08}
h1{font-size:clamp(46px,10vw,104px);margin:.1em 0 .12em}
h2{font-size:clamp(30px,5vw,44px);margin:0 0 .5em}
h3{font-size:21px;font-weight:800;line-height:1.25;margin:0 0 .35em}
section{padding:52px 16px;max-width:1120px;margin:0 auto}
.band{max-width:none;background:var(--band);border-block:1px solid var(--line)}
.band>*{max-width:1088px;margin-inline:auto}
.top{max-width:1120px;margin:0 auto;padding:56px 16px 24px}
.kicker{margin:0;font-weight:800;color:var(--accent)}
.sub{font-size:clamp(20px,3vw,27px);font-weight:800;margin:0 0 20px}
.cta{display:flex;flex-wrap:wrap;gap:12px}
.btn{display:inline-block;background:var(--ink);color:#fff;border:2px solid var(--ink);padding:13px 22px;font:800 17px/1.2 Archivo,system-ui,sans-serif;text-decoration:none;border-radius:4px;cursor:pointer;min-height:48px;text-align:center}
.btn:hover{background:#000}
.btn:disabled{opacity:.6;cursor:not-allowed}
.btn.ghost{background:transparent;color:var(--ink)}
.btn.ghost:hover{background:var(--ink);color:#fff}
:focus-visible{outline:3px solid var(--accent);outline-offset:2px}
.fine{font-size:14px;color:var(--mut);margin:10px 0 0}
.lead{font-size:20px;font-weight:800;margin:0 0 24px}
.grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}
.card{margin:0;background:var(--sheet);border:1px solid var(--line);border-radius:4px;overflow:hidden;display:flex;flex-direction:column}
.card img{width:100%;height:auto;aspect-ratio:4/5;object-fit:cover;display:block}
.body{padding:14px;display:flex;flex-direction:column;flex:1}
.body p{margin:0 0 10px}
.from{font-weight:800;margin-top:auto!important}
.tel{margin:10px 0 0!important;text-align:center}
.tel a{color:var(--ink);font-weight:800;display:inline-block;padding:6px}
.rules{margin:0;padding-left:22px;display:grid;gap:10px;max-width:820px}
.letter{background:var(--sheet);border:1px solid var(--line);padding:26px;max-width:720px;font-size:19px}
.letter p{margin:0 0 14px}
.sig{font:700 24px/1.2 "Libre Baskerville",Georgia,serif;margin-top:20px!important}
.letter .fine{font-size:14px;margin:0}
.sheet{background:var(--sheet);border:2px solid var(--ink);border-radius:4px;padding:22px;max-width:640px}
.row{margin:0 0 16px}
label{display:block;font-weight:800;margin-bottom:4px}
input,textarea{width:100%;min-height:48px;padding:10px 12px;font:500 17px/1.3 Archivo,system-ui,sans-serif;color:var(--ink);background:#fff;border:2px solid var(--ink);border-radius:4px}
[aria-invalid=true]{border-color:var(--red)}
.err{color:var(--red);font-weight:700;margin:4px 0 0;font-size:15px}
.err:not(:empty)::before{content:"! ";font-weight:800}
.err:empty{display:none}
.trap{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
#done:focus{outline:none}
footer{padding:30px 16px 46px;max-width:1120px;margin:0 auto;font-size:15px}
@media (max-width:980px){.grid{grid-template-columns:repeat(2,1fr)}}
@media (max-width:560px){.grid{grid-template-columns:1fr}}
