/* ── Name gate overlay ── */
.name-gate { position: fixed; inset: 0; z-index: 999; background: rgba(255,255,255,0.98); display: flex; align-items: center; justify-content: center; padding: 24px; transition: opacity 0.3s; }
.name-gate.hidden { opacity: 0; pointer-events: none; }
.name-gate-inner { max-width: 380px; width: 100%; text-align: center; }
.name-gate-accent { width: 100%; height: 3px; background: linear-gradient(90deg, var(--olive-pale), var(--olive), var(--olive-pale)); margin-bottom: 40px; }
.name-gate-script { font-family: var(--font-script); font-size: clamp(2.5rem, 10vw, 4rem); color: var(--olive); line-height: 1; margin-bottom: 6px; }
.name-gate-sub { font-family: var(--font-display); font-size: 1rem; font-weight: 300; font-style: italic; color: var(--ink-mid); margin-bottom: 32px; line-height: 1.6; }
.name-gate .name-wrap { text-align: left; position: relative; }
.name-gate input[type="text"] { width: 100%; padding: 11px 0; font-family: var(--font-display); font-size: 1.45rem; font-weight: 300; font-style: italic; color: var(--ink); background: transparent; border: none; border-bottom: 1px solid var(--border); outline: none; transition: border-color 0.2s; -webkit-appearance: none; }
.name-gate input[type="text"]:focus { border-bottom-color: var(--olive); }
.name-gate input[type="text"]::placeholder { color: var(--ink-light); font-style: italic; }
.name-gate .guest-dropdown { position: absolute; top: 100%; left: 0; right: 0; background: white; border: 1px solid var(--olive-muted); max-height: 200px; overflow-y: auto; z-index: 99; box-shadow: 0 4px 16px rgba(0,0,0,0.08); display: none; }
.name-gate .guest-dropdown.open { display: block; }
.name-gate .guest-option { padding: 10px 14px; font-family: var(--font-display); font-size: 0.95rem; font-style: italic; color: var(--ink); cursor: pointer; border-bottom: 1px solid rgba(107,122,90,0.08); transition: background 0.1s; }
.name-gate .guest-option:last-child { border-bottom: none; }
.name-gate .guest-option:hover { background: var(--olive-pale); }
.name-gate .name-error { display: none; margin-top: 10px; padding: 10px 14px; background: #fdf0f0; border: 1px solid #e8a0a0; text-align: left; }
.name-gate .name-error.show { display: block; }
.name-gate .name-error p { font-family: var(--font-display); font-size: 0.85rem; font-style: italic; color: #a05050; }
.name-gate .name-ok { display: none; margin-top: 8px; justify-content: center; }
.name-gate .name-ok.show { display: flex; align-items: center; gap: 7px; }
.name-gate .name-ok-icon { color: var(--olive); font-size: 0.75rem; }
.name-gate .name-ok-text { font-family: var(--font-display); font-size: 0.82rem; font-style: italic; color: var(--olive); }
