* { box-sizing: border-box; }
html { min-height: 100%; background: #174c49; }
body { margin: 0; color: #fff; font-family: Arial, Helvetica, sans-serif; -webkit-font-smoothing: antialiased; }
.cover-background, .cover-shade { position: fixed; inset: 0; width: 100%; height: 100%; }
.cover-background { object-fit: cover; object-position: center; }
.cover-shade { background: rgba(5, 30, 29, var(--overlay, .52)); }
.cover-main { position: relative; min-height: 100vh; min-height: 100svh; display: flex; align-items: center; justify-content: center; padding: 32px 20px; }
.access-card { width: min(100%, 470px); text-align: center; padding: 48px 44px 32px; border: 1px solid rgba(194, 255, 239, .24); border-radius: 12px; background: rgba(7, 39, 37, .88); box-shadow: 0 24px 80px rgba(0, 0, 0, .3); }
.brand { margin: 0 0 20px; color: #b3eee3; font-size: 12px; font-weight: 600; letter-spacing: .32em; padding-left: .32em; }
.accent-line { width: 32px; height: 1px; background: #b3eee3; opacity: .55; margin: 0 auto 22px; }
h1 { margin: 0 0 18px; font-family: Georgia, 'Times New Roman', serif; font-weight: 400; font-size: clamp(38px, 5vw, 54px); line-height: 1.1; letter-spacing: -.035em; }
.intro { margin: 0 0 32px; color: #d4e4e0; font-size: 14px; line-height: 1.8; }
form { text-align: left; }
label { display: block; margin-bottom: 9px; font-size: 13px; color: #e8f2ef; }
input { width: 100%; height: 54px; border: 1px solid rgba(226, 255, 247, .35); border-radius: 5px; background: rgba(255,255,255,.07); padding: 0 16px; color: #fff; font: inherit; font-size: 15px; }
input::placeholder { color: #bfcec9; opacity: 1; }
input:focus-visible { outline: 2px solid #b3eee3; outline-offset: 3px; }
button { width: 100%; min-height: 54px; margin-top: 14px; display: flex; align-items: center; justify-content: center; gap: 12px; border: 1px solid #b3eee3; border-radius: 5px; background: #b3eee3; color: #113f3b; font: inherit; font-size: 14px; font-weight: 600; cursor: pointer; transition: background .18s, border-color .18s; }
button span { font-size: 19px; line-height: 1; }
button:hover { background: #d0fff3; border-color: #d0fff3; }
button:focus-visible, .preview-exit:focus-visible { outline: 2px solid #fff; outline-offset: 4px; }
.private-note { margin: 24px 0 0; color: #b4c8c1; font-size: 11px; letter-spacing: .04em; }
.form-error { padding: 12px 14px; margin: -8px 0 20px; border: 1px solid #e7b7a7; border-radius: 5px; color: #ffe2d7; font-size: 13px; line-height: 1.5; }
.preview-exit { position: fixed; bottom: 12px; left: 12px; padding: 10px 16px; background: #07312e; color: #fff; border: 1px solid #b3eee3; border-radius: 5px; text-decoration: none; font-size: 12px; }
@media (max-width: 520px) { .access-card { padding: 36px 26px 28px; } .cover-main { padding: 24px 18px; } .intro { margin-bottom: 26px; } }
@media (prefers-reduced-motion: reduce) { button { transition: none; } }
