/* Biang — newsletter slide-in */
.nl {
  position: fixed; right: clamp(0.75rem, 2vw, 1.5rem); bottom: clamp(0.75rem, 2vw, 1.5rem); z-index: 150;
  width: min(calc(100vw - 1.5rem), 380px);
  background: var(--surface, #15130f); border: 1px solid var(--line, rgba(201,164,92,.18)); border-radius: var(--radius-lg, 8px);
  box-shadow: 0 30px 80px rgba(0,0,0,.55); padding: 1.35rem 1.35rem 1.15rem;
  font-family: var(--font-body, "DM Sans", system-ui, sans-serif); color: var(--paper-dim, #b8ae9b);
  transform: translateY(24px); opacity: 0; pointer-events: none; transition: transform .5s cubic-bezier(.16,1,.3,1), opacity .5s;
}
.nl.is-open { transform: none; opacity: 1; pointer-events: auto; }
.nl-close { position: absolute; top: .6rem; right: .6rem; width: 2rem; height: 2rem; border: 0; border-radius: 999px; background: transparent; color: var(--paper-mute, #8e8574); font-size: 1.2rem; line-height: 1; cursor: pointer; }
.nl-close:hover { color: var(--gold, #c9a45c); }
.nl-eyebrow { margin: 0; font-size: .68rem; letter-spacing: .22em; text-transform: uppercase; color: var(--gold, #c9a45c); font-weight: 500; }
.nl-eyebrow .zh { font-family: var(--font-zh, serif); letter-spacing: .1em; margin-right: .5em; }
.nl-title { margin: .35rem 0 0; font-family: var(--font-display, Georgia, serif); font-weight: 400; font-size: 1.45rem; line-height: 1.15; color: var(--paper, #f3ecdd); letter-spacing: -.01em; }
.nl-body { margin: .55rem 0 0; font-size: .9rem; line-height: 1.5; }
.nl-form { display: grid; gap: .6rem; margin-top: .9rem; }
.nl-row { display: flex; gap: .4rem; }
.nl-row input { flex: 1; min-width: 0; font: inherit; font-size: .95rem; color: var(--paper, #f3ecdd); background: var(--ink, #0b0a08); border: 1px solid var(--line, rgba(201,164,92,.18)); border-radius: var(--radius, 4px); padding: .65rem .8rem; outline: none; }
.nl-row input:focus { border-color: var(--gold, #c9a45c); }
.nl-row button { font: inherit; font-size: .78rem; font-weight: 500; letter-spacing: .08em; text-transform: uppercase; padding: .65rem 1rem; border: 0; border-radius: var(--radius, 4px); background: var(--gold, #c9a45c); color: var(--ink, #0b0a08); cursor: pointer; white-space: nowrap; }
.nl-row button:hover { background: var(--paper, #f3ecdd); }
.nl-row button:disabled { opacity: .5; cursor: not-allowed; }
.nl-check { display: flex; align-items: center; gap: .5rem; font-size: .85rem; cursor: pointer; }
.nl-check input { accent-color: var(--gold, #c9a45c); }
.nl-fine { margin: .1rem 0 0; font-size: .72rem; color: var(--paper-mute, #8e8574); }
.nl-msg { margin: .5rem 0 0; font-size: .85rem; color: var(--gold, #c9a45c); }
.nl-msg.err { color: #e6a091; }
.nl-hp { position: absolute; left: -9999px; }
.nl-done .nl-title { color: var(--gold, #c9a45c); }
@media (max-width: 480px) { .nl { left: .75rem; right: .75rem; width: auto; } .nl-row { flex-direction: column; } }
