/* 合言葉ゲート：通過するまで中身を隠す */
html.gate-pending body { visibility: hidden; }

.gate {
  position: fixed; inset: 0; z-index: 9999;
  display: flex; align-items: center; justify-content: center; padding: 2rem;
  background: linear-gradient(160deg, #f6efe0 0%, #ece1d2 55%, #e3d4c0 100%);
  font-family: 'Noto Serif JP', serif; font-weight: 300; color: #3a322a;
  visibility: visible;
}
.gate__card { text-align: center; max-width: 22rem; width: 100%; animation: gateRise .9s ease both; }
@keyframes gateRise { from { opacity:0; transform: translateY(20px);} to { opacity:1; transform:none;} }
.gate__eyebrow { font-family: 'Cormorant Garamond', serif; font-style: italic; font-size: 1rem; letter-spacing: .15em; color: #c98a7a; margin-bottom: .5rem; }
.gate__title { font-family: 'Cormorant Garamond', serif; font-weight: 500; font-size: clamp(2rem, 9vw, 3rem); margin-bottom: 1.4rem;
  background: linear-gradient(120deg,#b08d6a,#c98a7a,#b08d6a); -webkit-background-clip:text; background-clip:text; color:transparent; }
.gate__lead { font-size: .95rem; color: #8a7d6d; margin-bottom: 1.8rem; line-height: 1.9; }
.gate__form { display: flex; flex-direction: column; gap: .8rem; }
.gate__input { font-family: inherit; font-size: 1rem; padding: .9rem 1rem; border: 1px solid #d8c7b2; border-radius: 10px; background: #fffdf9; color: #3a322a; text-align: center; outline: none; transition: border-color .2s; }
.gate__input:focus { border-color: #c98a7a; }
.gate__btn { font-family: 'Noto Serif JP', serif; font-size: 1rem; letter-spacing: .1em; padding: .9rem 1rem; border: none; border-radius: 10px; background: #c98a7a; color: #fff; cursor: pointer; transition: background .2s, transform .1s; }
.gate__btn:hover { background: #b87968; } .gate__btn:active { transform: scale(.98); }
.gate__error { margin-top: 1rem; color: #a04040; font-size: .9rem; min-height: 1.2em; }
.gate--shake .gate__card { animation: gshake .45s; }
@keyframes gshake { 0%,100%{transform:translateX(0)} 20%,60%{transform:translateX(-8px)} 40%,80%{transform:translateX(8px)} }
