/* ── Password gate (neutral) ── */
html.is-locked body{overflow:hidden}
.gate{position:fixed;inset:0;z-index:5000;display:none;place-items:center;padding:max(24px,env(safe-area-inset-top)) max(24px,env(safe-area-inset-right)) max(24px,env(safe-area-inset-bottom)) max(24px,env(safe-area-inset-left));
  background:radial-gradient(120% 90% at 50% 30%,#4a2a3c 0%,#2a1a26 55%,#160f15 100%);color:var(--cream);
  transition:opacity .9s ease,visibility .9s}
html.is-locked .gate{display:grid}
.gate.is-leaving{opacity:0;visibility:hidden}
.gate__box{position:relative;width:100%;max-width:420px;text-align:center}
.gate__mark{width:64px;height:64px;margin:0 auto 22px;border-radius:50%;border:1px solid rgba(184,149,90,.6);display:grid;place-items:center;
  font:italic 500 34px/1 var(--serif);color:var(--cream)}
.gate__title{font:italic 500 clamp(30px,6vw,40px)/1.1 var(--serif);margin:0 0 8px}
.gate__sub{font:400 12px var(--sans);letter-spacing:.28em;text-transform:uppercase;color:var(--gold);margin:0 0 34px}
.gate__form{display:flex;flex-direction:column;align-items:center;gap:18px}
.gate__input{width:100%;max-width:300px;background:transparent;border:0;border-bottom:1px solid rgba(244,234,216,.45);color:var(--cream);
  font:400 22px var(--serif);letter-spacing:.12em;text-align:center;padding:10px 6px;outline:none;border-radius:0;transition:border-color .3s}
.gate__input::placeholder{color:rgba(244,234,216,.4);font-style:italic;letter-spacing:.04em}
.gate__input:focus{border-bottom-color:var(--gold)}
.gate__msg{min-height:1.5em;margin:0;font:italic 400 19px var(--serif);color:#e6cf9f;opacity:0;transition:opacity .3s}
.gate__msg.show{opacity:1}
.gate__form.shake{animation:gateShake .45s cubic-bezier(.36,.07,.19,.97)}
@keyframes gateShake{10%,90%{transform:translateX(-2px)}20%,80%{transform:translateX(4px)}30%,50%,70%{transform:translateX(-7px)}40%,60%{transform:translateX(7px)}}
.gate .btn{min-height:48px;min-width:140px}
.gate__input{min-height:48px}
@media (min-width:768px){.gate__title{font-size:48px}.gate__sub{font-size:13px}.gate__input{font-size:24px;max-width:340px}}
.gate__mark--photo{width:132px;height:132px;padding:5px;margin-bottom:26px;box-shadow:0 10px 30px rgba(0,0,0,.35)}
.gate__mark--photo img{width:100%;height:100%;border-radius:50%;object-fit:cover;display:block}
@media (min-width:768px){.gate__mark--photo{width:200px;height:200px;padding:6px;margin-bottom:30px}}
