/* Access gateway — deliberately minimal */
@font-face { font-family: "Hanken Grotesk"; font-style: normal; font-weight: 300 700; font-display: swap; src: url("../assets/fonts/hankengrotesk-normal-latin.woff2") format("woff2"); }
@font-face { font-family: "Sofia Sans Condensed"; font-style: normal; font-weight: 400 700; font-display: swap; src: url("../assets/fonts/sofiasanscondensed-normal-latin.woff2") format("woff2"); }
*, *::before, *::after { box-sizing: border-box; }
html, body { margin: 0; height: 100%; }
body { background: #F4F0E8; color: #292A2C; font-family: "Hanken Grotesk", "Segoe UI", Arial, sans-serif; -webkit-font-smoothing: antialiased; }
.gate { min-height: 100%; display: grid; place-items: center; padding: 24px 16px; }
.gate-form { width: 100%; max-width: 380px; border-top: 2px solid #292A2C; padding-top: 28px; }
.gate-title { margin: 0 0 22px; font-family: "Sofia Sans Condensed", "Arial Narrow", sans-serif; font-weight: 600; font-size: .95rem; letter-spacing: .2em; text-transform: uppercase; }
.gate-label { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.gate-input { display: block; width: 100%; min-height: 54px; padding: 12px 16px; font: inherit; font-size: 1.05rem; color: inherit; background: #FCFBF8; border: 1px solid rgba(41,42,44,.38); border-bottom: 2px solid #292A2C; border-radius: 0; }
.gate-input:focus { outline: none; border-color: #526C7A; box-shadow: 0 0 0 3px rgba(82,108,122,.25); }
.gate-input[aria-invalid="true"] { border-color: #9B2C1F; }
.gate-btn { margin-top: 14px; width: 100%; min-height: 54px; border: 0; border-radius: 0; background: #292A2C; color: #FCFBF8; cursor: pointer; font-family: "Sofia Sans Condensed", "Arial Narrow", sans-serif; font-weight: 600; font-size: .95rem; letter-spacing: .18em; text-transform: uppercase; }
.gate-btn:hover { background: #526C7A; }
.gate-btn:focus-visible { outline: 2px solid #526C7A; outline-offset: 3px; }
.gate-error { min-height: 1.5em; margin: 14px 0 0; color: #9B2C1F; font-weight: 600; font-size: .95rem; }
