/* TERRA Lab · the visitor's turn (pulse.js). Forest scope, like every Lab page: square corners, gold for the chosen answer, no shadow. */
.pulse {
  --p-forest-deep: #161e19; --p-forest: #1f2a23; --p-sand: #e8e2d6; --p-sand-2: rgba(232,226,214,.8);
  --p-sand-3: rgba(232,226,214,.62); --p-line: rgba(232,226,214,.18); --p-gold: #c6a76a;
  border-top: 1px solid var(--p-line);
  background: var(--p-forest-deep);
  color: var(--p-sand);
  font-family: Inter, -apple-system, "Helvetica Neue", Arial, sans-serif;
}
.pulse-in { max-width: 1280px; margin: 0 auto; padding: 28px 20px 32px; display: flex; flex-direction: column; gap: 14px; }
.pulse-eyebrow { margin: 0; font: 500 12px "IBM Plex Mono", ui-monospace, Menlo, monospace; letter-spacing: .12em; text-transform: uppercase; color: var(--p-gold); }
.pulse-q { margin: 0; font: 300 26px/1.2 "Source Serif 4", Georgia, serif; letter-spacing: -.018em; }
.pulse-answers { display: flex; flex-wrap: wrap; gap: 6px; }
.pulse-btn {
  min-height: 44px; padding: 0 16px; font: 500 14px Inter, -apple-system, Arial, sans-serif; cursor: pointer;
  color: var(--p-sand); background: transparent; border: 1px solid rgba(232,226,214,.35);
  transition: border-color .18s cubic-bezier(.22,1,.36,1), background-color .18s cubic-bezier(.22,1,.36,1), color .18s cubic-bezier(.22,1,.36,1);
}
.pulse-btn:hover, .pulse-btn:active { border-color: var(--p-sand); }
.pulse-btn[aria-pressed="true"] { border-color: var(--p-gold); background: var(--p-forest); color: var(--p-sand); box-shadow: inset 0 -2px 0 var(--p-gold); }
.pulse-btn.solid { background: var(--p-sand); color: var(--p-forest-deep); border-color: var(--p-sand); }
.pulse-btn.solid:hover, .pulse-btn.solid:active { background: transparent; color: var(--p-sand); }
.pulse-btn.quiet { align-self: flex-start; }
.pulse-btn[disabled] { opacity: .5; cursor: progress; }
.pulse-btn:focus-visible, .pulse-input:focus-visible, .pulse-fine:focus-visible, .pulse-done:focus-visible { outline: 2px solid var(--p-gold); outline-offset: 2px; }
.pulse-count { margin: 0; min-height: 0; font: 400 13px "IBM Plex Mono", ui-monospace, Menlo, monospace; color: var(--p-sand-2); }
.pulse-count:empty { display: none; }
.pulse-follow { display: flex; flex-direction: column; gap: 12px; max-width: 560px; padding-top: 6px; border-top: 1px solid var(--p-line); }
.pulse-follow[hidden] { display: none; }
.pulse-form { display: flex; flex-direction: column; gap: 12px; padding-top: 8px; }
.pulse-h { margin: 0; font: 300 20px/1.3 "Source Serif 4", Georgia, serif; }
.pulse-p { margin: 0; font-size: 14px; line-height: 1.6; color: var(--p-sand-2); }
.pulse-label { display: flex; flex-direction: column; gap: 6px; font-size: 13px; color: var(--p-sand-2); }
.pulse-label span { color: var(--p-sand-3); font-size: 12px; }
.pulse-input {
  min-height: 44px; padding: 10px 12px; font: 400 15px Inter, -apple-system, Arial, sans-serif; color: var(--p-sand);
  background: var(--p-forest); border: 1px solid rgba(232,226,214,.28); border-radius: 0; resize: vertical;
}
.pulse-input::placeholder { color: var(--p-sand-3); }
.pulse-input:focus { border-color: var(--p-gold); outline: none; }
.pulse-row { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 18px; }
.pulse-fine { display: inline-flex; align-items: center; min-height: 44px; font-size: 13px; color: var(--p-gold); }
.pulse-fine:hover { color: var(--p-sand); }
.pulse-done { margin: 8px 0 0; font: 300 20px/1.3 "Source Serif 4", Georgia, serif; }
.pulse-shared { font: 400 13px "IBM Plex Mono", ui-monospace, Menlo, monospace; color: var(--p-sand-2); word-break: break-all; }
.pulse-error { margin: 0; font-size: 14px; color: #e3b58f; }
.pulse-error[hidden] { display: none; }
.pulse-trap { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.pulse .sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
@media (max-width: 600px) { .pulse-in { padding: 24px 16px 28px; } .pulse-q { font-size: 23px; } }
@media (prefers-reduced-motion: reduce) { .pulse-btn { transition: none; } }
