:root { color-scheme: dark; font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; background: #08090b; color: #eee8dc; }
* { box-sizing: border-box; }
body { min-width: 320px; min-height: 100vh; margin: 0; background: radial-gradient(circle at 78% 22%, rgba(143, 58, 67, .12), transparent 30%), #08090b; }
.access-room { min-height: 100vh; display: grid; place-items: center; padding: 28px 18px; }
.access-panel { width: min(100%, 470px); padding: clamp(30px, 7vw, 54px); border: 1px solid #303035; background: rgba(17, 18, 20, .94); box-shadow: 0 32px 90px rgba(0, 0, 0, .45); }
.brand, .eyebrow, label, .privacy { font-size: .73rem; letter-spacing: .15em; text-transform: uppercase; }
.brand { margin: 0; color: #c7bfb1; }
.rule { width: 44px; height: 2px; margin: 24px 0 42px; background: #8f3a43; }
.eyebrow { color: #a9a196; margin: 0 0 10px; }
h1 { margin: 0; font-family: Georgia, "Times New Roman", serif; font-weight: 400; font-size: clamp(2.2rem, 9vw, 4rem); line-height: .98; letter-spacing: -.035em; }
.intro { max-width: 34ch; margin: 24px 0 32px; color: #b8b0a5; line-height: 1.6; }
form { display: grid; gap: 12px; }
label { color: #d7d0c5; }
input { width: 100%; min-height: 52px; border: 1px solid #47474b; border-radius: 0; background: #0d0e10; padding: 12px 14px; color: #f2ede4; font: inherit; outline: none; }
input:focus { border-color: #a44852; box-shadow: 0 0 0 3px rgba(143, 58, 67, .18); }
button { min-height: 52px; border: 1px solid #a44a54; background: #7f3039; color: #fff8ec; padding: 12px 18px; font: 650 .88rem/1.2 inherit; cursor: pointer; transition: background .18s ease, transform .18s ease; }
button:hover { background: #923b45; }
button:focus-visible { outline: 2px solid #eee8dc; outline-offset: 3px; }
button:active { transform: translateY(1px); }
button:disabled { cursor: wait; opacity: .62; }
.message { min-height: 1.4em; margin: 0; color: #e3a0a6; font-size: .86rem; }
.privacy { margin: 28px 0 0; color: #817b73; line-height: 1.55; letter-spacing: .08em; }
@media (max-width: 520px) { .access-room { place-items: stretch; padding: 0; } .access-panel { min-height: 100vh; display: flex; flex-direction: column; justify-content: center; border: 0; } }
@media (prefers-reduced-motion: reduce) { * { transition: none !important; } }
