/* Dhraconyx guest Contact — page-specific + captcha.
   Shared palette/header/panel chrome: dhx-chrome.css (ship-skin SSoT). */
.wrap{max-width:720px;margin:0 auto;padding:0 20px 72px}
.captcha-banner{
  margin:0 0 22px;padding:14px 18px;text-align:center;
  font-size:1.05rem;font-weight:700;letter-spacing:.04em;
  color:#fff;text-shadow:0 0 8px rgba(255,255,255,.95),0 0 18px rgba(200,150,42,.75),0 0 32px rgba(200,150,42,.45);
}
.panel{padding:22px 20px 24px}
.panel h1{margin:0 0 6px;font-size:1.25rem;letter-spacing:.06em;color:var(--rz-gold-bright);font-family:var(--rz-body)}
.lede{margin:0 0 18px;color:var(--dim);font-size:.92rem}
label{display:block;font-size:.72rem;color:var(--rz-gold);letter-spacing:.06em;text-transform:uppercase;margin:12px 0 6px}
textarea{min-height:110px;resize:vertical}
.row{display:grid;grid-template-columns:1fr 1fr;gap:12px}
@media(max-width:640px){.row{grid-template-columns:1fr}}
.actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:18px;align-items:center}
.hint{font-size:.78rem;color:var(--dim);margin-top:10px;line-height:1.45}
.msg{margin-top:12px;font-size:.88rem}
.msg.ok{color:var(--good)}
.msg.err{color:var(--bad)}
.contacts{margin-top:16px;font-size:.82rem;color:var(--dim)}

/* Captcha overlay — keep SVG puzzle pieces working */
.haze{
  display:none;position:fixed;inset:0;z-index:40;
  background:rgba(6,4,12,.78);backdrop-filter:blur(3px);
  align-items:center;justify-content:center;
}
.haze.on{display:flex}
.puzzle-stage{
  position:relative;width:min(420px,92vw);height:min(420px,92vw);
  border:1px solid var(--gold-dim);border-radius:16px;
  background:radial-gradient(circle at 50% 45%,rgba(14,77,48,.35),rgba(10,8,16,.95) 70%);
  box-shadow:0 0 40px rgba(200,150,42,.18),0 24px 60px rgba(0,0,0,.55);
  overflow:hidden;touch-action:none;
}
.puzzle-stage svg.board{position:absolute;inset:0;width:100%;height:100%}
.target-glow{
  filter:drop-shadow(0 0 6px rgba(232,189,79,.55)) drop-shadow(0 0 16px rgba(232,189,79,.25));
}
.piece{
  position:absolute;width:88px;height:88px;cursor:grab;z-index:2;
  filter:drop-shadow(0 0 6px rgba(232,189,79,.55));
  transition:filter .2s;
  touch-action:none;user-select:none;
}
.piece:active,.piece.held{cursor:grabbing;filter:drop-shadow(0 0 14px rgba(232,189,79,.95))}
.piece.snapped{
  cursor:default;pointer-events:none;
  filter:drop-shadow(0 0 18px rgba(255,240,180,1)) drop-shadow(0 0 28px rgba(232,189,79,.9));
  animation:settle .55s ease forwards;
}
@keyframes settle{
  0%{filter:drop-shadow(0 0 22px #fff) drop-shadow(0 0 36px var(--gold))}
  100%{filter:drop-shadow(0 0 8px rgba(232,189,79,.7))}
}
.coach{
  position:absolute;left:12px;right:12px;bottom:12px;z-index:5;
  display:flex;gap:10px;align-items:flex-end;pointer-events:none;
  opacity:0;transform:translateY(8px);transition:opacity .35s,transform .35s;
}
.coach.on{opacity:1;transform:none}
.coach img{width:56px;height:auto;flex:0 0 auto;filter:drop-shadow(0 0 8px rgba(232,189,79,.4))}
.coach .bubble{
  background:rgba(6,10,8,.92);border:1px solid var(--gold-dim);border-radius:10px;
  padding:8px 12px;font-size:.78rem;color:var(--ink);line-height:1.4;
}
.puzzle-done{
  position:absolute;inset:0;display:none;align-items:center;justify-content:center;
  background:rgba(8,6,14,.55);z-index:6;color:var(--gold);font-weight:700;letter-spacing:.08em;
  text-shadow:0 0 12px rgba(232,189,79,.8);
}
.puzzle-done.on{display:flex}
.close-x{
  position:absolute;top:10px;right:12px;z-index:7;
  background:transparent;border:0;color:var(--dim);font-size:22px;cursor:pointer;line-height:1;
}
.close-x:hover{color:#fff}
