@font-face{font-family:"Heading";src:url("fonts/Barlow-SemiBold.woff") format("woff");font-weight:600;font-display:swap}
@font-face{font-family:"Body";src:url("fonts/SourceSans3-Regular.woff") format("woff");font-weight:400;font-display:swap}
:root{
  --peat:#21312C;
  --oat:#F4F0E5;
  --clay:#9B5232;
  --sky:#B7CCD0;
  --mx:50%;
  --my:42%;
  --spot:22rem;
}
*{box-sizing:border-box}
html,body{margin:0;min-height:100%}
body{
  font-family:"Body",system-ui,sans-serif;
  font-size:16px;line-height:1.5;color:var(--oat);
  background:var(--peat) url("assets/hero.jpg") center/cover no-repeat;
  background-attachment:fixed;
  min-height:100vh;display:flex;flex-direction:column;
  overflow-x:hidden;
}
/* Soft peat wash + mouse spotlight — no blur filters, no animated fog */
.shade{
  position:fixed;inset:0;z-index:1;pointer-events:none;
  background:
    radial-gradient(
      ellipse var(--spot) calc(var(--spot) * .85) at var(--mx) var(--my),
      transparent 0%,
      transparent 35%,
      rgba(33,49,44,.28) 62%,
      rgba(33,49,44,.55) 82%,
      rgba(33,49,44,.72) 100%
    ),
    linear-gradient(180deg,rgba(33,49,44,.2),rgba(33,49,44,.45));
}
.hero{flex:1;display:grid;place-items:center;padding:2rem 1.25rem;position:relative;z-index:2}
.content{max-width:36rem;width:100%;text-align:center}
h1{
  font-family:"Heading",sans-serif;font-weight:600;
  font-size:clamp(1.8rem,5vw,3rem);line-height:1.15;margin:0 0 1.75rem;
  text-shadow:0 2px 14px rgba(0,0,0,.35);
}
.row{display:flex;gap:.5rem;flex-wrap:wrap}
input{
  flex:1 1 14rem;min-height:48px;padding:.75rem 1rem;font:inherit;
  color:var(--peat);background:var(--oat);border:2px solid transparent;border-radius:6px;
}
input[aria-invalid="true"]{border-color:#F4B9A0}
button{
  flex:0 0 auto;min-height:48px;padding:.75rem 1.4rem;font:inherit;font-weight:600;
  color:var(--oat);background:var(--clay);border:0;border-radius:6px;cursor:pointer;
}
button:hover{background:#86452A}
input:focus-visible,button:focus-visible,.thanks:focus-visible{outline:3px solid var(--oat);outline-offset:3px}
.privacy{margin:.75rem 0 0;font-size:.85rem;opacity:.85;line-height:1.35}
.msg{min-height:1.5em;margin:.6rem 0 0;font-size:.95rem}
.thanks{font-size:1.15rem;background:rgba(33,49,44,.6);padding:1rem 1.25rem;border-radius:8px}
footer{position:relative;z-index:2;text-align:center;padding:1rem;font-size:.85rem;opacity:.85}
.sr-only{position:absolute;width:1px;height:1px;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}
@media (max-width:480px){
  button{flex:1 1 100%}
  :root{--spot:16rem}
  body{background-attachment:scroll}
}
@media (prefers-reduced-motion:reduce){
  .shade{
    background:linear-gradient(180deg,rgba(33,49,44,.32),rgba(33,49,44,.58));
  }
}
