:root {
  --bg:#17352B;
  --bg-deep:#12271F;
  --accent:#B98A46;
  --accent-hover:#D0A867;
  --sage:#8FA894;
  --field:#123024;
  --border:#38564A;
  --border-soft:#24463A;
  --placeholder:#6E8577;
  --ink:#F3EFE7;
  --para:#DCE4DA;
  --para-soft:#B9C6BC;
}

* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; background:var(--bg-deep); }
a { color:var(--accent); text-decoration:none; }
a:hover { color:var(--accent-hover); }
input::placeholder, textarea::placeholder { color:var(--placeholder); opacity:1; }

@keyframes riseIn {
  from { opacity:0; transform:translateY(14px); }
  to { opacity:1; transform:translateY(0); }
}

.page-shell {
  min-height:100vh;
  background:var(--bg);
  color:var(--ink);
  font-family:'Space Grotesk',sans-serif;
  display:flex;
  flex-direction:column;
  position:relative;
  overflow:hidden;
}

.pine-texture {
  position:absolute;
  top:-80px;
  right:-80px;
  width:520px;
  height:520px;
  opacity:0.06;
  pointer-events:none;
  color:var(--ink);
}

header {
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:32px 56px;
  position:relative;
  z-index:2;
}

.brand { display:flex; align-items:center; gap:14px; color:var(--accent); }
.brand div { color:var(--ink); font-weight:600; font-size:20px; letter-spacing:0.12em; }
.follow-link {
  font-size:13px;
  letter-spacing:0.14em;
  font-weight:500;
  text-transform:uppercase;
  color:var(--sage);
  border:1px solid var(--border);
  padding:10px 20px;
  border-radius:999px;
}

main {
  flex:1;
  display:flex;
  flex-direction:column;
  justify-content:center;
  padding:40px 56px 72px;
  max-width:1000px;
  position:relative;
  z-index:2;
}

.reveal { animation:riseIn 0.8s ease both; }
.reveal-1 { animation-delay:0s; }
.reveal-2 { animation-delay:0.12s; }
.reveal-3 { animation-delay:0.24s; }

.eyebrow {
  font-size:13px;
  letter-spacing:0.24em;
  font-weight:600;
  text-transform:uppercase;
  color:var(--accent);
}

h1 {
  font-family:'Spectral',serif;
  font-weight:400;
  font-size:56px;
  line-height:1.1;
  letter-spacing:-0.01em;
  margin:22px 0 0;
  max-width:18ch;
}

.body-copy { max-width:560px; margin:36px 0 0; }
.body-copy p {
  font-family:'Spectral',serif;
  font-size:19px;
  line-height:1.62;
  color:var(--para);
  margin:0 0 18px;
}
.body-copy p:last-child { color:var(--para-soft); margin:0; }

.contact-section { margin:52px 0 0; max-width:560px; }
.divider { height:1px; background:var(--border); margin-bottom:30px; }
.form-label {
  display:block;
  font-size:13px;
  letter-spacing:0.14em;
  font-weight:600;
  text-transform:uppercase;
  color:var(--sage);
  margin-bottom:16px;
}
.fields { display:flex; flex-direction:column; gap:12px; }
input, textarea {
  width:100%;
  background:var(--field);
  border:1px solid var(--border);
  border-radius:12px;
  padding:15px 18px;
  font-family:'Space Grotesk',sans-serif;
  font-size:16px;
  color:var(--ink);
  outline:none;
}
input:focus, textarea:focus { border-color:var(--sage); }
textarea { resize:vertical; min-height:88px; }
button {
  margin-top:16px;
  width:100%;
  background:var(--accent);
  color:var(--bg);
  border:none;
  border-radius:12px;
  padding:16px;
  font-family:'Space Grotesk',sans-serif;
  font-weight:600;
  font-size:15px;
  letter-spacing:0.1em;
  text-transform:uppercase;
  cursor:pointer;
}
button:hover { background:var(--accent-hover); }
button:disabled { cursor:wait; opacity:0.8; }
.form-error {
  font-family:'Spectral',serif;
  font-size:14px;
  color:#E0A579;
  margin-top:12px;
}
.honeypot { position:absolute !important; left:-9999px !important; width:1px !important; height:1px !important; opacity:0 !important; }

.success-card {
  display:flex;
  align-items:flex-start;
  gap:16px;
  padding:26px 28px;
  background:var(--field);
  border:1px solid var(--border);
  border-radius:16px;
  color:var(--accent);
}
.success-card[hidden] { display:none; }
.success-title { color:var(--ink); font-weight:600; font-size:18px; letter-spacing:0.04em; }
.success-copy {
  font-family:'Spectral',serif;
  font-size:16px;
  line-height:1.55;
  color:var(--para-soft);
  margin-top:6px;
}

footer {
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:26px 56px;
  border-top:1px solid var(--border-soft);
  font-size:12px;
  letter-spacing:0.08em;
  color:var(--placeholder);
  position:relative;
  z-index:2;
}

@media (max-width:640px) {
  header { padding:24px; }
  main { padding:32px 24px 56px; }
  footer { padding:22px 24px; }
  h1 { font-size:clamp(34px, 10vw, 40px); }
  .brand div { font-size:18px; }
  .follow-link { padding:9px 14px; font-size:11px; }
  .pine-texture { width:420px; height:420px; }
}
