.is-locked { overflow: hidden; }
.access-gate { align-items: center; background: radial-gradient(circle at 72% 20%, rgba(155, 66, 102, .36), transparent 30%), #17141f; display: flex; inset: 0; justify-content: center; padding: 24px; position: fixed; z-index: 100; }
.access-gate[hidden] { display: none; }
.access-card { border: 1px solid rgba(246, 238, 233, .2); max-width: 460px; padding: clamp(34px, 6vw, 64px); position: relative; width: 100%; }
.access-card::before { background: #ef988e; content: ''; height: 1px; left: 0; position: absolute; top: 0; width: 34%; }
.access-card h1 { font-size: clamp(38px, 6vw, 58px); font-weight: 600; line-height: 1.25; margin: 0 0 24px; }
.access-card h1 em { color: #ef988e; font-style: normal; }
.access-card > p:not(.eyebrow):not(.access-error) { color: #b7aab1; font-size: 14px; line-height: 1.9; margin: 0 0 36px; }
.access-label { color: #ef988e; display: block; font-size: 12px; letter-spacing: .08em; margin-bottom: 9px; }
.access-card input { background: transparent; border: 0; border-bottom: 1px solid rgba(246, 238, 233, .35); border-radius: 0; color: #f6eee9; font: 500 25px/1.2 'Noto Serif JP', serif; letter-spacing: .3em; outline: 0; padding: 11px 2px; width: 100%; }
.access-card input:focus { border-color: #ef988e; }
.access-error { color: #ffb4a7; font-size: 13px; min-height: 20px; margin: 12px 0 5px; }
.access-submit { background: #ef988e; border: 0; color: #2b172a; cursor: pointer; font: 600 13px 'Noto Serif JP', serif; letter-spacing: .08em; margin-top: 20px; padding: 16px 18px; width: 100%; }
.access-submit span { font-size: 17px; margin-left: 12px; }
@media (prefers-reduced-motion: no-preference) { .access-gate { transition: opacity .28s ease, visibility .28s ease; } .access-gate.is-leaving { opacity: 0; visibility: hidden; } }
